SlideShare a Scribd company logo
1 of 87
Download to read offline
CodePushとReact Nativeで
緊急OTAリリース!了解!🚑
Masayuki Iwai@myb
#iosdc
CodePushとReact Nativeで
緊急OTAリリース!了解!🚑
Masayuki Iwai@myb
#iosdc
ホットパッチング
自己紹介
岩井雅幸@myb



モバイル・アプリケーション・エンジニア

at Unity Technologies Japan

以前はWebデザイン・開発、Flashコンテ
ンツ制作、iOSアプリ、ゲーム制作など
著書に「uGUIではじめるUnityUIデザイン
の教科書」
自己紹介
岩井雅幸@myb



モバイル・アプリケーション・エンジニア

at Unity Technologies Japan

以前はWebデザイン・開発、Flashコンテ
ンツ制作、iOSアプリ、ゲーム制作など
著書に「uGUIではじめるUnityUIデザイン
の教科書」
🆕
こんなアプリを作っています
Unity Meetup
• Unityユーザーのためのイベントアプリ

イベント検索、タイムテーブル、参加申し

込み、チェックイン、アンケート回答機能
• フルReact Native

導入の経緯は昨年のiOSDC 2017 Reject Conf
での発表を参照

https://www.slideshare.net/MasayukiIwai/
react-native-110226150
トラブルが…
2018年5月
Unite Tokyo 2018での出来事
Unite Tokyo 2018での出来事
• 毎年開催しているUnity公式のカンファレンス
• 今年は5月に3日間開催、2000人以上参加
• このイベントに合わせてチャット機能を実装
• 海外チームが開発しているAPIを利用する必要があり、

連携を依頼していたがギリギリになってしまった
• 前バージョンでパフォーマンスが悪かったのでリファクタリング
Unite Tokyo 2018での出来事
• イベント3日前に新バージョン完成、申請→翌朝審査通過😅
• イベント前日の夜、新機能の表示系バグを発見、修正→翌未明審査通過😨
• イベント初日の夜、重大なバグを発見😱
→特急審査を依頼して4時間で審査通過😵
正直しんどかった😵
CodePushを導入していれば
ホットパッチングできたのに…
なんで導入して
いなかったのか…😩
なんで導入していなかったのか…😩
• なんか面倒そうだったので後回しにしていた
• Appleの審査が十分早かったのであまり必要性を感じていなかった
後悔先に立たず
時すでにお🍣
What is CodePush?
の前に
ざっくりReact Native
ざっくりReact Native
• Reactベースでネイティブアプリ開発のためのフレームワーク
• React由来のコンポーネントベースで、reduxとも親和性が高い
• JavaScript(JSX)で記述、JavaScriptCore上で動作
https://facebook.github.io/react-native/
ざっくりReact Native
UIKitなど
React Native Library
JavaScriptCore
React JS
アプリケーションコード React Native JS Library
ざっくりReact Native
UIKitなど
React Native Library
JavaScriptCore
React JS
アプリケーションコード React Native JS Library
jsbundle
What is CodePush?
What is CodePush?
• Microsoft製のクラウドサービス
• React NativeやCordovaのJSコードをホットパッチング可能
• ウェブ、SDK、CLIが提供されている
• 以前は独立したサービス

→現在はVisual Studio App Centerに統合
https://github.com/Microsoft/code-push
What is CodePush?
UIKitなど
React Native Library
JavaScriptCore
React JS
アプリケーションコード React Native JS Library
jsbundle
ここの部分
を配信🚀
Visual Studio App Center
• CodePushの他にも

CI、テスト、Analytics、
Push通知など多機能
• 無料から利用可能

(ビルド回数や時間に制限有)
• CodePushは無料で無制限に
利用可能
https://appcenter.ms
Visual Studio App Center
• CodePushの他にも

CI、テスト、Analytics、
Push通知など多機能
• 無料から利用可能

(ビルド回数や時間に制限有)
• CodePushは無料で無制限に
利用可能
https://appcenter.ms
Fantastic🤩
でも…
ホットパッチングって
大丈夫なの?🤔
終わりなきリジェクト
との戦い💥
Appleのガイドラインを

振り返る
Appleのガイドラインを振り返る
2.7 Apps that download code in any way or form will be rejected
2.8 Apps that install or launch other executable code will be
rejected
App Store Review Guidelines (2015)
Appleのガイドラインを振り返る
2.7 Apps that download code in any way or form will be rejected
2.8 Apps that install or launch other executable code will be
rejected
App Store Review Guidelines (2015)
Appleのガイドラインを振り返る
2.5.2 Apps should be self-contained in their bundles, and may
not read or write data outside the designated container area,
nor may they download, install, or execute code which
introduces or changes features or functionality of the app,
including other apps. (抜粋)
App Store Review Guidelines (2016)
Appleのガイドラインを振り返る
2.5.2 Apps should be self-contained in their bundles, and may
not read or write data outside the designated container area,
nor may they download, install, or execute code which
introduces or changes features or functionality of the app,
including other apps. (抜粋)
App Store Review Guidelines (2016)
Appleのガイドラインを振り返る
3.3.2 An Application may not download or install executable code.
Interpreted code may only be used in an Application if all scripts,
code and interpreters are packaged in the Application and not
downloaded. The only exception to the foregoing is scripts and code
downloaded and run by Apple's built-in WebKit framework or
JavascriptCore, provided that such scripts and code do not change
the primary purpose of the Application by providing features or
functionality that are inconsistent with the intended and advertised
purpose of the Application as submitted to the App Store.
Apple Developer Program License Agreement (2016)
Appleのガイドラインを振り返る
3.3.2 An Application may not download or install executable code.
Interpreted code may only be used in an Application if all scripts,
code and interpreters are packaged in the Application and not
downloaded. The only exception to the foregoing is scripts and code
downloaded and run by Apple's built-in WebKit framework or
JavascriptCore, provided that such scripts and code do not change
the primary purpose of the Application by providing features or
functionality that are inconsistent with the intended and advertised
purpose of the Application as submitted to the App Store.
Apple Developer Program License Agreement (2016)
Appleのガイドラインを振り返る
3.3.2 An Application may not download or install executable code.
Interpreted code may only be used in an Application if all scripts,
code and interpreters are packaged in the Application and not
downloaded. The only exception to the foregoing is scripts and code
downloaded and run by Apple's built-in WebKit framework or
JavascriptCore, provided that such scripts and code do not change
the primary purpose of the Application by providing features or
functionality that are inconsistent with the intended and advertised
purpose of the Application as submitted to the App Store.
Apple Developer Program License Agreement (2016)
Appleのガイドラインを振り返る
3.3.2 An Application may not download or install executable code.
Interpreted code may only be used in an Application if all scripts,
code and interpreters are packaged in the Application and not
downloaded. The only exception to the foregoing is scripts and code
downloaded and run by Apple's built-in WebKit framework or
JavascriptCore, provided that such scripts and code do not change
the primary purpose of the Application by providing features or
functionality that are inconsistent with the intended and advertised
purpose of the Application as submitted to the App Store.
Apple Developer Program License Agreement (2016)
Appleのガイドラインを振り返る
• アプリは、機能を変えるようなコードをダウンロード、インストール、

実行してはならない
• インタープリテッドコードは、すべてのスクリプトがアプリに含まれて

いる必要がある
• 唯一の例外は、WebKitやJavaScriptCoreによってダウンロード、実行

される場合のみ
React Nativeは
JavaScriptCore上で
動くので-
現在のAppleのガイドライン
3.3.2 Except as set forth in the next paragraph, an Application may
not download or install executable code. Interpreted code may be
downloaded to an Application but only so long as such code: (a) does
not change the primary purpose of the Application by providing
features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store,
(b) does not create a store or storefront for other code or
applications, and (c) does not bypass signing, sandbox, or other
security features of the OS.
Apple Developer Program License Agreement (Current)
現在のAppleのガイドライン
3.3.2 Except as set forth in the next paragraph, an Application may
not download or install executable code. Interpreted code may be
downloaded to an Application but only so long as such code: (a) does
not change the primary purpose of the Application by providing
features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store,
(b) does not create a store or storefront for other code or
applications, and (c) does not bypass signing, sandbox, or other
security features of the OS.
Apple Developer Program License Agreement (Current)
現在のAppleのガイドライン
3.3.2 Except as set forth in the next paragraph, an Application may
not download or install executable code. Interpreted code may be
downloaded to an Application but only so long as such code: (a) does
not change the primary purpose of the Application by providing
features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store,
(b) does not create a store or storefront for other code or
applications, and (c) does not bypass signing, sandbox, or other
security features of the OS.
Apple Developer Program License Agreement (Current)
現在のAppleのガイドライン
3.3.2 Except as set forth in the next paragraph, an Application may
not download or install executable code. Interpreted code may be
downloaded to an Application but only so long as such code: (a) does
not change the primary purpose of the Application by providing
features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store,
(b) does not create a store or storefront for other code or
applications, and (c) does not bypass signing, sandbox, or other
security features of the OS.
Apple Developer Program License Agreement (Current)
現在のAppleのガイドライン
3.3.2 Except as set forth in the next paragraph, an Application may
not download or install executable code. Interpreted code may be
downloaded to an Application but only so long as such code: (a) does
not change the primary purpose of the Application by providing
features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store,
(b) does not create a store or storefront for other code or
applications, and (c) does not bypass signing, sandbox, or other
security features of the OS.
Apple Developer Program License Agreement (Current)
現在のAppleのガイドライン
• App Storeに申請されたのと違う機能を提供して、アプリの主目的を

変えない
• 他のコードやアプリのストアやストアフロントを作成しない
• 署名やサンドボックスその他OSのセキュリティ機能を迂回しない
→以上の条件を満たして入れば、実行可能なコードをダウンロードする

ことはOK
CodePushによる
ホットパッチングは合法🙌
用法・用量を守って正しくお使いください
同様のサービスは?🤔
同様のサービスは?🤔
• Rollout.io、JSPatch
→2017年3月、これらを使用していた開発者にAppleから警告

Apple Developer Program License Agreementと

App Store Review Guidelinesに抵触
→リジェクト対象に😢
https://forums.developer.apple.com/thread/73640
同様のサービスは?🤔
“This includes any code which passes arbitrary parameters to
dynamic methods such as dlopen(), dlsym(), respondsToSelector:,
performSelector:, method_exchangeImplementations(), and
running remote scripts in order to change app behavior or call
SPI, based on the contents of the downloaded script. Even if the
remote resource is not intentionally malicious, it could easily be
hijacked via a Man In The Middle (MiTM) attack, which can pose a
serious security vulnerability to users of your app.”
https://forums.developer.apple.com/thread/73640
同様のサービスは?🤔
“This includes any code which passes arbitrary parameters to
dynamic methods such as dlopen(), dlsym(), respondsToSelector:,
performSelector:, method_exchangeImplementations(), and
running remote scripts in order to change app behavior or call
SPI, based on the contents of the downloaded script. Even if the
remote resource is not intentionally malicious, it could easily be
hijacked via a Man In The Middle (MiTM) attack, which can pose a
serious security vulnerability to users of your app.”
https://forums.developer.apple.com/thread/73640
同様のサービスは?🤔
“This includes any code which passes arbitrary parameters to
dynamic methods such as dlopen(), dlsym(), respondsToSelector:,
performSelector:, method_exchangeImplementations(), and
running remote scripts in order to change app behavior or call
SPI, based on the contents of the downloaded script. Even if the
remote resource is not intentionally malicious, it could easily be
hijacked via a Man In The Middle (MiTM) attack, which can pose a
serious security vulnerability to users of your app.”
https://forums.developer.apple.com/thread/73640
セキュリティの
観点からダメ🙅
ホットパッチング自体は合法🙌
CodePushを使ってみよう
CodePushを使ってみよう
1. App Centerでアプリを登録する
2. App Center CLIをインストール
3. React Native Client SDKをインストール
4. アプリケーションコードの修正
1. App Centerで

アプリを登録する
1. App Centerでアプリを登録する
👉
1. App Centerでアプリを登録する
1. App Centerでアプリを登録する
👉
1. App Centerでアプリを登録する
1. App Centerでアプリを登録する
1. App Centerでアプリを登録する
👉
1. App Centerでアプリを登録する
👉
1. App Centerでアプリを登録する
👉
1. App Centerでアプリを登録する
👉
1. App Centerでアプリを登録する
2. App Center CLIを

インストール
2. App Center CLIをインストール
$ brew install node
$ npm install -g appcenter-cli
2. App Center CLIをインストール
$ appcenter login


Opening your browser...

? Visit https://appcenter.ms/cli-login?hostname=xxx.local and
enter the code:

? Access code from browser:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Logged in as xxxxxxxx
2. App Center CLIをインストール
$ appcenter codepush deployment list -a <ORG>/<APP>

!""""""""""""#"""""""""""""""""""""""""""""""""""""""$

% Name % Key %

&""""""""""""'"""""""""""""""""""""""""""""""""""""""(

% Staging % xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx %

&""""""""""""'"""""""""""""""""""""""""""""""""""""""(

% Production % xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx %

)""""""""""""*"""""""""""""""""""""""""""""""""""""""+
3. React Native Client SDKを
インストール
3. React Native Client SDKをインストール
$ cd /path/to/project
$ npm install --save react-native-code-push
3. React Native Client SDKをインストール
$ react-native link react-native-code-push
...
? What is your CodePush deployment key for Android (hit <ENTER>
to ignore)
...
? What is your CodePush deployment key for iOS (hit <ENTER> to
ignore)
4.アプリケーションコードの修正
4. アプリケーションコードの修正
App.js
export default class App extends React.Component<Props, State> {
// ...
}
4. アプリケーションコードの修正
App.js
import codePush from ‘react-native-code-push’
class App extends React.Component<Props, State> {
// ...
}
App = codePush(App)
export default App
4. アプリケーションコードの修正
App.js
import codePush from ‘react-native-code-push’
class App extends React.Component<Props, State> {
// ...
}
App = codePush({
checkFrequency: codePush.CheckFrequency.ON_APP_RESUME,
installMode: codePush.InstallMode.ON_NEXT_RESUME,
)(App)
export default App
That’s it!
CodePushで配信してみよう
CodePushで配信してみよう
$ appcenter codepush release-react -a <ORG>/<APP> -d Staging
Demo
https://github.com/miyabi/iosdc18example
まとめ
• CodePushの導入は簡単!デプロイも簡単!
• Appleのガイドライン的にもOKなので安心して使える!

(ガイドラインに従って適切に使いましょう)
• JavaScript部分のみの配信なので、適用できるところは限られる

(既存アプリへの導入も可能)
Thank you!

More Related Content

What's hot

もっと良くなるHTMLアプリケーション設計と実装
もっと良くなるHTMLアプリケーション設計と実装もっと良くなるHTMLアプリケーション設計と実装
もっと良くなるHTMLアプリケーション設計と実装Mitsue-Links
 
Androidアプリケーション開発入門
Androidアプリケーション開発入門Androidアプリケーション開発入門
Androidアプリケーション開発入門OESF Education
 
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Toru Yamaguchi
 
2015 11 05_ios9_新仕様まとめ_社内勉強会
2015 11 05_ios9_新仕様まとめ_社内勉強会2015 11 05_ios9_新仕様まとめ_社内勉強会
2015 11 05_ios9_新仕様まとめ_社内勉強会Natsuki Yamanaka
 
AIR for Android で アプリ内課金
AIR for Android で アプリ内課金AIR for Android で アプリ内課金
AIR for Android で アプリ内課金Sadao Tokuyama
 
Cordovaの最近ホットな話題と地雷をまとめて紹介
Cordovaの最近ホットな話題と地雷をまとめて紹介Cordovaの最近ホットな話題と地雷をまとめて紹介
Cordovaの最近ホットな話題と地雷をまとめて紹介アシアル株式会社
 
UTアンチパターン
UTアンチパターンUTアンチパターン
UTアンチパターンryoheiseki1
 
IonicFrameworkをつかってSalesforce1アプリの開発をしよう
IonicFrameworkをつかってSalesforce1アプリの開発をしようIonicFrameworkをつかってSalesforce1アプリの開発をしよう
IonicFrameworkをつかってSalesforce1アプリの開発をしようTaiki Yoshikawa
 
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦Tetsuya Shiraishi
 
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)アシアル株式会社
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platformToru Yamaguchi
 
その Web サイト、その Web アプリを最新の IE11 に対応しよう
その Web サイト、その Web アプリを最新の IE11 に対応しようその Web サイト、その Web アプリを最新の IE11 に対応しよう
その Web サイト、その Web アプリを最新の IE11 に対応しようOsamu Monoe
 

What's hot (13)

もっと良くなるHTMLアプリケーション設計と実装
もっと良くなるHTMLアプリケーション設計と実装もっと良くなるHTMLアプリケーション設計と実装
もっと良くなるHTMLアプリケーション設計と実装
 
Androidアプリケーション開発入門
Androidアプリケーション開発入門Androidアプリケーション開発入門
Androidアプリケーション開発入門
 
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
 
iOS開発豆知識_エスキュービズム勉強会20141006
iOS開発豆知識_エスキュービズム勉強会20141006iOS開発豆知識_エスキュービズム勉強会20141006
iOS開発豆知識_エスキュービズム勉強会20141006
 
2015 11 05_ios9_新仕様まとめ_社内勉強会
2015 11 05_ios9_新仕様まとめ_社内勉強会2015 11 05_ios9_新仕様まとめ_社内勉強会
2015 11 05_ios9_新仕様まとめ_社内勉強会
 
AIR for Android で アプリ内課金
AIR for Android で アプリ内課金AIR for Android で アプリ内課金
AIR for Android で アプリ内課金
 
Cordovaの最近ホットな話題と地雷をまとめて紹介
Cordovaの最近ホットな話題と地雷をまとめて紹介Cordovaの最近ホットな話題と地雷をまとめて紹介
Cordovaの最近ホットな話題と地雷をまとめて紹介
 
UTアンチパターン
UTアンチパターンUTアンチパターン
UTアンチパターン
 
IonicFrameworkをつかってSalesforce1アプリの開発をしよう
IonicFrameworkをつかってSalesforce1アプリの開発をしようIonicFrameworkをつかってSalesforce1アプリの開発をしよう
IonicFrameworkをつかってSalesforce1アプリの開発をしよう
 
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
 
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platform
 
その Web サイト、その Web アプリを最新の IE11 に対応しよう
その Web サイト、その Web アプリを最新の IE11 に対応しようその Web サイト、その Web アプリを最新の IE11 に対応しよう
その Web サイト、その Web アプリを最新の IE11 に対応しよう
 

Similar to CodePushとReact Nativeで緊急OTAリリース!了解!

kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験アシアル株式会社
 
AppPot製品概要
AppPot製品概要AppPot製品概要
AppPot製品概要Ryohei Sogo
 
Google Play Developer APIを使ってみた
Google Play Developer APIを使ってみたGoogle Play Developer APIを使ってみた
Google Play Developer APIを使ってみたshinya sakemoto
 
デブサミ2015「実践!クロスプラットフォーム モバイルアプリ開発」
デブサミ2015「実践!クロスプラットフォーム モバイルアプリ開発」デブサミ2015「実践!クロスプラットフォーム モバイルアプリ開発」
デブサミ2015「実践!クロスプラットフォーム モバイルアプリ開発」アシアル株式会社
 
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏kintone papers
 
[POST.Dev Japan] VS Code で試みる開発体験の向上
[POST.Dev Japan] VS Code で試みる開発体験の向上[POST.Dev Japan] VS Code で試みる開発体験の向上
[POST.Dev Japan] VS Code で試みる開発体験の向上Tomomi Imura
 
AI-first Code Editor 「Cursor」の機能紹介
AI-first Code Editor 「Cursor」の機能紹介AI-first Code Editor 「Cursor」の機能紹介
AI-first Code Editor 「Cursor」の機能紹介ssuser39314d
 
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートデモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートAkira Inoue
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発Yuta Matsumura
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化Issei Hiraoka
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Saki Homma
 
静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応Masaru Horioka
 
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!CData Software Japan
 
ACI Stateful APP 作ってみた
ACI Stateful APP 作ってみたACI Stateful APP 作ってみた
ACI Stateful APP 作ってみたyushimaz
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化Takashi Okamoto
 
Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発Akihiro Iwaya
 
Logic Apps/Flow Update Summary
Logic Apps/Flow Update SummaryLogic Apps/Flow Update Summary
Logic Apps/Flow Update SummaryTomoyuki Obi
 
SORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデートSORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデートSORACOM,INC
 
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324Shotaro Suzuki
 

Similar to CodePushとReact Nativeで緊急OTAリリース!了解! (20)

kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
 
AppPot製品概要
AppPot製品概要AppPot製品概要
AppPot製品概要
 
Google Play Developer APIを使ってみた
Google Play Developer APIを使ってみたGoogle Play Developer APIを使ってみた
Google Play Developer APIを使ってみた
 
デブサミ2015「実践!クロスプラットフォーム モバイルアプリ開発」
デブサミ2015「実践!クロスプラットフォーム モバイルアプリ開発」デブサミ2015「実践!クロスプラットフォーム モバイルアプリ開発」
デブサミ2015「実践!クロスプラットフォーム モバイルアプリ開発」
 
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
 
[POST.Dev Japan] VS Code で試みる開発体験の向上
[POST.Dev Japan] VS Code で試みる開発体験の向上[POST.Dev Japan] VS Code で試みる開発体験の向上
[POST.Dev Japan] VS Code で試みる開発体験の向上
 
GCPの画像認識APIの紹介
GCPの画像認識APIの紹介 GCPの画像認識APIの紹介
GCPの画像認識APIの紹介
 
AI-first Code Editor 「Cursor」の機能紹介
AI-first Code Editor 「Cursor」の機能紹介AI-first Code Editor 「Cursor」の機能紹介
AI-first Code Editor 「Cursor」の機能紹介
 
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートデモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応
 
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
 
ACI Stateful APP 作ってみた
ACI Stateful APP 作ってみたACI Stateful APP 作ってみた
ACI Stateful APP 作ってみた
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
 
Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発
 
Logic Apps/Flow Update Summary
Logic Apps/Flow Update SummaryLogic Apps/Flow Update Summary
Logic Apps/Flow Update Summary
 
SORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデートSORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデート
 
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
 

Recently uploaded

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

CodePushとReact Nativeで緊急OTAリリース!了解!