본문 바로가기

Flutter

(7)
[Flutter] 8주간의 플러터 스터디 회고 진행 기간: 2022/03/06 ~ 2022/04/24 (8주) 내용: Udemy Dart를 사용한 완전한 2021 Flutter 개발 부트캠프 스터디 기관: https://study.flearner.co/ (플러너) 올해 2월, 지인분에게 플러터 스터디를 소개받았습니다. 일과 학업을 동시에 병행하고 있던 상태라서 신청하지 않으려고 했지만 무슨 객기였는지, 앱 개발에 관심 있었기도 해서 자신의 한계를 경험해보고 싶었고, 그렇게 스터디를 신청했습니다. 덕분에 하드 한 일정의 8주간을 보냈네요. 스터디는 강의를 통해 진행되었으며, 온라인에서 스터디 멤버들과 후기와 내용을 공유하는 방식으로 진행되었습니다. 1주 차 (I Am Poor App) 플러터에 대한 소개와 간단한 UI의 App을 만들고, 빌드하고 직접..
[Flutter] Firebase DB 값 순서정렬(Timestamp, 시간 순 정렬) 강의를 보고 따라 해서 완성한 채팅어플이다. 다 잘 동작하는데 채팅의 순서가 이상하게 꼬여서 올라온다. 찾아보니 FireBase의 채팅 doc ID들은 랜덤으로 생성되는데 여기의 문자열 순서대로 정렬되어 채팅어플에 뿌려주고 있으므로 순서가 뒤죽박죽 섞이던 것이다. 메시지에 시간필드를 추가해주면 정렬할 수 있지 않을까 시도해봤다. cloud_firestore_platform 라이브러리의 Timestamp 클래스를 사용해주어 현재 시간과 함께 add 해주자. Firebase에서 확인해보면 timeStamp 속성이 잘 추가되어 있다. 그리고 stream에서 firebase DB의 값을 가져올 때 orderBy를 이용해 timeStamp 순으로 정렬하여 갖고 오면 의도한 대로 잘 정렬된다.
[Flutter] 코드 리팩토링 & 소스추출에서의 Widget과 Method의 차이 개요 중복된 소스를 공통으로 만들어 사용할 때 클래스와 메소드, 어느 방식으로 리팩토링 하는 것이 더 좋을까? 기존 코드 Padding( padding: const EdgeInsets.symmetric(vertical: 16.0), child: Material( elevation: 5.0, color: Colors.lightBlueAccent, borderRadius: BorderRadius.circular(30.0), child: MaterialButton( onPressed: () { //Go to login screen. Navigator.pushNamed(context, LoginScreen.id); }, minWidth: 200.0, height: 42.0, child: const Text( '..
[Flutter] 플러터 페이지 간 이동과 context의 의미 (Multi-Screen Apps Using Routes and Navigation And About context) 플러터 화면 이동 플러터에서는 Navigator을 통해 페이지간 이동을 다룰 수 있다. 페이지이동을 스택구조로 관리하여 Push와 Pop을 명령을 통해 페이지를 이동한다. 1. 이전 페이지 이동 현재 페이지를 스택에서 제거하여 이전 페이지로 이동한다. 스택에 페이지가 남아있다면 해당 페이지가 표시되고, 없다면 앱이 종료된다. Navigator.pop(context); 2. 다음 페이지 이동 현재 페이지를 스택에 남겨놓고 NextPage라는 이름을 가진 페이지로 이동한다. 이 경우 다음 페이지에서 Pop을 하면 현재 페이지로 돌아올 수 있다. Navigator.push( context, MaterialPageRoute(builder: (context) => NextPage()), ); 현재 페이지를 스택에..
[Dart, Flutter] Const vs. Final (Const와 Final의 차이점) Final VS Const Final과 Const는 둘 다 변경할 수 없는 속성을 뜻한다. void main() { const int myConst = 2; final int myFinal = 3; myConst = 4; // error 발생, Const 변수에는 값을 할당할 수 없다. myFinal = 6; // error 발생, Final 변수에는 값을 할당할 수 없다. } 위와 같이 두 속성은 둘다 한번 값을 대입하면 변경할 수 없어 같은 일을 하지만 미묘한 차이점이 있다. const 속성은 컴파일 타임 상수인 반면 final은 전체 소스 주기 중 한 번만 설정된다. 다시 말해 final은 실행 중 값이 결정되지만 const는 컴파일 시 값이 결정된다. 예시 final finalTime = Date..
[Flutter] 플루터 앱 실행 오류 (The The minCompileSdk (31) specified in a dependency's AAR metadata ...) FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:checkDebugAarMetadata'. > Multiple task action failures occurred: > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction > The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater..
[Flutter] 플러터에 대해 (플러터 개요) 플러터란 무엇인가? 기존 앱 개발의 문제점 개발자 Bob은 IOS로 A앱을 개발했다. A앱은 인기가 많아져서 많은 사용자가 생겼지만 IOS에서만 사용할 수 있다는 문제가 있었다. 안드로이드 버전으로 출시해달라는 무수한 요청이 들어와 Bob은 안드로이드 책을 사서 공부하고 다시 개발하여 GooglePlay와 AppStore에서 모두 출시할 수 있게되었다. 하지만 이제 앱을 업데이트할 때마다 PlayStore와 AppStore에 모두 반영해주어야 한다. (코드 기반은 두개로 늘어나 더 많은 작업을 해야한다.) 여기서 끝이 아니다. 이제 그는 아이폰, 아이패드 뿐만 아니라 안드로이드 생태계에 맞는 화면의 레이아웃까지 디자인해주어야 한다. 여기서 Flutter가 등장한다. Flutter의 등장 Flutter는 ..