Flutter: ์ธ๋ผ์ธ Google ์ง€๋„ ์ง€์›

์— ๋งŒ๋“  2015๋…„ 11์›” 09์ผ  ยท  170์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: flutter/flutter

Hixie์˜ ๋ฌธ์ œ
_2015๋…„ 7์›” 16์ผ ๋ชฉ์š”์ผ 22:26 GMT_
_์›๋ž˜ https://github.com/flutter/engine/issues/30 ์œผ๋กœ ์—ด๋ฆผ_


_ @collinjackson ์—์„œ 2015๋…„ 7์›” 8์ผ 20์‹œ 23๋ถ„_

Sky์˜ ์ง€๋„์— ๋Œ€ํ•œ ์ง€์›์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๊ฐ ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€๋„ ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€๋„ ๋ Œ๋”๋ง
  2. ๊ฐ ํ”Œ๋žซํผ์˜ ๋งต ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…์Šค์ฒ˜๋กœ ๋ Œ๋”๋งํ•˜๊ณ  ์ง์ ‘ ๋งต ๊ทธ๋ฆฌ๊ธฐ
  3. Sky์šฉ ๋งž์ถคํ˜• ์ง€๋„ SDK ๊ฐœ๋ฐœ

๋‘ ๋ฒˆ์งธ ์˜ต์…˜์ด ์ด์ƒ์ ์ด์ง€๋งŒ ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ ‘๊ทผ ๋ฐฉ์‹์ด ๊ฐ€์žฅ ์ข‹์€์ง€ ์กฐ์‚ฌํ•˜๊ณ  ๋ฐ๋ชจ ์•ฑ์„ ๋นŒ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

_์›๋ณธ์—์„œ ๋ณต์‚ฌ: domokit/mojo#310_

mulligan (g3) engine framework first party maps plugin new feature

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‹น์‹ ์ด ๋งค๋‹ฌ๋ฆฌ์ง€ ์•Š๋„๋ก ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  170 ๋Œ“๊ธ€

๋Œ“๊ธ€
_2015๋…„ 8์›” 5์ผ ์ˆ˜์š”์ผ 19:35 GMT_


์ƒํ™ฉ์— ๋”ฐ๋ผ ํ”ผํŠธ๋‹ˆ์Šค ์•ฑ์— ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์•„๋งˆ๋„ "ํƒ€์‚ฌ" ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งž์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๋Š” ์ง€๋„ ์ง€์›์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ ๋น„ Dart SDK๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ์›ํ•  ๊ฒƒ์ด ๊ฑฐ์˜ ํ™•์‹คํ•˜๋ฏ€๋กœ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด "๊ธฐ๋ณธ" iOS ๋˜๋Š” Android ์ง€๋„ ๋ณด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง€๋„๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.
https://docs.google.com/document/d/1DOfwpL6VojCAG_zjjcA_z5ekF7rTIohV8dWn2o7_IME/edit

์ด ๋ฌธ์„œ์—๋Š” ๊ธฐ๋ณธ ์œ„์ ฏ(์˜ˆ: ์ง€๋„)์„ Flutter ์•ฑ์— ํ†ตํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์„ค๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ๋†“์ณค๋‚˜์š”?

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค, ์ œ๊ฐ€ ๋งํฌ์— ์•ฝ๊ฐ„ ์—ด์„ฑ์ ์ด์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” Flutter๊ฐ€ Obj-C/Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ ์ผ๋ฐ˜ ๋ณด๊ธฐ๋กœ ์ฐธ์—ฌํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์ „ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ Obj-C/Java ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ๋กœ๋Š” ์•„์ง ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๋กœ์„œ ์ €๋Š” ๊ธฐ๋ณธ Google Maps ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Flutter ์•ฑ ๋‚ด๋ถ€์—์„œ ๋ Œ๋”๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ํ”Œ๋Ÿฌํ„ฐ ์•ฑ์„ ๋งŒ๋“ค์—ˆ๊ณ  ์ด๊ฒƒ์€ ์ผ์ข…์˜ ์ฐจ๋‹จ๊ธฐ์ž…๋‹ˆ๋‹ค. ์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์€ Java/Android๋กœ ๋นŒ๋“œํ•˜๊ณ  ํ”Œ๋Ÿฌํ„ฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•  ๋•Œ ์—ฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์ƒ์ ์œผ๋กœ๋Š” ํ”Œ๋Ÿฌํ„ฐ ๋‚ด๋ถ€์˜ ๊ธฐ๋ณธ ์œ„์ ฏ์„ ๋ Œ๋”๋งํ•˜๋Š” ํ”Œ๋Ÿฌํ„ฐ์˜ 'NativeView'๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ํ”Œ๋Ÿฌํ„ฐ ๋ Œ๋”๋ง ์—”์ง„์— ๋ Œ๋”๋ง/์ด๋ฒคํŠธ๋ฅผ ๋ณ‘ํ•ฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ๋„ ์ƒ๋‹นํžˆ ์–ด๋ ค์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ํ”Œ๋Ÿฌํ„ฐ '๋‘ ํ”Œ๋žซํผ์„ ์œ„ํ•œ ํ•˜๋‚˜์˜ ์œ„์ ฏ'์—๋„ ๋ฐ˜๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋•Œ๋•Œ๋กœ ๋ณต์žกํ•œ ์œ„์ ฏ(์˜ˆ: ์ง€๋„)์€ ์‹ค์ œ๋กœ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๋ณด์„ธ์š” ! ์ด ๊ธฐ๋Šฅ์˜ ๋กœ๋“œ๋งต์„ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ž‘์—… ์ค‘์ธ ๋‘ ๊ฐœ์˜ ๋ชจ๋ฐ”์ผ ์•ฑ์ด ์žˆ์œผ๋ฉฐ ๋‘˜ ๋‹ค ์ง€๋„์— ํฌ๊ฒŒ ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” Dart๋ฅผ ์‚ฌ๋ž‘ํ•˜๊ณ  Flutter๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ํ•‘๊ณ„๋ฅผ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

FlutterView ๋ฅผ ์‚ฌ์šฉํ•œ ์†”๋ฃจ์…˜์€ Flutter๋ฅผ ํ•œ ์ค„๋„ ์ž‘์„ฑํ•˜์ง€ ์•Š์€ ์‹ ์ฐธ์˜ ๊ด€์ ์—์„œ ๋ณด๋ฉด ์ง€๋‚˜์น˜๊ฒŒ ๋ณต์žกํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์€ ๋‚ด ํ•„์š”์— ๋งž์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™„์ „ํ•œ ๋Œ€ํ™”ํ˜• ์ง€๋„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Flutter์—์„œ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ๋ฒˆ๊ฑฐ๋กœ์šด์ง€, ๊ทธ๋ฆฌ๊ณ  ์–ธ์  ๊ฐ€๋Š” ๊ตฌํ˜„ํ•  ๊ณ„ํš์ธ์ง€๋„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ์ด Flutter๋กœ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋ผ๋Š” ์‹ ํ˜ธ๊ฐ€ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

2017๋…„์— ์ง€๋„๊ฐ€ ๊ตฌํ˜„๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ €๋Š” Dart๋ฅผ ์‚ฌ๋ž‘ํ•˜๊ณ  Flutter๋ฅผ ๋งค์šฐ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ ๊ทผ์ฒ˜์— ๊ด€์‹ฌ ์ง€์ ์„ ํ‘œ์‹œํ•˜๊ณ  ํ•ด๋‹น ์ง€์ ์„ ํด๋ฆญํ•˜๋ฉด ์„ค๋ช…์„ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋น„์ •์  ์ง€๋„๊ฐ€ ์ •๋ง ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์šฐ์„  ์ €๋Š”(ํ’€ํƒ€์ž„ Android ๊ฐœ๋ฐœ์ž) ํ”Œ๋Ÿฌํ„ฐ๋ฅผ ์‚ฌ๋ž‘ํ•˜๊ณ  ์ง€๋‚œ ๋ช‡ ๋‹ฌ๊ฐ„ ์ด๋ฃจ์–ด์ง„ ๋ฐœ์ „์ด ์ธ์ƒ์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธด ํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๋Š” ๋ฏธ๋ž˜์— ๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฝค ํฐ ์žฅ์• ๋ฌผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ํ˜„์žฌ ์ œ๊ฐ€ ์ผํ•˜๊ณ  ์žˆ๋Š” ํšŒ์‚ฌ์—์„œ ์‚ฌ๋ก€ ์—ฐ๊ตฌ๋ฅผ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ NativeView( tjerkw์˜ ์ œ์•ˆ์— ๋”ฐ๋ผ ) ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉด ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ”Œ๋žซํผ ๊ฐ„์˜ ๊ฒฉ์ฐจ๋ฅผ ์ ์ ˆํžˆ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๋‚˜๋Š” ์ด ๋ฌธ์ œ๊ฐ€ ๋ฏธ๋ž˜์— ๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์˜ํ–ฅ์ด ์žˆ๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฝค ํฐ ์žฅ์• ๋ฌผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ. ์šฐ๋ฆฌ๋Š” ์ง€์†์ ์œผ๋กœ ๊ทธ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์–ด๋–ค ๊ตฌํ˜„ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ทจํ•˜๊ณ  ์–ธ์ œ ์ž‘์—…์„ ์˜ˆ์•ฝํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์งˆ๋ฌธ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ง€๋„๊ฐ€ ํ•„์š”ํ•œ ๋‘ ๊ฐœ์˜ ์•ฑ์ด ์Šค์ผ€์น˜๋˜์–ด ์žˆ์œผ๋ฉฐ ์Šคํ† ์–ด์—์„œ ์ฒซ Flutter ์•ฑ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‹ค์Œ ๋ช‡ ๋‹ฌ ์•ˆ์— ๋‚˜์˜ฌ ๊ฒƒ์ธ๊ฐ€ ์•„๋‹ˆ๋ฉด ๋‚ด๋…„์— ์ด์•ผ๊ธฐํ•  ๊ฒƒ์ธ๊ฐ€? :)

์šฐ๋ฆฌ๋Š” ํŠน๋ณ„ํžˆ ์ง€๋„ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์ธ๋ผ์ธ ๋น„๋””์˜ค์— ๋Œ€ํ•œ ์—ฐ๊ตฌ๋ฅผ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ ์ด๊ฒƒ์ด ์ด ์ž‘์—…์˜ ๊ธธ์„ ์—ด์–ด์•ผ ํ•œ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ETA๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ €๋„ Flutter์—์„œ ๋งต์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜์ง€๋งŒ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ํ™”๋ฉด ๊ธฐ๋ณธ ์ง€๋„๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ๊ทธ ์œ„์— ๋ฐ˜ํˆฌ๋ช… Flutter ๋ ˆ์ด์–ด๊ฐ€ ์žˆ๊ณ  ๊ธฐ๋ณธ ์ง€๋„ ๋ ˆ์ด์–ด์™€ Flutter ์•ฑ ๊ฐ„์— ํ†ต์‹ ํ•˜๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด(์˜ˆ: ์ง€๋„๊ฐ€ ์ด๋™ํ•  ๋•Œ, ์ง€๋„์˜ ์ค‘์‹ฌ์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด) ์œ„๋„/๊ฒฝ๋„, ํ™•๋Œ€/์ถ•์†Œ ์ˆ˜์ค€ ๋“ฑ) ์ง€๋„๊ฐ€ ํ•„์š”ํ•œ ๊ฝค ๋งŽ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, Flutter ๋ณด๊ธฐ์— ํฌํ•จ๋œ ์ธ๋ผ์ธ ๋งต์ด ์—†์Šต๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌํ„ฐ ๋ ˆ์ด์–ด๊ฐ€ ์ง€๋„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ 3D ๋ณด๊ธฐ(VR ํฌํ•จ) ๋˜๋Š” ๋น„๋””์˜ค ๋“ฑ ๋ชจ๋“  Android ๋ ˆ์ด์–ด ์œ„์— ํ•ฉ์„ฑ๋  ์ˆ˜ ์žˆ๋„๋ก ์ผ๋ฐ˜ํ™”ํ•˜๋ฉด ๋”์šฑ ์ข‹์Šต๋‹ˆ๋‹ค.

@FaisalAbid ์—์„œ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. https://github.com/FaisalAbid/flutter-google-maps

@sethladd ํ›Œ๋ฅญํ•œ ์ฒซ ๊ฑธ์Œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Flutter๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๊ฐœ๋ฐœ์— ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋‘ ํ”Œ๋žซํผ ๋ชจ๋‘์— ๋Œ€ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ธ๋ผ์ธ ๋ณด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด ์ˆ˜๋งŽ์€ ์ƒˆ๋กœ์šด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ œ๊ณต๋  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

Android์™€ iOS์—์„œ ์ž‘๋™ํ•˜๋Š” ์†”๋ฃจ์…˜์„ ๋งŒ๋“ค๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋™์˜์ƒ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
Google Static Maps๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ™•๋Œ€/์ถ•์†Œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์‚ฌ์šฉ์ž ์œ„์น˜์— ํ•€์„ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ, ๋ถ/๋‚จ/๋™/์„œ ์ด๋™ ๋ฐ ํ•€ ๋ฌถ์Œ ์ถ”๊ฐ€์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
๋” ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด 3๊ฐœ์˜ ์ง€๋„๋ฅผ ์Œ“์•˜์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ํ™•๋Œ€/์ถ•์†Œ ์ˆ˜์ค€์ด +1์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ํ™•๋Œ€/์ถ•์†Œ ์ˆ˜์ค€์ด -1์ž…๋‹ˆ๋‹ค. Flutter๋Š” ์ด๋ฏธ์ง€ ์บ์‹ฑ์— ํƒ์›”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— + ๋˜๋Š” -๋ฅผ ๋ˆ„๋ฅด๋ฉด ์บ์‹ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋ฏ€๋กœ ๊ฝค ๋น ๋ฆ…๋‹ˆ๋‹ค.

            new Stack(
              children: <Widget>[
                new Center(
                  child: new CircularProgressIndicator(),
                ),
                //Zoom in Map Image for caching
                new Image.network(
                  mapUrl.zoomInMapUrl,
                  fit: BoxFit.contain,
                ),
                //Zoom out Map Image for caching
                new Image.network(
                  mapUrl.zoomOutMapUrl,
                  fit: BoxFit.contain,
                ),
                //Map Image
                new Image.network(
                  mapUrl.mapUrl,
                  fit: BoxFit.contain,
                  gaplessPlayback: true,
                ),
                new Positioned(
                  bottom: 16.0,
                  right: 16.0,
                  child: new Column(
                    children: <Widget>[
                      //Zoom in
                      new Container(
                        color: Colors.black54,
                        child: new IconButton(
                          icon: new Icon(Icons.add),
                          color: Colors.white,
                          onPressed: () => zoomInMap(true),
                        ),
                      ),
                      new Divider(),
                      //Zoom out
                      new Container(
                        color: Colors.black54,
                        child: new IconButton(
                          icon: new Icon(Icons.remove),
                          color: Colors.white,
                          onPressed: () => zoomInMap(false),
                        ),
                      ),
                    ],
                  ),
                ),
              ],
            ),

์ง€๊ธˆ์€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์ง€๋งŒ ๊ตฌํ˜„์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.
๋น„๋””์˜ค ์„ค๋ช…์„ ์ฝ๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

https://www.youtube.com/watch?v=PR2MdUiepyw

@gabrielsallesrg Google ์ง€๋„์—์„œ ์ด์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š”์ง€์กฐ์ฐจ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜„์žฌ๋กœ์„œ๋Š” ํ™•์‹คํžˆ ์ข‹์€ ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๋‹ค. ๊ณต์œ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@bramvbilsen ํ˜ผ๋ž€์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด Google Static Maps๋Š” ํ™•๋Œ€/์ถ•์†Œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ผ์–ด๋‚˜๋Š” ์ผ์€ +/- ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ์š”์ฒญํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•Œ์•˜์–ด์š”. ๊ฐ์‚ฌ ํ•ด์š” :)

ํ˜„์žฌ๋กœ์„œ๋Š” ์ด๋Ÿฌํ•œ ๊ณ ๊ธ‰ ์œ„์ ฏ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ํ”Œ๋Ÿฌํ„ฐ๋Š” ์ ˆ๋Œ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์˜์—ญ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
Flutter์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค ๋””์ž์ด๋„ˆ๊ฐ€ ์ œ์•ˆํ•œ ์ผ๋ถ€ ๋””์ž์ธ์€ ๊ตฌํ˜„ํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ข‹์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์ „์ฒด ํ™”๋ฉด ์ง€๋„ ๊ตฌ์„ฑ์š”์†Œ์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์žˆ๋Š” Google ์ •์  ์ง€๋„์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ์•ฑ์ด ์ง€๊ธˆ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋„ค์ดํ‹ฐ๋ธŒ์™€ ๊ฐ™์€ ๊ฒฝํ—˜์„ ๊ฐ€์ง„ Flutter ์•ฑ์„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์žฅ๊ธฐ์ ์œผ๋กœ ํ”Œ๋Ÿฌํ„ฐ์— ๊ณ ์œ ํ•œ gmap ์œ„์ ฏ์ด ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ์ „์— Flutter๋Š” Google์—์„œ ๊ณต์‹์ ์œผ๋กœ ๋ฐœํ‘œํ•˜๊ณ  ์ด๋ฅผ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌํ„ฐ์˜ ๋ฏธ๋ž˜๊ฐ€ ๋ฌด์—‡์ธ์ง€๋Š” ์ง€๊ธˆ ๋ถˆ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

@tjerkw ์•„์ง ์•ŒํŒŒ ๋ฒ„์ „์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•˜๋ฏ€๋กœ ์•„์ง ๋” ์„ฑ์ˆ™ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Google์—์„œ ์•„์ง Flutter๋ฅผ ๋ฐœํ‘œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๊นŒ? IO์—์„œ ๋ณด์—ฌ์ฃผ๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

@tjerkw Gmaps ์— ๋Œ€ํ•œ ๋งค์šฐ ๋ช…ํ™•ํ•œ ์„ค๋ช….

์ €๋Š” ์ด๋ฏธ Android์šฉ VTM(๋ฒกํ„ฐ ํƒ€์ผ ๋งต) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(opensciencemap/openstreetmap)๋กœ ์ž‘์—…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜คํ”ˆ ์†Œ์Šค ๋งต์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ”Œ๋Ÿฌํ„ฐ์— ์ ํ•ฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๋Ÿฌ๋‚˜ Flutter๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๊ฐœ๋ฐœ์— ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋‘ ํ”Œ๋žซํผ ๋ชจ๋‘์— ๋Œ€ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋™์˜ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ ์ƒํƒœ๊ณ„๋Š” ์ด์ œ์•ผ ์‹œ๋™์„ ๊ฑธ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ฐพ์€ ๊ธฐ์กด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ณต์œ ํ•จ์œผ๋กœ์จ ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋” ๋งŽ์€ ๊ธฐ์—ฌ์ž๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@tjerkw ์ฝ”๋“œ ๊ธฐ๋ฐ˜์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Flutter์™€ Google ์ง€๋„ ํ†ตํ•ฉ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ ํ”Œ๋žซํผ์— ๊ธฐ๋ณธ ์ง€๋„๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ง€๋„๋ฅผ ๋ Œ๋”๋งํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ฉ๋‹ˆ๊นŒ?

@TitikshaDaga ์ธ๋ผ์ธ Google ์ง€๋„๋Š” ์•„์ง ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด Google Map์œผ๋กœ ๊ธฐ๋ณธ Activity/ViewController๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/FaisalAbid/flutter-google-maps/issues/1
any1์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด Google Map์œผ๋กœ ๊ธฐ๋ณธ Activity/ViewController๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@najeira ์ด์— ๋Œ€ํ•œ ์ƒ˜ํ”Œ ์ฝ”๋“œ/์˜์‚ฌ ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? FlutterView ์‚ฌ์šฉ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@timotheecour image_picker ๋ฐ flutter_webview_plugin ์€ ๋„ค์ดํ‹ฐ๋ธŒ Activity/ViewController๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ข‹์€ ์˜ˆ์ž…๋‹ˆ๋‹ค.

@mehmetf ๋Š” ์˜ค๋Š˜ ๊ณ ๊ฐ: ๋ฉ€๋ฆฌ๊ฑด์—๊ฒŒ ์ง€๋„๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ ํ˜„์žฌ๋กœ์„œ๋Š” ์ •์  ์ง€๋„ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ณ ๊ฐ ํƒœ๊น…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค๊ณ  ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ „์ฒด ํ™”๋ฉด ์ง€๋„ ์†”๋ฃจ์…˜์„ ์ฐพ๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ข‹์€ ์˜ต์…˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://pub.dartlang.org/packages/map_view

์šฐ๋ฆฌ๊ฐ€ ์„ ํƒํ•œ ์†”๋ฃจ์…˜์€ ํƒญํ•˜์—ฌ ์ „์ฒด ํ™”๋ฉด ๋ณด๊ธฐ๋ฅผ ์—ด ์ˆ˜ ์žˆ๋Š” Google ์ •์  ์ง€๋„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ์ง€๋ฆฌ์  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์‡ผ ์Šคํ† ํผ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ํ˜„์žฌ ์ž‘์—… ์ค‘์ด๋ฉฐ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

์‚ด์ง ์—ฟ๋ณด๊ธฐ? ๐Ÿ˜ƒ

์ด๊ฒƒ์€ ํ˜„์žฌ ์ž‘์—… ์ค‘์ด๋ฉฐ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

@wmleler ์ž‘์—… ๋งต์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค...

@theobouwman ๋ฐ”๋กœ ์ง€๊ธˆ ์ด๊ฒƒ์ด ์ตœ๊ณ ์˜ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค -- https://pub.dartlang.org/packages/map_view

์ง€๋„๊ฐ€ Flutter ์œ„์ ฏ์˜ ์ผ๋ถ€์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ์ง€๋„๋ฅผ ์ด๋ฏธ์ง€๋กœ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ •์  ์ง€๋„ API ์‚ฌ์šฉ -- https://developers.google.com/maps/documentation/static-maps / ). ์‚ฌ์šฉ์ž๊ฐ€ ์ด ์ •์  ์ง€๋„ ์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด ์œ„์ ฏ๊ณผ ํ•จ๊ป˜ ์ „์ฒด ํŽ˜์ด์ง€ ์ง€๋„๋ฅผ ์—ด๊ณ  ์ด๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ „์ฒด ํŽ˜์ด์ง€ ์ง€๋„๋ฅผ ๋‹ซ์€ โ€‹โ€‹ํ›„ ์ง€๋„ ์ด๋ฏธ์ง€๋ฅผ ์—…๋ฐ์ดํŠธ๋œ ์ •์  ์ง€๋„(์ง€๋„ ํ™•๋Œ€/์ถ•์†Œ ๋ฐ ์Šคํฌ๋กค, ์ถ”๊ฐ€๋œ ์‹œ์žฅ ๋“ฑ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ํ‘œ์‹œ)๋กœ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.

@wmleler ๋‚ด ์ƒ๊ฐ ์—๋Š” @theobouwman ์ด "๋„ค์ดํ‹ฐ๋ธŒ ์œ„์ ฏ" ํ†ตํ•ฉ์„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ๋” ์ปธ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ €๋„ ์‹ ๋‚˜๊ฒŒ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์–ด์š”^^

@mclark4386 ๋งž์Šต๋‹ˆ๋‹ค.

"๋„ค์ดํ‹ฐ๋ธŒ ์œ„์ ฏ" ํ†ตํ•ฉ์ด๋ผ๊ณ  ํ•˜๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ง€๋„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฝค ๋งŽ์€ ์•ฑ์„ ๊ตฌ์ถ•ํ–ˆ์œผ๋ฉฐ ์ €์—๊ฒŒ๋Š” ์ „์ฒด ํŽ˜์ด์ง€ ์ง€๋„ ์œ„์— flutter ์œ„์ ฏ์„ ์˜ค๋ฒ„๋ ˆ์ดํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ์ „์ฒด ํŽ˜์ด์ง€ ์ง€๋„๋ฅผ ์—ฌ๋Š” Flutter ์œ„์ ฏ์— ์ •์  ์ง€๋„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ๋งต. ๊ธฐ๋ณธ ์œ„์ ฏ ํ†ตํ•ฉ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ๋ง์€ ์•„๋‹™๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์™œ ์ด๋ฅผ ์›ํ•˜๊ณ  ์ดํ•ดํ•˜๊ณ  ์‹ถ์€์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

@wmleler ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค! ์˜ˆ๋ฅผ ๋“ค์–ด ๊ทผ์ฒ˜์— ๋ ˆ์Šคํ† ๋ž‘์ด ์žˆ๋Š” ๋Œ€ํ™”ํ˜• ์ง€๋„. ์•ฑ์„ ๋…ํŠนํ•˜๊ฒŒ ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๋‹จ์— ์ผ๋ถ€ ์‚ฌ์šฉ์ž ์ •์˜ ๋ ˆ์ด์•„์›ƒ์ด ์žˆ๋Š” ์ธ๋ผ์ธ ๋งต์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ง€๋ฆฌํ•™์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•€ ๋ฐ GeoJSON ๋ฉ”์‹œ ๋ชฉ๋ก์ธ ์•ฑ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

2018๋…„ 1์›” 3์ผ ์˜คํ›„ 1์‹œ 9๋ถ„์— Wm Leler [email protected] ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

"๋„ค์ดํ‹ฐ๋ธŒ ์œ„์ ฏ" ํ†ตํ•ฉ์ด๋ผ๊ณ  ํ•˜๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ง€๋„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฝค ๋งŽ์€ ์•ฑ์„ ๊ตฌ์ถ•ํ–ˆ์œผ๋ฉฐ ์ €์—๊ฒŒ๋Š” ์ „์ฒด ํŽ˜์ด์ง€ ์ง€๋„ ์œ„์— flutter ์œ„์ ฏ์„ ์˜ค๋ฒ„๋ ˆ์ดํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ์ „์ฒด ํŽ˜์ด์ง€ ์ง€๋„๋ฅผ ์—ฌ๋Š” Flutter ์œ„์ ฏ์— ์ •์  ์ง€๋„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ๋งต. ๊ธฐ๋ณธ ์œ„์ ฏ ํ†ตํ•ฉ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ๋ง์€ ์•„๋‹™๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์™œ ์ด๋ฅผ ์›ํ•˜๊ณ  ์ดํ•ดํ•˜๊ณ  ์‹ถ์€์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub https://github.com/flutter/flutter/issues/73#issuecomment-355067415 ์—์„œ ํ™•์ธํ•˜๊ฑฐ๋‚˜ https://github.com/notifications/unsubscribe-auth/AHlzZYr1dpBlnxv7di30GLmFFdHBG2FPks5tG7 ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์„ธ์š”.

@wmlerer ์šฐ๋ฆฌ ์•ฑ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํƒญ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ํƒญ์—๋Š” Google ์ง€๋„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” ๋ชฉ๋ก ๋ณด๊ธฐ์ž…๋‹ˆ๋‹ค. ์ง€๋„์—์„œ ํ•€์„ ํด๋ฆญํ•˜๋ฉด ํ˜„์žฌ ์œ„์น˜์—์„œ ํ•ด๋‹น ํ•ญ๋ชฉ(์„ ํƒํ•œ ํ•€)์œผ๋กœ ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ•ด๋‹น ํ•ญ๋ชฉ์˜ "๋ถ€๋ถ„์ " ์„ธ๋ถ€์ •๋ณด/์ •๋ณด์™€ ๊ฐ™์€ ํ•ญ๋ชฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์ ์ธ ์„ธ๋ถ€ ์ •๋ณด๋Š” ์ง€๋„๋ฅผ ์˜ค๋ฒ„๋ ˆ์ดํ•ฉ๋‹ˆ๋‹ค.

@wmlerer ์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. Flutter๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ ํ˜„์žฌ๋กœ์„œ๋Š” ์ด๊ฒƒ์ด ์ผ์ข…์˜ ์žฅ์• ๋ฌผ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” Uber์™€ ๊ฐ™์€ ์œ„์น˜ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

๊ฐ™์€ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์ข‹์•„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2018๋…„ 1์›” 9์ผ ์˜ค์ „ 4์‹œ 51๋ถ„์— Sanket Sahu [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@wmleler https://github.com/wmleler ์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. ์šฐ๋ฆฌ๋Š” Flutter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์ด๊ฒƒ์ด ํ˜„์žฌ๋กœ์„œ๋Š” ์ผ์ข…์˜ ์žฅ์• ๋ฌผ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” Uber์™€ ๊ฐ™์€ ์œ„์น˜ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub https://github.com/flutter/flutter/issues/73#issuecomment-356219135 ์—์„œ ๋ณด๊ฑฐ๋‚˜ https://github.com/notifications/unsubscribe-auth/AHlzZWHIkt1K3FOQuLX7h8UyqIZoVnTFks5t ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐ

๋‹น์‹ ์ด ๋งค๋‹ฌ๋ฆฌ์ง€ ์•Š๋„๋ก ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์น˜ ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์—†์–ด :(

@wmleler ์šฐ๋ฆฌ๋Š” Android/iOS ์ฝ”๋“œ ๊ธฐ๋ฐ˜์ด ๋ถ„ํ• ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Flutter๋กœ ์ด์‹ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ Google ์ง€๋„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•€์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ด ๊ธฐ๋Šฅ์„ ์ •๋ง๋กœ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌํ˜„์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ์ด๊ฒƒ์ด ๋น„๋””์˜ค ์ง€์›๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ˆ˜ํ–‰ ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซํผ ๋ณด๊ธฐ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ณ  Flutter ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ…์Šค์ฒ˜์— ์ž์‹ ๋ Œ๋”๋ง ํ”„๋กœ์„ธ์Šค๋ฅผ ์Šคํ… ์•„์›ƒํ•˜๋Š” FlutterNativeHostView์˜ ๋ผ์ธ์„ ๋”ฐ๋ผ๊ฐ€๋Š” ๊ฒƒ. ๊ทธ๋Ÿฌ๋ฉด Flutter ๋ณด๊ธฐ ๊ณ„์ธต ๊ตฌ์กฐ์—์„œ ๋น„๋””์˜ค ํ”Œ๋ ˆ์ด์–ด์ฒ˜๋Ÿผ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. [ํ„ฐ์น˜] ์ž…๋ ฅ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•œ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์„ ํ†ตํ•ด ์ „๋‹ฌ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์†”์งํžˆ ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์€ .. ๊ตฌํ˜„๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ Dart์—์„œ Google ์ง€๋„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑ/์žฌ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ๋” ๊ฑธ๋ฆด ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@wmleler ํ˜ธ์ŠคํŠธ ๋ณด๊ธฐ์™€ ๊ฐ™์€ ๊ฒƒ์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์ƒ๊ฐ์„ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด๊ฒƒ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ํ˜„์žฌ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋ž˜ํ•‘ํ•˜์—ฌ ๋” ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก Flutter์— ์ข‹์€ ๋ฐฉํ–ฅ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

FlutterView๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ Google ์ง€๋„ ๋ณด๊ธฐ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AdMob ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
https://github.com/flutter/plugins/blob/master/packages/firebase_admob/android/src/main/java/io/flutter/plugins/firebaseadmob/MobileAd.java#L242

@slightfoot FlutterNativeHostView ์˜ ์•„์ด๋””์–ด๋Š” ํฅ๋ฏธ๋กญ๊ฒŒ ๋“ค๋ฆฌ์ง€๋งŒ ์ด๊ฒƒ์ด Android์—์„œ ๊ธฐ์ˆ ์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ• ์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. "์ž์‹ ๋ Œ๋”๋ง ํ”„๋กœ์„ธ์Šค๋ฅผ ์ œ๊ฑฐ"ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ด€๋ จํ•˜์—ฌ ๊ตฌ์ฒด์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์—ผ๋‘์— ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

iOS์—์„œ ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ Flutter Engine์ด ํ•ฉ์„ฑํ•˜๋Š” ๋ฐฉ์‹์— CALayers๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ์†”๋ฃจ์…˜์„ ์ž‘์—…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ชจ๋“  UIView๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” Flutter ์ƒํƒœ๊ณ„์— ์ƒ๋‹นํžˆ ์ต์ˆ™ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ์ดํ•ดํ•œ๋‹ค๋ฉด; Skia๋Š” ๋ Œ๋”๋ง์„ ์œ„ํ•ด OpenGL์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Google GVRKit์—์„œ ์–ด๋–ป๊ฒŒ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GVRUIRenderer๋Š” ์ผ๋ฐ˜ UI ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์™€ OpenGL ์žฅ๋ฉด์— ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@NathanaelA ํŒ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! https://github.com/googlevr/gvr-ios-sdk/blob/master/Samples/GVRKit/GVRUIViewRenderer.h๋ฅผ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š”

/cc @sigurdm

์˜ˆ, ์‹ค์ œ๋กœ .mm ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. https://github.com/googlevr/gvr-ios-sdk/blob/master/Samples/GVRKit/GVRUIViewRenderer.mm -- ํ˜„์žฌ ์ „์ฒด UIView๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด GVRKit ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ฐ˜ ์žฅ๋ฉด.

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? uber์™€ ๊ฐ™์€ ์ง€๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ง€์ •๋œ ์•ฑ์„ ์›ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฌธ์•ž์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์ •๋ง ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”!!!

Google ์ง€๋„์˜ ๊ฒฝ์šฐ:

์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ ๊ทน์ ์œผ๋กœ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์†”๋ฃจ์…˜์„ ์ถœ์‹œํ•˜๋ ค๋ฉด ์•„์ง ๋ช‡ ์ฃผ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ ๋™์•ˆ AppTree์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ „์ฒด ํ™”๋ฉด ๋Œ€ํ™”ํ˜• ์ง€๋„์™€ ์ธ๋ผ์ธ ์ •์  ์ง€๋„๋งŒ ์ œ๊ณตํ•˜์ง€๋งŒ ํ”„๋กœํ† ํƒ€์ž…์„ ์‹œ์ž‘ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์ถฉ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Android์˜ GoogleMaps๋Š” ํ˜„์žฌ Flutter ์—”์ง„์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž ์ง€์ • OpenGL ํ•ฉ์„ฑ์— ํ†ตํ•ฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Android์—์„œ๋„ ๋Œ€ํ™”ํ˜• ์ธ๋ผ์ธ ์ง€๋„๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ˜„์žฌ๋กœ์„œ๋Š” z์ถ•์˜ ๋งจ ์œ„์— ์žˆ๊ฑฐ๋‚˜ ๋Œ€ํ™”ํ˜•์ด ์•„๋‹Œ ์ง€๋„๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, Flutter๊ฐ€ Android์˜ ๋Œ€ํ™”ํ˜• ์ง€๋„ ์œ„์— ๋ฒ„ํŠผ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์‚ฌ์šฉ์ž ์ •์˜ Java/Kotlin ์ฝ”๋“œ๋กœ ์ด๋Ÿฌํ•œ ๋ฒ„ํŠผ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ง€๋„ ํŒ€๊ณผ๋„ ํ˜‘๋ ฅํ•˜๊ณ  ์žˆ์ง€๋งŒ API ์ถ”๊ฐ€๊ฐ€ ํ•„์š”ํ•ด ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , AppTree๋Š” Mikkel์ด ์–ธ๊ธ‰ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์™ธ์—๋„
ํ˜„์žฌ ์ง€๋„๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์ƒˆ ํŒจํ‚ค์ง€(ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์•„๋‹˜!)์—์„œ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค.
Flutter ์ง์ ‘(๋ฒ ์ด์Šค๋งต ์ž์ฒด ๋ฐ ๋งˆ์ปค์™€ ๊ฐ™์€ ๊ฒƒ์€
์‹ค์ œ Flutter ์œ„์ ฏ์œผ๋กœ ๊ตฌํ˜„๋จ). ๋ช‡ ๊ฐ€์ง€ ์ฃผ์˜ ์‚ฌํ•ญ: ์ฒซ์งธ,
Google ์ง€๋„ API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‘˜์งธ, ํ˜„์žฌ ์‹คํ—˜์ ์ž…๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ ์™„๋ฃŒ) ์ž‘๋™ ์ค‘์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ทผ๋ณธ์ ์œผ๋กœ ์ƒˆ๋กœ์šด ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ํฅ๋ฏธ๋กญ๊ฒŒ ์ƒ๊ฐํ•˜๋Š” ์ง€๋„(๋ชจ๋“  Flutter ์œ„์ ฏ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ
์‚ฌ์šฉ์ž ์ •์˜ ๊ฐ€๋Šฅ), ๋ฌผ๋ก  ์œ„ํ—˜์ด ์žˆ์œผ๋ฉฐ ํ˜„์žฌ๋Š” ์˜คํžˆ๋ ค
๋ฏธ์„ฑ์ˆ™. ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/apptreesoftware/flutter_map

2018๋…„ 2์›” 22์ผ ๋ชฉ์š”์ผ ์˜คํ›„ 12์‹œ 53๋ถ„, Mikkel Nygaard Ravn <
[email protected]>์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ ๊ทน์ ์œผ๋กœ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์†”๋ฃจ์…˜ ์ถœ์‹œ๋Š” ์•„์ง ๋ช‡ ์ฃผ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค.
๋–จ์–ด์ ธ์žˆ๋Š”. ๊ทธ๋™์•ˆ AppTree์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
https://pub.dartlang.org/packages/map_view . ํ•ด๋‹น ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ œ๊ณตํ•˜๋Š” ๋™์•ˆ
์ „์ฒด ํ™”๋ฉด ๋Œ€ํ™”ํ˜• ์ง€๋„์™€ ์ธ๋ผ์ธ ์ •์  ์ง€๋„๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœํ† ํƒ€์ž…์„ ์‹œ์ž‘ํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

Android์˜ GoogleMaps๋Š” ํ˜„์žฌ ์—ด๋ ค ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Flutter ์—”์ง„์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž ์ •์˜ OpenGL ํ•ฉ์„ฑ์— ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ๋Œ€ํ™”ํ˜• ์ธ๋ผ์ธ ์ง€๋„๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ
Android, ๊ทธ๋“ค์€ ์ง€๊ธˆ์€ ๊ฐ€์žฅ ์ƒ์œ„์— ์œ„์น˜ํ•˜๋„๋ก ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
z์ถ• ๋˜๋Š” ๋น„๋Œ€ํ™”ํ˜•.

์ฆ‰, Flutter๊ฐ€ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.
Android์˜ ๋Œ€ํ™”ํ˜• ์ง€๋„ ์ƒ๋‹จ์— ์žˆ๋Š” ๋ฒ„ํŠผ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๊ทธ๋Ÿฐ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
๋ฌผ๋ก  ์‚ฌ์šฉ์ž ์ •์˜ Java/Kotlin ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๋ฒ„ํŠผ. ์šฐ๋ฆฌ๋Š” ํ•จ๊ป˜ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค
์ง€๋„ ํŒ€๋„ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€๋งŒ API๋กœ์„œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ถ”๊ฐ€๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-367818217 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AADEtdPegV4oAh2It7YDGpyBygM9tw7lks5tXdPBgaJpZM4Ge5yO
.

์—ฌ๊ธฐ ์žˆ๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ €๋Š” Flutter๋ฅผ ์ฒ˜์Œ ์ ‘ํ–ˆ๊ณ  Google ์ง€๋„ ์ง€์›์ด ๋ถ€์กฑํ•˜์—ฌ ๋‚ด ์•ฑ์„ Flutter๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ฆ‰, ์ €๋ฅผ ์˜คํ•ดํ•˜์ง€ ๋งˆ์„ธ์š”. ์ œ๊ฐ€ ์ œ์•ˆํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋‚ด์šฉ์— ๋Œ€ํ•œ ์–ด๋ ค์›€์„ ์ดํ•ดํ•˜์ง€๋งŒ Flutter๋Š” ๋ชจ๋“  Google Maps API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜์Œ๋ถ€ํ„ฐ Dart๋กœ ๋งŒ๋“  Google Maps Widget์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Android์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ•๋ ฅํ•œ ์„ฑ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ง€๋„๋Š” ๋น ๋ฅด๊ณ  ๋Œ€ํ™”ํ˜•์ด์–ด์•ผ ํ•˜๋ฉฐ ์ง€๋„์— ๊ฒฝ๋กœ๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž ์ •์˜ ํ•€ ๋“ฑ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์žฅ์†Œ ๊ฒ€์ƒ‰ ์ž๋™ ์™„์„ฑ, ์—ญ ์ง€์˜ค์ฝ”๋”ฉ, ์ง€์˜ค์ฝ”๋”ฉ, ๊ฒฝ๋„ ๋ฐ ์œ„๋„ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ ์ง€์›์„ ์›ํ•ฉ๋‹ˆ๋‹ค. .

๊ธฐ๊ธฐ์—์„œ ๊ธฐ๋ณธ ์ง€๋„๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์‹œ๋„๋Š” ์ „์ฒด ๋ชจ๋ฐ”์ผ ๊ฒฝํ—˜์— ๋„ˆ๋ฌด ์ œํ•œ์ ์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋‚ด ์ œ์•ˆ(์–ด๋ ค์šด ๋งŒํผ)์€ ์ „์ฒด Google ์ง€๋„ ์œ„์ ฏ + Flutter/Dart์šฉ Google ์ง€๋„ API์— ์ง‘์ค‘ํ•˜๊ณ  ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๋” ๊ฑธ๋ฆฌ๋”๋ผ๋„.

๋‚ด ์ƒ๊ฐ์— ํ˜„๋Œ€์ ์ธ ์ง€๋„ sdk(๊ตฌ๊ธ€ ์ง€๋„ ๋˜๋Š” mapbox์™€ ๊ฐ™์€)์˜ ๊ฒฝ์šฐ opengl์ด ํ•„์š”ํ•˜๊ณ  ์ด๊ฒƒ์ด ์•„์ง ์ง€์›๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹คํŠธ์—์„œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ตฌ์ถ•ํ•˜๊ธฐ ์–ด๋ ค์šธ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์ €๋Š” ์บ”๋ฒ„์Šค๋กœ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ธฐ๋Š” ํ–ˆ์ง€๋งŒ ๋„ˆ๋ฌด ๋Š๋ ธ์Šต๋‹ˆ๋‹ค.) ๋‘ ๊ฐ€์ง€ ๋Œ€์•ˆ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (1) ๋‹จ์ˆœํ•œ ์ด๋ฏธ์ง€ ํƒ€์ผ์ด ์žˆ๋Š” ๋œ ํ˜„๋Œ€์ ์ธ ์ง€๋„(์˜ˆ: https://github.com/apptreesoftware/flutter_map ์ฐธ์กฐ) ๋ฐ (2) ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” SurfaceTexture์— ๊ทธ๋ฆฌ๋Š” ๊ธฐ๋ณธ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ…์Šค์ฒ˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ†ตํ•œ ํ”Œ๋Ÿฌํ„ฐ(์•„๋งˆ๋„ ์˜คํ”ˆ ์†Œ์Šค ๋งต๋ฐ•์Šค SDK๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ).

ํ”Œ๋Ÿฌํ„ฐ ์ž‘์„ฑ์ž๊ฐ€ maps sdk์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์–ด๋–ค ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ทจํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ํƒ€์ž„๋ผ์ธ์ด๋ž€? ์ด๊ฒƒ์„ ๊ธฐ๋‹ค๋ฆด ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ด ์ž‘์—…์„ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋ฐ˜: feinstein [email protected]
Beanwooden - Aan: flutter/flutter [email protected]
๊ธฐ์ค€: woensdag 2018๋…„ 2์›” 28์ผ ์˜ค์ „ 21์‹œ 31๋ถ„
์•ˆ: flutter/flutter [email protected]
CC: rbellens [email protected] , ๋งค๋‰ด์–ผ [email protected]
Onderwerp: Re: [flutter/flutter] ์ธ๋ผ์ธ ์ง€๋„ ์ง€์›(#73)

์—ฌ๊ธฐ ์žˆ๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ €๋Š” Flutter๋ฅผ ์ฒ˜์Œ ์ ‘ํ–ˆ๊ณ  Google ์ง€๋„ ์ง€์›์ด ๋ถ€์กฑํ•˜์—ฌ ๋‚ด ์•ฑ์„ Flutter๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ฆ‰, ์ €๋ฅผ ์˜คํ•ดํ•˜์ง€ ๋งˆ์„ธ์š”. ์ œ๊ฐ€ ์ œ์•ˆํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋‚ด์šฉ์— ๋Œ€ํ•œ ์–ด๋ ค์›€์„ ์ดํ•ดํ•˜์ง€๋งŒ Flutter๋Š” ๋ชจ๋“  Google Maps API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜์Œ๋ถ€ํ„ฐ Dart๋กœ ๋งŒ๋“  Google Maps Widget์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Android์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ•๋ ฅํ•œ ์„ฑ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ง€๋„๋Š” ๋น ๋ฅด๊ณ  ๋Œ€ํ™”ํ˜•์ด์–ด์•ผ ํ•˜๋ฉฐ ์ง€๋„์— ๊ฒฝ๋กœ๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž ์ •์˜ ํ•€ ๋“ฑ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์žฅ์†Œ ๊ฒ€์ƒ‰ ์ž๋™ ์™„์„ฑ, ์—ญ ์ง€์˜ค์ฝ”๋”ฉ, ์ง€์˜ค์ฝ”๋”ฉ, ๊ฒฝ๋„ ๋ฐ ์œ„๋„ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ ์ง€์›์„ ์›ํ•ฉ๋‹ˆ๋‹ค. .

๊ธฐ๊ธฐ์—์„œ ๊ธฐ๋ณธ ์ง€๋„๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์‹œ๋„๋Š” ์ „์ฒด ๋ชจ๋ฐ”์ผ ๊ฒฝํ—˜์— ๋„ˆ๋ฌด ์ œํ•œ์ ์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋‚ด ์ œ์•ˆ(ํž˜๋“  ๋งŒํผ)์€ ์ „์ฒด Google ์ง€๋„ ์œ„์ ฏ + Flutter/Dart์šฉ Google ์ง€๋„ API์— ์ดˆ์ ์„ ๋งž์ถ”๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์„ธ์š”.

@mravn-google ์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค

@๋‚˜ํƒ€๋‚˜์—˜A
์ •๋ง ํฅ๋ฏธ๋กญ๋„ค์š”.
VR๊ณผ AR์— ๋Œ€ํ•ด ๊ฐ™์€ ๊ฒƒ์ด ๊ถ๊ธˆํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ Œ๋”๋Ÿฌ์˜ ์ถœ๋ ฅ๊ณผ ํ•ฉ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ”Œ๋Ÿฌํ„ฐ ๋ณด๊ธฐ๋ฅผ ์–ป๋Š” ๊ฒƒ์ด ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์˜ ์š”์ง€์ž…๋‹ˆ๊นŒ?
๋ฐ์Šคํฌํƒ‘์šฉ flutter์™€ ์ •ํ™•ํžˆ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค! ๋‚˜๋Š” ํ”Œ๋Ÿฌํ„ฐ ์ฐฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ 3d opengl ๋ Œ๋”๋ง ์‹œ์Šคํ…œ์—์„œ ๋ณด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

Texture ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ†ตํ•ด Flutter์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” SurfaceTexture์— ๊ทธ๋ฆฌ๋Š” ๊ธฐ๋ณธ ํ”Œ๋Ÿฌ๊ทธ์ธ(์˜คํ”ˆ ์†Œ์Šค mapbox sdk๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ).

@rbellens https://github.com/apptreesoftware/flutter_map ์— ๋Œ€ํ•ด ๊ถŒ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์‹ค์  ๊ฐœ์„ ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” ๋“ฏ

@mravn-google ์ด ์ƒˆ๋กœ์šด ํ”Œ๋Ÿฌํ„ฐ ๋งต ๊ธฐ๋Šฅ์ด ์–ธ์ œ ์ถœ์‹œ๋ ์ง€ ์˜ˆ์ƒํ•˜์‹ญ๋‹ˆ๊นŒ? ๋˜ํ•œ ์ง€๋„ ์œ„์—๋Š” ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ์ˆ˜ ์—†๋‹ค๊ณ  ํ•˜๋ฉด ํ•€ ๋†“๊ธฐ/์ฃผ์†Œ ํ‘œ์‹œ ๋“ฑ์˜ ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ๋„ ํฌํ•จ๋˜๋‚˜์š”?

@ezrasandzerbell google_mobile_maps ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์™€ ๊ด€๋ จํ•˜์—ฌ ์ด ์ž‘์—…์ด ์ง€์—ฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณง ํ™œ๋™์ด ์žฌ๊ฐœ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ์ดˆ๊ธฐ(์ œํ•œ๋œ) ์†”๋ฃจ์…˜์€ ๊ธฐ๋ณธ ์ง€๋„ ๋ณด๊ธฐ๋ฅผ ์˜ค๋ฒ„๋ ˆ์ด๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๋‚˜์ค‘์— GoogleMap API๊ฐ€ ์ง€์›ํ•˜๋ฉด ๊ธฐ๋ณธ ์ง€๋„ ๋ณด๊ธฐ์—์„œ ํ…์Šค์ฒ˜ ์ŠคํŠธ๋ฆฌ๋ฐ์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋•Œ๊นŒ์ง€ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์š”์ ์€ ์ง€๋„ ์ œ์–ด๋ฅผ ์œ„ํ•œ Dart API ๊ฐœ๋ฐœ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋งˆ์ปค ๋“ฑ์„ ๋ฐฐ์น˜ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

@mravn-google ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๋ ค์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. google_mobile_maps ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๊ณต๊ฐœ ๋ฌธ์ œ ํƒญ์ด ์—†๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์—ฌ ์—ฌ๊ธฐ์—์„œ ํ›„์† ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถœ์‹œ๋˜๋ฉด ์ฝ”๋“œ ์ƒ˜ํ”Œ์ด ํฌํ•จ๋œ ๋ฌธ์„œ๋ฅผ ๋ณด๋‚ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ ๊ด€์‹ฌ์ด ์žˆ๋Š” ๋ถ„์•ผ:

1) Google ์ง€๋„๋ฅผ ํŠน์ • ๋„ˆ๋น„์™€ ๋†’์ด๋กœ ์ œํ•œํ•˜๋Š” ๋ฐฉ๋ฒ•. ์ง€๊ธˆ๊นŒ์ง€ ๋ณธ ์†”๋ฃจ์…˜(AppTree, MapView)์€ ๋ชจ๋‘ ์ „์ฒด ํ™”๋ฉด ๋ณด๊ธฐ ์ „์šฉ์ธ ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ตฌํ˜„ ๋ฐ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•œ ํฌ์†Œํ•ฉ๋‹ˆ๋‹ค.

2) Google ์ง€์—ญ ์ •๋ณด ์ž๋™ ์™„์„ฑ(https://pub.dartlang.org/packages/flutter_google_places_autocomplete)๊ณผ ๊ฐ™์€ ๊ฒ€์ƒ‰ ๋„๊ตฌ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์œ„์น˜๋ฅผ ์ž…๋ ฅํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™ ์™„์„ฑํ•˜๊ณ , ์ œ์ถœํ•˜๊ณ , ๋ Œ๋”๋ง๋œ ํ•ด๋‹น ์œ„์น˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ง€๋„.

@ezrasandzerbell ํ”Œ๋Ÿฌ๊ทธ์ธ ์ž‘์—…์€ ๋ฌธ์„œ์™€ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ ์š”์ฒญ์— ๋Œ€ํ•ด ์ด (flutter/flutter) ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜์„ธ์š”.

Android์—์„œ ์ „์ฒด ํ™”๋ฉด ์žฅ์†Œ ์„ ํƒ๊ธฐ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ 1์ดˆ ๋™์•ˆ๋งŒ ํ‘œ์‹œ๋œ ๋‹ค์Œ ์ฃผ ํ”Œ๋Ÿฌํ„ฐ ์Šค๋ ˆ๋“œ์—์„œ onResume์„ ๊ฐ€์ ธ์˜ค๊ณ  ๊ทธ ์œ„์— ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ฝ์€ ๊ฒƒ์—์„œ ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ์ž‘๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ญ˜ ์ž˜๋ชปํ•˜๊ณ  ์žˆ์ฃ ? :)

๊ฐ์‚ฌ ํ•ด์š”!

 ```
    call.method == "showPlacesPicker" -> {
            val code = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(activity)
            if (GoogleApiAvailability.getInstance().showErrorDialogFragment(activity, code, REQUEST_GOOGLE_PLAY_SERVICES)) {
                return
            }

            //val intent = Intent(activity, PlacesActivity::class.java)
            //activity.startActivity(intent)

            var intentBuilder = PlacePicker.IntentBuilder()
            activity.startActivityForResult(intentBuilder.build(activity), PLACE_PICKER_REQUEST)

            placeResult = result
            return
        }

```

@pinkfish ์•„๋งˆ๋„ ํ”Œ๋Ÿฌํ„ฐ์—์„œ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๊ธฐ๋ณธ ๋ณด๊ธฐ์˜ ๋†’์ด๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค ์ข€ ๊นŒ๋‹ค๋กญ๋„ค์š”

@mravn-google google_mobile_maps ์‹œ๋„ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Android์—์„œ google_mobile_maps ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(gradle.properties์˜ GOOGLE_MAPS_API_KEY๋ฅผ ๋‚ด ํ‚ค๋กœ ๋Œ€์ฒด).

๊ทธ๋Ÿฌ๋‚˜ iOS์˜ ๊ฒฝ์šฐ ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Syncing files to device iPhone SE...
[VERBOSE-2:dart_error.cc(16)] Unhandled exception:
    MissingPluginException(No implementation found for method init on channel plugins.flutter.io/google_mobile_maps)
    #0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:153:7)
    <asynchronous suspension>
    #1      _channel (package:google_mobile_maps/google_mobile_maps.dart:16:9)
    #2      _channel (package:google_mobile_maps/google_mobile_maps.dart:14:21)
    #3      _GoogleMapsPlatformOverlay.create (package:google_mobile_maps/google_mobile_maps.dart:94:25)
    #4      PlatformOverlayController.attachTo.<anonymous closure> (package:google_mobile_maps/platform_overlay.dart:72:21)
    #5      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
    #6      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:938:9)
    #7      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:751:7)
    #8      Timer._createTimer.<anonymous closure> (dart:async/runtime/libtimer_patch.dart:21:15)
    #9      _Timer._runTimers (dart:isolate/runtime/libtimer_impl.dart:382:19)
    #10     _Timer._handleMessage (dart:isolate/runtime/libtimer_impl.dart:416:5)
...

๊ฒŒ๋‹ค๊ฐ€ ์ €๋Š” iOS ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์ง€์‹์ด ๊ฑฐ์˜ ์—†๊ณ  GOOGLE_MAPS_API_KEY๋ฅผ ์–ด๋””์— ํ• ๋‹นํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

====
์—…๋ฐ์ดํŠธ 2018.04.14: ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ํฅ๋ถ„๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. iOS ์ง€์›์ด ์•„์ง ์ค€๋น„๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ธฐ ์œ„ํ•ด ์ด์ „ ๊ธฐ์‚ฌ๋ฅผ ์ž˜ ์ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@EasonPai iOS๋Š” ์•„์ง ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ๋ช‡ ์ฃผ ์•ˆ์— ์ถ”๊ฐ€ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์˜ ์ถœ์‹œ์ผ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด React Native๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.(

@ocolot ์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค. ๊ณง ์ง€๋„ ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๊ณ  ์ •๋ง Flutter๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ์ด ์ง€๋„ ์ƒํ™ฉ ๋•Œ๋ฌธ์— RN์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

@brooth , ์ €๋Š” RN์—์„œ ์ง€๋„๋ฅผ ์ž‘๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๊ณ ๊ตฐ๋ถ„ํˆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์™„๋ฒฝํ•œ ์˜ˆ๊ฐ€ ์žˆ์œผ๋ฉด ๊ฒŒ์‹œํ•˜์‹ญ์‹œ์˜ค. ์ด์ œ ์ €๋Š” RN ๋˜๋Š” Flutter์˜ ์ง์ „์— ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์ผํ•œ ์ด์œ ๋Š” ๋ฒ„๊ทธ๊ฐ€ ์—†๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ๋งต์ž…๋‹ˆ๋‹ค. RN์—์„œ ์ž‘๋™ํ•˜๋Š” ์ง€๋„๋ฅผ ์–ป์œผ๋ฉด RN์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ƒฅ ์—ฌ๊ธฐ ๋‘๊ณ  ๊ฐˆ๊ฒŒ. ์ง€๋„ ์‚ฌ์šฉ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฃผ์†Œ๋ฅผ ๋ฌป๋Š” ๊ฒƒ์œผ๋กœ ์ œํ•œ๋˜๋Š” ๊ฒฝ์šฐ ์œ„์น˜ ๊ถŒํ•œ ์ฒ˜๋ฆฌ์—์„œ ์—ญ ์ง€์˜ค์ฝ”๋”ฉ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. https://pub.dartlang.org/packages/location_picker

์•ˆ๋…•ํ•˜์„ธ์š” alegsm, ์ €๋Š” ๊ท€ํ•˜์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•ด ๋งค์šฐ ๊ด€์‹ฌ์ด ์žˆ์ง€๋งŒ ์˜ˆ์ œ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค... ์ €๋Š” ์ดˆ๋ณด์ž์ž…๋‹ˆ๋‹ค. ๊ฒฝ๋„์™€ ์œ„๋„๋ฅผ ์„ค์ •ํ•˜๊ณ  ์ง€๋ฆฌ์  ์œ„์น˜๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณตํ•˜์‹  ๋ถ„ ๊ณ„์‹ ๊ฐ€์š”?
๋ˆ„๊ตฌ๋“ ์ง€ ๊ฐ„๋‹จํ•œ ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

@nitneuq33 ๋„ค, location_picker๋กœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐฐ๋‹ฌ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํ”„๋กฌํ”„ํŠธ๋กœ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. repo ๋‚ด๋ถ€์˜ ์˜ˆ์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งํฌ๋ฅผ ๋‚จ๊ฒจ์ฃผ์„ธ์š”
https://github.com/touwolf/location_picker/tree/master/example

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค alegsm, ๋‚˜๋Š” ์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ (์ด์ค‘ initialLat; ๋ฐ ์ด์ค‘ initialLong; ) ์„ค์ •์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋„ˆ๋ฌด ๋ฉ์ฒญํ•œ ๊ฒƒ ๊ฐ™์•„์š” ^^ ์ง€๋„๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์œ„๋„ ๋ณ€์ˆ˜์™€ ๊ฒฝ๋„ ๋ณ€์ˆ˜๋ฅผ ์˜ˆ์ œ์— ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์˜ˆ๋‚˜ ์‰ฌ์šด ์„ค๋ช…
ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค :)

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

flutter_map ์— ๋ฌด์Šจ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

flutter_map ๋Š” ์ข‹์€ ๋Œ€์•ˆ์ด์ง€๋งŒ ๊ธฐ๋ณธ ์ง€๋„ ๋ณด๊ธฐ๋ณด๋‹ค ํ›จ์”ฌ ๋‚˜์ฉ๋‹ˆ๋‹ค. ๋ฒกํ„ฐ์ง€๋„ ๋Œ€์‹  ํƒ€์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Apple์ง€๋„๋Š” ๋ฌผ๋ก  Google์ง€๋„๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. https://github.com/flutter/flutter/issues/ ์—์„œ ์ฐธ์กฐ๋˜๋Š” ์ด ๊ฒƒ(์˜ˆ: WebView, ๋‹ค๋ฅธ SDK)๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ๊ฐ„๊ฒฉ์„ ์ขํž ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ธฐ๋ณธ ๋ณด๊ธฐ ์ฝ˜ํ…์ธ ๋ฅผ flutter ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๊ธฐ๋ฅผ ๊ฐœ์ธ์ ์œผ๋กœ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

iOS๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋งˆ์ปค ํ”„๋ ˆ์Šค๋กœ ์ด๋™
์ผ๊ด€์„ฑ ์—†๋Š” ๋‹ค๊ฐํ˜• ๋ Œ๋”๋ง
Android์—์„œ ๋งˆ์ปค ์˜คํ”„์…‹์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ
(ํ•œ ๋ช…์˜ ์‚ฌ์šฉ์ž) IOS๊ฐ€ ์•„๋‹Œ Android์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
Z ์ธ๋ฑ์Šค๋Š” iOS์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
iOS์—์„œ ๋งˆ์ปค ํšŒ์ „์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ
iOS๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” Urltemplate
iOS์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ฝœ์•„์›ƒ ๋ฌธ์ œ
Marker onSelect๋Š” Android์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Android onclick์ด ์ •ํ™•ํ•˜์ง€ ์•Š์Œ
Android๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋งž์ถค ์ฝœ์•„์›ƒ์˜ ์ด๋ฏธ์ง€

๋‚˜๋Š” React Native๋ฅผ ๋ฒ„๋ฆฌ๊ณ  Flutter์˜ ์ง€๋„ ๊ฒฝํ—˜์ด ๋‚˜์—๊ฒŒ ์–ผ๋งˆ๋‚˜ ๋”์ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— Flutter๋กœ ๋Œ์•„์™”๊ณ , ๋‹ค๋ฅธ ํ”Œ๋žซํผ์ด ์•„๋‹Œ ํ•œ ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ์ „ํ˜€ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. xster๊ฐ€ Why Flutter ์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ flutter_map ์— ๋ฒกํ„ฐ ๋งต ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค๋ฉด(gmap/apple ๋งต ํ†ตํ•ฉ์ด ๊ฐ€๋Šฅํ•œ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค) ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ๊ฒฝํ—˜์ด ํ›จ์”ฌ ๋” ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. OEM ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ

flutter_map์€ Leaflet(Dart/Flutter๋กœ ๋‹ค์‹œ ์ž‘์„ฑ)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ฒกํ„ฐ ๋งต์„ ์ง€์›ํ•˜๋Š” Leaflet์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๋Š”
Dart/Flutter๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•˜์ง€๋งŒ mapbox์˜
๋ฒกํ„ฐ ์ง€๋„.

2018๋…„ 4์›” 24์ผ ํ™”์š”์ผ ์˜ค์ „ 10์‹œ 52๋ถ„, Hayden Flinner [email protected]
์ผ๋‹ค:

iOS๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋งˆ์ปค ํ”„๋ ˆ์Šค๋กœ ์ด๋™
https://github.com/react-community/react-native-maps/issues/1374
์ผ๊ด€์„ฑ ์—†๋Š” ๋‹ค๊ฐํ˜• ๋ Œ๋”๋ง
https://github.com/react-community/react-native-maps/issues/2025
Android์—์„œ ๋งˆ์ปค ์˜คํ”„์…‹์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ
https://github.com/react-community/react-native-maps/issues/2173
(ํ•œ ๋ช…์˜ ์‚ฌ์šฉ์ž) IOS๊ฐ€ ์•„๋‹Œ Android์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
https://github.com/react-community/react-native-maps/issues/2199
Z ์ธ๋ฑ์Šค๋Š” iOS์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
https://github.com/react-community/react-native-maps/issues/1671
iOS์—์„œ ๋งˆ์ปค ํšŒ์ „์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ
https://github.com/react-community/react-native-maps/issues/2186
iOS๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” Urltemplate
https://github.com/react-community/react-native-maps/issues/2200
iOS์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ฝœ์•„์›ƒ ๋ฌธ์ œ
https://github.com/react-community/react-native-maps/issues/1062
Marker onSelect๋Š” Android์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
https://github.com/react-community/react-native-maps/issues/114
Android onclick์ด ์ •ํ™•ํ•˜์ง€ ์•Š์Œ
https://github.com/react-community/react-native-maps/issues/1562
Android๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋งž์ถค ์ฝœ์•„์›ƒ์˜ ์ด๋ฏธ์ง€
https://github.com/react-community/react-native-maps/issues/1870

์ง€๋„ ์ง€์›์ด ๋„ˆ๋ฌด ๋”์ฐํ•ด์„œ React Native๋ฅผ ๋ฒ„๋ฆฌ๊ณ 
ํ•œ ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•˜๊ณ  ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ๋Š” ์ „ํ˜€ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋ฒกํ„ฐ๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ๊ฒฝํ—˜์ด ํ›จ์”ฌ ๋” ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
flutter_map์— ๋Œ€ํ•œ ์ง€๋„ ์ง€์›(gmap/apple ์ง€๋„ ํ†ตํ•ฉ์ธ์ง€ ์—ฌ๋ถ€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?), xster๊ฐ€ ์™œ Flutter์—์„œ ์ผ๋Š”์ง€์™€ ๊ฐ™์€ ์ด์œ ๋กœ
OEM ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
https://medium.com/flutter-io/why-flutter-doesnt-use-oem-widgets-94746e812510

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-384022436 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AADEteKhVTC5rtZ5Er4uVSwYDYeGfDDkks5tr2ZlgaJpZM4Ge5yO
.

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์ตœ์šฐ์„  ์ˆœ์œ„๋กœ ์ƒ๊ฐํ•˜๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ œ๋Œ€๋กœ ํ’€๋ ค๋ฉด ๊ฝค ๋ณต์žกํ•œ ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง€์—ฐ๋œ ์  ์‚ฌ๊ณผ๋“œ๋ฆฌ๋ฉฐ ์–‘ํ•ด ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์ข…์†์„ฑ์€ ๊ดœ์ฐฎ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ๋‚ด ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค

1- ๋‚˜๋Š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค

์ƒˆ๋กœ์šด ์•„์ด์ฝ˜ ๋ฒ„ํŠผ(
์•„์ด์ฝ˜: ์ƒˆ ์•„์ด์ฝ˜(Icons.gps_fixed),
onPressed: ()
๋น„๋™๊ธฐ {

    SmsMessage message = new SmsMessage(address, '$loc1');
    message.addStateListener((state) {
      if (state == SmsMessageState.Sent) {
        print("SMS is sent!");
      } else if (state == SmsMessageState.Delivered) {

        print("SMS is receive!")

_onSmsReceived;

}
});
sender.sendSms(๋ฉ”์‹œ์ง€);
}

2- "๋ณด๋‚ธ"์ด ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

3- ์ˆ˜์‹ ์ด ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

4 "msg" ์ˆ˜์‹ ๊ณผ ํ•จ๊ป˜ "_onSmsReceived"์—์„œ ์‹œ์ž‘

๋ฌดํšจ _onSmsReceived(SmsMessage SMS) ๋น„๋™๊ธฐ {

_smsSubscription = _receiver.onSmsReceived.listen((SmsMessage ๋ฉ”์‹œ์ง€)
=> _lastMessage = ๋ฉ”์‹œ์ง€);

๊ทธ๋Ÿฌ๋‚˜ ์ข‹์€ SMS๋ฅผ ๋“ค์œผ๋ ค๋ฉด ํ•ญ์ƒ 2 ๋ฒˆ ํด๋ฆญํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

2018-04-25 2:13 GMT+02:00 Ian Hickson [email protected] :

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์ตœ์šฐ์„  ์ˆœ์œ„๋กœ ์ƒ๊ฐํ•˜๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๊ณ ์žˆ๋‹ค
์ œ๋Œ€๋กœ ํ’€๊ธฐ์—๋Š” ๊ฝค ๋ณต์žกํ•œ ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ
์ง€์—ฐ์— ๋Œ€ํ•ด ์‚ฌ๊ณผํ•˜๊ณ  ์–‘ํ•ด๋ฅผ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-384119563 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AaWFy_Rfxcql60HUsZYb6f8-kyxOJMwks5tr7-hgaJpZM4Ge5yO
.

์ €๋Š” ์ด Github ์ €์žฅ์†Œ ์™€ Pub ์—์„œ ์ˆœ์ˆ˜ Dart๋กœ ์ž‘์„ฑ๋œ Flutter์šฉ ์˜คํ”ˆ ์†Œ์Šค ๋งต ์œ„์ ฏ์„ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

MapView Screenshot

Mapbox (๋ฆฌํ”Œ๋ฆฟ๊ณผ ๋‹ค์–‘ํ•œ ๋ฒกํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํšŒ์‚ฌ
๋ฐ ๋ž˜์Šคํ„ฐ ๋งต ํƒ€์ผ) Flutter์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ฒกํ„ฐ ๋งต์ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ
์ด์ œ Android์—์„œ๋งŒ ์ž‘๋™ํ•˜์ง€๋งŒ ํ…์Šค์ฒ˜ ๋งต์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—
๊ธฐ์ˆ (์ธ๋ผ์ธ ๋น„๋””์˜ค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผ)์€ ์–ด๋ ต์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
iOS์—์„œ๋„ ์ž‘๋™ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

https://github.com/mapbox/flutter-mapbox-gl

๋‚˜๋Š” ๊ทธ๋“ค์ด pull ์š”์ฒญ์„ ๋ฐ›๊ณ  ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์ง€๋„ ์†”๋ฃจ์…˜์„ ๋ณด๋‹ˆ ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค.

2018๋…„ 4์›” 24์ผ ํ™”์š”์ผ ์˜ค์ „ 11์‹œ 6๋ถ„์— Wm Leler [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

flutter_map์€ Leaflet(Dart/Flutter๋กœ ๋‹ค์‹œ ์ž‘์„ฑ)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ฒกํ„ฐ ๋งต์„ ์ง€์›ํ•˜๋Š” Leaflet์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๋Š”
Dart/Flutter๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•˜์ง€๋งŒ mapbox์˜
๋ฒกํ„ฐ ์ง€๋„.

2018๋…„ 4์›” 24์ผ ํ™”์š”์ผ ์˜ค์ „ 10์‹œ 52๋ถ„, Hayden Flinner < [email protected]

์ผ๋‹ค:

iOS๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋งˆ์ปค ํ”„๋ ˆ์Šค๋กœ ์ด๋™
https://github.com/react-community/react-native-maps/issues/1374
์ผ๊ด€์„ฑ ์—†๋Š” ๋‹ค๊ฐํ˜• ๋ Œ๋”๋ง
https://github.com/react-community/react-native-maps/issues/2025
Android์—์„œ ๋งˆ์ปค ์˜คํ”„์…‹์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ
https://github.com/react-community/react-native-maps/issues/2173
(ํ•œ ๋ช…์˜ ์‚ฌ์šฉ์ž) IOS๊ฐ€ ์•„๋‹Œ Android์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
https://github.com/react-community/react-native-maps/issues/2199
Z ์ธ๋ฑ์Šค๋Š” iOS์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
https://github.com/react-community/react-native-maps/issues/1671
iOS์—์„œ ๋งˆ์ปค ํšŒ์ „์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ
https://github.com/react-community/react-native-maps/issues/2186
iOS๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” Urltemplate
https://github.com/react-community/react-native-maps/issues/2200
iOS์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ฝœ์•„์›ƒ ๋ฌธ์ œ
https://github.com/react-community/react-native-maps/issues/1062
Marker onSelect๋Š” Android์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
https://github.com/react-community/react-native-maps/issues/114
Android onclick์ด ์ •ํ™•ํ•˜์ง€ ์•Š์Œ
https://github.com/react-community/react-native-maps/issues/1562
Android๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋งž์ถค ์ฝœ์•„์›ƒ์˜ ์ด๋ฏธ์ง€
https://github.com/react-community/react-native-maps/issues/1870

์ง€๋„ ์ง€์›์ด ๋„ˆ๋ฌด ๋”์ฐํ•ด์„œ React Native๋ฅผ ๋ฒ„๋ฆฌ๊ณ 
ํ•œ ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•˜๊ณ  ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ๋Š” ์ „ํ˜€ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋ฒกํ„ฐ๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ๊ฒฝํ—˜์ด ํ›จ์”ฌ ๋” ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
flutter_map์— ๋Œ€ํ•œ ์ง€๋„ ์ง€์›(gmap/apple ์ง€๋„ ํ†ตํ•ฉ์ธ์ง€ ์—ฌ๋ถ€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?), xster๊ฐ€ ์™œ Flutter์—์„œ ์ผ๋Š”์ง€์™€ ๊ฐ™์€ ์ด์œ ๋กœ
OEM ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
https://medium.com/flutter-io/why-flutter-doesnt-use-oem-widgets-94746e812510

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-384022436 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AADEteKhVTC5rtZ5Er4uVSwYDYeGfDDkks5tr2ZlgaJpZM4Ge5yO
.

@mravn-google google_mobile_maps ์ €์žฅ์†Œ๊ฐ€ ์‚ฌ๋ผ์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ •๋ณด๊ฐ€ ์žˆ๋‚˜์š”?

@jposuna ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌํ„ฐ/ํ”Œ๋Ÿฌ๊ทธ์ธ#518 ์ฐธ์กฐ

์ธ๋ผ์ธ 'Google ์ง€๋„' ์ง€์›์„ ์ถ”์ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ํ˜„์žฌ ๋ฒ„๊ทธ์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

@mit-mit ๋ช…ํ™•ํžˆ ํ•˜์ž๋ฉด, Flutter๊ฐ€ ์˜คํ”„๋ผ์ธ ์ง€๋„๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์ง€ __์•Š์Šต๋‹ˆ๋‹ค__๋Š” ๋œป์ธ๊ฐ€์š”?

์ œ ๋Œ“๊ธ€์€ ๊ทธ๋Ÿฐ ๋ฐœ์–ธ์„ ํ•˜๋ ค๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์žฅ๊ธฐ์ ์ธ ๋ชฉํ‘œ๋Š” Android ๋ฐ iOS API์—์„œ Google ์ง€๋„๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ API ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ Flutter ์œ„์ ฏ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•˜๋Š” '์ธ๋ผ์ธ'์ด๋ผ๋Š” ์šฉ์–ด๋Š” Flutter Google ์ง€๋„๊ฐ€ Flutter ์œ„์ ฏ์ด๋ผ๋Š” ๋ชฉํ‘œ๋ฅผ ํฌ์ฐฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ Flutter ์œ„์ ฏ ์‚ฌ์ด์— '์ธ๋ผ์ธ'์œผ๋กœ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ(์˜†์—, ์•„๋ž˜์— ์Šคํƒ, ์œ„์— ์Šคํƒ ๋“ฑ).

@mit-mit ๊ทธ ์žฅ๊ธฐ๊ฐ„์— ๋Œ€ํ•œ ์ผ์ •์ด๋‚˜ ์˜ˆ์ƒ ์ถœ์‹œ ๋‚ ์งœ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ํ”„๋กœ์ ํŠธ๊ฐ€ ๋“ค์–ด์˜ค๊ณ  Flutter๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์ง€๋งŒ Google ์ง€๋„ ์ง€์›์ด ์—†์œผ๋ฉด ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.(Java/Swift).

@feinstein google_maps_flutter ์•„๋ž˜์˜ Flutter/plugins ์ €์žฅ์†Œ์— ์ž‘๋™ํ•˜๋Š” ๋ฒ ์–ด ๋ณธ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

@mit-mit ์‹ค์ œ๋กœ, ์ผ๋ถ€ ์žฅ๊ธฐ ๋ฆด๋ฆฌ์Šค ๋‚ ์งœ๋Š” ์ •๋ง ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌํ„ฐ์˜ ์ „์ฒด์ ์ธ ์•„์ด๋””์–ด๋Š” ๋†€๋ž์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ Maps๊ฐ€ ์—†์œผ๋ฉด Flutter์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๊ฑฐ์˜ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐœ ์ผ์ •์ด ์—†์Šต๋‹ˆ๋‹ค :-(.

๋ช‡ ๊ฐ€์ง€ ์˜๊ฒฌ์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ตœ์‹  ์ง„ํ–‰ ์ƒํ™ฉ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์žˆ์œผ๋ฉฐ ํ˜„์žฌ ์ผ๋ถ€ ๋ฌธ์„œํ™”๋œ ๊ฒฐํ•จ์ด ์žˆ๋Š” ๋งค์šฐ ์ดˆ๊ธฐ ๋ฒ„์ „์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ์‚ดํŽด๋ณด๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” map_view์—์„œ ๋„๊ตฌ ๋ชจ์Œ์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜๋Š” ์œ„์ ฏ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค(floatingactionbutton). https://pub.dartlang.org/packages/map_view

ํ˜„์žฌ map_view๋Š” ๊ฒ€์€์ƒ‰ ๋„๊ตฌ ๋ชจ์Œ์ด ์žˆ๋Š” ์™ผ์ชฝ์œผ๋กœ ์Šฌ๋ผ์ด๋“œ๊ฐ€ ์žˆ๋Š” ์ƒˆ ์ฐฝ ์ „์ฒด ํ™”๋ฉด์„ ์—ฝ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์ „ํ™˜, ์ƒ‰์ƒ ๋„๊ตฌ ๋ชจ์Œ์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๊ณ  ๋’ค๋กœ ๋Œ์•„๊ฐˆ ํ•„์š” ์—†์ด ์ƒํ˜ธ ์ž‘์šฉํ•  ์œ„์ ฏ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ „์ฒด ํ™”๋ฉด์ด ์•„๋‹Œ ํŒ์—… ์ƒ์ž์— ๋™์  ์ง€๋„๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์—†๋‚˜์š”?

๊ฐ์‚ฌ ํ•ด์š”

@nitneuq33000 map_view ํ”Œ๋Ÿฌ๊ทธ์ธ์€ Flutter ํŒ€์—์„œ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. https://github.com/apptreesoftware/flutter_google_map_view์—์„œ ๋ฌธ์ œ๋ฅผ ์—ฌ์‹ญ์‹œ์˜ค.

@mravn-google ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋กœ๋“œ๋งต์— ํด๋ฆฌ๋ผ์ธ์ด ์ง€์›๋ฉ๋‹ˆ๊นŒ?

(์ง€๊ธˆ๊นŒ์ง€ /example ํด๋”์—์„œ ๋ณธ ๊ฒƒ์€ ์ •๋ง ๋ฉ‹์ ธ ๋ณด์ž…๋‹ˆ๋‹ค!)

@bjornbjorn ์ „์ฒด API ์ ์šฉ ๋ฒ”์œ„๋Š” ์˜๋ฏธ ์žˆ๋Š” ๋กœ๋“œ๋งต์— ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ์ˆœ์œ„๋Š” ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ๋งŽ์ด ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋Šฅ ์š”์ฒญ ์— ๋ฌธ์ œ๋ฅผ ๋งŒ๋“œ ์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ฐฌ์„ฑ ํˆฌํ‘œ๋ฅผ ํ•˜๊ฑฐ๋‚˜ PR์„ ์ œ์ถœํ•  ๋™๊ธฐ๋ฅผ ๋Š๋‚„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…ํ™•ํžˆ ํ•˜์ž๋ฉด, ์—ฌ๊ธฐ ๋‚ด ์˜๊ฒฌ์€ google_maps_flutter ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. map_view ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์งˆ๋ฌธ์€ AppTree ํŒ€์— ๋ฌธ์˜ํ•˜์‹ญ์‹œ์˜ค.

์˜ˆ, ์ €๋Š” google_maps_flutter ๋„ ์–ธ๊ธ‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค: https://github.com/flutter/flutter/issues/17832

@mravn-google ์ˆœ์ˆ˜ Dart ์ฝ”๋“œ๋กœ ์ง์ ‘ ์ง€๋„ ์œ„์ ฏ์„ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์œ„์˜ ๋‚ด ๊ฒŒ์‹œ๋ฌผ ์ฐธ์กฐ). ํ˜„์žฌ ๋‚˜๋Š” ๋‚ด ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋” ๋‚˜์•„์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

PR์„ ๋งŒ๋“ค๊ณ  ๋‚ด ์ž‘์—…์ด Flutter์— ๋ณ‘ํ•ฉ๋˜๋Š” ๊ฒƒ์„ ๋ณด๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ๊ณ  ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@xclud Flutter์˜ ๋งฅ๋ฝ์—์„œ ๋งต์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๊ทธ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋Œ์–ด Flutter(= Flutter ํ”„๋ ˆ์ž„์›Œํฌ)์— ๋„ฃ๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋งค์šฐ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๋งต ํŒจํ‚ค์ง€๋ฅผ ์‹œ๋„ํ•˜๊ณ  ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

google_maps_flutter ํŒจํ‚ค์ง€๋Š” Flutter ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ณ„๊ฐœ๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. Google ์ง€๋„์šฉ iOS/Android API๋ฅผ ๋งค์šฐ ๋ฐ€์ ‘ํ•˜๊ฒŒ ๋ฏธ๋Ÿฌ๋งํ•  ์˜ˆ์ •์ด๋ฉฐ ์ผ๋ถ€ ์ž‘์—…์—๋Š” ๊ธฐ๋ณธ ์ง€๋„ ๋ณด๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•œ ๋น„๋™๊ธฐ ํ”Œ๋žซํผ ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ˆœ์ˆ˜ํ•œ Dart ์†”๋ฃจ์…˜์ธ ํŒจํ‚ค์ง€๋Š” ๊ธฐ์กด GoogleMaps Android ๋ฐ iOS API๋ฅผ ๋ฏธ๋Ÿฌ๋งํ•˜๊ฑฐ๋‚˜ ํ˜ธ์ถœํ•  ํ•„์š”๊ฐ€ ์—†๊ณ  ๋น„๋™๊ธฐ์‹ ํ”Œ๋žซํผ ๋ฉ”์‹œ์ง€๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๋‹ค๋ฅธ API๋ฅผ ๋…ธ์ถœํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

@mravn-google ์ˆœ์ˆ˜ํ•œ Dart ์†”๋ฃจ์…˜์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŒ๋“œ๋Š” ๋Œ€์‹  ํ”Œ๋žซํผ ๋„ค์ดํ‹ฐ๋ธŒ ๋งต์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ? Flutter ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ†ตํ•ฉํ•˜์ง€ ์•Š์œผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” Flutter๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ์ƒˆ๋กœ์šด ์ฝ”๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ตํ•ฉํ•˜๊ณ  ๋‚ด๋ถ€ ํ”Œ๋žซํผ์„ ์ตœ๋Œ€ํ•œ ์ ๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  Dart์—์„œ ๋™์ž‘์„ ๋ณต์ œํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ Œ๋”๋ง ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ž„์‹œ ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด Google ์ง€๋„ ํ‚ค ์‚ฌ์šฉ์˜ ์ผ๋ถ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ง€๋„์— ๋Œ€ํ•œ ์ตœ๊ณ ์˜ ์†”๋ฃจ์…˜์€ ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ •๋ง๋กœ
์‹ค์ œ Google ์ง€๋„๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ณ ๋„๋กœ ํ•„์š”ํ•œ ๋‹ค๋ฅธ ๊ณ ๊ฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค
๋งž์ถคํ˜• ์ง€๋„.

Flutter๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ง€๋„ ์†”๋ฃจ์…˜์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ(๋ชจ๋“ 
์ง€๋„์˜ ์š”์†Œ๋Š” Flutter ์œ„์ ฏ์ž„), ํ™•์ธํ•˜์„ธ์š”.
https://github.com/apptreesoftware/flutter_map

2018๋…„ 5์›” 23์ผ ์ˆ˜์š”์ผ ์˜ค์ „ 8์‹œ 55๋ถ„์— feinstein [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@mravn-gooogle ํ”Œ๋žซํผ ๋„ค์ดํ‹ฐ๋ธŒ ๋งต์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ๋Š”์ง€,
์ˆœ์ˆ˜ํ•œ Dart ์†”๋ฃจ์…˜์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŒ๋“œ๋Š” ๋Œ€์‹ ? ์™œ ์•ˆํ•ด
Flutter ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ†ตํ•ฉํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” Flutter๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋กœ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚ด๋ถ€ ํ”Œ๋žซํผ์„ ๊ฐ€๋Šฅํ•œ ํ•œ ์ ๊ฒŒ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ธฐ๋ณธ
Dart์—์„œ ๋™์ž‘์„ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ Œ๋”๋ง ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ž„์‹œ ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ด€๋ จ์ด ์žˆ๋Š”์ง€
Google ์ง€๋„ ํ‚ค ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฌธ์ œ์— ๋Œ€ํ•ด

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-391399983 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AADEtZTlI-eGZyGlVb5exvz9kyJyiQHuks5t1YaLgaJpZM4Ge5yO
.

@wmleler ์ฃ„์†กํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Flutter์˜ ์ผ๋ถ€๋กœ Dart์—์„œ "์‹ค์ œ Google ์ง€๋„"๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ณ„๋„์˜ ์„œ๋น„์Šค/์„œ๋ฒ„์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ํ”ผํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
ํ”Œ๋Ÿฌํ„ฐ ์ฝ”์–ด.

์ด๊ฒƒ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณต์‹ ํ”Œ๋Ÿฌํ„ฐ๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
ํ”Œ๋Ÿฌ๊ทธ์ธ ๋˜๋Š” ํƒ€์‚ฌ.
2018๋…„ 5์›” 23์ผ ์ˆ˜์š”์ผ ์˜คํ›„ 12:55 feinstein [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@wmleler https://github.com/wmleler ์ฃ„์†กํ•˜์ง€๋งŒ ์ €๋Š” ์—ฌ์ „ํžˆ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค
์ดํ•ดํ•ด, Dart์—์„œ "์ง„์งœ Google ์ง€๋„"๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ญ๊ฐ€ ๋ฌธ์ œ์ธ์ง€
Flutter์˜ ์ผ๋ถ€๋กœ? ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-391421822 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AHAsITlRVopqGvZ9Dj044wp_mjoyyEoLks5t1ZR5gaJpZM4Ge5yO
.

@feinstein Google Maps๋Š” ํ•˜๋‚˜์˜ ์ง€๋„ ์ œ๊ณต์—…์ฒด์ผ ๋ฟ์ž…๋‹ˆ๋‹ค(์ค‘์š”ํ•˜๊ธด ํ•˜์ง€๋งŒ). ๊ทธ๋Ÿฌ๋‚˜ Flutter ์•ฑ์€ MapBox ๋ฐ ๊ธฐํƒ€ ์ง€๋„ ์ œ๊ณต์—…์ฒด์™€๋„ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Flutter๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋ชจ๋†€๋ฆฌ์‹ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— Flutter ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ณ„๋„์˜ ํŒจํ‚ค์ง€์™€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ์ด์ƒ์ ์ธ ์„ธ๊ณ„์—์„œ Google ์ง€๋„ ํŒ€์€ ์ˆœ์ˆ˜ํ•œ Dart ์ง€๋„ ์œ„์ ฏ์„ Flutter ํŒจํ‚ค์ง€๋กœ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. MapBox๋Š” ๊ฐ™์€ ๊ฒƒ์„ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋“ฑ๋“ฑ. Flutter๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋Œ€์ค‘ํ™”๋˜๋ฉด ์ด๊ฒƒ์€ ์ผ์–ด๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ๋™์•ˆ ์šฐ๋ฆฌ๋Š” ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ง€๋„ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ†ตํ•ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@mravn-google ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค!

๊ทธ ์ฃผ์ œ์— ๋Œ€ํ•ด Dagger 2, Retrofit, Picasso, Room, RxAndroid, Junit, Expresso ๋“ฑ๊ณผ ๊ฐ™์ด ํ˜„์žฌ Android์šฉ Java์™€ ๊ฐ™์€ ์ง€์› ์ƒํƒœ๊ณ„๊ฐ€ ์žˆ๋‹ค๋ฉด Flutter๊ฐ€ ํ›จ์”ฌ ๋” ๋นจ๋ฆฌ ์ฑ„ํƒ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (๋‚˜๋Š” Flutter์—์„œ ์ด๋ฏธ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ด ๊ธฐ๋Šฅ ์ค‘ ์ผ๋ถ€๋ฅผ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋‚ด ๋ชฉ๋ก์„ ์ฒ ์ €ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค). ์ด๊ฒƒ์ด ๋งŽ์€ ๋ถ„๋“ค์—๊ฒŒ ์š”๊ตฌ๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด์ „ ํ”Œ๋žซํผ์˜ ์‰ฌ์šด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋ณด๊ณ  ์•„๋ฌด ๊ฒƒ๋„ ๋†“์น˜์ง€ ์•Š์œผ๋ฉด ์ฑ„ํƒ ์†๋„๊ฐ€ ๋นจ๋ผ์ง€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@feinstein https://pub.dartlang.org/flutter ์™€ ๊ฐ™์€ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

@Hixie ๋Š” ์ด ๋ ˆ๋”ง ๊ฒŒ์‹œ๋ฌผ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

https://www.reddit.com/r/FlutterDev/comments/839j38/dartflutter_ecosystem/?utm_source=reddit-android

๊ทธ๋ฆฌ๊ณ  ์ œ๊ฐ€ ๋ฐ›์€ ๋‹ต๋ณ€์€ DI, REST(Retrofit), JSON(GSON, Jackson)์€ ์•„์ง ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค... ๋ณ€๊ฒฝ๋˜์—ˆ๋‚˜์š”?

@feinstein ์ด ๋…ผ์˜๋ฅผ ๋ณ„๋„์˜ ๋ฒ„๊ทธ๋กœ ์˜ฎ๊ธฐ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ˆ„๋ฝ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ๊ฐ ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด ๋ฒ„๊ทธ๋ฅผ ์‹ ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋Ÿฌ๋ฉด ๊ฐ ๊ฒฝ์šฐ์— ํ•„์š”ํ•œ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”.

@Hixie , ํ™•์‹คํ•ฉ๋‹ˆ๋‹ค!

ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฐ€์ง€๊ณ  ๋†€์•˜๋Š”๋ฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์ „์ฒด ํ™”๋ฉด์—์„œ ์ง€๋„ ์œ„์ ฏ์ด ํฌํ•จ๋œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๊ณ  "๋’ค๋กœ"(๋˜๋Š” ๋‹ค๋ฅธ ์ž‘์—…)๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ง€๋„ ์œ„์ ฏ์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ์˜ˆ์ œ ํด๋”๋Š” ์•ฑ์„ ๋งŒ๋“ค ๋•Œ navigatorObservers๋ฅผ ์ฒจ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋ฌธ์ œ๋Š” GoogleMapOverlayController๊ฐ€ ์ƒ์„ฑ๋  ๋„ˆ๋น„์™€ ๋†’์ด๊ฐ€ ํ•„์š”ํ•˜๊ณ  ํ™”๋ฉด์˜ ํฌ๊ธฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋˜ ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ LayoutBuilder(BoxConstraint ๊ฐ€์ ธ์˜ค๊ธฐ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ •์ ์œผ๋กœ ์ˆ˜ํ–‰). ์ง€๋„๋ฅผ ๋Œ€ํ™”ํ˜•์œผ๋กœ ๋งŒ๋“ค๋ ค๋ฉด ์ˆ˜๋™์œผ๋กœ ์ปจํ…์ŠคํŠธ์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋–ผ์–ด๋‚ผ ๋ฐฉ๋ฒ•์ด ์—†์—ˆ์–ด์š”. ๋’ค๋กœ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์•ฑ์ด ๋’ค๋กœ ํƒ์ƒ‰ํ•˜์ง€๋งŒ ์ง€๋„๋Š” ์—ฌ์ „ํžˆ ๋ชจ๋“  ์ฝ˜ํ…์ธ  ์œ„์— ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ๋‚ด๊ฐ€ ์‹œ๋„ํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

ํŽ˜์ด์ง€ 1
Navigator.push(context, new MaterialPageRoute(builder: (context) => new GoogleMapsPage()));

Google ์ง€๋„ ํŽ˜์ด์ง€

class GoogleMapsPage extends StatelessWidget {
  <strong i="15">@override</strong>
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(title: const Text("Test Maps")),
      body: new GoogleMaps(),
    );
  }
}

class GoogleMaps extends StatefulWidget {
  GoogleMaps({Key key}) : super(key: key);

  <strong i="16">@override</strong>
  _GoogleMaps createState() => new _GoogleMaps();
}

class _GoogleMaps extends State<GoogleMaps> {

  GoogleMapOverlayController mapOverlayController;

  <strong i="17">@override</strong>
  Widget build(BuildContext context) {
    return new Center(
      child: LayoutBuilder(
          builder: (BuildContext context, BoxConstraints constraints) {
        mapOverlayController = GoogleMapOverlayController.fromSize(
          width: constraints.maxWidth,
          height: constraints.maxHeight,
          options: GoogleMapOptions(
            cameraPosition: const CameraPosition(
              target: LatLng(-34.022631, 150.620685),
              zoom: 15.0,
            ),
            tiltGesturesEnabled: false,
            rotateGesturesEnabled: false,
          ),
        );
        mapOverlayController.overlayController.activateOverlay();
        mapOverlayController.overlayController.attachTo(context);
        return GoogleMapOverlay(controller: mapOverlayController);
      }),
    );
  }

  <strong i="18">@override</strong>
  void deactivate() {
    super.deactivate();
    mapOverlayController.overlayController.deactivateOverlay();
    mapOverlayController.overlayController.detach();
    mapOverlayController.overlayController.dispose();
    mapOverlayController.mapController.dispose();
    mapOverlayController.dispose();
  }
}

๋„์›€์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”!

@jposuna readme ํŒŒ์ผ์— ๋ช…์‹œ๋œ ๋ฐ”์™€ ๊ฐ™์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ GoogleMapController Dart API์— ์ƒ๋ช…์„ ๋ถˆ์–ด๋„ฃ๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ฏธ๋ฆฌ๋ณด๊ธฐ์ž…๋‹ˆ๋‹ค. Flutter ํŒ€์€ ์šฐ๋ฆฌ๊ฐ€ ๋นŒ๋“œํ•  ๋•Œ GoogleMapController API๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฒƒ ์ด์ƒ์œผ๋กœ ์ง€๋„์— ๋Œ€ํ•œ ํ”Œ๋žซํผ ์˜ค๋ฒ„๋ ˆ์ด๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ „์ฒด ํ™”๋ฉด Google ์ง€๋„๋Š” map_view ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@mravn-google ๋น ๋ฅธ ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ๋งํ•ด์„œ, ๋‚ด๊ฐ€ ๊ฒช๊ณ  ์žˆ๋Š” ํ•œ๊ณ„๋Š” ์ „์ฒด ํ™”๋ฉด ์ง€์›์ด ์•„๋‹ˆ๋ผ(์ „์ฒด ํ™”๋ฉด์œผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ์Œ) ํƒ์ƒ‰ํ•  ๋•Œ ํ™”๋ฉด์—์„œ ์‚ฌ๋ผ์ง€๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ํ”Œ๋Ÿฌํ„ฐ์— ์™„์ „ํžˆ ์ต์ˆ™ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋„ํ”ผํ•˜๋Š” ์ „๋ฌธ ์šฉ์–ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ README("์ด ์ž‘์—…์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜๊ณ  ์†๋„๋ฅผ ๋†’์ด๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ฌธ์ œ ๋ฐ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ") ๋ฐ ์ด์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์ด์ „ ์˜๊ฒฌ ์Šค๋ ˆ๋“œ ("์ „์ฒด API ์ ์šฉ ๋ฒ”์œ„๋Š” ์˜๋ฏธ ์žˆ๋Š” ๋กœ๋“œ๋งต์— ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ์ˆœ์œ„๋Š” ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ์— ์˜ํ•ด ๋งค์šฐ ๋งŽ์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.") ์‚ฌ์šฉ ์‚ฌ๋ก€ ๋ฐ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ํ™•์žฅ๋˜๋Š” ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ท€ํ•˜์˜ ๋‹ต๋ณ€์— ๋”ฐ๋ฅด๋ฉด ๋ณธ๊ฒฉ์ ์ธ ์†”๋ฃจ์…˜์œผ๋กœ ๋ฐœ์ „ํ•˜๊ธฐ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‹ค์ œ ์†”๋ฃจ์…˜ ์ด์ „์— ๊ฐœ๋… ์ฆ๋ช… ์—ญํ• ์„ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ณ  ์žˆ๋Š” ๊ฑด๊ฐ€์š”? ์–ด๋Š ์ชฝ์ด๋“  ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์†”๋ฃจ์…˜์œผ๋กœ ์ „์ฒด ํ†ตํ•ฉ์„ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ ์ „์ฒด ํ†ตํ•ฉ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๊ธฐ ์ „์— ์ƒํ™ฉ์„ ์ดํ•ดํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

@jposuna ์šฐ๋ฆฌ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ GoogleMapController ๋ถ€๋ถ„์„ โ€‹โ€‹1) ์ง€๋„ ๋ณด๊ธฐ์— ํ‘œ์‹œ๋˜๋Š” ํ•ญ๋ชฉ์„ ์ œ์–ดํ•˜๊ณ  ํ•ด๋‹น ๋ณด๊ธฐ์™€์˜ ์‚ฌ์šฉ์ž ์ƒํ˜ธ ์ž‘์šฉ์— ์‘๋‹ตํ•˜๊ธฐ ์œ„ํ•œ ๊ด€๋ จ Google Maps API์˜ ์ „์ฒด ๋ฒ”์œ„๋ฅผ ํฌํ•จํ•˜๋Š” ์ „์ฒด ์†”๋ฃจ์…˜์œผ๋กœ ํ™•์žฅํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 2) ์ง€๋„ ๋ณด๊ธฐ๋ฅผ ํ‘œ์ค€ ์œ„์ ฏ์œผ๋กœ ํ†ตํ•ฉํ•˜์—ฌ ํƒ์ƒ‰์„ ๊ตฌํ˜„ํ•˜๋Š” ์œ„์ ฏ์„ ํฌํ•จํ•˜์—ฌ ๋‹ค๋ฅธ ์œ„์ ฏ๊ณผ ์ž์œ ๋กญ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GoogleMapOverlayController ๋ฐ ์ผ๋ฐ˜์ ์œผ๋กœ ํ”Œ๋žซํผ ์˜ค๋ฒ„๋ ˆ์ด๋Š” ํ˜„์žฌ ์‹ค์ œ ์œ„์ ฏ ํ†ตํ•ฉ์— ํ•„์š”ํ•œ Google Maps API๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ž„์‹œ ์†”๋ฃจ์…˜์ธ 2)๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ฒ„ํŒ€๋ชฉ์ž…๋‹ˆ๋‹ค. ๋ชฉ๋ฐœ์€ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€๊ณ ์ž ํ•˜๋Š” ๊ณณ์œผ๋กœ ๋ฐ๋ ค๋‹ค ์ค„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ชฉ๋ฐœ๋กœ ์ผํ•  ์ƒ๊ฐ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ GoogleMapOverlayController ์— ์˜์กดํ•˜๋Š” ์ฝ”๋“œ ๋ถ€๋ถ„์ด ๊ฒฐ๊ตญ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”Œ๋žซํผ ์˜ค๋ฒ„๋ ˆ์ด์˜ ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ์—์„œ ํ•ดํ‚น์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ํ•ดํ‚น์€ ๊ฒฐ๊ตญ ๋ถˆํ•„์š”ํ•ด์ง‘๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ํšŒ์‚ฌ๋Š” Flutter์—์„œ Google ์ง€๋„ ์ง€์›์„ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@tieorange ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋ณธ ์•ฑ์„ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ํฅ๋ถ„์˜ ๊ด€์šฉ์  ํ‘œํ˜„์ž…๋‹ˆ๊นŒ?

๋˜ํ•œ Flutter์— ๋Œ€ํ•œ ์ง€๋„ ์ง€์›์˜ ๋ถ€์กฑ์ด Places API๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์‹ค์ œ๋กœ ์ง€๋„ ์ž์ฒด์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ๊ณผ ๋ณ„๋„๋กœ Places ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ์ง€์›๋„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ‘

์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. "ld: framework not found google_maps_flutter "๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋•Œ๋ฌธ์— use_frameworks๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค! ๋‚ด PodFile์—์„œ.

๋‚ด ํ”Œ๋Ÿฌํ„ฐ ์˜์‚ฌ.
[โœ“] Flutter(์ฑ„๋„ ๋งˆ์Šคํ„ฐ, v0.5.2-pre.55, Mac OS X 10.13.4 17E202, ๋กœ์ผ€์ผ en-PT)
[โœ“] Android ํˆด์ฒด์ธ - Android ๊ธฐ๊ธฐ์šฉ ๊ฐœ๋ฐœ(Android SDK 27.0.3)
[โœ“] iOS ํˆด์ฒด์ธ - iOS ๊ธฐ๊ธฐ์šฉ ๊ฐœ๋ฐœ(Xcode 9.4)
[โœ“] ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค(๋ฒ„์ „ 3.1)
[โœ“] VS ์ฝ”๋“œ(๋ฒ„์ „ 1.23.1)
[โœ“] ์—ฐ๊ฒฐ๋œ ์žฅ์น˜(3๊ฐœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

@PauloMelo ๋Š” ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ flutter build ios ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด xcode๊ฐ€ ์ž˜ ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ flutter packages get ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์•„๋‹ˆ์š”.
๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. rm DerivedData, flutter clean, flutter build ios, ์‹ฌ์ง€์–ด xworkspace๋ฅผ ์—ด๊ณ  xcode ๋‚ด๋ถ€์— ๋นŒ๋“œํ•ด๋„ ํ•ญ์ƒ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค...

@PauloMelo ์ถ”๊ฐ€ํ•˜์…จ๋‚˜์š”?
google_maps_flutter:
git:
url: git://github.com/flutter/plugins
path: packages/google_maps_flutter
pubspec.yaml ํŒŒ์ผ์˜ ์ข…์†์„ฑ์œผ๋กœ?
https://github.com/flutter/plugins/tree/master/packages/google_maps_flutter

google_maps_flutter.podspec ํŒŒ์ผ์—

s.static_framework = true

๋ผ์ธ. PR์„ ์ค€๋น„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@mravn-google ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ง€๋„ ๋ณด๊ธฐ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•˜๋Š” ์ƒˆ๋กœ์šด ํ”Œ๋Ÿฌํ„ฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๊ณ  ์ด ๋ฒฝ๋Œ ๋ฒฝ์— ๋ถ€๋”ช์ณค์Šต๋‹ˆ๋‹ค. ์ข‹์€ ์†Œ์‹์„ ๊ธฐ๋‹ค๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค!

@jposuna ์ด๋™ ์‹œ ์‚ฌ๋ผ์ง€๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐํšŒ๊ฐ€ ๋˜๋ฉด ์ œ๊ฐ€ ํ•˜๋Š” ์ผ์„ ํฌ์ŠคํŒ…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž‘๋™์— ๋Œ€ํ•œ ์งง์€ ๋น„๋””์˜ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://twitter.com/gerryhigh/status/997312139663757312

์•ˆ๋…•ํ•˜์„ธ์š”, ๋ฐฉ๊ธˆ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ…Œ์ŠคํŠธํ–ˆ๋Š”๋ฐ ์ •๋ง ์ธ์ƒ์ ์ž…๋‹ˆ๋‹ค! ๋‚˜๋Š” ์ข‹์•„ํ•œ๋‹ค
์ปจํŠธ๋กค๋Ÿฌ ๋ฐ ๋ชจ๋“  ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ ๊ฐ€๋Šฅ์„ฑ. ๋‚œ ๊ทธ๋ƒฅ ๋ช‡ ๊ฐ€์ง€ ๋ฒ„๊ทธ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
newCameraPosition ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ํ›„ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ
๋’ค์—์„œ ํ™•๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒฝํ—˜, ๋‚˜๋Š” ์นด๋“œ์—์„œ ์ •์ˆ˜ ๋งคํ•‘์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ฒฝ๊ณ„์„ ์ด ์žˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋งŒ๋“ค๋ ค๊ณ  ํ–ˆ๋˜ ๋‹ค๋ฅธ
์ง€์˜คํŽœ์‹ฑ ์˜์—ญ์—์„œ ์ง€๋„ ์œ„์— 50% ๋ถˆํˆฌ๋ช…๋„์˜ ์›ํ˜• ๋ชจ์–‘์„ ์Œ“์ง€๋งŒ
์ง€๋„ ์œ„์— le ์›ํ˜• ๋ชจ์–‘์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

2018-06-11 21:58 GMT+02:00 Gerry High [email protected] :

@jposuna https://github.com/jposuna ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‚ฌ๋ผ์ง€๊ฒŒ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฉ€๋ฆฌ ํƒ์ƒ‰. ๊ธฐํšŒ๊ฐ€ ๋˜๋ฉด ์ œ๊ฐ€ ํ•˜๋Š” ์ผ์„ ํฌ์ŠคํŒ…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ
์ž‘๋™์— ๋Œ€ํ•œ ์งง์€ ๋น„๋””์˜ค: https://twitter.com/gerryhigh/
์ƒํƒœ/997312139663757312

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-396366977 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AaWFywrVAg5KtnMG_FDJc5O8N9zQ3PbEks5t7svngaJpZM4Ge5yO
.

@nitneuq33 ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ README.md์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ๋“ฏ์ด - ํ”Œ๋žซํผ ๋ณด๊ธฐ๋ฅผ ํ”Œ๋Ÿฌํ„ฐ ๋ณด๊ธฐ ์œ„์— ์˜ค๋ฒ„๋ ˆ์ด๋กœ ๋ฐฐ์น˜ํ•˜์—ฌ ์ž‘๋™ํ•˜๋ฉฐ ๋‹ค๋ฅธ ์œ„์ ฏ๊ณผ ์ž์œ ๋กญ๊ฒŒ ํ•ฉ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ง€์˜คํŽœ์‹ฑ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ตฌํ˜„ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
๋งž์ถค ํƒœ๊ทธ์™€ ๋น„์Šทํ•˜์ง€๋งŒ ํ™•๋Œ€/์ถ•์†Œ ๊ธฐ๋Šฅ์ด ์›ํ˜•์ด๊ณ  ๋™์ ์œผ๋กœ
๋ฐ˜๊ฒฝ ๊ฐ’ ?

2018-06-14 12:49 GMT+02:00 Piotr Tobolski [email protected] :

@nitneuq33 https://github.com/nitneuq33 ์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ๋“ฏ์ด
์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ README.md - ํ”Œ๋žซํผ ๋ณด๊ธฐ๋ฅผ ์˜ค๋ฒ„๋ ˆ์ด๋กœ ๋ฐฐ์น˜ํ•˜์—ฌ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
ํ”Œ๋Ÿฌํ„ฐ ๋ทฐ ์ด์ƒ์ด๋ฉฐ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ์ž์œ ๋กญ๊ฒŒ ํ•ฉ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์œ„์ ฏ.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-397252927 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AaWFyzd7A-TFa1xGOTdUC3s3X6lcK6RWks5t8j-cgaJpZM4Ge5yO
.

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ETA๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ETA๊ฐ€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ฅด์ฅฌ. 2018๋…„ 7์›” 14์ผ 22:36, daldoy [email protected] a รฉcrit:

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ETA๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-397429930 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AaWFywmRIFV5h9JzrbBjlatRiMvHCZ9Bks5t8slagaJpZM4Ge5yO
.

๋„์ฐฉ ์˜ˆ์ • ์‹œ๊ฐ„.

๊ทธ๋ฆฌ๊ณ  ์•„๋‹ˆ์š”, ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์—ฌ๋Ÿฌ ๋ฒˆ ์งˆ๋ฌธํ–ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ๋‚˜๋Š” ์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค
https://github.com/flutter/plugins/tree/master/packages/google_maps_flutter/example/lib
ํ•˜์ง€๋งŒ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ณด๊ธฐ๋กœ 3๊ฐœ๋กœ ์•ฑ ์‹คํ–‰ ํ›„ ์ง€๋„๋ฅผ ํ‘œ์‹œํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.
๋ฒ„ํŠผ(์œ„์„ฑํ˜•, ํ•˜์ด๋ธŒ๋ฆฌ๋“œํ˜• ๋ฐ ์ƒˆ ์œ„์น˜). ๋‚˜๋Š” ํ•˜๋Š” ๊ฒƒ์— ์„ฑ๊ณตํ•œ๋‹ค
์ด๊ฒƒ์€ ์˜ˆ์ œ์˜ ํŽ˜์ด์ง€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์‹œ๋„ํ–ˆ๋‹ค
๋‹ค๋ฅธ ๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ์‚ฌ์šฉ
https://github.com/flutter/plugins/tree/master/packages/google_maps_flutter
ํ•˜์ง€๋งŒ StatLessWidget์„ ์‚ฌ์šฉํ•˜๊ณ  map_ui์˜ ์˜ˆ๋Š” statfulWidget์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ
statfullwidget์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๋„ ๋ ๊นŒ์š”
statfullWidget์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ ์‹œ์ž‘ ์‹œ ์ง€๋„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ( ๋‹จ์ง€
์ง€๋„ ์œ ํ˜•์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์ƒˆ๋กœ์šด ํ˜„์ง€ํ™”๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด 3๊ฐœ์˜ ๋ฒ„ํŠผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๋‚˜๋Š” ํ”Œ๋Ÿฌํ„ฐ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์ง€๋งŒ ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ฃ„์†กํ•˜์ง€๋งŒ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ •๋ง
์ค‘์š”ํ•˜๊ณ  ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•œ ๋งˆ์ง€๋ง‰ ๋ธ”๋ก์ž…๋‹ˆ๋‹ค :)

2018-06-14 23:03 GMT+02:00 feinstein [email protected] :

๋„์ฐฉ ์˜ˆ์ • ์‹œ๊ฐ„.

๊ทธ๋ฆฌ๊ณ  ์•„๋‹ˆ์š”, ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์—ฌ๋Ÿฌ ๋ฒˆ ์งˆ๋ฌธํ–ˆ์Šต๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-397437407 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AaWFyzu5X9Y5nhPIEeW1Myl12kf1JIEbks5t8s-xgaJpZM4Ge5yO
.

@nitneuq33 ๋ฌธ์ œ๋กœ ๋ถˆํŽธ์„ ๋ผ์ณ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ์ง€์› ์งˆ๋ฌธ์˜ ๊ฒฝ์šฐ stackoverflow(https://stackoverflow.com/questions/tagged/flutter)์—์„œ ๋” ๋‚˜์€ ์ง€์›์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ฌธ์ œ ์ถ”์ ๊ธฐ๋Š” ์ „์ฒด ๊ธฐ๋Šฅ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

stackoverflow์—์„œ ๋‚ด ํ•„์š”๋ฅผ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ๋‹ต๋ณ€์„ ๋””๋ฒ„๊ทธํ•˜๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝํ—˜์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งˆ์ปค, mapType ๋“ฑ๊ณผ ๊ฐ™์€ ์˜ต์…˜๊ณผ ํ˜ธํ™˜๋˜๋Š” ํ™ˆ ํ™”๋ฉด์˜ ์ง€๋„๋งŒ์œผ๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ์ž‘์„ฑํ•  ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ ํ•ด์š”

@nitneuq33000 ๋‹ค์Œ์€ ๋งˆ์ปค, ์ •๋ณด ์ฐฝ(์ •๋ณด ์ฐฝ์„ ํƒญํ•  ๋•Œ ์ฝœ๋ฐฑ) ๋ฐ ์šด์ „ ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค. https://github.com/gerryhigh/Flutter-Google-Maps-Demo

@ @jposuna ์ด๋™ ์‹œ ์ง€๋„๊ฐ€ ์‚ฌ๋ผ์ง€๋‹ˆ ์ฐธ๊ณ ํ•˜์„ธ์š”

์ด ์˜ˆ์ œ์—๋Š” ์ง€๋„ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” ํ™ˆ ํŽ˜์ด์ง€์˜ ๋ฒ„ํŠผ์ด ์žˆ์ง€๋งŒ ์žฅ์†Œ ํŽ˜์ด์ง€๋ฅผ ํ™ˆ ํŽ˜์ด์ง€๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ๋Š” ๋˜ํ•œ infowindowonTapped ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— pubspec.yaml์— ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ํฌํฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค(์ˆ˜์ • ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ’€ ์š”์ฒญ์„ ์ƒ์„ฑํ•ด์•ผ ํ•จ).

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ์ง€๋„ ๋ฐ๋ชจ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋‚ด๋น„๊ฒŒ์ดํ„ฐ ๊ด€์ฐฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์˜ค๋ฒ„๋ ˆ์ด๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ์ผ๋ถ€ x ์˜คํ”„์…‹์ด ํ‘œ์‹œ๋˜๋Š” ์ง€๋„๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ iOS์— ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๋“œ ์ง€์—ฐ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ง€๋„ ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒŒ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž€๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ์ •๋ง ๋„์›€์ด ๋งŽ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค, ์ •๋ง ์ œ๊ฐ€ ๊ฒ€์ƒ‰ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค :)

2018-06-16 21:41 GMT+02:00 Gerry High [email protected] :

@nitneuq33000 https://github.com/nitneuq33000 ๋‹ค์Œ์€ ๊ฐ„๋‹จํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค.
๋งˆ์ปค, ์ •๋ณด ์ฐฝ(๋ฐ ์ •๋ณด ์ฐฝ์˜ ๊ฒฝ์šฐ ์ฝœ๋ฐฑ๊ณผ ํ•จ๊ป˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ
ํƒญ) ๋ฐ ์šด์ „ ๊ฒฝ๋กœ. https://github.com/gerryhigh/
Flutter-Google-์ง€๋„-๋ฐ๋ชจ

@ @jposuna https://github.com/jposuna ์ง€๋„๊ฐ€ ์‚ฌ๋ผ์ง€๋‹ˆ ๊ตฌ๊ฒฝํ•ด๋ณด์„ธ์š”
๊ธธ์„ ์ฐพ์„ ๋•Œ

์ด ์˜ˆ์—๋Š” ํ™ˆํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ง€๋„ ํŽ˜์ด์ง€์ด์ง€๋งŒ ์žฅ์†Œ ํŽ˜์ด์ง€๋ฅผ ์ง‘์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์‚ฌ์†Œํ•œ ์ผ์ž…๋‹ˆ๋‹ค.
ํŽ˜์ด์ง€. ์ด ์˜ˆ์ œ๋Š” ๋˜ํ•œ pubspec.yaml์— ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋ถ„๊ธฐ์ ์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
infowindowonTapped ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—(ํ’€์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜์ • ์š”์ฒญ).

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ง€๋„๊ฐ€ ํ‘œ์‹œํ•˜๋Š” ๋‚ด๋น„๊ฒŒ์ดํ„ฐ ๊ด€์ฐฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋ฐ๋ชจ. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‚˜๋Š” ๊ฑฐ๊ธฐ์—
์˜ค๋ฒ„๋ ˆ์ด๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ์ง€๋„๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ iOS์˜ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.
์•ฝ๊ฐ„์˜ x ์˜คํ”„์…‹. ํ˜„์žฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๋“œ ์ง€์—ฐ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ.

์ด ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ง€๋„ ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒŒ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž€๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-397834840 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AaWFy_a4oC7-F1fvSc6RvobUsZxd7_qVks5t9V9rgaJpZM4Ge5yO
.

๊ณผ์—ฐ, ๋„ค๋น„๊ฒŒ์ด์…˜ ์–ด์›จ์ด์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์€ ํ™˜์˜๋ฐ›์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2018-06-17 10:12 GMT+02:00 quentin guichot [email protected] :

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ์ •๋ง ๋„์›€์ด ๋งŽ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค, ์ •๋ง ์ œ๊ฐ€ ๊ฒ€์ƒ‰ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค :)

2018-06-16 21:41 GMT+02:00 Gerry High [email protected] :

@nitneuq33000 https://github.com/nitneuq33000 ๋‹ค์Œ์€ ๊ฐ„๋‹จํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค.
๋งˆ์ปค, ์ •๋ณด ์ฐฝ(๋ฐ ์ •๋ณด ์ฐฝ์˜ ๊ฒฝ์šฐ ์ฝœ๋ฐฑ๊ณผ ํ•จ๊ป˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ
ํƒญ) ๋ฐ ์šด์ „ ๊ฒฝ๋กœ. https://github.com/gerryhigh/F
lutter-Google-์ง€๋„-๋ฐ๋ชจ

@ @jposuna https://github.com/jposuna ์ง€๋„๊ฐ€ ์‚ฌ๋ผ์ง€๋‹ˆ ๊ตฌ๊ฒฝํ•ด๋ณด์„ธ์š”
๊ธธ์„ ์ฐพ์„ ๋•Œ

์ด ์˜ˆ์—๋Š” ํ™ˆํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ง€๋„ ํŽ˜์ด์ง€์ด์ง€๋งŒ ์žฅ์†Œ ํŽ˜์ด์ง€๋ฅผ ์ง‘์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์‚ฌ์†Œํ•œ ์ผ์ž…๋‹ˆ๋‹ค.
ํŽ˜์ด์ง€. ์ด ์˜ˆ์ œ๋Š” ๋˜ํ•œ pubspec.yaml์— ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋ถ„๊ธฐ์ ์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
infowindowonTapped ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—(ํ’€์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜์ • ์š”์ฒญ).

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ง€๋„๊ฐ€ ํ‘œ์‹œํ•˜๋Š” ๋‚ด๋น„๊ฒŒ์ดํ„ฐ ๊ด€์ฐฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋ฐ๋ชจ. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‚˜๋Š” ๊ฑฐ๊ธฐ์—
์˜ค๋ฒ„๋ ˆ์ด๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ์ง€๋„๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ iOS์˜ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.
์•ฝ๊ฐ„์˜ x ์˜คํ”„์…‹. ํ˜„์žฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๋“œ ์ง€์—ฐ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ.

์ด ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ง€๋„ ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒŒ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž€๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-397834840 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AaWFy_a4oC7-F1fvSc6RvobUsZxd7_qVks5t9V9rgaJpZM4Ge5yO
.

๋‚˜๋Š” ๋ฒ„๊ทธ๊ฐ€์žˆ๋‹ค

์ดˆ๊ธฐํ™” ์ƒํƒœ

์ €์žฅ๋œ ๊ฐ’์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ณต์œ  ๊ธฐ๋ณธ ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ ํŽ˜์ด์ง€์— ์žˆ์ง€๋งŒ ์ด ์ค„์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์ง€๋„๋Š”
์ด์ „ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€๋„ ํ•ญ์ƒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

void initState() {
  super.initState();

_loadgeoValue()

}

...

_loadgeoValue() async {

  SharedPreferences prefs = await SharedPreferences.getInstance();
  setState(() {
    lat = (prefs.getDouble('lat1'));
    long = (prefs.getDouble('long2'));
  }
  );
}

๋ˆ„๊ตฐ๊ฐ€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ๋‹ค๋ฉด ... ๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

2018-06-17 10:22 GMT+02:00 quentin guichot [email protected] :

๊ณผ์—ฐ, ๋„ค๋น„๊ฒŒ์ด์…˜ ์–ด์›จ์ด์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์€ ํ™˜์˜๋ฐ›์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2018-06-17 10:12 GMT+02:00 quentin guichot [email protected] :

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ์ •๋ง ๋„์›€์ด ๋งŽ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค, ์ •๋ง ์ œ๊ฐ€ ๊ฒ€์ƒ‰ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค :)

2018-06-16 21:41 GMT+02:00 Gerry High [email protected] :

@nitneuq33000 https://github.com/nitneuq33000 ๋‹ค์Œ์€ ๊ฐ„๋‹จํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค.
๋งˆ์ปค, ์ •๋ณด ์ฐฝ(๋ฐ ์ •๋ณด ์ฐฝ์˜ ๊ฒฝ์šฐ ์ฝœ๋ฐฑ๊ณผ ํ•จ๊ป˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ
ํƒญ) ๋ฐ ์šด์ „ ๊ฒฝ๋กœ. https://github.com/gerryhigh/F
lutter-Google-์ง€๋„-๋ฐ๋ชจ

@ @jposuna https://github.com/jposuna ์ง€๋„๋กœ ๋ณด์„ธ์š”
๋ฉ€๋ฆฌ ์ด๋™ํ•  ๋•Œ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค

์ด ์˜ˆ์—๋Š” ๋‹ค์Œ์œผ๋กœ ์ด๋™ํ•˜๋Š” ํ™ˆ ํŽ˜์ด์ง€์˜ ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ง€๋„ ํŽ˜์ด์ง€์ด์ง€๋งŒ ์žฅ์†Œ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์‚ฌ์†Œํ•œ ์ผ์ž…๋‹ˆ๋‹ค.
ํ™ˆํŽ˜์ด์ง€. ์ด ์˜ˆ๋Š” ๋˜ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ํฌํฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
pubspec.yaml์€ infowindowonTapped ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
์ˆ˜์ • ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ์ƒ์„ฑ).

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ง€๋„๊ฐ€ ํ‘œ์‹œํ•˜๋Š” ๋‚ด๋น„๊ฒŒ์ดํ„ฐ ๊ด€์ฐฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋ฐ๋ชจ. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‚˜๋Š” ๊ฑฐ๊ธฐ์—
์˜ค๋ฒ„๋ ˆ์ด๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ์ง€๋„๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ iOS์˜ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.
์•ฝ๊ฐ„์˜ x ์˜คํ”„์…‹. ํ˜„์žฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๋“œ ์ง€์—ฐ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ.

์ด ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ง€๋„ ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒŒ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž€๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/73#issuecomment-397834840 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AaWFy_a4oC7-F1fvSc6RvobUsZxd7_qVks5t9V9rgaJpZM4Ge5yO
.

์•ˆ๋…•ํ•˜์„ธ์š”, ๋‚˜๋Š” initstate๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š๊ณ  ๋Œ์•„๋‹ค๋‹ˆ๋Š” ๋ฐ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.
์ƒˆ ํŽ˜์ด์ง€๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ๋ฐ์ดํ„ฐ. ๊ทธ๋ž˜์„œ ํ˜„์žฌ๋Š” ๊ธฐ๋Šฅ์ ์ด์ง€๋งŒ
ํŽ˜์ด์ง€๋ฅผ ๋‹ซ์„ ๋•Œ ๊ณ ์ • ๋ ˆ์ด์–ด๊ฐ€ ๋งค์šฐ ์„น์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋” ๋งŒ๋“ค ์ƒ๊ฐ
ํŽ˜์ด์ง€๋ฅผ ๋‹ซ์„ ๋•Œ ๋ ˆ์ด์–ด ๋งต์˜ ํŽ˜์ด๋“œ ์•„์›ƒ ์• ๋‹ˆ๋ฉ”์ด์…˜๊ณผ ๊ฐ™์€ ์‹œ๊ฐ์  ํšจ๊ณผ?
๋˜๋Š” ํŽ˜์ด์ง€์˜ ์ „ํ™˜์„ ์žก๋Š” ์ „ํ™˜ ์• ๋‹ˆ๋ฉ”์ด์…˜? ๊ฐ์‚ฌ ํ•ด์š”

์•ˆ๋…•ํ•˜์„ธ์š”, ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ง„ํ–‰ ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์†”๋ฃจ์…˜์ด ์–ธ์ œ ์ œ๊ณต๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ํ˜„์žฌ ์‚ฌ์šฉ์ž ์œ„์น˜ ์œ„๋„/๊ฒฝ๋„๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ง€์›๋˜๋‚˜์š”?

์ด ์Šค๋ ˆ๋“œ์—์„œ ์ง€์› ์งˆ๋ฌธ์„ ๋ฉ€๋ฆฌํ•˜๊ณ  Gitter, Stackoverflow ๋˜๋Š” ๊ธฐํƒ€ ๊ด€๋ จ ํฌ๋Ÿผ์—์„œ ์งˆ๋ฌธํ•˜์‹ญ์‹œ์˜ค. ๋Œ“๊ธ€์„ ๋‹ฌ๋ฉด ๋งŽ์€ ๋ถ„๋“ค์ด ๋ถˆํ•„์š”ํ•œ ์•Œ๋ฆผ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์—๋Š” ๊ด€๋ จ ์ƒํƒœ ์—…๋ฐ์ดํŠธ ๋˜๋Š” ์‹ค์ œ๋กœ ์œ ์šฉํ•œ ํ† ๋ก ๋งŒ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ๋‹ค๋ฅธ ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•. ์ง€๋„์— ์œ„์ ฏ์„ ์‚ฝ์ž…ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•. WebView๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Google ์ง€๋„์˜ ์›น ๋ฒ„์ „์„ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ด ์™„์ „ํžˆ ๋น„ํ˜„์‹ค์ ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๊นŒ? (์•„์ง ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋ฐฉ๊ธˆ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค https://pub.dartlang.org/packages/flutter_webview_plugin

์•ˆ๋…•ํ•˜์„ธ์š”, ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ง„ํ–‰ ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์†”๋ฃจ์…˜์ด ์–ธ์ œ ์ œ๊ณต๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

'๋„ค์ดํ‹ฐ๋ธŒ ์œ„์ ฏ'์˜ ๊ฐœ๋…์ด ์•„์ง ์ง„ํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ํ”Œ๋Ÿฌํ„ฐ ์œ„์ ฏ์—์„œ "๋„ค์ดํ‹ฐ๋ธŒ" ๋ทฐ๋ฅผ ๋ž˜ํ•‘ํ•˜์—ฌ ์ด๋ก ์ ์œผ๋กœ "๋„ค์ดํ‹ฐ๋ธŒ" ๋ทฐ๋ฅผ ๋ž˜ํ•‘ํ•œ ๋งต๋ทฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งŒ๋“ค๊ณ  ์ด์ „์— ์‚ฌ์šฉํ•œ ์ ์ด ์žˆ๋Š” ํ”Œ๋Ÿฌํ„ฐ ๋ Œ๋” ํŠธ๋ฆฌ์— ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์œ„์ ฏ.

์ €๋Š” ์ด ์ผ์— ์ ๊ทน์ ์œผ๋กœ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์ €๋Š” ETA๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋” ์ž์„ธํ•œ ์ง„ํ–‰ ์ƒํ™ฉ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด #19030์„ ํŒ”๋กœ์šฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@amirh ๊ตฌ๋…ํ–ˆ์Šต๋‹ˆ๋‹ค ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์—ฌ๊ธฐ๋ฅผ ์‚ดํŽด๋ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/apptreesoftware/flutter_google_map_view

@apptreesoftware

์ธ๋ผ์ธ Google ์ง€๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ Android ์ „์šฉ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋Š” ์ด์ œ https://github.com/flutter/plugins/tree/master/packages/google_maps_flutter ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(์ด์— ํ•„์š”ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ์—”์ง„ ์ง€์›์€ ํ˜„์žฌ ๋งˆ์Šคํ„ฐ ์ฑ„๋„์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

Readme๋Š” iOS ์„ค์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค... ๋” ๋ช…ํ™•ํžˆ ํ•ด์•ผ ํ•˜์ง€ ์•Š์„๊นŒ์š”?

์ข‹์€ ์ง€์ ์ž…๋‹ˆ๋‹ค. ์ผ๋‹จ ์ œ๊ฑฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, google_maps_flutter๋ฅผ ํ…Œ์ŠคํŠธํ•  ๋•Œ ๋‹ค์Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
'๋Ÿฐ๋˜์œผ๋กœ ์ด๋™' ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ์œ„์น˜๋กœ ์ง€๋„๊ฐ€ ์ด๋™ํ•˜๊ณ , ์ถ•์†Œ๋ฅผ ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž‘๋™์„ ๋ฉˆ์ถ”๊ณ  ๋‹ซํž™๋‹ˆ๋‹ค.
ํ†ต๋‚˜๋ฌด:
E/JavaBinder(10217): !!! ๋ฐ”์ธ๋” ๊ฑฐ๋ž˜ ์‹คํŒจ!!! (์†Œํฌ ํฌ๊ธฐ = 3050800)
I/Process(10217): ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๋Š” ์ค‘์ž…๋‹ˆ๋‹ค. PID: 10217 SIG: 9
์žฅ์น˜์™€์˜ ์—ฐ๊ฒฐ์ด ๋Š์–ด์กŒ์Šต๋‹ˆ๋‹ค.

์คŒ์ธ์„ ํ•˜๋ฉด ๋‹ค ๋™์ž‘ํ•˜๊ณ  ์คŒ์•„์›ƒ์„ ํ•˜๋ฉด ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ์„ค์ •ํ•œ ์คŒ ๊ฐ’์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์ง€ ์•Š์•„๋„ ๋ฌธ์ œ ์—†์ด ์คŒ์ธ, ์คŒ์•„์›ƒ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@cosminstoinescu ์™„์ „ํžˆ ์ฑ„์›Œ์ง„ ๋ฌธ์ œ ํ…œํ”Œ๋ฆฟ๊ณผ ๊ฐ€๋Šฅํ•œ ์ตœ์†Œ ์žฌ์ƒ์‚ฐ์„ ์‹คํ–‰ํ•˜์—ฌ ์ด ํŠน์ • ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ƒˆ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ƒ์„ฑ๋œ ๋ฌธ์ œ ํ‹ฐ์ผ“: #22228: ์ธ๋ผ์ธ Google ์ง€๋„ - ํ™•๋Œ€/์ถ•์†Œ ์ถฉ๋Œ

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ด๋ฏธ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด Flutter๋Š” ํ”Œ๋žซํผ ์ฑ„๋„์„ ํ†ตํ•ด ๊ธฐ๋ณธ ๋งต๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— swift์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/syfgkjasdkn/map_and_flutter

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋„์›€์ด ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ถ๊ธˆํ•ด์„œ Places API๋„ ์ด์‹ํ•˜๊ณ  ์žˆ๋‚˜์š”, ์•„๋‹ˆ๋ฉด Google Maps API๋งŒ ์ด์‹ํ•˜๋‚˜์š”?

์ด๊ฒƒ์€ ์—…๋ฐ์ดํŠธ ์•Œ๋ฆผ์„ ๋ฐ›๊ธฐ ์œ„ํ•œ ์˜ฌ๋ฐ”๋ฅธ ์Šค๋ ˆ๋“œ์ž…๋‹ˆ๊นŒ? Android ๋ฐ ios์šฉ ์ธ๋ผ์ธ Google ์ง€๋„ ๋ณด๊ธฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋” ์ž์„ธํ•œ ์Šค๋ ˆ๋“œ ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@HerrNiklasRaab ์˜ˆ, ์ด๊ฒƒ์€ ์ง€์ผœ๋ด์•ผ ํ•  ๋ฌธ์ œ์ด๋ฉฐ ์ธ๋ผ์ธ ์ง€๋„์— ๋Œ€ํ•œ ์ตœ์ƒ์˜ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

flutter/plugins#892๋Š” google_maps_flutter ํ”Œ๋Ÿฌ๊ทธ์ธ์— iOS ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ธ๋ผ์ธ ๋งต์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ํ”Œ๋žซํผ ๋ณด๊ธฐ ์ž„๋ฒ ๋”ฉ ์ง€์›์€ ์•„์ง ์ดˆ๊ธฐ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์ƒํƒœ์ž…๋‹ˆ๋‹ค(https://github.com/flutter/flutter/issues/19030#issuecomment-437534853 ์ฐธ์กฐ).

๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๋Š” ํ”Œ๋žซํผ ๋ณด๊ธฐ ๋ฐ/๋˜๋Š” ์ง€๋„ ๋ ˆ์ด๋ธ”๋กœ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋„๋ก ๊ด€์‹ฌ ์žˆ๋Š” ๋ฌธ์ œ์— ํˆฌํ‘œํ•ด ์ฃผ์„ธ์š”.

iOS์—์„œ ์‚ฌ์šฉํ•ด ๋ณด๋ ค๋ฉด ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ”Œ๋ž˜๊ทธ๋ฅผ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/19030#issuecomment -437534853

์ด ์ •๋ณด๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ Readme.md์— ํฌํ•จ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์ธ๋ผ์ธ ์†”๋ฃจ์…˜์ด ์•„๋‹Œ ๊ฒƒ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์ง€๋„ ์ƒ๋‹จ, ํ•˜๋‹จ ์‹œํŠธ, ์„œ๋ž ๋ ˆ์ด์•„์›ƒ์— ๋ฒ„ํŠผ์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋™ํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ณง ๋ฌธ์„œ๋ฅผ ๊ฐœ์„ ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

์ธ๋ผ์ธ ์†”๋ฃจ์…˜์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ด ๋ฌด์Šจ ๋ง์ธ์ง€ ์ž˜ ๋ชจ๋ฅด์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ด์ œ Flutter ์œ„์ ฏ์„ ์ง€๋„ ์ƒ๋‹จ์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค, ๋Œ€๋‹จํ•ด! ๋งˆ์น˜ ๋‹ค๋ฅธ ๋ Œ๋”๋ง ๋ ˆ์ด์–ด์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์ง€๋„ ์œ„์— ์œ„์ ฏ์ด ์žˆ์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์ฝ์—ˆ๋˜ ๊ธฐ์–ต์ด ๋‚ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ios์™€ ์•ˆ๋“œ๋กœ์ด๋“œ์— ์œ ํšจํ•ฉ๋‹ˆ๊นŒ?

์ง€๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‹œ๋„ํ•˜๊ณ  ํ”Œ๋žซํผ ๋ณด๊ธฐ ์œ„์ ฏ์„ ์–ด์ง€๋ŸฝํžŒ ํ›„ ์ด ๊ฒŒ์‹œ๋ฌผ, ๋ฐ”๋กœ ์›๋ž˜ ๊ฒŒ์‹œ๋ฌผ์— ์™”๊ณ  ์˜ต์…˜ 3์ด ํ›จ์”ฌ ๋” ๋‚˜์€ ์˜ต์…˜์ด์—ˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ฌด๋„ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ง€๋„์šฉ ์‹ค์ œ ์œ„์ ฏ์„ ๋งŒ๋“ค๊ธฐ๋กœ ์„ ํƒํ•˜์ง€ ์•Š์€ ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ง์€, ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๋ชจ๋“  ํž˜์ด ๊ฑฐ๊ธฐ์— ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค! Skia๋Š” ๊ฐ„๋‹จํ•œ ๊ทธ๋ž˜ํ”ฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฑด๋ฌผ๊ณผ ๋„๋กœ์— ๋Œ€ํ•œ ์ž์ฒด ๋ Œ๋”๋Ÿฌ๋ฅผ ๋งŒ๋“ค ๋งŒํผ ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด Dart์—์„œ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” Dart์—์„œ ์—”์ง„์œผ๋กœ ๊ฐ„๋‹จํ•œ ์ƒ์ž๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํ™•์ธํ–ˆ๊ณ  ๊ทธ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

ํ”Œ๋žซํผ ๋ณด๊ธฐ๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ์ˆ ์ ์ธ ์ด์œ ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ ์ง€๋„์—๋Š” "๋„ค์ดํ‹ฐ๋ธŒ" ํ”Œ๋Ÿฌํ„ฐ SDK๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” Fuchsia์— ๋Œ€ํ•œ ๊ณ„ํš์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Android SDK๋ฅผ ๊ณ„์† ํ™œ์šฉํ•˜์—ฌ ์ง€๋„๋ฅผ ๋ Œ๋”๋งํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋ง๋„ ์•ˆ๋ผ!

์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ํ”Œ๋žซํผ ๋ณด๊ธฐ๊ฐ€ ์žˆ๊ณ  ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํŒ€์€ ์ด์ œ ์ด ๋งต ๊ตฌํ˜„(๊ธฐ๋ณธ์ ์œผ๋กœ ํ”Œ๋žซํผ๋‹น 2๊ฐœ)์„ ์ค‘๋‹จํ•˜๊ณ  ๊ธฐ์ˆ ์ ์œผ๋กœ ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•˜๋Š” Flutter์šฉ ์‹ค์ œ ๋งต ์ž‘์—…์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Hummingbird, PC, Mac ๋ฐ Linux(๋ฐ ๋” ๋งŽ์€ ๊ฒƒ)๋ฅผ ํฌํ•จํ•˜์—ฌ flutter๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ฏธ๋ž˜ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์ด๊ณ , ๋‹น์‹ ์€ ์ด์ œ ๊ทธ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Unity3D์šฉ ๋งต ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๊ธฐ๋ณธ ๋ณด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์—”์ง„์— ์™„์ „ํžˆ ๋งž์ถคํ™”๋˜์—ˆ์œผ๋ฉฐ ๋†€๋ผ์šด ๋งž์ถคํ™” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค! Flutter์—์„œ๋„ ์ด๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ง€๋„์˜ ํ”Œ๋žซํผ ๋ณด๊ธฐ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ํ’๋ถ€ํ•˜๊ณ  ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฐœ๋ฐœ์ž์ธ ์šฐ๋ฆฌ์—๊ฒŒ ๋กœ์šฐ ๋ ˆ๋ฒจ์—์„œ ์‹ค์ œ๋กœ ๊ทธ๋ž˜ํ”ฝ ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๊ฒƒ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์ด ์ด๊ฒƒ์„ ์ž˜๋ชป ์ƒ๊ฐํ•˜์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”Œ๋žซํผ ๋ณด๊ธฐ๋ฅผ ํ†ตํ•œ ์ง€๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ด๋ฏธ ๊ทธ์˜ ๋ชฉํ‘œ์ธ ๊ธฐ๋ณธ ๋ณด๊ธฐ๋ฅผ ์œ„์ ฏ์œผ๋กœ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ๋‹ฌ์„ฑํ–ˆ๋‹ค๊ณ  ์ง„์‹ฌ์œผ๋กœ ๋ฏฟ์Šต๋‹ˆ๋‹ค.

์•„, ๋๋‚ด๊ธฐ ์ „์—: ๋‚˜๋Š” ์ด๊ฒƒ์ด WebViews๋กœ ํ™•์žฅ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋žซํผ๋งˆ๋‹ค WebView๋ฅผ ์œ„ํ•œ ๋‹ค๋ฅธ ๋ Œ๋”๋Ÿฌ(ํ”Œ๋Ÿฌํ„ฐ ๋งต์˜ ์˜๋„์™€ ๊ฐ™์ด), ๊ทธ๋Ÿฌ๋‚˜ ํฌ๋กฌ ์—”์ง„๊ณผ์˜ ํ†ตํ•ฉ์€ ์–ด๋–ป๊ฒŒ๋“  ๋†€๋ž์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํ”Œ๋žซํผ์ด ํฌ๋กฌ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ธฐ์ˆ ์ ์œผ๋กœ ์›น ๋ Œ๋”๋Ÿฌ๋กœ ์ž‘๋™ํ•˜๊ณ  Flutter ๋‚ด์—์„œ WebView๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ์ฑ„๋„์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒŒ ๋‹ค์•ผ! ์ €๋Š” ์ด์ œ ์ž๋Ÿฌ ๊ฐ‘๋‹ˆ๋‹ค :)

๋‚˜๋Š” ๋งค์šฐ ๊ธด ์‹œ๊ฐ„ ๊ณ„ํš์ด ๊ธฐ๋ณธ ํ”Œ๋žซํผ๊ณผ ๋…๋ฆฝ์ ์ธ ๊ฒƒ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค(์˜ต์…˜ 3). ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋™์•ˆ ์ด๊ฒƒ์€ ํ˜„์žฌ์˜ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ "๋‚ฎ์€ ๋งค๋‹ฌ๋ฆฐ ๊ณผ์ผ"์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ž˜์ง€ ์•Š์•„ ํƒ€์‚ฌ ์†”๋ฃจ์…˜์ด ๋“ฑ์žฅํ•  ๊ฒƒ์ด๋ผ๋Š” ๋ฐ ์˜์‹ฌ์˜ ์—ฌ์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ฌด๋„ OSM ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰