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
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.7k
american aa airlines®️ USA Contact Numbers: Complete 2025 Support Guide
aaguide
0
500
VS CodeとGitHub Copilotで爆速開発!アップデートの波に乗るおさらい会 / Rapid Development with VS Code and GitHub Copilot: Catch the Latest Wave
yamachu
2
390
関数型プログラミングで 「脳がバグる」を乗り越える
manabeai
2
230
ABEMAの本番環境負荷試験への挑戦
mk2taiga
5
1k
三視点LLMによる複数観点レビュー
mhlyc
0
110
推し書籍📚 / Books and a QA Engineer
ak1210
0
120
公開初日に Gemini CLI を試した話や FFmpeg と組み合わせてみた話など / Gemini CLI 初学者勉強会(#AI道場)
you
PRO
0
1.1k
サイバーエージェントグループのSRE10年の歩みとAI時代の生存戦略
shotatsuge
4
930
AIでテストプロセス自動化に挑戦する
sakatakazunori
1
200
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
SRE不在の開発チームが障害対応と 向き合った100日間 / 100 days dealing with issues without SREs
shin1988
2
1.7k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
The Cult of Friendly URLs
andyhume
79
6.5k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Building Applications with DynamoDB
mza
95
6.5k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
A designer walks into a library…
pauljervisheath
207
24k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Balancing Empowerment & Direction
lara
1
440
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
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両プラットフォームでの確認を必須にしています