SlideShare a Scribd company logo
HTML5ハイブリッドアプリ開発の
ベストプラクティス
CORDOVAユーザー会 / アシアル株式会社 田中正裕
自己紹介
» 田中正裕
» アシアル株式会社所属
» Twitter: @massie
» 職務: CEO (Chief ExectiveEngineering Officer)
» HTML5Expert.jpエキスパート
» Cordovaユーザー会、発起人
» Cordova(PhoneGap)歴 5年
HTML5の弱点は「ハードウェアAPIへのアクセス」
ブラウザーエンジンの上で実行
ネイティブアプリとして実行
デバイスAPI使えない
デバイスAPI使える
ネイティブSDKのプラットフォームAPIの充実度は
HTML5の比ではない
HTML5ハイブリッドアプリのおさらい
ネイティブアプリ WebアプリHTML5ハイブリッドアプリ
ほぼクロスプラットフォーム
Web技術と一部ネイティブ技術
クロスプラットフォーム
Web技術
シングルプラットフォーム
ネイティブ技術
他のクロスプラットフォーム環境との違い
HTML5ハイブリッドアプリ vs.
Unity
Xamarin
Adobe AIRやFlash
Titanium Mobile
開発言語: HTML5とJavaScript それぞれの言語
実行環境: WebView
ネイティブコードの吐き出しや
仮想マシン実行など
どうやって作るの?
CORDOVA
• HTML5ハイブリッドアプリ開発のデファクト
• オープンソース
• 対応ライブラリが多い
CORDOVAとPHONEGAP
2011年
Adobe社がNitobi社を買収
PhoneGapは「Cordova」に
2009年
Nitobi社がPhoneGapを開発
オープンソース製品
それから
多くの企業がCordova開発に参加
誕生!
PhoneGapは
Adobe社の
ディストリ
オープンソース化
各社が開発協力
Cordovaと命名
by
CORDOVAの仕組み
JavaScript
ロジック
JavaScript
ロジック
JavaScript
ロジック
Nativeロジック Nativeロジック
Cordova JS
インタフェース
全プラットフォーム共通のAPIインターフェースを提供しており
プラットフォームに依存しない開発が可能
Cordova JS
インタフェース
Cordova JS
インタフェース
Cordova JS
インタフェース
Cordova JS
インタフェース
CEASE TO EXIST
 CordovaはHTML5ブラウザーに実装されていないAPIを提供する
 すべてのブラウザーがフルのHTML5機能を備えたら、Cordovaの存在意義はなくなる
”いずれ消えゆくもの”
PhoneGap Beliefs, Goals, and Philosophy by Brian LeRoux
http://phonegap.com/2012/05/09/phonegap-beliefs-goals-and-philosophy/
私の意見としては、ネイティブとのギャップを
永遠に埋め続けるだろうと思っています
CORDOVAのシェア
出典: AppBrain Stats
0% 5% 10% 15%
ビジネス
金融
医療
ヘルスケア
スポーツ
ショッピング
トラベル
ライフスタイル
ニュース
教育
全Androidアプリの5.96%に採用
Cordova /
PhoneGap
5.83%
Unity 3D 4.11%
Adobe AIR 2.87%
Titanium
Mobile
1.01%
Xamarin 欄外
ツール別のアプリシェア
CORDOVAのシェア
出典: AppBrain Stats
0% 5% 10% 15%
ビジネス
金融
医療
ヘルスケア
スポーツ
ショッピング
トラベル
ライフスタイル
ニュース
教育
全Androidアプリの5.96%に採用
Cordova /
PhoneGap
0.90%
Unity 3D 7.14%
Adobe AIR 1.57%
Titanium
Mobile
0.08%
Xamarin 欄外
インストールベース
開発をはじめる前に検討してほしい5つのこと
その1:本当にHTML5ハイブリッドアプリで大丈夫?
OKな依頼: 「個別カスタマイズよりも共通化処理を優先したいのでハイブリッドで!」
厳しい依頼:「iOSとAndroidそれぞれの持てる機能を最大限使って欲しい。」
「HTML5ハイブリッドアプリだとしても、OS別にロジックを切り替えられるよね。」
「ユーザーエクスペリエンスを徹底的に追求したい。」
「このネイティブアプリを、そのままハイブリッドにしてほしい。」
その2:IOSとANDROIDの対応バージョンを考える
App Storeでの統計(2015年1月19日)
https://developer.apple.com/support/appstore/
7.8%
(2.3.3-2.3.7)
Google Playストアでの統計(1月5日までの7日間)
https://developer.android.com/about/dashboards/index.html
(2.2)
(4.4)
(4.1-4.3) (4.0.3-4.0.4)
39.1%
46.0%
その3:WEBVIEWの方式を検討する
iOS Android
UIWebView
WKWebView
Android WebView
Chromium WebView (Crosswalk Engine)
CordovaのデフォルトWebView
すべてのiOSで利用できる。
iOS 8から登場したWebView。
Cordova 4から利用できる(予定)。
JIT有効で4倍スピードアップ。
CordovaのデフォルトWebView
すべてのAndroidで利用できる。
3rdパーティWebView
オープンソース、Chromiumがベース
Android 4以降で利用できる。ハイブリッドアプリの動作性能を飛躍的にアップさせる
iOS 8の新ブラウザエンジンを検証する Codezine
Android 4.3以前は
メンテナンス終了!?
その4:UIのルック&フィールを検討する
iOS Android中間
jQuery Mobile Ionic Onsen UI
不動産検索アプリをさまざまなUIフレームワークで作る
http://propertycross.com/
自動的にUIを切り替えてくれる
その5:何を学んでおくべきか?
 プログラミング
 Cordovaのドキュメント
 ある程度のネイティブ開発の知識
 Intent、Activity、ViewControllerなどの各OSフレームワークの基礎知識
 AndroidManifest、Info.plistなどのコンフィグレーション
 Cordovaがネイティブを呼び出す方法
 HTML5やCSS3におけるパフォーマンスチューニングに関する知識
 デザイン
 各OSのUIガイドライン(特にAppleは審査で落とされないように)
着手前の検討事項
CORDOVAプラグインを選定する
 Battery Status
 Camera
Capture a photo using the device's camera.
 Console
Add additional capability to console.log().
 Contacts
Work with the devices contact database.
 Device
Gather device specific information.
 Device Motion (Accelerometer)
Tap into the device's motion sensor.
 Device Orientation (Compass)
Obtain the direction that the device is pointing.
 Dialogs
Visual device notifications.
 FileSystem
Hook into native file system through JavaScript.
 File Transfer
Hook into native file system through JavaScript.
 Geolocation
Make your application location aware.
 Globalization
Enable representation of objects specific to a locale.
 InAppBrowser
Launch URLs in another in-app browser instance.
 Media
Record and play back audio files.
 Media Capture
Capture media files using device's media capture applications.
 Network Information (Connection)
Quickly check the network state, and cellular network information.
 Splashscreen
Show and hide the applications splash screen.
 Vibration
An API to vibrate the device.
 StatusBar
An API for showing, hiding and configuring status bar background.
Cordovaコアプラグイン
Cordova Plugin Registryにある600以上のプラグイン
+
必要なプラグインを検索することができる
開発に使うフレームワークを選定する
モバイルUIを持つフレームワークSPAフレームワーク
• Single Page Appアーキテクチャー
• データバインディング
• テンプレート
• オブジェクト指向開発の支援
• Custom Elements
• モデルの定義
• モバイルUIのコンポーネントの提供
• トランジションなどのページ管理
• クロスプラットフォーム開発支援
• アプリのパッケージ化や制作ツールの提供
開発環境を構築する
cordova
PhoneGap
Build
Monaca
Visual Studio 2013
+ Cordova Extension
入手方法 npm install cordova Adobe Creative Clouds http://monaca.io Microsoft MSDN Webサイト
ローカル開発 コマンドライン Dreamweaverに組み込み
別のエディタやIDEと
組み合わせる
Visual Studioに組み込み
クラウド開発 × × クラウドIDE ×
リモートビルド × ○ ○ ×
料金 無料(オープンソース) 無料から 無料から 要VSライセンス
デバッガー なし PhoneGap Developer App Monaca Debugger なし
CORDOVAを使う上でのヒント
USBリモートデバッグ
• ブレークポイント
• ステップ実行
• プロファイリング
• タイムライン
USBを経由してChrome Dev ToolsやSafariインスペクターを使うことができます。
必要な環境
Android 4.0以降のCrosswalk WebViewもしくはAndroid 4.4以降 + Chrome Dev Tools
iOS + Safariインスペクター
(補足)WINDOWSをお使いの方
GapDebugを使うと、WindowsからもSafariインスペクターが利用できます
https://www.genuitec.com/products/gapdebug/
開発体制を考える
UIエンジニア・デザイナー
フロントエンドエンジニア
iOSエンジニア
Androidエンジニア
必要な役割
20~40%
50~70%
5~20%
5~20%
ウェイト
ワイヤーフレームの作成、ビジュアルデザイン
プロトタイプの開発協力など
HTML5/JavaScript側アプリ開発
iOSビルド、プラグイン開発など
Androidビルド、プラグイン開発など
CORDOVAアプリのセキュリティ
③ アプリロジックの隠蔽② XSS① CordovaやWebViewのバグ
対策
• 最新のフレームワークにアップデート
• 古い端末向けにはリリースしない
• Crosswalk WebViewを使う
対策
• DOMを直接扱わない
• 入力データのバリデーション
• 通信先の限定
対策
• ソースコードを圧縮する
• MonacaやWorklightなどのツー
ルはコード暗号化機能を持つ
Android、iOS、Cordovaなどのフレーム
ワークに脆弱性が発見されるケースがあ
ります。セキュリティ情報を管理する
JPCERTなどの情報を参考にしましょ
う。
クロスサイトスクリプティング対
策の必要性はWebアプリと同様で
す。CordovaではCORS制約がない
代わりに、通信先を設定で制限で
きます。
ストアからダウンロードしたパッ
ケージを解凍するとHTMLや
JavaScriptコードが容易に閲覧でき
てしまいます。
その他の話題
どんな課題がある?
1)開発スキル、チーム体制に関する課題
 Webアプリ開発とは違うノウハウが必要になる
 ネイティブアプリ開発経験もあまり参考にならず
2)メンテナンスに関する課題
 バージョンの変化にキャッチアップする必要がある
 来年の今頃どうなっているか・・・分かりません
3)情報不足に関する課題
 HTML5ハイブリッドアプリ開発の情報が少なすぎる
ぜひ始めてみましょう!
HTML5ハイブリッドアプリ関連書籍
Cordovaユーザー会
毎月勉強会をやってます
ありがとうございました。
アンケートはこちら:
http://bit.ly/html5C201501
田中正裕
masahiro@asial.co.jp

More Related Content

PPTX
CordovaでAngularJSアプリ開発
PPTX
Cordovaの最近ホットな話題と地雷をまとめて紹介
PDF
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
PDF
はやわかりHTML5ハイブリッドアプリ開発事情
PPTX
Monacaでつくるハイブリッドアプリ
PDF
120分聞けばドヤ顔で語れる apache cordova スーパー勉強会
PDF
モバイルアプリ開発の現状
PDF
Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅
CordovaでAngularJSアプリ開発
Cordovaの最近ホットな話題と地雷をまとめて紹介
エンタープライズ・モバイルアプリにおける ハイブリッドアプリ開発
はやわかりHTML5ハイブリッドアプリ開発事情
Monacaでつくるハイブリッドアプリ
120分聞けばドヤ顔で語れる apache cordova スーパー勉強会
モバイルアプリ開発の現状
Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅

What's hot (20)

PPTX
エンタープライズ要件に対応する高品質なCordovaアプリ開発のポイント
PPTX
Cordova×業務システム:失敗しないモバイル開発の秘訣
PPTX
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
PDF
iOS/Android/Windows クロスプラットフォーム モバイルアプリ開発
PPTX
事例で解説するハイブリッドアプリ開発のポイント
PDF
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
PDF
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
PDF
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
PPTX
ハイブリッドアプリ開発最前線から見たHtml5の理想と現実
PDF
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
PDF
Html5/JSモバイルアプリ最前線
PDF
Androidハイブリッドアプリを約2年間メンテンナンスしてきて分ったこと
PPTX
モバイル用Webフレームワーク最前線
PDF
HTML5ハイブリッドアプリ開発 で拓くビジネスチャンス
PPTX
cordova/electronの構造を知る
PDF
Visual Studio 2015 を使用した Cordova アプリの開発
PDF
Onsen UI 2.0とUIライブラリの未来
PDF
Monacaエンタープライズのご紹介
PDF
もっと良くなるHTMLアプリケーション設計と実装
PPTX
Onsen UIが目指すもの
エンタープライズ要件に対応する高品質なCordovaアプリ開発のポイント
Cordova×業務システム:失敗しないモバイル開発の秘訣
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
iOS/Android/Windows クロスプラットフォーム モバイルアプリ開発
事例で解説するハイブリッドアプリ開発のポイント
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
ハイブリッドアプリ開発最前線から見たHtml5の理想と現実
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
Html5/JSモバイルアプリ最前線
Androidハイブリッドアプリを約2年間メンテンナンスしてきて分ったこと
モバイル用Webフレームワーク最前線
HTML5ハイブリッドアプリ開発 で拓くビジネスチャンス
cordova/electronの構造を知る
Visual Studio 2015 を使用した Cordova アプリの開発
Onsen UI 2.0とUIライブラリの未来
Monacaエンタープライズのご紹介
もっと良くなるHTMLアプリケーション設計と実装
Onsen UIが目指すもの
Ad

Viewers also liked (20)

PDF
PhoneGapでハイブリッド開発 for Firefox OS
PPTX
ハイブリッドアプリの開発
PDF
HTML5ハイブリッドアプリ の活用ポイント
PDF
Cordovaの特徴と開発手法概要
PDF
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...
PPTX
Workshop1-01
PPTX
最近のHTML5はどうなってるのか
PDF
最近のWeb関連技術の動向あれこれ
PDF
モバイルWebアプリのこれまでとこれから。Sencha Touch vs jQuery Mobile
PDF
Sencha のフレームワーク Ext JS 5 について 15 分で説明するよ
PDF
今からハジメるHTML5プログラミング
PPTX
[社内勉強会]SPAのすすめ
PDF
WKWebViewとUIWebView
PPTX
AWSではじめるお手軽オンラインゲーム開発
PDF
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
PDF
50分で掴み取る ASP.NET Web API パターン&テクニック
PDF
Yeomanではじめる爆速webアプリ開発
PDF
次世代Web業務アプリケーション
PDF
一から作る業務システム vol.1
PDF
RESTful開発フロントエンド編(SPA・AltJS・フレームワーク)
PhoneGapでハイブリッド開発 for Firefox OS
ハイブリッドアプリの開発
HTML5ハイブリッドアプリ の活用ポイント
Cordovaの特徴と開発手法概要
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...
Workshop1-01
最近のHTML5はどうなってるのか
最近のWeb関連技術の動向あれこれ
モバイルWebアプリのこれまでとこれから。Sencha Touch vs jQuery Mobile
Sencha のフレームワーク Ext JS 5 について 15 分で説明するよ
今からハジメるHTML5プログラミング
[社内勉強会]SPAのすすめ
WKWebViewとUIWebView
AWSではじめるお手軽オンラインゲーム開発
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
50分で掴み取る ASP.NET Web API パターン&テクニック
Yeomanではじめる爆速webアプリ開発
次世代Web業務アプリケーション
一から作る業務システム vol.1
RESTful開発フロントエンド編(SPA・AltJS・フレームワーク)
Ad

Similar to HTML5ハイブリッドアプリ開発のベストプラクティス (20)

PPTX
HTML5 クロスプラットフォームアプリ開発の現実解
PPTX
Phone gap+javascriptスマホアプリ開発(入門編)
PPTX
【デブサミ関西2014】Web技術で作るエンタープライズアプリ
KEY
スマートフォンアプリケーション開発の最新動向
PDF
クリスマス直前! HTML5 で作る♥ はじめての iOS & Android アプリ開発
PDF
2016/05/01 Visual Studio with Cordova
PDF
2011年マイクロソフト テクノロジー振り返り~開発編~
PPTX
9th nov2012 kof2012
PDF
Html5 seminar 1_pac
PPTX
Solution semniar vs2013_multi_device-1209-new
PDF
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
PDF
Azure 最新情報アップデート 2016年4月 (Build 2016での新機能)
PDF
MicrosoftによるAIビジネスへの取組み
PDF
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
PDF
Concentrated HTML5 & Attractive HTML5
PDF
Force.com開発基礎
PDF
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
PDF
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
PDF
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
PDF
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
HTML5 クロスプラットフォームアプリ開発の現実解
Phone gap+javascriptスマホアプリ開発(入門編)
【デブサミ関西2014】Web技術で作るエンタープライズアプリ
スマートフォンアプリケーション開発の最新動向
クリスマス直前! HTML5 で作る♥ はじめての iOS & Android アプリ開発
2016/05/01 Visual Studio with Cordova
2011年マイクロソフト テクノロジー振り返り~開発編~
9th nov2012 kof2012
Html5 seminar 1_pac
Solution semniar vs2013_multi_device-1209-new
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Azure 最新情報アップデート 2016年4月 (Build 2016での新機能)
MicrosoftによるAIビジネスへの取組み
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
Concentrated HTML5 & Attractive HTML5
Force.com開発基礎
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践

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

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

HTML5ハイブリッドアプリ開発のベストプラクティス