SlideShare a Scribd company logo
Submit Search
Upload
React Nativeアプリをリリースし続けるために、最初に行う8つの取り組み
Report
Share
Yukiya Nakagawa
Mobile App Developer at ウォーターセル株式会社 / WaterCell Inc.
Follow
•
34 likes
•
27,066 views
1
of
101
React Nativeアプリをリリースし続けるために、最初に行う8つの取り組み
•
34 likes
•
27,066 views
Report
Share
Download Now
Download to read offline
Technology
2017年10月9日にGDG DevFest Tokyo 2017で発表した資料です。 https://tokyo.gdgjapan.org/
Read more
Yukiya Nakagawa
Mobile App Developer at ウォーターセル株式会社 / WaterCell Inc.
Follow
Recommended
Redmine issue assign notice plugin の紹介 by
Redmine issue assign notice plugin の紹介
onozaty
2.2K views
•
13 slides
日本語テストメソッドについて by
日本語テストメソッドについて
kumake
20.3K views
•
64 slides
Redmineのバージョンアップに追従していくための一工夫 by
Redmineのバージョンアップに追従していくための一工夫
Go Maeda
25.2K views
•
23 slides
Java EE から Quarkus による開発への移行について by
Java EE から Quarkus による開発への移行について
Shigeru Tatsuta
836 views
•
43 slides
設計品質とアーキテクチャ by
設計品質とアーキテクチャ
Toru Koido
6.3K views
•
62 slides
Azure Application GatewayでオンプレDMZをクラウドへ拡張する by
Azure Application GatewayでオンプレDMZをクラウドへ拡張する
拓将 平林
1.8K views
•
16 slides
More Related Content
What's hot
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料) by
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
NTT DATA Technology & Innovation
864 views
•
44 slides
End to end test automation with cypress by
End to end test automation with cypress
PankajSingh184960
310 views
•
15 slides
The Usage and Patterns of MagicOnion by
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
46.9K views
•
53 slides
メルカリ・ソウゾウでは どうGoを活用しているのか? by
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
12.7K views
•
81 slides
ドメイン駆動で開発する ラフスケッチから実装まで by
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
15.7K views
•
103 slides
ベロシティを上手く使って 技術的負債を計画的に解消する by
ベロシティを上手く使って 技術的負債を計画的に解消する
Koichiro Matsuoka
12.5K views
•
39 slides
What's hot
(20)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料) by NTT DATA Technology & Innovation
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
NTT DATA Technology & Innovation
•
864 views
End to end test automation with cypress by PankajSingh184960
End to end test automation with cypress
PankajSingh184960
•
310 views
The Usage and Patterns of MagicOnion by Yoshifumi Kawai
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
•
46.9K views
メルカリ・ソウゾウでは どうGoを活用しているのか? by Takuya Ueda
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
•
12.7K views
ドメイン駆動で開発する ラフスケッチから実装まで by 増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
•
15.7K views
ベロシティを上手く使って 技術的負債を計画的に解消する by Koichiro Matsuoka
ベロシティを上手く使って 技術的負債を計画的に解消する
Koichiro Matsuoka
•
12.5K views
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう by Unity Technologies Japan K.K.
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Unity Technologies Japan K.K.
•
47.8K views
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか by Koichiro Matsuoka
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
•
48.5K views
「実践ドメイン駆動設計」 から理解するDDD (2018年11月) by A AOKI
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
A AOKI
•
24.3K views
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム by SEGADevTech
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
SEGADevTech
•
17.6K views
A quick tour of the Cysharp OSS by Yoshifumi Kawai
A quick tour of the Cysharp OSS
Yoshifumi Kawai
•
60.3K views
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring) by Koichiro Matsuoka
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
Koichiro Matsuoka
•
15.4K views
Distributed fun with etcd by Abdulaziz AlMalki
Distributed fun with etcd
Abdulaziz AlMalki
•
897 views
なぜ人は必死でjQueryを捨てようとしているのか by Yoichi Toyota
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
•
80.6K views
はじめての品質 by エンジニア勉強会 エスキュービズム
はじめての品質
エンジニア勉強会 エスキュービズム
•
5.7K views
マイクロにしすぎた結果がこれだよ! by mosa siru
マイクロにしすぎた結果がこれだよ!
mosa siru
•
132.6K views
Spannerに関する技術メモ by Etsuji Nakai
Spannerに関する技術メモ
Etsuji Nakai
•
9.3K views
DevOps and Tools by Mohammed Fazuluddin
DevOps and Tools
Mohammed Fazuluddin
•
11.6K views
CI/CD Tools Universe: The Ultimate List by Plutora
CI/CD Tools Universe: The Ultimate List
Plutora
•
203 views
jcmd をさわってみよう by Tsunenaga Hanyuda
jcmd をさわってみよう
Tsunenaga Hanyuda
•
8.3K views
Similar to React Nativeアプリをリリースし続けるために、最初に行う8つの取り組み
React nativebeginner1 by
React nativebeginner1
Oswald Campesato
447 views
•
31 slides
Mobile Applications by
Mobile Applications
Viktor Fonic
1.3K views
•
57 slides
移动端Web app开发 by
移动端Web app开发
Zhang Xiaoxue
794 views
•
68 slides
Android 101 - Introduction to Android Development by
Android 101 - Introduction to Android Development
Andy Scherzinger
1.1K views
•
18 slides
From MEAN to the MERN Stack by
From MEAN to the MERN Stack
Troy Miles
2.2K views
•
64 slides
Android Tutorial by
Android Tutorial
Yogesh_Lakhole
364 views
•
18 slides
Similar to React Nativeアプリをリリースし続けるために、最初に行う8つの取り組み
(20)
React nativebeginner1 by Oswald Campesato
React nativebeginner1
Oswald Campesato
•
447 views
Mobile Applications by Viktor Fonic
Mobile Applications
Viktor Fonic
•
1.3K views
移动端Web app开发 by Zhang Xiaoxue
移动端Web app开发
Zhang Xiaoxue
•
794 views
Android 101 - Introduction to Android Development by Andy Scherzinger
Android 101 - Introduction to Android Development
Andy Scherzinger
•
1.1K views
From MEAN to the MERN Stack by Troy Miles
From MEAN to the MERN Stack
Troy Miles
•
2.2K views
Android Tutorial by Yogesh_Lakhole
Android Tutorial
Yogesh_Lakhole
•
364 views
What is Angular version 4? by Troy Miles
What is Angular version 4?
Troy Miles
•
530 views
OWASP Nagpur Meet #3 Android RE by OWASP Nagpur
OWASP Nagpur Meet #3 Android RE
OWASP Nagpur
•
102 views
Head first android apps dev tools by Shaka Huang
Head first android apps dev tools
Shaka Huang
•
3.9K views
Phonegap for Engineers by Brian LeRoux
Phonegap for Engineers
Brian LeRoux
•
2K views
DevQuiz 2011 の模範解答 Android編 by Makoto Yamazaki
DevQuiz 2011 の模範解答 Android編
Makoto Yamazaki
•
1.3K views
Philly CocoaHeads 20160414 - Building Your App SDK With Swift by Jordan Yaker
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
Jordan Yaker
•
260 views
Mobile Testing with Selenium 2 by Jason Huggins by Sauce Labs
Mobile Testing with Selenium 2 by Jason Huggins
Sauce Labs
•
8.8K views
HTML5 is the Future of Mobile, PhoneGap Takes You There Today by davyjones
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
davyjones
•
74.8K views
Xcodeを用いた iPhone/iPadアプリ開発 by 一樹 濱崎
Xcodeを用いた iPhone/iPadアプリ開発
一樹 濱崎
•
804 views
Applebu by 一樹 濱崎
Applebu
一樹 濱崎
•
200 views
Xcodeを用いたiPhone/iPadアプリ開発 by ashphy
Xcodeを用いたiPhone/iPadアプリ開発
ashphy
•
501 views
Applebu by 一樹 濱崎
Applebu
一樹 濱崎
•
222 views
Android OS & SDK - Getting Started by Hemant Chhapoliya
Android OS & SDK - Getting Started
Hemant Chhapoliya
•
1.3K views
Building Android games using LibGDX by Jussi Pohjolainen
Building Android games using LibGDX
Jussi Pohjolainen
•
2K views
More from Yukiya Nakagawa
Atomic Designは「マルチ」で真価を発揮する by
Atomic Designは「マルチ」で真価を発揮する
Yukiya Nakagawa
2.4K views
•
72 slides
Androidの入門書を書いたときに気にしたこと #NDS57 by
Androidの入門書を書いたときに気にしたこと #NDS57
Yukiya Nakagawa
1.2K views
•
32 slides
React Nativeの光と闇 by
React Nativeの光と闇
Yukiya Nakagawa
9.2K views
•
93 slides
アグリノートにおけるGIS情報を活かした圃場・作付管理の取り組み @ FOSS4GJ by
アグリノートにおけるGIS情報を活かした圃場・作付管理の取り組み @ FOSS4GJ
Yukiya Nakagawa
1.9K views
•
60 slides
React Native Androidはなぜ動くのか by
React Native Androidはなぜ動くのか
Yukiya Nakagawa
11.2K views
•
144 slides
CSS in JSの話 #friday13json by
CSS in JSの話 #friday13json
Yukiya Nakagawa
1.1K views
•
23 slides
More from Yukiya Nakagawa
(20)
Atomic Designは「マルチ」で真価を発揮する by Yukiya Nakagawa
Atomic Designは「マルチ」で真価を発揮する
Yukiya Nakagawa
•
2.4K views
Androidの入門書を書いたときに気にしたこと #NDS57 by Yukiya Nakagawa
Androidの入門書を書いたときに気にしたこと #NDS57
Yukiya Nakagawa
•
1.2K views
React Nativeの光と闇 by Yukiya Nakagawa
React Nativeの光と闇
Yukiya Nakagawa
•
9.2K views
アグリノートにおけるGIS情報を活かした圃場・作付管理の取り組み @ FOSS4GJ by Yukiya Nakagawa
アグリノートにおけるGIS情報を活かした圃場・作付管理の取り組み @ FOSS4GJ
Yukiya Nakagawa
•
1.9K views
React Native Androidはなぜ動くのか by Yukiya Nakagawa
React Native Androidはなぜ動くのか
Yukiya Nakagawa
•
11.2K views
CSS in JSの話 #friday13json by Yukiya Nakagawa
CSS in JSの話 #friday13json
Yukiya Nakagawa
•
1.1K views
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi by Yukiya Nakagawa
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
Yukiya Nakagawa
•
25.1K views
AndroidLint #DroidKaigi by Yukiya Nakagawa
AndroidLint #DroidKaigi
Yukiya Nakagawa
•
16.6K views
Android Lintを覚えてベテラン開発者に追いつこう #ndsmeetup by Yukiya Nakagawa
Android Lintを覚えてベテラン開発者に追いつこう #ndsmeetup
Yukiya Nakagawa
•
2.7K views
僕らのデータ同期プラクティス by Yukiya Nakagawa
僕らのデータ同期プラクティス
Yukiya Nakagawa
•
24.2K views
Android再入門 〜Eclipseのことは忘れろ〜 by Yukiya Nakagawa
Android再入門 〜Eclipseのことは忘れろ〜
Yukiya Nakagawa
•
4.4K views
もう一度Kotlinの話をしよう #ndsmeetup4 by Yukiya Nakagawa
もう一度Kotlinの話をしよう #ndsmeetup4
Yukiya Nakagawa
•
1.9K views
アグリノートを支える技術 by Yukiya Nakagawa
アグリノートを支える技術
Yukiya Nakagawa
•
9K views
NDS36 Kotlin Cute by Yukiya Nakagawa
NDS36 Kotlin Cute
Yukiya Nakagawa
•
3.6K views
NDS36 Java7&Java8 by Yukiya Nakagawa
NDS36 Java7&Java8
Yukiya Nakagawa
•
3.4K views
Coworking Business Forum in NIIGATA 2013 by Yukiya Nakagawa
Coworking Business Forum in NIIGATA 2013
Yukiya Nakagawa
•
1.4K views
Niigata.rb#03 by Yukiya Nakagawa
Niigata.rb#03
Yukiya Nakagawa
•
1.2K views
PechaKucha Niigata #3 2013.7.27 by Yukiya Nakagawa
PechaKucha Niigata #3 2013.7.27
Yukiya Nakagawa
•
735 views
ぼくのかんがえたふつうのあんどろいどかいはつ by Yukiya Nakagawa
ぼくのかんがえたふつうのあんどろいどかいはつ
Yukiya Nakagawa
•
2K views
Androidで使えるJSON-Javaライブラリ by Yukiya Nakagawa
Androidで使えるJSON-Javaライブラリ
Yukiya Nakagawa
•
16.3K views
Recently uploaded
Future of Indian ConsumerTech by
Future of Indian ConsumerTech
Kapil Khandelwal (KK)
22 views
•
68 slides
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab
21 views
•
15 slides
Piloting & Scaling Successfully With Microsoft Viva by
Piloting & Scaling Successfully With Microsoft Viva
Richard Harbridge
12 views
•
160 slides
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software
280 views
•
86 slides
PRODUCT LISTING.pptx by
PRODUCT LISTING.pptx
angelicacueva6
14 views
•
1 slide
Business Analyst Series 2023 - Week 3 Session 5 by
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10
300 views
•
20 slides
Recently uploaded
(20)
Future of Indian ConsumerTech by Kapil Khandelwal (KK)
Future of Indian ConsumerTech
Kapil Khandelwal (KK)
•
22 views
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab
•
21 views
Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft Viva
Richard Harbridge
•
12 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software
•
280 views
PRODUCT LISTING.pptx by angelicacueva6
PRODUCT LISTING.pptx
angelicacueva6
•
14 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10
•
300 views
Serverless computing with Google Cloud (2023-24) by wesley chun
Serverless computing with Google Cloud (2023-24)
wesley chun
•
11 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays
•
17 views
Network Source of Truth and Infrastructure as Code revisited by Network Automation Forum
Network Source of Truth and Infrastructure as Code revisited
Network Automation Forum
•
27 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc
•
11 views
The Research Portal of Catalonia: Growing more (information) & more (services) by CSUC - Consorci de Serveis Universitaris de Catalunya
The Research Portal of Catalonia: Growing more (information) & more (services)
CSUC - Consorci de Serveis Universitaris de Catalunya
•
80 views
Microsoft Power Platform.pptx by Uni Systems S.M.S.A.
Microsoft Power Platform.pptx
Uni Systems S.M.S.A.
•
53 views
20231123_Camunda Meetup Vienna.pdf by Phactum Softwareentwicklung GmbH
20231123_Camunda Meetup Vienna.pdf
Phactum Softwareentwicklung GmbH
•
41 views
SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdf
Virendra Rai, PMP
•
23 views
Unit 1_Lecture 2_Physical Design of IoT.pdf by StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec
•
12 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi
•
132 views
virtual reality.pptx by G036GaikwadSnehal
virtual reality.pptx
G036GaikwadSnehal
•
14 views
Info Session November 2023.pdf by AleksandraKoprivica4
Info Session November 2023.pdf
AleksandraKoprivica4
•
13 views
Zero to Automated in Under a Year by Network Automation Forum
Zero to Automated in Under a Year
Network Automation Forum
•
15 views
SUPPLIER SOURCING.pptx by angelicacueva6
SUPPLIER SOURCING.pptx
angelicacueva6
•
16 views
React Nativeアプリをリリースし続けるために、最初に行う8つの取り組み
1.
React Native 8 Yukiya Nakagawa #DevFest17
@Nkzn
2.
• @Nkzn / •
/ • • React Native v0.17 • DroidKaigi 2018 CfP 15
3.
• React Native
4 3 CI/CD • JS
7.
16% 22% 2% 60%
8.
98%
9.
React Native • React •
JS • • /PoC
10.
16% 22% 2% 60%
12.
React Native • React •
JS • • /PoC
15.
16% 22% 2% 60%
16.
16% 22% 2% 60%
17.
16% 22% 2% 60%
18.
• React Native
JSer • RN create-react-native- app Expo JSer • JS React npm android/ ios/
19.
• init • Android •
iOS
20.
• • React • JS
Redux • AltJS TypeScript FlowType • •
21.
/ React Native
23.
Agenda • 1.Getting Started 2.applicationId/Bundle Identifier 3. 4.[Android]
buildType 5.Fabric 6.Fabric 7.Fastlane 8.Firebase
24.
A
25.
1. Getting Started
26.
init $ npm install
-g react-native-cli $ react-native init MyAwesomeApp $ cd MyAwesomeApp
28.
index.android.js index.ios.js
29.
• RN ”Write
Once, Run Anywhere” •
31.
src
32.
src/index.js import React, {
Component } from 'react'; import { AppRegistry, Text, View, StyleSheet } from 'react-native'; export default class App extends Component { render() { return ( <View style={styles.container}> <Text style={styles.center}> Hello, World! </Text> </View> ); } } const styles = {/* */}; AppRegistry.registerComponent('MyAwesomeApp', () => App);
33.
index.(android|ios).js // index.android.js import "./src"; //
index.ios.js import "./src";
34.
• • Flux, Redux •
37.
v0.49 Release Note
38.
init @v0.49
39.
index.js import { AppRegistry
} from 'react-native'; import App from './App'; AppRegistry.registerComponent('MyAwesomeApp', () => App);
40.
• • App.js src
41.
src • • JSer React
UI
42.
2. applicationId & Bundle
Identifier
43.
applicationId
44.
Bundle Identifier
45.
Bundle Identifier
46.
init
47.
android/app/build.gradle android { defaultConfig { applicationId
"com.myawesomeapp"
48.
Xcode
49.
init ID • • Android
50.
ID
51.
• • applicationId Google
Play • Bundle Identifier AppStore • com.[ ] • iOS
52.
ID • • info.nkzn.kitchentimer
53.
• Android _
− • iOS − _ •
55.
• ID
57.
android/app/build.gradle android { defaultConfig { applicationId
"com.myawesomeapp"
58.
Xcode
61.
3.
62.
is
63.
android { defaultConfig { versionCode
1 versionName "1.0" android/app/build.gradle ios/MyAwesomeApp/Info.plist
64.
• • • Android versionCode
65.
• Semantic Versioning(vX.Y.Z) •
X(major) UI • Y(minor) • Z(patch)
66.
• JS • • • Git •
package.json version •
67.
versionCode • Google Play
versionCode • 1,2,3… • v1.1.3(100) 101 v1.1.4 v1.2.0
68.
versionCode def major =
2; def minor = 1; def patch = 3; android { defaultConfig { versionName "${major}.${minor}.${patch}" // 2.1.3 versionCode major * 10000 + minor * 100 + patch * 1 // 20103 android/app/build.gradle • • Google Play
69.
def major =
2; def minor = 1; def patch = 3; def build = 4; android { defaultConfig { versionName "${major}.${minor}.${patch}" // 2.1.3 versionCode major * 1000000 + minor * 10000 + patch * 100 + build // 2010304
70.
“version”: “2.1.3-build4” android { defaultConfig
{ versionName “2.1.3” versionCode 2010304 node build.gradle Info.plist
71.
4. buildType Android
72.
• • • applicationId •
73.
applicationId android { buildTypes { debug
{ applicationIdSuffix ".debug" } } android/app/build.gradle 💪
75.
App Icon
76.
<resources> <string name=“app_name”>[debug]MyAwesomeApp</string> </resources> android/app/src/debug/res/values/strings.xml android/app/src/release/res/values/strings.xml <resources> <string name=“app_name”>MyAwesomeApp</string> </resources>
77.
[debug] …
78.
A
79.
B
80.
• •
81.
5. Fabric
82.
Fabric • https://get.fabric.io/ • Twitter •
Crashlytics • Google Firebase
84.
6. Fabric
85.
• • Google Play
/ TestFlight •
86.
Beta • Fabric • Beta •
Fabric ← • Android Studio Mac
87.
7. Fastlane
88.
• https://fastlane.tools/ • iOS/Android •
Google Play/iTunes Connect • CI GitLab CI • Ruby 🤔
89.
1. Git 2. CI
Fastlane 3. Google Play/ iTunes Connect 🚀 4. 🎉
90.
8. Firebase
91.
• https://firebase.google.com/ • AB MBaaS • React
Native Firebase • •
92.
B
93.
○○
94.
iOS • iOS • Schema
Target
95.
iOS CocoaPods • CocoaPods
iOS • Google • • iOS ※
96.
JS • • • Sentry https://sentry.io/ RN
98.
• Android SDK,
Android Studio • iOS SDK, Xcode • npm • Ruby (Fastlane )
99.
• React Native
JS •
100.
JS React Native