Upgrade to Pro — share decks privately, control downloads, hide ads and more …

React Nativeで 位置情報アプリをつくった話

React Nativeで 位置情報アプリをつくった話

【第2回】ReactNativeにゆかりのあるスタートアップが集う会
https://r-n.connpass.com/event/117895/

Tsuyoshi Higuchi

February 21, 2019
Tweet

More Decks by Tsuyoshi Higuchi

Other Decks in Programming

Transcript

  1. Container Component Model UseCase A User Event 1 User Event

    2 UseCase B User Event 1 User Event 2 Domain Store = [ State, State, … ] Presentational Store = [ State, State, … ] Stores MobX ࣮ମԽ Model Element Component Element Component 1SPWJEFSܦ༝Ͱ ঢ়ଶมߋ࣌ʹ ࣗಈͰ౉͢ API / Realm / NativeAPI !BDUJPONFUIPEΛୟ͍ͯ4UBUFͷঢ়ଶΛมߋ 1SPQTͰ஋ͱ6TF$BTFΛ౉͢ 6TF$BTFͷ ΠϕϯτΛୟ͘ 4UPSF͸αʔϏευϝΠϯʹؔ͢Δ΋ͷͱ 1SFTFOUBUJPOBM (6* ʹؔ͢Δ΋ͷͰ෼͚Δ
  2. Geolocation APIは積極的に使わず react-native-mapsの MapViewコンポーネントの onUserLocationChange を活用 onUserLocationChange: (event=> { const

    { latitude, longitude } = event.nativeEvent.coordinate }) 返り値(緯度・経度)をUsecase経由でStoreへ投げて諸々処理する方向へ
  3. <Marker image={画像} tracksViewChanges={false} coordinate={現在地} > <View style={…}><SvgOriginalImage /></View> </Marker> <Marker

    />にchildrenを渡せばいい アプリではSvgのアイコンイメージをマーカーにしようとした
  4. <Marker …> <Svg width={MARKER_WIDTH} height={MARKER_HEIGHT}> <View style={…}><SvgOriginalImage /></View> </Svg> </Marker>

    AndroidはSvgコンポーネントで挟んであげる ※iOSはSvgいれると表示されなくなるので注意