본문 바로가기

Flutter56

[Flutter] 플러터 - Riverpod 상태관리 응용, convex_bottom_bar BottomNavigationBar 및 바텀네비 뱃지 구현하기 (2) 해당 주제의 포스팅은 3편으로 이루어져있습니다. 현재 포스팅은 2편입니다.필요한 파일은 총 3 + N(바텀 네비 수)개입니다1. page_index_provider.dart2. s_main.dart3. w_convex_bottom.dart + N개 : 저는 5개의 화면을 준비했습니다.FirstScreen, SecondScreen, ThirdScreen, FourthScreen, FifthScreen 1편 바로가기https://hooninha.tistory.com/98  [Flutter] 플러터 - Riverpod 상태관리 응용, convex_bottom_bar 바텀네비게이션 및 바텀네비 뱃지 구현하기해당 주제의 포스팅은 3편으로 이루어져있습니다. 현재 포스팅은 1편입니다. 필요한 파일은 총 3 + N(바.. 2024. 3. 5.
[Flutter] 플러터 - Riverpod 상태관리 응용, convex_bottom_bar BottomNavigationBar 및 바텀네비 뱃지 구현하기 (1) 해당 주제의 포스팅은 3편으로 이루어져있습니다. 현재 포스팅은 1편입니다.필요한 파일은 총 3 + N(바텀 네비 수)개입니다1. page_index_provider.dart2. s_main.dart3. w_convex_bottom.dart + N개 : 저는 5개의 화면을 준비했습니다.FirstScreen, SecondScreen, ThirdScreen, FourthScreen, FifthScreen1. Riverpod 상태관리를 위해 상단에 ProviderScope를 달아주고 시작합시다. 2. page_index_provider.dart파일에 pageIndexProvider 선언해주기-> pageIndexProvider는 바텀네비게이션에 사용될 인덱스를 관리합니다.import 'package:flutte.. 2024. 3. 5.
[Flutter] 플러터 - Cupertino 적용해보기 CupertinoNavigationBar 위젯은 머터리얼의 AppBar 위젯이다.leading, middle, trailing 프로퍼티는 각각 왼쪽, 가운데, 오른쪽 영역을 나타내면 middle 프로퍼티에는 주로 제목을 표시한다.이하 CupertinoAlertDialog, CupertinoSwitch 등이 있고 디자인면에서 머터리얼과 많이 다르다. 아래는 아주 기본적인 코드들이다.import 'package:flutter/cupertino.dart';void main(){ runApp(const MyApp());}class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext cont.. 2024. 3. 3.
[Flutter] 플러터 - Drawer keyboard 키보드 올라옴 문제 Keyboard comes up when you open drawer Drawer을 열 때 키보드가 올라오며 겹치는 경우가 있었다. 포커스 문제이니 드라워를 관리하는 화면에서 보통 onTap을 걸어서 포커스를 해제할텐데 그걸로는 부족하다. 아래 코드처럼 해주자."Keyboard comes up when you open drawer" 복붙을 위해 onTap 코드 첨부 onTap: () { final FocusScopeNode currentscope = FocusScope.of(context); if (!currentscope.hasPrimaryFocus && currentscope.hasFocus) { FocusManager.instance.primaryFocus?.unfocus(); } }, 2024. 2. 17.
[Xcode] invalid reuse after initialization failure 잘 돌아가던 프로젝트에서 갑자기 "invalid reuse after initialization failure" 라고 뜨면서 빌드 실패가 뜬다.. 이유조차 알려주지 않으니 알수가 없다... 왜!! 삽질하다가 아래 단축키로 해결하였다.Command + Shift + K Product -> Clean Build Folder 단축키이다.찾아보니 이 기능을 사용하면 다음과 같은 일들이 발생한다1. 빌드 폴더의 내용 삭제, 이전에 생성된 빌드의 결과물들을 제거2. 임시 파일들이 삭제, 프로젝트를 빌드하면서 생성된 임시 파일들이 제거3. Xcode가 프로젝트를 정확하게 빌드하기 위해 필요한 정보들을 갱신하기 위해 캐시와 레지스트리 정보가 업데이트위의 기능으로 프로젝트의 빌드 환경이 초기 상태로 돌아가게 되서 초기화.. 2024. 2. 17.
[Flutter] 플러터 - WidgetsFlutterBinding.ensureInitialized() WidgetsFlutterBinding.ensureInitialized()  사용시기 Flutter 앱을 개발할 때 비동기 작업을 수행하고 그 결과를 기반으로 앱을 초기화해야 할 때 사용1. 비동기 데이터 로딩 후 앱 초기화 : SharedPreferences나 Firebase와 같은 외부 소스에서 데이터를 비동기적으로 로드해야 할 때,2. 플랫폼 채널과 통신: 네이티브 코드와 플러터 간 통신을 위해 플랫폼 채널을 설정해야 할 때,(ex.  네이티브 코드에서 특정 기능을 호출하거나, 플러터 코드에서 네이티브 측으로 데이터를 전달)위 2가지 경우 ensureInitialized()를 호출하여 초기화를 보장하고, 데이터 로딩이 완료된 후에 runApp() 메소드 실행하게 제어해줌!-> main에서 async.. 2024. 2. 16.