๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Flutter

(9)
[ Flutter / macOS ] Flutter macOS ์„ค์น˜ ๋ฐ ์…‹ํŒ…ํ•˜๊ธฐ. ์œˆ๋„์šฐ๋‚˜ ๋ฆฌ๋ˆ…์Šค, ํฌ๋กฌ ๋“ฑ์€ Flutter ๊ณต์‹ ํŽ˜์ด์ง€์˜ Install์—์„œ ์ฐพ์•„์„œ ์ฐธ๊ณ ํ•˜๋ฉด ๋œ๋‹ค! https://docs.flutter.dev/get-started/install 1. macOS intel ํ”„๋กœ์„ธ์„œ zip ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ. ๋‚˜๋Š” ๋งฅ์œ ์ €๋ผ์„œ Flutter ๊ณต์‹ ํŽ˜์ด์ง€์˜ macOS install์„ ์ฐธ๊ณ ํ–ˆ๋‹ค~! macOS install ์ฐธ๊ณ  ** ํ˜„์žฌ ์„ค์น˜ํ•˜๋ ค๋Š” macOS ์—์„œ ์ธํ…” ํ”„๋กœ์„ธ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€, Apple Silicon ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ํ•ด๋‹น๋˜๋Š” ํ”„๋กœ์„ธ์„œ์˜ zip ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›๋Š”๋‹ค. Apple Silicon์ด ํƒ‘์žฌ๋œ Mac ์ปดํ“จํ„ฐ ํ™•์ธ 2. ๋‹ค์šด๋ฐ›์€ zip ํŒŒ์ผ์„ ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์••์ถ• ํ•ด์ œ. cd ~/development unzip ~/Downloads/flutter_mac..
[ Flutter ] Image_Picker ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋ฐ ์„œ๋ฒ„์— ์—…๋กœ๋“œ ํ•˜๊ธฐ. flutter์—์„œ image_picker ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž. ๐Ÿ‘‰ image_picker ํ”Œ๋Ÿฌ๊ทธ์ธ ํŽ˜์ด์ง€ image_picker | Flutter Package Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera. pub.dev image_picker ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ 0.8.1์ด์ƒ์˜ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด iOS 9.0์ด์ƒ, Android 4.3 ์ด์ƒํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋น„์Šค์—์„œ ์ง€์›ํ•˜๋Š” iOS, Android ๋ฒ„์ „์„ ํ™•์ธ ํ›„ image_picker ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋ฒ„์ „์„ ๋งž์ถฐ์ฃผ๋ฉด ๋œ๋‹ค. * ๋‚˜๋Š” image_picker 0.8.4+11..
[Flutter/Firebase] Firebase auth / account-exists-with-different-credential Flutter ์•ฑ์—์„œ Firebase์˜ Athenticatoin ์„ ํ†ตํ•ด ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ( Google / Apple / Twitter ) ๊ทธ๋Ÿฐ๋ฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. [VERBOSE-2:ui_dart_state.cc(199)] Unhandled Exception: [firebase_auth/account-exists-with-different-credential] An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address. ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ์ƒํ™ฉ์€ 1. Apple๋กœ ๋กœ๊ทธ์ธ 2. ๋กœ๊ทธ์•„์›ƒ..
[ Flutter / State ] Flutter์˜ ์ƒํƒœ๊ด€๋ฆฌ ํ›‘์–ด๋ณด๊ธฐ. * Flutter ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์˜ State management ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด์„ & ์ •๋ฆฌ ํ•œ ๊ธ€. Flutter UI์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ๋‹ค๋ฅธ UI ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ นํ˜• ๋ฐฉ์‹๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์„ ์–ธํ˜• UI๋ผ๋Š” ์ ์ด๋‹ค. ๋ช…๋ นํ˜• ๋ฐฉ์‹์˜ UI ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ UI๊ฐœ์ฒด๋ฅผ ์ผ์ผ์ด ๊ตฌ์„ฑํ•˜๊ณ , ๋‚˜์ค‘์— UI๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๋ฉ”์„œ๋“œ์™€ setter๋“ค์„ ์ด์šฉํ•˜์—ฌ ๋ณ€๊ฒฝํ•˜๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ์ต์ˆ™ํ•œ ๋ฐฉ์‹์ด๋‹ค. ์ด์™€ ๋ฐ˜๋Œ€๋กœ Flutter๋Š” ํ˜„์žฌ์˜ UI ์ƒํƒœ๋งŒ ๋ฌ˜์‚ฌํ•˜๊ณ , ๋ณ€ํ™”๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์— ๋งก๊ธฐ๋„๋ก ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ Flutter์—์„œ UI๋ฅผ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃจ๋Š”์ง€์— ๋Œ€ํ•ด ์‚ฌ๊ณ  ์ „ํ™˜์ด ํ•„์š”ํ•˜๋‹ค. Flutter์˜ ์ƒํƒœ ์†Œ๊ฐœ. - ์ˆ˜๋ช…์ด ์งง์€ ์ƒํƒœ ( Ephemeral State ) - ์•ฑ ์ƒํƒœ ( App State ) 1. ์ˆ˜๋ช…์ด ์งง์€ ์ƒํƒœ ( Ephemeral..
[ Firebase / Flutter ] Error: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null) ์˜ค๋ฅ˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•! ๋‚˜์˜ ์•„์ด๋งฅ์œผ๋กœ flutter App์˜ Android ๋””๋ฒ„๊น…์„ ์œ„ํ•œ ์„ธํŒ…์„ ํ•˜๋˜ ์ค‘ ๋งŒ๋‚œ ์˜ค๋ฅ˜. ๋‚˜์˜ ๊ฒฝ์šฐ๋Š”, // Mac OS ๊ธฐ์ค€!! 1) ์•ˆ๋“œ๋กœ์ด๋“œ ํฐ์œผ๋กœ flutter run - Android phone ์„ ์„ ํƒํ•˜์—ฌ ๋นŒ๋“œ๊ฐ€ ์™„๋ฃŒ๋๊ณ , 2) ํ”Œ๋Ÿฌํ„ฐ ์•ฑ์˜ ๋ฃจํŠธ ํŽ˜์ด์ง€์—์„œ Google ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ํ–ˆ๋Š”๋ฐ ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. PlatformException( sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null) !!!!!!! ๋‹นํ™ฉํ•˜์—ฌ ์ผ๋‹จ ์ข…๋ฃŒ ํ›„ IOS๋กœ ์•ฑ์„ ๋นŒ๋“œํ•˜์—ฌ ๋กœ๊ทธ์ธ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๋‹ˆ ๋„ˆ๋ฌด ์ž˜๋œ๋‹ค...ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ์–ด.. ๋ญ์ง€?๐Ÿค” ์•ˆ๋“œ๋กœ์ด๋“œ firebase์ชฝ ์„ธํŒ…์ด ๋ญ”๊ฐ€ ์•ˆ๋๊ตฌ๋‚˜...!! ๋ฅผ ๋Š๋ผ๊ณ  ๊ตฌ..
[ Flutter ] ๊ธธ์ด์— ๋”ฐ๋ผ Text ์ž๋™ ์ค„๋ฐ”๊ฟˆ / Flexible Text Flutter์—์„œ ์ž‘์—…์ค‘ Text๋ฅผ ๋‚ด๊ฐ€ ์ •ํ•œ Width ๊ธธ์ด ๋ฐ ์ค„์„ ์„ค์ •ํ•˜์—ฌ ๊ทธ ์ดํ›„์˜ ํ…์ŠคํŠธ๋“ค์€ ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•.๐Ÿฅณ ๋‚˜๋Š” ์ƒ์„ธ ํŽ˜์ด์ง€ ์ด์ „์— ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํŽ˜์ด์ง€์—์„œ ํ…์ŠคํŠธ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์งˆ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ๋‹ค๐Ÿ˜„ !! ์œ„์™€๊ฐ™์ด Container์— width๋ฅผ ์ •ํ•ด์ฃผ๊ณ , maxLines๋ฅผ ์ •ํ•˜๋ฉด, ๋‚ด๊ฐ€ ์ •ํ•ด๋†“์€ ๊ฐ’์„ ๋„˜๊ธฐ์ง€ ์•Š๋Š”๋‹ค. ์•„์ฃผ ๊ต‰์žฅํžˆ ์œ ์šฉ์“ฐ ํ•˜๋‹ค.๐Ÿ‘ * 10000 Container( width: 150, child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ Flexible( child: RichText( overflow: TextOverflow.ellipsis, maxLines: 5, strutStyle: StrutSt..
[ Flutter / ํŠธ์œ„ํ„ฐ ๋กœ๊ทธ์ธ ] Firebase๋ฅผ ์ด์šฉํ•œ Twitter ๋กœ๊ทธ์ธ ๊ตฌํ˜„ ํšŒ์‚ฌ์—์„œ ํ”Œ๋Ÿฌํ„ฐ ์•ฑ์„ ๋งŒ๋“ค๋ฉด์„œ ์ง€๊ธˆ์€ ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋Š” ์ค‘ ๐Ÿ”ฅ ๊ตฌ๊ธ€, ์นด์นด์˜คํ†ก, ์• ํ”Œ๊นŒ์ง€ ๊ตฌํ˜„ํ•ด๋†จ๊ณ  ๋งˆ์ง€๋ง‰ ๋‚จ์€ ํŠธ์œ„ํ„ฐ! (์šฐ๋ฆฌ ์•ฑ์˜ ํŠน์„ฑ์ƒ ํŠธ์œ„ํ„ฐ ์‚ฌ์šฉ์ž๋“ค์ด ์ฃผ ํƒ€๊ฒŸ์ธต์ด๋ผ๊ณ  ์˜ˆ์ƒ์ค‘) ํŠธ์œ„ํ„ฐ๋Š” ๋‹คํ–‰ํžˆ๋„ firebase ์—์„œ ๋กœ๊ทธ์ธ์„ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ต‰์žฅํžˆ ์‰ฝ๊ฒŒ ๋กœ๊ทธ์ธ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์˜ˆ์ƒํ–ˆ์ง€๋งŒ( ์‘~์•„๋‹ˆ์•ผ๐Ÿ˜Š), ์–ด์ œ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ ํŠธ์œ„ํ„ฐ ๋กœ๊ทธ์ธ ๊ตฌํ˜„์— ์‹คํŒจํ–ˆ๋‹ค.ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ์ด์œ ๊ฐ€ ๋ญ˜๊นŒ.. ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ด๋„ ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒช๋Š” ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์˜ ์งˆ๋ฌธ๋“ค ๋ฟ.. ์ด ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ์ฑ…์„ ์ œ์‹œํ•ด์ฃผ๋Š” ๊ธ€์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ๋‹ค ....!!! ๐Ÿฅณํ•˜์ง€๋งŒ ์ง€๊ธˆ์€ ๋ฌธ์ œ ํ•ด๊ฒฐ.๐Ÿ˜™ FlutterFire์˜ Authentication - Twitter ์˜ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ผ ์ฐจ๊ทผ ์ฐจ๊ทผ ๊ตฌ..
[ Flutter / ์• ํ”Œ ๋กœ๊ทธ์ธ ] Firebase๋ฅผ ์ด์šฉํ•œ SignIn With Apple ๊ตฌํ˜„ Flutter ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ๊ฐœ๋ฐœ์ค‘์ธ๋ฐ, ๋“ฃ๊ธฐ๋ก  ( WEB / Android / ios 13๋ฒ„์ „ ์ดํ•˜ ์ง€์›์˜ ๊ฒฝ์šฐ )Apple ๋กœ๊ทธ์ธ์ด ๋‚œ์ด๋„ ํ—ฌ์ด๋ผ๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์—ˆ๋‹ค..๐Ÿ˜ฑ ํ•˜์ง€๋งŒ ๋‚˜๋Š” ios 13 ์ด์ƒ ์ง€์›์— ios Apple ๋กœ๊ทธ์ธ๋งŒ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค!๐Ÿ˜ ์ด์ œ ์ฐจ๊ทผ ์ฐจ๊ทผ ์• ํ”Œ ๋กœ๊ทธ์ธ์— ๋Œ€ํ•ด ๋ฟŒ์…”๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค..! ๐Ÿ”ฅ ์ค€๋น„ํ•˜๊ธฐ ๐Ÿ˜™ ios 13.0 ์ด์ƒ์˜ ์• ํ”Œ ๋กœ๊ทธ์ธ๋งŒ ์ง€์›ํ•  ๊ฒฝ์šฐ - Firebase์— ios ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋ผ ์žˆ์–ด์•ผ ํ•œ๋‹ค. - ์• ํ”Œ ๊ฐœ๋ฐœ์ž ํ”„๋กœ๊ทธ๋žจ์— ์œ ๋ฃŒ ํšŒ์›์œผ๋กœ ๊ฐ€์ž…๋ผ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๐Ÿ˜จ ios 13.0 ์ดํ•˜ ๋ฒ„์ „ ๋ฐ web, Android ์• ํ”Œ ๋กœ๊ทธ์ธ์„ ์ง€์› ํ•  ๊ฒฝ์šฐ - Firebase์— ios ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋ผ ์žˆ์–ด์•ผ ํ•œ๋‹ค. - ์• ํ”Œ ๊ฐœ๋ฐœ์ž ํ”„๋กœ๊ทธ๋žจ์—..