분류 전체보기
-
[Flutter] Your project requires a newer version of the Kotlin Gradle plugin. 에러 해결Memo/Dart & Flutter 2024. 2. 4. 17:30
⚠️ 문제 Flutter와 Firebase를 연동하는 과정에서 아래와 같은 에러가 발생하였다. FAILURE: Build failed with an exception. ... [!] Your project requires a newer version of the Kotlin Gradle plugin. ... Exception: Gradle task assembleDebug failed with exit code 1 💡원인 프로젝트 수준의 build.gradle에 kotlin 구버전이 적용되어 있어 발생한 오류이었다. ✅ 해결 단순히 kotlin의 버전을 최신 버전으로 고쳐 해결할 수 있었다. kotlin 최신 버전은 아래 페이지에서 확인할 수 있다. Kotlin releases | Kotlin kotli..
-
[Flutter] SnackBar와 Toast 차이점Memo/Dart & Flutter 2024. 1. 15. 17:07
🟰 공통점 간단한 메시지를 표시하는 기능 ✅ SnackBar 스와이프로 제거 가능 사용자 입력 처리 가능 (예, undo) 사용자에게 경고 형식의 메시지를 전달하기에 적합 ✅ Toast 스와이프로 제거 불가 사용자 입력 처리 불가 사용자에게 정보성 메시지 전달하기에 적합 ⭐ 단순한 정보 전달은 Toast, 상호작용이 필요하다면 SnackBar 이용 Android - Snackbar vs Toast - usage and difference We have been using just Toasts in our application so far and as we are planning to adopt some new features from Support Design Library I am wondering w..
-
[Flutter] AppBar 배경 색상 사라짐, 색깔 지정 방법Memo/Dart & Flutter 2024. 1. 10. 22:57
분명 Flutter 공부를 시작하면서 작성했던 코드와 동일한 코드인데, 갑자기 AppBar의 색상이 적용되지 않았다. 무엇이 문제일까 고민하던 중, 최근 Flutter를 3.16.5 버전으로 업데이트 한 것이 생각났다. 공식 문서를 찾아본 결과 Flutter 최신 버전 부터 변경되는 일부 사항이 존재했다. 위와 같이 Flutter 3.16 버전 이후 부터는 기본적으로 Material 3 디자인이 적용 된다. 이 때문에 기존 기본으로 적용되던 파란색의 AppBar 배경색이 사라진 것이었다. 따라서 Material 3 부터는 AppBar에 색상을 넣고 싶다면, 아래와 같이 AppBar 위젯에서 색상을 별도로 지정해 주어야 한다. AppBar( backgroundColor: Colors.blue, // 배경색..
-
[Flutter] Stateless Widget과 Stateful WidgetMemo/Dart & Flutter 2024. 1. 9. 18:27
✅ Stateless Widget (SLW) 변화가 없는 정적인 위젯 build 메서드를 통해 단지 UI를 출력하는 역할 build 메서드가 한 번 수행되면 다시는 호출되지 않음 내용을 갱신할 수 없는 위젯으로 생명주기가 없음 State가 변하지 않는 위젯 ✅ Stateful Widget (SFW) 움직임이나 변화가 있는 위젯 두 클래스(Stateful Widget + State)의 결합으로 이루어져 있음 SLW와 다르게 State 클래스를 별도로 구성하여 사용 UI 변경(내용 갱신)을 위해 'setState' 메서드를 사용 생명주기를 10단계로 구분 ❔ SFW은 왜 두 개의 클래스로 나뉘어 있을까 SFW은 'Widget' 클래스를 상속 받는다. 'Widget' 클래스 기본적으로 immutable(불변)..
-
[Dart] Object와 dynamic 차이Memo/Dart & Flutter 2024. 1. 4. 17:15
Dart에는 여러가지 타입을 가질 수 있는 'dynamic' 이라는 타입이 존재한다. 그런데 나는 여러 타입을 가질 수 있다면 'Object'와 차이점이 궁금해졌다. 검색해 본 결과 'dynamic'은 컴파일시 오류 체크를 하지 않는다. ✅ dynamic 컴파일 타임에 오류를 체크하지 않는다. (static type checking을 하지 않는다) 컴파일 타임에 오류를 잡아내지 않으므로 어떤 값이 들어오는지 정확히 알 때만 사용해야 한다. 프로그래머가 어떤 타입인지 알고 있고 직접 처리한다고 가정하기 때문에 컴파일러가 경고하지 않는다. ⭐ dynamic은 타입의 한 종류가 아니다. 단지 타입 체킹을 하지 않기 위해 사용한다. ✅ Object 컴파일 타임에 오류를 체크한다. Null을 제외한 모든 Dart..
-
Dart는 오버로딩을 지원하지 않는다.Memo/Dart & Flutter 2024. 1. 3. 21:10
생성자를 생성할 때, 동일한 메소드을 타입 또는 매개변수의 개수를 다르게 하여 여러 생성자를 생성할 수 있다. 이를 '오버로딩' 이라고 한다. 그런데 Dart를 공부하면서 Dart 언어는 '오버로딩'을 지원하지 않는다는 것을 알게되었다. Dart는 다른 언어와 다르게 타입 도는 매개변수의 개수가 다르더라도 동일한 이름을 가진 생성자를 하나만 가질 수 있다. 그 이유를 알아보니, Dart언어 만의 특성인 'Named Constructors'이 존재하였다. ✅ Named Constructors 이름을 가진 생성자는 생성자에 이름을 부여하여 다른 기능을 수행하게 할 수 있다. 즉, 이름을 다르게 하여 여러 개의 생성자를 생성할 수 있다. class Player { String name; String team;..
-
[Dart] Python의 f-string과 유사한 String InterpolationMemo/Dart & Flutter 2024. 1. 1. 22:12
파이썬에서 문자열과 변수를 함께 출력할 때 f-string을 굉장히 유용하게 사용해왔었다. Java에서는 f-string과 유사한 기능이 없어 아쉬웠는데, Dart에서는 f-string과 거의 유사한 'String Interpolation'이 존재했다. String Interpolation, 직역하면 '문자열 보간'은 자바스크립트에서 사용되는 방식과 거의 같다. var name = "nico"; var age = 10; var gretting = "Hello $name! I'm ${age + 2}"; print(gretting); // Hello nico! I'm 12 변수의 경우 '$' 뒤에 변수명을 붙여 사용하면 되며, 계산이 필요한 경우에는 '$'뒤에 중괄호를 붙여 사용할 수 있다. Built-in..