Flutter
-
[Flutter] Could not build module 'WebKit' 해결방법Flutter 2023. 9. 30. 03:09
나처럼 InAppWebView를 사용하는 사람들을 위해 적어본다! 이전 게시글을 따라서 문제들을 해결하고 나서도, 위와 같은 문제가 생긴다면 아래 명령어를 Podfile에 추가해주면 된다! post_integrate do |installer| compiler_flags_key = 'COMPILER_FLAGS' project_path = 'Pods/Pods.xcodeproj' project = Xcodeproj::Project.open(project_path) project.targets.each do |target| target.build_phases.each do |build_phase| if build_phase.is_a?(Xcodeproj::Project::Object::PBXSourcesBuild..
-
[Flutter] DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead 해결방법 (Xcode 15 Firebase SDK 적용)Flutter 2023. 9. 30. 03:06
오류 고치느라 stackoverflow에 글까지 써봤다,,, https://stackoverflow.com/questions/77196765/how-do-i-use-firebase-sdk-in-xcode15 Issues while building iOS project with flutter After upgrading Xcode 15 beta 5, cannot build project. Error being displayed Firebase 1 issue DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead stackoverflow.com 근데 알고보니 solution이 이미 있어서 중복처리 당..
-
[FLUTTER] 상태 관리 패키지 (Provider) 사용법 정리Flutter 2023. 4. 9. 18:57
1. 전역적으로 사용되는 데이터를 담당할 서비스로 만들고, 해당 데이터에 대한 CRUD를 모두 해당 서비스에서 구현한다. ChangeNotifier를 상속받아야 notifyListeners(); 를 호출하여 데이터를 사용하는 화면을 갱신할 수 있다. class BucketService extends ChangeNotifier { void deleteBucket(int index) { bucketList.removeAt(index); notifyListeners(); // Consumer의 builder 함수를 호출하여 화면 갱신 } } 2. Provider 패키지를 이용하여 최상단 위젯 서비스를 등록을 해준다. [위젯트리 꼭대기에 있는 Provider로 등록한 클래스에 접근 방법] 1. Consumer ..
-
[FLUTTER] 상태 관리 패키지 (Provider) 적용하기Flutter 2023. 4. 9. 18:46
[버킷 리스트 조회 (Read) 기능] : BucketService에 있는 bucketList 값을 가져와서 HomePage에 보여줘야 하는데, Consumer 위젯을 이용하면 위젯트리 꼭대기에 등록된 BucketService에 접근할 수 있다. Consumer( // 찾고자하는 클래스의 이름을 적어주면 됨 (BucketService) builder: (context, bucketService, child) { // 받을 변수의 이름 (마음대로 바꿔도 상관없음) : bucketService return 위젯; } ) Consumer : 위젯트리 상단에서 찾아올 클래스 이름을 사이에 적는다. builder: (context, bucketService, child) { return 위젯; } : 화면에 보여..
-
[FLUTTER] 상태 관리 패키지 (Provider) 준비하기Flutter 2023. 4. 7. 01:28
상태관리의 필요성 https://github.com/Eunice991217/Flutter-ToyProject/tree/main/bucket_list GitHub - Eunice991217/Flutter-ToyProject: Flutter Project Practice Flutter Project Practice. Contribute to Eunice991217/Flutter-ToyProject development by creating an account on GitHub. github.com 버킷 리스트 프로젝트는 페이지 수가 적고 Bucket에 대한 모든 CRUD(Create / Read / Update / Delete)가 HomePage 내에서 끝난다. 이렇게 작은 프로젝트에서는 StatefulWi..
-
[FLUTTER] 리펙토리(Refactory)Flutter 2023. 4. 7. 00:51
동작의 변경 없이 코드를 정리하는 과정 Dialog를 띄우는 로직()이 너무 길어서 보기 힘드므로, 해당 로직을 별도의 함수로 분리 시켜보는 작업 HomePage 일부 showDialog showDialog( context: context, builder: (context) { // 경고창 생성 return AlertDialog( title: Text("정말로 삭제하시겠습니까?"), actions: [ // 취소 버튼 TextButton( onPressed: () { Navigator.pop(context); }, child: Text("취소"), ), // 확인 버튼 TextButton( onPressed: () { setState(() { // index에 해당하는 항목 삭제 bucketList.re..
-
[FLUTTER] 비동기처리 (async와 await) -화면 간 데이터 전달Flutter 2023. 4. 7. 00:12
[CreatePage에서 반환한 값을 HomePage에 있는 bucketList에 추가] HomaPage에 추가 onPressed: () async { // + 버튼 클릭시 버킷 생성 페이지로 이동 String? job = await Navigator.push( context, MaterialPageRoute(builder: (_) => CreatePage()), ); print(job); }, async와 await란? await은 Navigator.push()로 화면을 띄운 뒤, 해당 화면이 종료될 때까지 71번째 라인에서 기다리도록 만들어주는 코드다. 이후 화면이 종료되면 job이라는 변수에 반환 된 파라미터를 할당하고 다음 75번째 라인이 진행됩니다. await을 사용하려면 해당 함수에 async..
-
[FLUTTER] shared_preferences 패키지 사용해보기 (앱 자체 데이터 저장소)Flutter 2023. 4. 6. 18:37
Flutter에서는 앱 자체 데이터베이스를 사용할 수 있다. 그러나 Flutter에서는 iOS와 Android에서 사용하는 기본 데이터베이스가 다르다. 나는 iOS만 사용해봤는데, iOS에서 사용하는 기본 데이터베이스는 CoreData이고, Android에서 사용하는 기본 데이터베이스는 SQLite라고한다. Flutter에서는 이러한 기본 데이터베이스를 직접 사용할 수 있지만, 이를 위해서는 각 플랫폼에서 지원하는 네이티브 코드를 작성해야 야하는 불편함이 존재한다. 또한, shared_preferences 패키지를 통해 앱 자체 데이터베이스를 대체할 수 있는 영구적인 데이터 저장소를 제공하지만, 이는 일종의 key-value 저장소로, 복잡한 데이터 모델링을 지원하지 않는다고 한다. (ㅠㅠ따라서 사용 시..