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

How to create mobile apps like cup noodles

Shinnosuke Yamamoto
October 11, 2024
170

How to create mobile apps like cup noodles

Shinnosuke Yamamoto

October 11, 2024
Tweet

Transcript

  1. © JMDC Inc. ࣗݾ঺հ • @mrtry • JMDC, Inc /

    Ventus, Inc • Engineer (Mobile) • Engineering Manager • Android / React Native • dex.fmを聞いて育ちました • [過去の栄光] DroidKaigi 2 0 1 9 で登壇しました
  2. © JMDC Inc. ΞδΣϯμ • 「X-Platform FWを採 用 して、カップ麺のようにアプリをつくりたい」問題 •

    カップ麺化が難しいポイント • React Nativeでの「丸投げ」実現戦略について 6
  3. © JMDC Inc. ʮX-Platform FWΛ࠾༻ͯ͠ɺΧοϓ໙ͷΑ͏ʹΞϓϦΛͭ͘Γ͍ͨʯ໰୊ • X-Platform FWを採 用 するだいたいの動機の8割これだと思っている

    • 「少 人 数でAndroid/iOSアプリを爆速で作ってリリースしたい」 • 言 い換えると • アプリケーションの実装だけで終わりたい • 「それ以外」は、丸投げしたい 7
  4. © JMDC Inc. ʮX-Platform FWΛ࠾༻ͯ͠ɺΧοϓ໙ͷΑ͏ʹΞϓϦΛͭ͘Γ͍ͨʯ໰୊ • ͓౬஫͍ͩΒɺ͍͍ͩͨOK • ͓౬ͷ४උ͸க͠ํͳ͍ •

    ༰ثͷ४උ΋͍Βͳ͍ • ͓౬Λڇೕʹͨ͠ΓͰɺϕʔε࢒ͭͭ͠ຯมͰ͖Δ • ۩ࡐ΋޷͖ͳͷೖΕΕ͹ɺ࠷ߴʹͳΕΔ 8
  5. © JMDC Inc. ʮΧοϓ໙ͷΑ͏ʹΞϓϦΛͭ͘Γ͍ͨʯ͕ … • X-Platform FWをそのまま採 用 しても、カップ麺化は難しい

    • 体感、スープと麺までぐらい • マジで最低限で、これは客には出せない • 具材は、 自 分で準備する必要がある • 容器もないので、準備が必要 9
  6. © JMDC Inc. ϥΠϒϥϦͷબఆ • X-Platform FWͰ͸ϥΠϒϥϦΛଟ༻͕ͪ͠ • ϑϨʔϜϫʔΫ͕ఏڙͯ͘͠ΕΔͷ͸ɺUI·ΘΓ͕ϝΠϯ •

    ͦΕҎ֎͸ʮNative Layer΁ΞΫηε͢Δख๏ʯΛఏڙ͍ͯ͠Δ͙Β͍ • Native Layer͕བྷΉϢʔεέʔεΛຬͨ͢ϥΠϒϥϦΛଟ༻͕ͪ͠ʹͳΔ 1 1
  7. © JMDC Inc. ྫ: ը૾ಡΈࠐΈ - X-Platform FW 精査にコストがかかりがち •

    OSそれぞれ動くのか? • 一方 で動作しないこともある • メンテされているのか • 流れ早すぎて、archiveされがち • ライブラリや実装 大 丈夫か • XxxCompat使ってない • 依存ライブラリが化 石 1 4 ライブラリの範囲
  8. © JMDC Inc. Native Layer͕full-managedͰ͸ͳ͍ それぞれのNative Layerのコードが存在している • Target SDK

    Versionなどの保守運 用 • X-Platform FWのupdateでdiffがあったとき、壊れてしまいがち 1 5
  9. © JMDC Inc. React NativeͰͷղܾํ๏ Expoを使う前提になってきている • React Native Framework

    / Platform • Usecase-baseなSDK提供 • full-managedなNative Layer • full-managedなCI/CD 2 1
  10. © JMDC Inc. Native Layerʹ͸config΍pluginͰoverrideͰ͖Δ Android/iOSのディレクトリが無 • build-timeでnative layerのtemplateがコピペされる •

    Target SDK Versionなどの保守運 用 はExpoでやってくれる • React NativeのupgrateでNative Layerに変更があっても壊れにくい 2 4
  11. © JMDC Inc. full-managedͳCI/CD • ExpoΛ࢖͍ͬͯΔΞϓϦέʔγϣϯ༻ͷCI/CDΛఏڙ • workflowΛఆٛ͢Ε͹ɺSlack௨஌΍E 2 E΋࣮ߦͰ͖Δ

    • build͢Δ͚ͩͳΒworkflowఆٛͳ͠Ͱ࣮ߦ͢Δ͚ͩ • VMͷఏڙ / ূ໌ॻ؅ཧ / Ϗϧυ / artifactsͷ഑෍ 2 6