java.util.zip.ZipException: zip END header not found ~/.gradle 파일 삭제 후 재 빌드
Build failed due to use of deprecated Android v1 embedding. 안드로이드 빌드 시 발생하는 에러 android\app\src\main\AndroidManifest.xml 내에
썸네일 Flutter 상태 관리 ( State Management ) 상태 관리를 위해서 많은 사람들이 라이브러리를 사용합니다. 개인적으로는 Provider를 사용하고 있는데, GetX는 아직도 좀 꺼려집니다. 관련해서는 다른 포스팅으로 이야기 하겠습니다. 오늘 소개할 내용인 각 패키지의 순위 입니다. GetX (aka Get) Provider Flutter BloC Riverpod Get It Mobx Recap 1. GetX (aka Get) GitHub stars: 5.7k+ Likes (on pub.dev): 7.6k+ Written in: Dart, C++, CMake License: MIT Links: GitHub repo | Pub get | Flutter Package Open screens/snackbars/dialogs without context, ma..
썸네일 Flutter MVVM 안드로이드, iOS 에서 넘어오신 분들은 Flutter는 어떤 디자인 패턴을 사용하는지 찾아보는 것이 전혀 이상하지 않습니다. 기본적으로 Flutter는 특정 디자인 패턴을 사용하지 않습니다. 필요에 맞게 패턴을 선택하고 구현한 것이지, 뭐가 좋다 뭐가 낫다라는 것이 없습니다. MVVM은 Model-View-ViewModel의 약자입니다. 기본 아이디어는 뷰에 데이터를 제공하는 뷰 모델을 만드는 것입니다. 뷰는 뷰 모델에서 제공한 데이터를 사용하여 자체를 채울 수 있습니다. 뷰 모델을 잘 모듈화하면 여러 뷰에서 사용할 수 있는 모듈형 코드를 작성할 수 있습니다. Flutter에서 MVVM을 사용하고 싶다면? Provider를 사용하세요! 상태 관리 방법으로 Provider(ChangeNotifier) 사..
썸네일 Native? Reactive? Cross? Flutter? 질문 ) Flutter 는 정말 크로스 플랫폼인가요? 아닌가요? 대답 ) 양쪽 모두 가능 더 정확한 해답을 얻어보겠습니다. 위 질문은 너무 러프하니 좀 더 세분화가 필요합니다. 질문 ) 하나의 코드로 안드로이드와 iOS에 모두 사용할 수 있나요? 네, 사실 그 이상입니다. 이미 Mac, Linux,Window 용으로 개발이 가능하며, 더하여 다가오는 Fuchsia OS에서도 동작할 수 있도록 설계되었다. 따라서 하나의 코드로 안드로이드와 iOS를 포함한 6개 이상의 다른 플랫폼에 포할 수 있다. 그럼 크로스 플랫폼인데? 하지만 아닌 이유도 있습니다. 이유는 안드로이드나 iOS 플랫폼을 많이 사용하지 않기 때문입니다. 카메라, 블루투스, 기타 하드웨어 등을 직접 다룰 수 있는 코드가 빠져 있고 이런 것들은..
썸네일 Flutter Architecture (아키텍처) Flutter는 크로스 플랫폼 UI 툴킷으로, iOS, Android와 같은 다양한 운영체제 전반에서 코드를 재사용할 수 있도록 설계되었습니다. 어플리케이션은 플랫폼 서비스와 직접적으로 인터페이스합니다. 따라서 서로 다른 플랫폼이지만 자연스럽게 고성능 앱을 제공할 수 있습니다. Flutter 앱은 VM(가상머신)에서 실행됩니다. 따라서 전체적인 재컴파일 없이 바로 상태를 로드할 수 있습니다. 이는 x64나 ARM과 같은 머신 코드(기계어) 또는 웹의 경우 JavaScript로 바로 컴파일이 되면서 가능합니다. 위 그림과 같이 확장 가능도록 설계된 시스템입니다. 각각의 레이어는 독립된 라이브러리로 존재합니다. 채널을 통하여 플랫폼별 동작이 가능합니다. 모바일 및 데스크톱 앱의 경우 Flutter를 사용하면..
썸네일 Flutter 2.0 Button ( 버튼 ) 좀 늦은 감이 있지만, 스스로의 정리를 위해서 2.0에서 버튼을 정리해 봅니다. 1. TextButton 이전의 FlatButton과 동일합니다. 이름이 용도에 맞게 더 직관적으로 되었습니다. 테마또한 TextButtonTheme를 사용합니다. 2. ElevatedButton 이전의 RaisedButton과 동일합니다. ElevatedButtonTheme의 테마를 사용합니다. 3. OutlinedButton 이전의 OutlineButton과 동일합니다. OutlinedButtonTheme의 테마를 사용합니다. 2.0 버전으로 마이그레이션 ( migration )을 원하신다면 하기 링크를 참고하세요~ https://docs.flutter.dev/release/breaking-changes/buttons N..
썸네일 Flutter Permission ( permission_handler ) 이제 앱에서 권한 체크는 필수가 되었죠. 플러터에서는 permission_handler 라는 좋은 라이브러리가 있습니다. 어떠한 권한이 있는지, 어떻게 해야 하는지 궁금하시면 하기 링크에 리스트 되어 있습니다. https://pub.dev/documentation/permission_handler_platform_interface/latest/permission_handler_platform_interface/Permission-class.html#constants Permission class - permission_handler_platform_interface library - Dart API Defines the permissions which can be checked and requested...
썸네일 Flutter Firebase - iOS Firebase 설치 방법 입니다. 1. iOS 제한 플랫폼 : iOS 10, macOS 10.12 이상 클라우드 메세징 ( Cloud Messaging ) 만 Apple 개발자 계정의 Apple 푸시 알림 인증 키를 가져옵니다 XCode의 App(앱) > Capabilities(기능)에서 푸시 알림을 사용 설정합니다. 설치 방법 : 1. Google 계정을 사용하여 Firebase에 로그인 2. Firebase Console의 프로젝트 개요 페이지 중앙에 있는 iOS+ 아이콘을 클릭하여 설정 워크플로를 시작 3. iOS 번들 ID 필드에 앱의 번들 ID를 입력 - XCode 프로젝트에서 이 번들 ID를 확인 ( General(일반) 탭 -> Bundle Identifier(번들 식별자) 값이 iOS 번..
썸네일 Flutter Log 제가 사용하고 있는 Log 라이브러리 추천해드립니다. 사실 가장 많이 사용되고 있는 것 같아 보이기도 합니다. ^^ 깔끔하고 보기 좋아서 시작부터 설치하고 사용하세요~ 사용법도 간단합니다. logger.v("Verbose log"); logger.d("Debug log"); logger.i("Info log"); logger.w("Warning log"); logger.e("Error log"); logger.wtf("What a terrible failure log"); 로그 튜닝도 가능하고, 로그별로 색상도 다르고... 아주 좋습니다. var logger = Logger( printer: PrettyPrinter( methodCount: 2, // number of method calls to be ..
썸네일 Flutter Bottom NavigationBar 앱 개발하면서 가장 많이 쓰는 Navigation Bar 입니다. Android, iOS와 비교하면 굉장히 쉽게 구현할 수 있습니다. Scaffold 내에 bottomNavigationBar : BottomNavigationBar() 를 하고 BottomNavigationBarItem을 넣어주면 끝!! import 'package:flutter/material.dart'; void main() => runApp(const MyApp()); class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); static const String _title = 'Flutter Code Sample'; @override Widget ..
썸네일 Grid Multi Selection ( 그리드 뷰 다수 선택 ) 그리드 뷰에서 2개 이상의 선택을 하고 싶을 때가 있습니다. 갤러리 앱을 실행하면 할 수 있는 다수 선택과 드래그 시 손을 놓기 전까지 모두 선택되는... 그런 작업을 도와주는 라이브러리를 소개 합니다. https://github.com/hcbpassos/drag_select_grid_view?ref=morioh.com&utm_source=morioh.com GitHub - hcbpassos/drag_select_grid_view: A grid that supports both dragging and tapping to select its items. A grid that supports both dragging and tapping to select its items. - GitHub - hcbpass..