플러터 11

Flutter - Localization(현지화) 패키지, easy_localization

앱을 개발할 때, 한 국가만 대상으로 개발하여 출시하는 경우는 드물다. 한국, 미국, 일본 등 글로벌하게 출시하게 된다. 이럴때 고려해야 될 부분 중 하나는 앱 내 텍스트 등의 현지화다. 한국이라면 한국어로, 미국같은 영어권 국가라면 영어로 보여지게 한다는지 등. 안드로이드는 strings.xml 리소스를 분리하고, iOS는 국가별 문자열 키값 쌍을 만들고 String Extension에서 이를 읽어들여 런타임에 알맞게 보여지도록 구현했었다. Flutter는 어떻게 할 수 있을까? https://pub.dev/packages/easy_localization easy_localization | Flutter Package Easy and Fast internationalizing and localizati..

개발/Flutter 2023.01.28

Flutter - Open Source License 패키지

어떤 분야에서든지 개발을 해 보았다면 수 많은 오픈소스 라이브러리를 활용하고 있을 것이다. 오픈소스 라이브러리를 활용하는 것은 생산성을 높일 수 있을 뿐만 아니라, 개발 생태계에 있어 굉장히 좋은 문화라고 생각한다. 그러나 오픈소르 라이브러리를 활용하는데에 주의할 점이 있다. 바로 오픈소스 라이센스이다. 오픈소스 라이센스는 말 그대로 오픈소스에 대한 저작권 표시다. 오픈소스 라이브러리의 Github 저장소에서 Apache License 2.0이라던가, MIT License 같은 것을 본 적이 있을 것이다. 이것이 예인데, 각 라이센스 마다 수정 가능 여부, 상업적인 사용 가능 여부 등이 다르다. 라이센스에 대해 얘기하자면 끝이 없으니 여기선 넘어가겠다. 대부분의 오픈소스 라이브러리는 수정 및 상업적 이용..

개발/Flutter 2023.01.24

Flutter - 화려한 애니메이션이 앱을 감싸네! Lottie

모바일 앱을 더욱 아름답게 만들어주는 것이 애니메이션이다. 화면전환, UI가 보여지고 가려지고, 사이즈 변경 등 많은 부분에 애니메이션을 녹일 수 있다. 그렇지만 아이콘이나 이미지라던가, 화려한 애니메이션은 어려운 부분이 많다. 그래서 주로 Lottie를 사용하곤 한다. https://lottiefiles.com/what-is-lottie What is a Lottie animation? - LottieFiles Lottie is a JSON-based animation file format that works on any device and platform. LottieFiles lets you create, edit, test, collaborate on and ship a Lottie animati..

개발/Flutter 2023.01.15

Flutter - Firebase Firestore 연동 - 데이터베이스 접근과 읽기/쓰기

앱 개발을 할 때 Firebase는 뗄레야 뗄 수 없는 훌륭한 도구다. Firebase는 많은 도구가 있지만, Firestore는 그 중에서도 정말 유용하게 사용된다. 백엔드를 구축하기 어려운 상황에서 손쉽게 클라우스 데이터베이스를 사용할 수 있기 때문이다. 현재 진행중인 Flutter 프로젝트에서 Firestore 사용이 필요하기 때문에, 연동 과정을 정리한다. 먼저 터미널에서 아래 커맨드로 cloud_firestore 패키지를 추가한다. flutter pub add cloud_firestore 패키지 추가가 완료되었으므로, Firestore에 접근할 객체를 얻어야 한다. 놀랍게도 굉장히 간단하다. 아래 코드로 객체를 얻는다. db = FirebaseFirestore.instance; 이제 객체를 사용..

개발/Flutter 2023.01.14

Flutter Web - Chrome에서 개발하기

Flutter로 모바일 앱 개발을 할 때 정말 좋은 점은 바로 Hot reload 기능이 아닌가 싶다. UI를 변경했을 때 앱이 재실행되지 않고 바로바로 반영이 되어 개발속도가 확연히 다르다. 그러나, Flutter Web 에서는 Hot reload가 안되는 듯 하다. ㅠ_ㅠ 대신 Hot restart를 지원한다. Hot restart? Hot restart는 현재 앱의 상태를 유지하지 않고, 재시작해서 초기 화면으로 돌아간다. 즉, 어떤 화면을 작업중이라면 다시 들어가서 확인해야 되는 것. 그래도 build를 다시 하는 것 보단 나으니까.. 그럼 Hot restart는 어떻게 하는 것일까? 먼저, 자신의 프로젝트를 켜고 아래 커맨드를 입력하자. flutter run -d chrome 그럼 위와 같은 로..

개발/Flutter 2023.01.14

Flutter Web - Firebase Hosting에 배포해보자! 1. Firebase 설정

Flutter가 Web을 지원하기 시작한지도 꽤 되었다. 최근 여러모로 Web이 있으면 유용할 것 같아서 이것저것 알아보고 있었는데, 모바일 개발자로써 React 같은 웹 프레임워크를 배우는 것은 좀 그랬다. 언어부터 시작해서 익숙치 않다보니..? 하지만 Flutter라면 얘기가 다르지. Flutter 3.0이 배포된 이후로 회사에서도 관심도가 높아졌고, Google의 Fuchsia도 수면위에 올라오기도 하고, Flutter의 장점들 때문에 찾는 기업도 많아지고 있다. 그래서 기술적 트렌드를 따라가기 위해 나도 관심이 꽤 가고 있는 상태. 이 상태라면 Flutter도 익숙해질 겸, Web 개발 해보자! 가 된 상태. 아무튼 그래서, Flutter로 개발한 Web을 Firebase Hosting에 올려보기..

개발/Flutter 2023.01.08

Flutter 라우팅 패키지 - go_router

go_router? Flutter 공식 유튜브의 Package of the Week에서, Flutter 라우팅 패키지인 go_router가 소개되었다. Flutter 공식 유튜브의 Package of the Week에서, Flutter 라우팅 패키지인 go_router가 소개되었다. go_router는 URL 기반의 API를 사용하여 화면들을 편리하게 탐색할 수 있는 선언적 라우팅 패키지이며, URL을 사용하여 네비게이션과 딥링크와 같은 네비게이션 관련 처리를 할 수 있다고 소개하고 있다. 제공하고 있는 기능으로는 다음과 같다. "user/:id" 와 같은 구문으로 경로와 쿼리 매개변수 분석 목적 경로에 대해 여러 화면 표시 Redirection을 지원한다. 앱의 상태에 따라 사용자를 다른 URL로 다시..

개발/Flutter 2023.01.01

Flutter 3.0 릴리즈! - 이제 진짜 할 때가 됐다.

Flutter 2.0 버전이 릴리즈된지 1년 정도 지난 지금, Flutter 3.0이 릴리즈 됐다. 구글에 flutter를 검색하면 "Announcing Flutter 3" 가 나타난다. Google I/O를 통해 Flutter 3에 대해 알아보라고 한다. "Announcing Flutter 3" 페이지로 이동하여 조금 내리면, 위와 같은 글을 읽을 수 있다. 유튜브 혹은 미디움에서 자세한 내용을 확인하라는 내용이다. 살짝 언급된 내용을 보면, 다음과 같다. 1. macOS, Linux 지원 2. Flutter/Firebase 완전 지원 3. Apple Silicon 지원 4. 그리고 더 많은 것들. 1, 2번을 보고 정말 Flutter가 크로스 플랫폼을 지배하겠구나 생각이 들면서도, 정말 저렇게 많은 ..

개발/Flutter 2022.05.15

Flutter - 3. Widget? Container, Text, Image, Button

앱의 UI를 구현할 때 가장 기본적인 것은 무엇일까? 개인적인 의견이지만, 텍스트, 이미지, 버튼이라고 생각한다. 앱은 사용자의 상태에 따라 적절한 문구와 이미지를 보여주고 버튼을 통해 액션을 유도하기 때문이다. Flutter에서 기본적인 UI를 구현하기 위한 Text, Image, Button에 대하여 알아보고, 이들을 담을 수 있는 Container에 대하여도 알아보자. 1. Container class BasicPage extends StatelessWidget { @override Widget build(BuildContext context) { return Container( ) } } StatelessWidget을 상속받는 BasicPage를 만들고 Container를 생성해본다. 꼭 Basi..

개발/Flutter 2021.01.10

Flutter - 2. Widget? StatelessWidget, StatefulWidget

Flutter는 Widget으로 앱의 화면을 구성한다. Flutter는 데이터 또는 상태를 Widget으로 표현하는 어플리케이션이라고 보면 될 것 같다. (지극히 개인적인 이해) Widget은 크게 StatelessWidget과 StatefulWidget으로 나뉘며, Flutter 프로젝트를 생성하면 자동으로 만들어지는 main.dart를 보며 가볍게 이해해보도록 하겠다. 여기서 프로젝트 생성 시 작성되어 있는 주석은 모두 삭제하였다. 1. main.dart의 void main()과 MyApp void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your application. ..

개발/Flutter 2021.01.03
반응형