SlideShare a Scribd company logo
HTML5/JSモバイルアプリ
最前線
田中正裕
@massie
HTML5カンファレンス2016
2016.09.03
React Nativeの場でCordovaを発表したり
MonacaとかOnsen UIを作っています
田中正裕
アシアル株式会社 代表取締役
今日のテーマ
“HTML5/JSモバイルアプリ”
やるなら今でしょ!
iPhone販売から8年
 PhoneGap発表から7年が経過し…
モバイル開発の世界では、依然として JSは遠い存在。
Why?
どうしてモバイルだけポピュラーじゃない??
色々なソリューションは出てますが…
React Native
Why?
どうして、こんなにややこしい!!
簡単に歴史から
2011年:Titanium vs. PhoneGap
Titanium: masuidriveさん、id:naoya、JustSystem浮川さん、事例にいとまが無い
PhoneGap: 認知度も事例も微妙。ユーザーも伸び悩み。Monaca登場。
2012年:AdobeがPhoneGapを作っていたNitobiを買収し、Cordovaが誕生。Apacheに。
2013年:IonicやOnsen UIが登場。じわじわCordovaが広がっていく。
2014年:Electronの前進であるAtom Shellが登場。デスクトップ向け。
2015年:React Native登場。すぐに熱狂的なファンが集まり、一躍メジャープレイヤーに。
今年:Angular 2に対応したNativeScriptも徐々に注目され、より選択肢が増えていく...
※ 非JSのXamarinや、プロダクトではない「Progressive Web Apps」は除いています
Cordovaについて
Cordovaとは?
● Web技術とネイティブ技術の合わせ技。
● WebViewを用いてUIを表現する。
● 様々なモバイルOS※
に向けて完全なクロスプラッ
トフォームアプリを作れる。
※: Android, iOS, Windows, Blackberry, Ubuntu, Firefox OS, Web OS, FireOS
Cordova開発チーム
Cordovaコミッターの会合@マイクロソフト
Cordovaの特徴
● WebViewなのでWebの開発そのもの
● 完全なクロスプラットフォーム開発
● 多くのソリューションで採用
Html5/JSモバイルアプリ最前線
課題
パフォーマンス
主な理由
■ WebViewのレンダリングが遅い
■ フレームワークが遅い
■ アプリが60fpsに最適化されていない
WKWebView、Crosswalkへの切り替え
$ # iOSでWKWebViewエンジンを用いる
$ cordova plugin add cordova-plugin-wkwebview-engine
$ # AndroidでBlinkエンジンを用いる
$ cordova plugin add cordova-plugin-crosswalk-webview
cordova-plugin-service-worker
iOSでもService Workerが使えるように
Project ACE http://microsoft.github.io/ace/
ただし、結局はJSフレームワーク自体がボトルネック気味
・jQuery Mobileは反応も動きも余り良くない。
・AngularJSもオーバーヘッドが大きい。
~ようこそ、Virtual DOMの世界へ~
Angular 2とReact
● フルスタックフレームワーク
● TypeScriptがほぼ必須
● UI用のライブラリ
● ReduxやMobxなどと組み合わせる
● Virtual DOM
● CSSのカプセル化
● モダンな実装
● Universal JavaScript
ReactとReact Native
Reactとは
Facebookが開発するVirtual DOMフレームワーク
React Nativeアプリの例
イベントダッシュボード
ReactとReact Native
● ReactJSはJavaScriptライブラリ。フロントエンドと
サーバーサイドレンダリングの両方に対応。
● React NativeはReactJSを用いてモバイルアプリを
開発するためのフレームワーク。
Virtual DOMで画面を組み立てる
var HelloWorld = React.createClass({
getInitialState: function() {
return { message: 'Hello World' };
},
onClick: function() {
var messages = ['Hello World!', 'Hello HTML5 Conference', 'Hello React!'];
var message = messages[Math.floor(Math.random() * 3)];
this.setState({ message: message });
},
render: function() {
return (
<div>
<p>{ this.state.message } />
<p><input type="button" onClick={ this.onClick } value="ようこそ、Reactの世界へ!"/></p>
</div>
);
}
});
JavaScript(JSX)で
表現されたDOM
ReactDOMとReact Native
React
ReactDOM
React Native
Reactのレンダラーとして、
ブラウザー(DOM)を使うかReact Nativeを使うかの違い
React Nativeの特徴
● Learn once, write anywhere.
● ネイティブUIをiOS/Android/Win別に実装
● React.js開発に慣れていれば簡単
React Nativeのコンポーネント
● <p>も<div>も<button>もすべてネイティブUI。
● CSSもパースされネイティブウィジェットで描画。
● 開発者は自分でコンポーネントを開発できるほか、多くの
コンポーネントがレジストリに掲載されている。
コンポーネント検索
https://JS.coach
急速に発展するコミュニティ
Angular React
Google Trendsより(Worldwide)
Reactクローンも多い
Weex Framework
● React Nativeをフォークしたフレームワーク、Alibaba開発
● Vue 2.0ではネイティブレンダリングとしてサポートされるようです
Riot.js
● Reactライクなライブラリで、Reactと比べてコードがシンプルに
● ES6で記述できるので取っつきやすい
課題
パフォーマンス
JavaScriptスレッドの問題
● UIスレッドは60fpsでスムーズに動作
● JSスレッドの処理を16msに抑える
WebView上で動作させるより遙かに高速。
ただ現状、JSはマルチコアを生かし切れない。
ReactDOM+Cordova
● WebView(HTML+CSS)を使用した、自由なUI実装
● ほかのWebライブラリを組み合わせることができる
http://touchstonejs.io/ https://onsen.io/react/
Progressive Web Apps
Progressive Web Appsの特徴
● Service Workersをネイティブ層として使用
● ブラウザ自体をネイティブアプリに近づける
● iOSに未対応(Under Consideration)
● 考え方はハイブリッドアプリに近い
PhoneGap is cease to exist, but not yet?
3者の比較
Cordova React Native Progressive Web Apps
開発チーム Apacheコミュニティ
MS、Adobeが中心
Facebook Google
Chrome & Polymer
UIの記述 HTML、CSS React Component HTML、CSS
JSフレームワーク 制限なし React 制限なし
パフォーマンス △ ○ △
デバイス機能 ○ ○ △
配布手段 アプリストア アプリストア Webサイト
対応端末 iOS、Android、Win Univ. iOS、Android、Win Univ. Android
共通:どれもツールは充実しており、無料で手軽に始められる。
所感
● Cordova: すでに太いレールが敷かれているが、新しさはない
● React Native: 皆がバラバラにレールを敷いているが、刺激的で活発
● Progressive Apps: 難しさがないため広がりに期待
実際に試すことで、
メリット・デメリットが見えてくると思います
時間があればデモ
Cordovaことはじめ
$ npm -g install cordova
$ cordova create helloworld
$ cd helloworld
$ cordova add platform ios
$ cordova add platform android
$ cordova serve # HTTPサーバー経由で配信
$ cordova build # アプリをビルド
Cordova上でUIフレームワークを使用する
Monaca CLIを通じてOnsen UIを使った例:
$ npm install -g monaca
$ monaca create helloworld
? Choose a category: (Use arrow keys: ↑ ↓ →)
> Onsen UI and Angular 2
Onsen UI and React
Ionic
Sample Apps
$ monaca preview # HTTPサーバーで表示
$ monaca debug # 実機デバッグ
$ monaca remote build ios # リモートビルド ホットリロードに対応
React Native編
$ npm install -g react-native-cli
$ react-native init helloworld
# iOSアプリを実行する
$ react-native run-ios
# Androidアプリを実行する
$ react-native run-android
ありがとうございました

More Related Content

PDF
Cordovaの特徴と開発手法概要
PPTX
モバイル用Webフレームワーク最前線
PPTX
Web標準技術で iOS、Android両対応アプリを開発
PDF
HTML5ハイブリッドアプリ開発 で拓くビジネスチャンス
PPTX
Monaca事例から学ぶHTML5モバイルアプリの活用ポイント
PDF
はやわかりHTML5ハイブリッドアプリ開発事情
PDF
Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅
PDF
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
Cordovaの特徴と開発手法概要
モバイル用Webフレームワーク最前線
Web標準技術で iOS、Android両対応アプリを開発
HTML5ハイブリッドアプリ開発 で拓くビジネスチャンス
Monaca事例から学ぶHTML5モバイルアプリの活用ポイント
はやわかりHTML5ハイブリッドアプリ開発事情
Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス

What's hot (20)

PPTX
エンタープライズ要件に対応する高品質なCordovaアプリ開発のポイント
PDF
HTML5ハイブリッドアプリ の活用ポイント
PPTX
Onsen UIが目指すもの
PDF
20160308seminar2
PPTX
【デブサミ関西2014】Web技術で作るエンタープライズアプリ
PPTX
Gartner summit 2016
PPTX
CordovaでAngularJSアプリ開発
PPTX
Cordova×業務システム:失敗しないモバイル開発の秘訣
PDF
120分聞けばドヤ顔で語れる apache cordova スーパー勉強会
PDF
Onsen UI 2.0とUIライブラリの未来
PDF
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
PDF
Nifty cloud mbaas
PPTX
HTML5ハイブリッドアプリ開発のベストプラクティス
PDF
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
PDF
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
PPTX
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
PDF
Monacaソリューションセミナー20160621
PPTX
事例で解説するハイブリッドアプリ開発のポイント
PPTX
iOS App Storeの話
PDF
iOS/Android/Windows クロスプラットフォーム モバイルアプリ開発
エンタープライズ要件に対応する高品質なCordovaアプリ開発のポイント
HTML5ハイブリッドアプリ の活用ポイント
Onsen UIが目指すもの
20160308seminar2
【デブサミ関西2014】Web技術で作るエンタープライズアプリ
Gartner summit 2016
CordovaでAngularJSアプリ開発
Cordova×業務システム:失敗しないモバイル開発の秘訣
120分聞けばドヤ顔で語れる apache cordova スーパー勉強会
Onsen UI 2.0とUIライブラリの未来
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
Nifty cloud mbaas
HTML5ハイブリッドアプリ開発のベストプラクティス
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Monacaソリューションセミナー20160621
事例で解説するハイブリッドアプリ開発のポイント
iOS App Storeの話
iOS/Android/Windows クロスプラットフォーム モバイルアプリ開発
Ad

Similar to Html5/JSモバイルアプリ最前線 (20)

PPTX
cordova/electronの構造を知る
PPTX
Webエンジニアによるスマートフォンアプリ開発
PDF
Web プラットフォーム再考 ~PWA のもたらす未来の光と影~
PDF
PhoneGapで作るハイブリッドアプリケーション
PDF
HTML5ハイブリッド アプリ開発実践編
PDF
Tizen & Crosswalk
PPTX
PhoneGapユーザー会@大阪 講演資料
PPTX
Phone gap+javascriptスマホアプリ開発(入門編)
KEY
スマートフォンアプリケーション開発の最新動向
PDF
Firefox OS - Blaze Your Own Path
PDF
PhoneGapでWebアプリをスマホアプリ化
PDF
Cordova利用アプリ開発経験談
PPTX
Cordovaコトハジメ( Html5fun×senchUG )
PDF
React Native 入門
PDF
Html5で加速するモバイルアプリ開発
PPTX
企画者が押さえておきたいHtml5アプリ開発の要点
PDF
モバイルWebアプリのこれまでとこれから。Sencha Touch vs jQuery Mobile
PPTX
HTML5 クロスプラットフォームアプリ開発の現実解
PDF
アプリ開発の
PDF
HTML5でハイブリットなアプリ開発をアレしてみた件
cordova/electronの構造を知る
Webエンジニアによるスマートフォンアプリ開発
Web プラットフォーム再考 ~PWA のもたらす未来の光と影~
PhoneGapで作るハイブリッドアプリケーション
HTML5ハイブリッド アプリ開発実践編
Tizen & Crosswalk
PhoneGapユーザー会@大阪 講演資料
Phone gap+javascriptスマホアプリ開発(入門編)
スマートフォンアプリケーション開発の最新動向
Firefox OS - Blaze Your Own Path
PhoneGapでWebアプリをスマホアプリ化
Cordova利用アプリ開発経験談
Cordovaコトハジメ( Html5fun×senchUG )
React Native 入門
Html5で加速するモバイルアプリ開発
企画者が押さえておきたいHtml5アプリ開発の要点
モバイルWebアプリのこれまでとこれから。Sencha Touch vs jQuery Mobile
HTML5 クロスプラットフォームアプリ開発の現実解
アプリ開発の
HTML5でハイブリットなアプリ開発をアレしてみた件
Ad

More from アシアル株式会社 (15)

PDF
MonacaとEducation活動の紹介
PDF
PWA 4 Business
PDF
Monacaによるモバイルアプリ開発ことはじめ
PDF
kintone 連携スマホアプリの開発・配布体験
PDF
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
PDF
書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)
PDF
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)
PDF
Onsen UI 2 開発における JS フレームワーク衝突事例集
PPTX
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
PDF
Onsen UI の最近とこれから 〜 国内サポートはじめました
PPTX
最新UIフレームワーク Onsen UI2で カッコイイWordPress連携アプリを作る方法
PDF
創業明治33年の衣料卸問屋がﰀ アプリで挑むコミュニケーション変革 ﰀ ~MonacaとmBaaSを活用したﰀ ビジネスチャットアプリの紹介〜 ﰀ
PPTX
HTML5×Monacaプログラミング教育事例セミナー・ワークショップ資料
PPTX
HTML5プロフェッショナル認定試験対策講座
PDF
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
MonacaとEducation活動の紹介
PWA 4 Business
Monacaによるモバイルアプリ開発ことはじめ
kintone 連携スマホアプリの開発・配布体験
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)
Onsen UI 2 開発における JS フレームワーク衝突事例集
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
Onsen UI の最近とこれから 〜 国内サポートはじめました
最新UIフレームワーク Onsen UI2で カッコイイWordPress連携アプリを作る方法
創業明治33年の衣料卸問屋がﰀ アプリで挑むコミュニケーション変革 ﰀ ~MonacaとmBaaSを活用したﰀ ビジネスチャットアプリの紹介〜 ﰀ
HTML5×Monacaプログラミング教育事例セミナー・ワークショップ資料
HTML5プロフェッショナル認定試験対策講座
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ

Html5/JSモバイルアプリ最前線