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
1
6.4k
Cookpad.apk#1-ReactNativeについて
https://cookpad.connpass.com/event/96502/
kazy1991
August 21, 2018
Tweet
Share
More Decks by kazy1991
See All by kazy1991
基本のAndroid View開発ドキュメント
kazy1991
0
2.7k
いつか使ってみたいOperatorたち
kazy1991
0
490
Cookpad TechKitchen#6-android-with-ml-and-scheduler
kazy1991
0
720
Droidkaigi 2017
kazy1991
5
12k
RxJava Droidkaigi
kazy1991
1
110
rx.pdf
kazy1991
0
140
はじめてのvimscipt
kazy1991
1
450
Other Decks in Technology
See All in Technology
Operating Operator
shhnjk
1
580
freeeのアクセシビリティの現在地 / freee's Current Position on Accessibility
ymrl
2
180
事業成長の裏側:エンジニア組織と開発生産性の進化 / 20250703 Rinto Ikenoue
shift_evolve
PRO
2
21k
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
4
13k
ビギナーであり続ける/beginning
ikuodanaka
3
750
整頓のジレンマとの戦い〜Tidy First?で振り返る事業とキャリアの歩み〜/Fighting the tidiness dilemma〜Business and Career Milestones Reflected on in Tidy First?〜
bitkey
2
16k
CDKTFについてざっくり理解する!!~CloudFormationからCDKTFへ変換するツールも作ってみた~
masakiokuda
1
130
Glacierだからってコストあきらめてない? / JAWS Meet Glacier Cost
taishin
1
160
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
2025-07-06 QGIS初級ハンズオン「はじめてのQGIS」
kou_kita
0
170
React開発にStorybookとCopilotを導入して、爆速でUIを編集・確認する方法
yu_kod
1
270
What’s new in Android development tools
yanzm
0
310
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
7
510
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Producing Creativity
orderedlist
PRO
346
40k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
KATA
mclloyd
30
14k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
A designer walks into a library…
pauljervisheath
207
24k
It's Worth the Effort
3n
185
28k
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両プラットフォームでの確認を必須にしています