본문 바로가기

Flutter

flutter android, ios 플랫폼 별 실행 flutter로 만든 프로젝트를 android studio에서 안드로이드 프로젝트로, Xcode에서 ios 프로젝트로 확인 하고 싶을때는 다음과 같이 하면 된다. android studio에서 flutter project를 만들었지만 flutter project이지 android project는 아니다. 그래서 android project에서 사용하는 android folder구조라던가 필요한 메뉴를 못찾을 수 있는데 그럴때는 다음과 같이 android project로 ide를 switching 할 수 있다. flutter -> open Android module in android studio ios 프로젝트의 경우는 이미 눈치 챘겠지만 android project와 같다. 다음 처럼 ios 폴더 위에.. 더보기
Flutter 기본 파일 구조 flutter의 기본적인 파일 구조는 다음과 같다. 안드로이드 스튜디오를 사용에 익숙한 안드로이드 개발자 라면 폴더 구조가 어색할 수 있는 자세히 보면 그리 어렵거나 어색하지 않다. 샘플로 구성한 프로젝트의 폴더 구조를 보자 중요한 폴더 및 파일 android 는 말그대로 안드로이드 프로젝트 폴더 이고 ios는 ios 프로젝트 폴더이다. build는 build된 파일들이 자동으로 생성되는 폴더이다. 여기까지는 다 아는 내용 혹은 알 수 있는 내용이고 flutter와 관계된 파일, 폴더 중 중요한 내용들은 아래 이름을 가지고 있다. lib - flutter 파일(dart)들은 lib 폴더 아래 만들게 된다. test 폴더는 위젯 테스트 및 유닛 테스트 파일을 만드는 폴더 이다. web 폴더의 경우는 프로젝.. 더보기
Flutter TickerProviderStateMixin Animation 을 만들때, TabBar를 만들때 필수로 사용하게 되는 TickerProviderStateMixin 클래스에 대해서 알아보자 먼저 공식 문서를 살펴보자 https://api.flutter.dev/flutter/widgets/TickerProviderStateMixin-mixin.html TickerProviderStateMixin mixin - widgets library - Dart API Provides Ticker objects that are configured to only tick while the current tree is enabled, as defined by TickerMode. To create an AnimationController in a class that .. 더보기
Flutter Tab layout (TabBar, TabBarView, TabController) Flutter에서 tab 레이아웃을 만드는 방법에 대해서 알아보자 우선 flutter에서 tab의 기본구조에 대해서 알아보자면 tab layout을 만들기 위해서는 TabBar, TabBarView, TabController 이렇게 3개의 위젯이 필요하다. TabBar는 상단 tab TabBarView는 tab의 인덱스에 따라 바뀌어야 하는 View 이고 TabController는 이 둘을 연결해 주는 역할을 하는 연결자라고 보면 이해하기 쉽다. 우선 가장 기본적으로 사용하는 방법에 대해서 알아보자. 다음 애니메이션은 flutter.dev에서 제공하는 기본 코드를 실행한 결과 이다. 위 동작을 가능하게 해주는 코드 이다. import 'package:flutter/material.dart'; void m.. 더보기
Flutter: FCM Unhandled Exception: Null check operator used on a null value Flutter fcm관련 설정을 하면서 다음과 같은 오류를 만난다면 FirebaseMessaging.onBackgroundMessage() 핸들러의 위치를 다시한번 살펴보길 바란다. Unhandled Exception: Null check operator used on a null value 풀 소스를 보자면 다음과 같다. Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { await Firebase.initializeApp(); //message 처리 코드 return Future.value(); } Future main() async { WidgetsFlutterBinding.ensureInitialized(); Fire.. 더보기
Flutter Button Flutter Button에 대해서 알아보자! https://docs.flutter.dev/release/breaking-changes/buttons New Buttons and Button Themes The basic material button classes have been replaced. docs.flutter.dev Flutter에는 기본적으로 다음과 같은 버튼들이 존재 한다. TextButton, ElevatedButton, and OutlinedButton 움직이는 동작을 보면 다른 점을 확실히 알수 있을 것이다. 각 버튼들의 속성은 다음과 같이 일치 한다. style - 버튼의 미니멈사이즈, 색, 패딩, 모양등을 정의 onPressed - 클릭 되었을때 동작 child - 화면에 표현되.. 더보기