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
190

How to create mobile apps like cup noodles

Shinnosuke Yamamoto

October 11, 2024
Tweet

More Decks by Shinnosuke Yamamoto

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