본문 바로가기

분류 전체보기

(658)
[Flutter] Design Pattern - MVC, MVVM 이번에는 MVC 와 MVVM 에 대해서 알아보겠습니다. 기본 개념을 아신다는 전제하에 MVC -> MVVM 으로 변경하는 장점을 중심으로 알아보겠습니다. 개발환경 : 윈도우11, 안드로이드 스튜디오, flutter 3.0.1 화면은 아래와 같습니다. +버튼은 숫자를 증가시키고, -버튼은 숫자를 감소 시킨다. 패턴을 적용하지않는 일반적인 코드 - flutter 에서 신규 프로젝트 샘플과 유사한 구조, 변수/함수/View 모두 하나의 파일에서 구현하여 간단한 화면 같은 경우, 쉽게 이해할 수 있으나 화면 및 데이터가 복잡해 경우 적합하지 않다. import 'package:flutter/material.dart'; class NoPatternView extends StatefulWidget { const N..
[Flutter] Quiz - level3(Getx login) 이번에는 코딩셰프 도장깨기 레벨2 입니다. 개발환경 : 윈도우11, 안드로이드 스튜디오, flutter 3.0.1 소스코드 위치 - Release 02_done · mike-bskim/dojang_level3 · GitHub Release 02_done · mike-bskim/dojang_level3 github.com 미션은 아래와 같습니다. 1. lgoin 기능 구현 2. 웰컴 페이지 이동시 인디케이터 추가 3. 사용자 이메일 주소를 윌컴 페이지에서 보이게 추가 4. 보너스 문제, sign up 할때 사용자 이름도 입력받고 그걸 Storage 에 user 컬렉션 아래에 추가할것. 화면은 아래와 같습니다. main.dart import 'package:firebase_core/firebase_core...
[Flutter] Clone - 당근마켓18(Phone Auth) 이번에는 전화인증에 대해서 구현해보겠습니다. 개발환경 : 윈도우11, 안드로이드 스튜디오, flutter 3.0.1 화면 구성 및 흐름은 아래와 같습니다. 전화 인증을 사용하기 위해서는 Firebase 사이트에서 몇가지 설정을 해야 한다. 전화 인증 선택 테스트용 전화번호를 2개 정보 추가한다 추가된 테스트용 전화번호 및 인증 코드 전화 인증이 완료되면 상태는 Enabled 입니다. 추가된 패키지는 firebase_auth: ^3.6.0 android/app/build.gradle - dependencies 추가 // Declare the dependency for the Firebase Authentication library // When using the BoM, you don't specify v..
[Flutter] Clone - 당근마켓17(firebase 환경설정 테스트) 이번 시간에는 firebase 환경 설정에 대한 테스트를 진행하겠습니다. 추가된 패키지는 아래와 같습니다. firebase_core: ^1.20.0 main.dart import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:firebase_core/firebase_core.dart'; import 'src/apple_app.dart'; import 'src/screens/splash/splash_screen.dart'; import 'src/utils/logger.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); a..
[Flutter] Clone - 당근마켓16(Firebase 환경설정) 이번 시간에는 firebase 환경 설정에 대해서 알아보겠습니다. flutter CLI 방식이 아닌 android 방식으로 진행했습니다. 1. 시작하기 - 회원가입은 미리하시기 바랍니다. 2. 원하는 이름을 입력하세요. 저는 3.0 버전이라서 3 를 붙였습니다. 설정할 필요없이 계속 진행. Default 로 프로젝트 생성 기존 안드로이드 설정 방식으로 진행하였습니다. 여기에 입력할 2개의 값은 아래의 절차 대로 진행하면 된다. 패키지 이름은 여기에서 확인 가능 SHA-1 키 값은 https://developers.google.com/android/guides/client-auth 사이트의 초반부 참고 ~\android>keytool -list -v -alias androiddebugkey -keystor..
[Flutter] Clone - 당근마켓15(HomeScreen, ItemsPage) 이번시간에는 로그인 이후 보여지는 HomeScreen, ItemsPage 화면을 구현해보겠습니다. 개발환경 : 윈도우11, 안드로이드 스튜디오, flutter 3.0.1 화면 구성은 아래와 같습니다. ./src/screens/home/home_screen.dart import 'package:apple_market3/src/states/user_state.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'items_page.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({Key? key}) : super(key: ..
[Flutter] Clone - 당근마켓14(pageController with provider) 이번시간에는 PageController 를 Provider 로 구현해보겠습니다. 지난번에 인자로 전달하는 방식으로 했던 부분을 Provider 로 변경하는 것입니다. 개발환경 : 윈도우11, 안드로이드 스튜디오, flutter 3.0.1 수정할 파일 리스트는 아래와 같습니다. main.dart - 아래 옵션을 추가해야 한다 void main() { // start_screen 에서 provider 를 사용하는데, 값을 변경하는게 아니고 사용만 // 컨트롤러 자체만 사용 하는 경우는 아래 처럼 확실하게 컴파일러에게 알려줘야 한다 Provider.debugCheckInvalidValueType = null; runApp(const MyApp()); } ./src/screens/start_screen.dart..
[Flutter] Clone - 당근마켓13(Shared reference) 이번시간에는 간단한 데이터들을 디바이스에 저장했다가 로딩하는 방법에 대해서 알아하겠습니다. 개발환경 : 윈도우11, 안드로이드 스튜디오, flutter 3.0.1 추가된 패키지는 아래와 같습니다. shared_preferences: ^2.0.15 ./src/screens/start/address_page.dart - 공유 정보 저장 // 함수 추가 _saveAddressOnSharedPreference(String address, num lat, num lon) async { SharedPreferences prefs = await SharedPreferences.getInstance(); debugPrint('save Address: $address.'); await prefs.setString(SHA..