목록개발/flutter (131)
파파비의 블로그
위 코드처럼, _subminAuthForm을 레퍼런스로 AuthForm이라는 위젯에 보낸다고해보자. 우리는 그럼 늘상 AuthForm 안쪽에서는 final Fuction 메소드이름; 뭐이런식으로 해놨겠지만 실제로는 더 clear하게 선언해줄 수 있다. Fuction의 return타입이 무엇인지, 어떤 인수를 받는지 설정해둘 수 있다. 요로코롬 말이다.
1. Form > 다중 텍스트 inputfield 한번에 컨트롤이 가능하다. - child에 column 등을 통해 여러개의 TextFormField를 넣을 수 있다. 2. TextFormField에는 vaildator, onSave 등의 callback이 있다. 3. Form에는 key라는 속성이 있고, 우리는 GlobalKey 위젯을 만들어서 key에 할당한다. 4. 그리고 그 key 레퍼런스를 통해 .save(), .validate 등을 실행한다. 이런식으로 버튼을 눌렀을 때, key에서 모든 textformfield의 validator를 실행하고, 통과하면 모든 textformfield의 onSave 콜백을 실행시키게 한다. FocusScope.of(context).unfocus(); 는 눌린 위..
Firestore에 데이터는 어떻게 넣을까? 이 역시 매우 쉽다. 이렇게 설정했다. 참고로 async/await은 안해도 된다. 왜냐면 return 값으로 뭘 하는게 아니기 때문이다. 그다음 우리는 path를 설정하고 .add를 활용한다. add에는 Map(string, object)을 써서 document를 만들면된다. 참고로 document이름은 자동으로 랜덤하게 형성된다. 이름을 따로 설정하는 방법이 아마 있을 것 같기도한데, 잘은 아직 모르겠다. 이전 글을 보면 저 코드부분은 이미 스트림이 형성되어있는 곳이기 때문에, 만약 FAB가 눌리면 자동으로 스크림이 작동되어서 앱에도 그대로 반영된다. 어떻게 보면 약간 provider가 cloud에 존재하는 느낌이다. 추가적으로 firestore에 데이터가..
실제로 snapshot().listen 까지는 잘 안간다. 그 경우에 따라 다시 위젯을 빌드를 하는 경우가 매우 많은데, 그 경우에 사용하는 위젯이 있다. 바로 StreamBuilder다 Builder들을 하도 많이 만나다 보니 이름만 들어도 뭔지 알 것 같지 않나? FutuerBuilder, StreamBuilder 등등... Stream에의해 새로 build 해야할일이 생기면 알아서 listen해서 효율적으로 re build해주는 위젯이다! StreamBuilder 빌더에게 필요한 필수 파라미터 2개는 무엇일까? 당연히 스트림과 빌더 아니겠는가? 한번 자세히 코드로 살펴보자 바디 부분을 보면 StreamBuilder 임을 알 수 있다. 저기에 우리가 Stream에 의해 받는 data를 입력해주면 된다..
참고 - 규칙관련; https://firebase.google.com/docs/firestore/security/get-started#%EB%AA%A8%EB%91%90-%ED%97%88%EC%9A%A9 Cloud Firestore 보안 규칙 시작하기 | Firebase Cloud Firestore 보안 규칙을 사용하면 인프라를 관리하거나 서버 측 인증 및 승인 코드를 작성할 필요 없이 사용자를 위한 앱 개발에만 집중할 수 있습니다. 보안 규칙은 간단하지만 표현력 있는 형 firebase.google.com 파이어스토어는 컬렉션이라는 개념이 있고 document(문서)라는 개념이 있다. 컬렉션은 폴더의 개념이고, document는 하나의 data의 개념인데 특이한 점은 document안에 필드와 함께 또다..
(1)파이어베이스 서비스 콘솔에 앱 등록하기 1. 파이어베이스 프로젝트에 들어가서 앱추가를 누른다. 우측에 보일 것이다. 누르는 것에 성공하면 이렇게 ios/안드로이드/웹/유니티 를 고를 수 있는데, 우리는 안드로이드면 안드, ios면 ios 이렇게 고르면 된다. 이번 설명은 안드로이드로 진행할 것이다. 2. 안드로이드 패키지 이름 입력 참고로 , 는 선택사항이므로 굳이 안해도 된다. 유니티에서는 cmd이용해서 지문 등록하고 찾고 해서 SHA-1까지 등록해야 했는데 플러터는 그런 것이 필요없어서 매우 쉽고 간단하다. 저기 패키지 이름은 ? 버튼을 눌러보면 어디있는지 알 수 있다. gradle 파일은 앱수준과 프로젝트 수준으로 두개가 있다. 안드로이드에 app 폴더 안에 있는 gradle 파일이 앱 수준이..
1. http 패키지가 추가적으로 필요하다. 2. https://developers.google.com/maps/documentation/geocoding/start?hl=ko#reverse Get Started | Geocoding API | Google Developers Geocoding converts addresses into geographic coordinates to be placed on a map. Reverse Geocoding finds an address based on geographic coordinates or place IDs. developers.google.com 여기는 google api 문서관련인데 여기서 geocoding api를 활용할 것이다. geocoding ..
1) 패키지 다운 https://pub.dev/packages/google_maps_flutter#-readme-tab- google_maps_flutter | Flutter Package A Flutter plugin for integrating Google Maps in iOS and Android applications. pub.dev 2) 설정 - Readme를 읽어보면 나온다. 3) 필요할 때, GoogleMap() 위젯 소환 - GoogleMap의 사이즈는 부모위젯의 사이즈에 맞춰서 자동으로 결정된다. - 따라서 만약 풀 사이즈로 하고 싶으면 새로 scaffold를 만들거나 하면 된다. 나는 일단 MapScreen을 만들어서 버튼을 누르면 화면을 튀어나오게 하고, pop할 때, 선택된 위치 d..