Hixie์ ๋ฌธ์
_2015๋
7์ 16์ผ ๋ชฉ์์ผ 22:26 GMT_
_์๋ https://github.com/flutter/engine/issues/30 ์ผ๋ก ์ด๋ฆผ_
_ @collinjackson ์์ 2015๋ 7์ 8์ผ 20์ 23๋ถ_
Sky์ ์ง๋์ ๋ํ ์ง์์ ์ํฉ๋๋ค.
์ด ์์ ์ ์ํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋ ๋ฒ์งธ ์ต์ ์ด ์ด์์ ์ด์ง๋ง ๋ถ๊ฐ๋ฅํ ์๋ ์์ต๋๋ค. ์ด๋ค ์ ๊ทผ ๋ฐฉ์์ด ๊ฐ์ฅ ์ข์์ง ์กฐ์ฌํ๊ณ ๋ฐ๋ชจ ์ฑ์ ๋น๋ํด์ผ ํฉ๋๋ค.
_์๋ณธ์์ ๋ณต์ฌ: domokit/mojo#310_
๋๊ธ
_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),
),
),
],
),
),
],
),
์ง๊ธ์ ์์ค ์ฝ๋๋ฅผ ์ ๊ณตํ์ง ์์ง๋ง ๊ตฌํ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
๋น๋์ค ์ค๋ช
์ ์ฝ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค.
@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์ฉ ์คํ ์์ค ๋งต ์์ ฏ์ ์์ ์ค์ ๋๋ค.
ํ๋ก์ ํธ์ ๋ํ ๋ชจ๋ ๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค.
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 ํจํค์ง๋ฅผ ๋ง๋๋ ๊ฒ์ ๋ง์ ์ ์๋ ๊ฒ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋น์ ์ด ๋งค๋ฌ๋ฆฌ์ง ์๋๋ก ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ๋งค์ฐ ์ค์ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.