SlideShare a Scribd company logo
CORDOVAでANGULARJSアプリ開発 
CORDOVAユーザー会/ アシアル株式会社田中正裕
自己紹介 
» 田中正裕 
» アシアル株式会社所属 
» Twitter: @massie 
» 職務: CEO (Chief ExectiveEngineering Officer) 
» HTML5Expert.jpエキスパート 
» Cordovaユーザー会、発起人
本日のアジェンダ 
 Single Page Appの紹介 
 AngularJSの紹介 
 Cordovaと使うAngularJS 
 ngCordova 
 Onsen UI
SPAとは? 
普通のアプリ 
SPAのアプリ 
index.html page2.html page3.html page4.html page5.html page6.html 
Aタグなどのリンクを通じて遷移 
画面1 画面2 画面3 画面4 画面5 画面6 
index.html 
AJAXなどで画面を切り替えながら遷移
SPAのメリット 
ユーザーエクスペリエンスの向上 
 画面遷移時に「真っ白なページ」の状態にならない 
 画面切り替えの読み込み速度が早く 
 ページを部分的に更新していくことが可能 
よりネイティブアプリに近いUI提供が可能
SPAアプリの例:OFFICE ONLINE
SPA普及のカギはフレームワーク 
 ブラウザーの整備 
 HTML5関連APIの整備(pushStateなど) 
 JavaScriptエンジンの高速化(JITコンパイル、最適化処理など) 
 ページ遷移アニメーション等の最適化 
 JSライブラリ・フレームワークの普及 
 データバインディング 
 テンプレート 
 ノウハウの蓄積
SPAで利用されるフレームワーク 
SPAフレームワークで使えるフレームワークは無数にある。
angularjs.org
ANGULARJSの特徴 
 HTMLを拡張してアプリを記述 
 SPA開発に最適化 
 Cordovaでも実績多数 
 さまざまなサードーパーティ製モジュール
HTML ENHANCED FOR WEB APPS 
<html ng-app="myapp"> 
<head> 
<script src="angular.js"></script> 
</head> 
<body ng-controller="myctrl"> 
<p>{{content}}</p> 
</body> 
</html>
ANGULARJSの主な特徴 
ディレクティブデータバインディングDIコンテナー 
<html ng-app="myapp"> 
<body ng-controller="myctrl"> 
<button ng-click="handler()"> 
<my-element>Hoge</my-element> 
<p>{{contents}}</p> 
<p>{{contents|filter}}</p> 
module.factory("MyClass", function() { 
return new { num: "100" }; 
}); 
module.factory("AnotherClass", 
function(MyClass) { 
return MyClass.num + 200; 
}); 
AngularJSがHTML構文を拡張 
テンプレート変数を 
HTML内に埋め込み 
オブジェクト指向開発 
他にも様々なディレクティブ 
独自で作ることも可能 
コントローラーと連携 
2-way Data Binding
学習リソース 
AngularJS公式サイト 
公式動画 
ドットインストールAngularJSリファレンス
Cordovaで使うAngularJS 
ng-cordova Onsen UI
ng-cordova
NGCORDOVA 
 Drifty社が中心となり開発(Ionic Frameworkの作者でもある) 
 Cordova APIをAngularJSモジュールとしてラッピングしたもの 
 よりAngularJS風にAPIを呼び出すことができる 
 AngularJSアプリへの組み込みは下記の通り 
// ngCordovaをモジュールとして組み込み 
angular.module("myapp", ["ngCordova"]);
例:カメラAPIの呼び出し 
module.controller('PictureCtrl', function($scope, 
$cordovaCamera) { 
var options = { 
destinationType: 
Camera.DestinationType.DATA_URL, 
sourceType: 
Camera.PictureSourceType.CAMERA, 
allowEdit: true 
}; 
$cordovaCamera.getPicture(options) 
.then(function(imageData) { 
// 成功 
}, function(err) { 
// エラーが発生 
}); 
}); 
var options = { 
destinationType: 
Camera.DestinationType.DATA_URL, 
sourceType: 
Camera.PictureSourceType.CAMERA, 
allowEdit: true 
}; 
navigator.camera.getPicture(function(imageData) { 
// 成功 
}, function(err) { 
// エラーが発生 
}, options); 
ngCordovaを使った場合通常のCordova API
対応プラグイン 
CordovaのもつコアAPI(カメラなど)に加えて、様々なサードパーティ製プラグインもサポート 
 CordovaのコアAPI 
 AdMob 
 Barcode Scanner 
 Background Geolocation 
 Calendar 
 Clipboard 
 DatePicker 
 Facebook 
 Flashlight 
 Google Analytics 
 Keyboard 
 Keychain 
 NativeAudio 
 OAuth 
 Pin Dialog 
 Preferences 
 Printer 
 Progress Indicator 
 Push Notifications 
 Social Sharing 
 Spinner Dialog 
 SQLite 
 Toast 
 Touch ID 
 Zip
詳細情報 
http://ngcordova.com/
http://ja.onsen.io/
UIコンポーネント用ライブラリ 
 Cordova向けモバイルUIライブラリー 
 AngularJSのモジュールとして提供 
 さまざまなコンポーネントをディレクティブで 
提供+画面遷移などのUIで実装
ディレクティブでHTMLを記述
基本コンポーネント 
Master-Detail スライディング 
メニュー 
タブバースプリットビュー
その他のコンポーネント 
アラートダイアログポップオーバーリスト 
カルーセルダイアログボタン
コンポーネント一覧
CORDOVA用の便利機能 
 戻るボタンのカスタマイズ 
 プラットフォームや画面向きの判定 
 ソフトウェアキーボードの対応 
 ジェスチャーの対応
CORDOVA用の便利機能 
 戻るボタンのカスタマイズ 
ons.setDefaultDeviceBackButtonListener(function() { 
if (navigator.notification.confirm("本当に閉じてもいいですか?", 
function(index) { 
if (index == 1) { // OKボタンが押された 
navigator.app.exitApp(); // アプリを閉じる 
} 
} 
)); 
});
CORDOVA用の便利機能 
 プラットフォームや画面向きの判定 
<div> 
<div ons-if-platform="ios"> 
iOS限定の内容 
</div> 
<div ons-if-orientation="portrait"> 
縦画面でないと表示しない部分 
</div> 
</div>
CORDOVA用の便利機能 
 ソフトウェアキーボードの対応 
<div ons-keyboard-active> 
キーボードが表示されている時に表示されるコンテンツです。 
</div> 
<div ons-keyboard-inactive> 
キーボードが隠れている時に表示されるコンテンツです。 
</div>
CORDOVA用の便利機能 
 ジェスチャーの対応 
<ons-gesture-detector> 
<div id="detect-area" style="width: 100px; height: 100px;"> 
ここをスワイプ 
</div> 
</ons-gesture-detector> 
<script> 
$(document).on('swipeleft', '#detect-area', function() { 
console.log("左スワイプが検知されました"); 
}) 
</script>
画面のサンプルパターン
詳細情報 
http://ja.onsen.io/
ありがとうございました。

More Related Content

What's hot (20)

PPTX
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Shin Ogata
 
PPTX
Cordovaの最近ホットな話題と地雷をまとめて紹介
アシアル株式会社
 
PDF
iOS/Android/Windows クロスプラットフォーム モバイルアプリ開発
アシアル株式会社
 
PPTX
事例で解説するハイブリッドアプリ開発のポイント
Monaca
 
PDF
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
Monaca
 
PDF
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
Kazuaki Hidaka
 
PDF
モバイルアプリ開発の現状
Koji Suzuki
 
PPTX
Monacaでつくるハイブリッドアプリ
Monaca
 
PDF
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
アシアル株式会社
 
PDF
HTML5ハイブリッドアプリ開発 で拓くビジネスチャンス
アシアル株式会社
 
PDF
Html5/JSモバイルアプリ最前線
アシアル株式会社
 
PDF
Onsen UI 2.0とUIライブラリの未来
アシアル株式会社
 
PPTX
モバイル用Webフレームワーク最前線
アシアル株式会社
 
PPTX
ハイブリッドアプリ開発最前線から見たHtml5の理想と現実
Monaca
 
PDF
Androidハイブリッドアプリを約2年間メンテンナンスしてきて分ったこと
Shuichi Takaya
 
PDF
HTML5ハイブリッドアプリ の活用ポイント
アシアル株式会社
 
PDF
Cordovaの特徴と開発手法概要
アシアル株式会社
 
PPTX
Onsen UIが目指すもの
アシアル株式会社
 
PDF
Ionicでハイブリッドアプリ入門①
Tomokatsu Iguchi
 
PDF
Visual Studio 2015 を使用した Cordova アプリの開発
Osamu Monoe
 
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Shin Ogata
 
Cordovaの最近ホットな話題と地雷をまとめて紹介
アシアル株式会社
 
iOS/Android/Windows クロスプラットフォーム モバイルアプリ開発
アシアル株式会社
 
事例で解説するハイブリッドアプリ開発のポイント
Monaca
 
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
Monaca
 
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
Kazuaki Hidaka
 
モバイルアプリ開発の現状
Koji Suzuki
 
Monacaでつくるハイブリッドアプリ
Monaca
 
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
アシアル株式会社
 
HTML5ハイブリッドアプリ開発 で拓くビジネスチャンス
アシアル株式会社
 
Html5/JSモバイルアプリ最前線
アシアル株式会社
 
Onsen UI 2.0とUIライブラリの未来
アシアル株式会社
 
モバイル用Webフレームワーク最前線
アシアル株式会社
 
ハイブリッドアプリ開発最前線から見たHtml5の理想と現実
Monaca
 
Androidハイブリッドアプリを約2年間メンテンナンスしてきて分ったこと
Shuichi Takaya
 
HTML5ハイブリッドアプリ の活用ポイント
アシアル株式会社
 
Cordovaの特徴と開発手法概要
アシアル株式会社
 
Onsen UIが目指すもの
アシアル株式会社
 
Ionicでハイブリッドアプリ入門①
Tomokatsu Iguchi
 
Visual Studio 2015 を使用した Cordova アプリの開発
Osamu Monoe
 

Similar to CordovaでAngularJSアプリ開発 (20)

PPTX
smartFXにおけるApache Cordovaの活用について
剛志 森田
 
PDF
Cordova (PhoneGap) で始める、スマホアプリ開発
Kenichi Inoue
 
PDF
My cordovaprojectstory
Yuichiro Ebihara
 
PDF
スキスキIonic
Kon Yuichi
 
PDF
PhoneGapでWebアプリをスマホアプリ化
Takashi Okamoto
 
PPTX
【eLV勉強会】AngularJSでのモバイルフロントエンド開発
Hiroyuki Kusu
 
PDF
Angular jsとbootstrapでサクッと作るwebアプリ@html5勉強会 名古屋#2
Takuya Ueda
 
PPTX
クロスプラットフォーム開発を可能にするMonacaとそのセキュリティ対策
Monaca
 
PDF
PhoneGapとハイブリッド開発
Andy Hall
 
PPTX
Phone gap+javascriptスマホアプリ開発(入門編)
Monaca
 
PDF
AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)
pinmarch_t Tada
 
PPT
Titanium Mobile
Naoya Ito
 
PDF
Angularで新サービス作って学んだこととか
Katsumi Honda
 
PDF
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
pinmarch_t Tada
 
KEY
PhoneGapの始め方
akabana
 
PPTX
PhoneGapユーザー会@大阪 講演資料
Monaca
 
PPTX
シンプルな9つのサンプルで学ぶJava Script初心者のためのAngularJS超入門ハンズオン
健一 茂木
 
PPTX
Webエンジニアによるスマートフォンアプリ開発
takeuchi-tk
 
PPTX
クロスプラットフォーム開発を可能にするMonaca
Monaca
 
smartFXにおけるApache Cordovaの活用について
剛志 森田
 
Cordova (PhoneGap) で始める、スマホアプリ開発
Kenichi Inoue
 
My cordovaprojectstory
Yuichiro Ebihara
 
スキスキIonic
Kon Yuichi
 
PhoneGapでWebアプリをスマホアプリ化
Takashi Okamoto
 
【eLV勉強会】AngularJSでのモバイルフロントエンド開発
Hiroyuki Kusu
 
Angular jsとbootstrapでサクッと作るwebアプリ@html5勉強会 名古屋#2
Takuya Ueda
 
クロスプラットフォーム開発を可能にするMonacaとそのセキュリティ対策
Monaca
 
PhoneGapとハイブリッド開発
Andy Hall
 
Phone gap+javascriptスマホアプリ開発(入門編)
Monaca
 
AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)
pinmarch_t Tada
 
Titanium Mobile
Naoya Ito
 
Angularで新サービス作って学んだこととか
Katsumi Honda
 
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
pinmarch_t Tada
 
PhoneGapの始め方
akabana
 
PhoneGapユーザー会@大阪 講演資料
Monaca
 
シンプルな9つのサンプルで学ぶJava Script初心者のためのAngularJS超入門ハンズオン
健一 茂木
 
Webエンジニアによるスマートフォンアプリ開発
takeuchi-tk
 
クロスプラットフォーム開発を可能にするMonaca
Monaca
 
Ad

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プロフェッショナル認定試験対策講座
アシアル株式会社
 
Ad

CordovaでAngularJSアプリ開発