Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cookpad.apk#1-ReactNativeについて
Search
kazy1991
August 21, 2018
Technology
6.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cookpad.apk#1-ReactNativeについて
https://cookpad.connpass.com/event/96502/
kazy1991
August 21, 2018
More Decks by kazy1991
See All by kazy1991
基本のAndroid View開発ドキュメント
kazy1991
0
2.9k
いつか使ってみたいOperatorたち
kazy1991
0
510
Cookpad TechKitchen#6-android-with-ml-and-scheduler
kazy1991
0
750
Droidkaigi 2017
kazy1991
5
12k
RxJava Droidkaigi
kazy1991
1
120
rx.pdf
kazy1991
0
150
はじめてのvimscipt
kazy1991
1
470
Other Decks in Technology
See All in Technology
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
180
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
0
120
Tech-Verse 2026_Keynote
lycorptech_jp
PRO
0
130
勉強会企画をアプリで構造化してみた 〜そこで見えた、AIとの付き合い方〜 / I've structured a study group plan using an app.
pauli
0
300
AIエージェントとPhysical AIが拓く製造業の変革(ハノーバーメッセリキャップ)
iotcomjpadmin
0
210
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
1
930
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
130
LiDAR SLAMの実装とセンサ融合 ~Lie群からContinuous-Time LIOまで~
naokiakai
1
910
トークン最適化のためのユーザーストーリー分析 / User Story Analysis for Token Optimization
oomatomo
0
160
どうして今サーバーサイドKotlinを選択したのか
nealle
0
190
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
290
デジタル・デザイン:次の50年を描く「進化する青写真」
y150saya
0
800
Featured
See All Featured
Music & Morning Musume
bryan
47
7.3k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
So, you think you're a good person
axbom
PRO
2
2.1k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
180
Believing is Seeing
oripsolob
1
160
Designing for Performance
lara
611
70k
It's Worth the Effort
3n
188
29k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
150
Rails Girls Zürich Keynote
gr2m
96
14k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
310
Transcript
cookpad.apk 最近風当たりの強いReact Native for Androidについて
自己紹介 - 吉田万輝(かずき) - 2014年度クックパッド新卒入社 - 所属: 投稿開発部(10名) - Android
エンジニア - Github: @kazy1991 - Twitter: @101kaz
「クックパッドMYキッチン」で検索
マルチプラットフォーム展開
ReactNativeを採用して後悔しているか?
No. 今のチームにはマッチしていて満足度が高い です。 ※チーム構成や目的に応じて RNの評価は大きく異なると思われます。
RNの評価が分かれそうなポイント - チームのメンバー構成 - 開発チームの規模 - 対象のユーザーの規模 - フルRNアプリ or
ハイブリッドアプリ
ReactNativeがマッチする環境 - チームのメンバー構成 - Android, iOS, (出来ればJavaScriptも)に詳しい人がいる - 開発チームの規模 -
小さいチーム(2~6人程度) - 対象のユーザーの規模 - そこそこ(MAU数十~百万の単位になってくるとかなり厳しそう ) - フルRNアプリ or ハイブリッドアプリ - フルRNアプリを強く推奨
なぜか
チームメンバー構成について - ReactNativeはiOS,Androidエコシステムを上手く抽象化していますが、 よくわからない事象で嵌まる事があるのでiOS,Androidの専門性が必要 - リリースは通常の開発と同じなので安全で正しいリリースをするためにも iOS,Androidの知識が必要 - そのためiOS,Androidに詳しいエンジニアは必須
開発チーム規模と対象ユーザーの規模 - ReactNativeがそこまで安定したエコシステムではないので、チームメンバーの サポートを考えると一人が変更を常に追っていける規模感でないと厳しい - RN起因のどうしても解決できないクラッシュも多々起きる。ユーザーの規模が大 きくなると無視できないレベルになりそう
フルRNアプリを推す理由 - ReactNative自体が安定してないので出来る限りレールに乗った方が、 嵌まることが少ない - ReactNativeを導入するとプロジェクトがかなり汚染するので、 ネイティブ画面の開発する際に開発体験(DX)を著しく下げる
投稿開発部の開発メンバー - iOS: 2名 - Android: 1名 - rails: 1名
- デザイナー: 1名 - JavaScript: 1名(部長)
MYキッチンアプリ - 目的: - レシピ投稿者向けたクックパッドアプリのリデザイン - Chrome Canaryのようなベータ版アプリとしての役割も担っている - 機能
- 多くの画面がAPIレスポンスをViewにマッピングしている程度で、センサーなど ハードウェア機能をほとんど利用しない - 対象: - 小規模:ベータユーザー(DAUで数百人程度)
MYキッチンアプリの技術面 - プラットフォーム: - iOS and Android - コードベース: -
100% React Native App (with native-module) - 言語: - JavaScript -> TypeScript
RN製アプリのメリット
快適なリリース - CodePushを利用した高速なリリース - 多い時には月20回以上のデプロイ - 問題が起きてもすぐ直せる心理的 な安心感
すぐれた開発環境 - ホットリロードを利用した高速な開発 - 少しコードの書けるデザイナーの方ならガンガン実装まで出来る - 小さいチームなのでみんなが実装できるのはとても重要 - そこそこのクオリティでマルチプラットフォーム対応が可能 -
ネイティブ実装と遷移のアニメーションが異なるなどの差異は諦める
RN製アプリのデメリット
クラッシュレポート - Sentryを利用しているが、捕捉出来てないクラッシュがありそう(要出典) - スタックトレースがJava(kotlin)ほど見やすくない - ReactNative内のNPEなども観測しているがどうしようも出来ない
まとめ(ReactNativeが向いている環境) - チームのメンバー構成 - Android, iOS, JavaScriptに詳しい人間がいる - 開発チームの規模 -
小さいチーム(2~6人)程度 - 対象のユーザーの規模 - そこそこ(数十~百万の単位になってくると厳しそう ) - フルRNアプリ or ハイブリッドアプリ - フルRNアプリを強く推奨 ReactNativeは組織にマッチするととても強力なツールになるのでぜひ検討してみて下さい!
ありがとうございました!!
ReactNative開発FAQ
バージョンアップについて - ReactNativeのバージョンアップが辛いという話をたまに聞きますが、 追従は全く辛くないです - OSSのネイティブモジュールなどが入っているとハマるかも..? - 前提としてOSSのネイティブモジュールは基本利用しないほうが良いです
マルチプラットフォーム辛くないですか? - 確認は大変ですが、実装コストを考えると対応する価値が十分にあります - リリース前はiOSとAndroid両プラットフォームでの確認を必須にしています