SlideShare a Scribd company logo
Android Bazaar and Conference
2014 Spring LT
AngularJS で
WEBアプリ開発
hkusu
2014/3/21
ABC 2014 Spring自己紹介
hkusu (久須 裕之)
所属:株式会社ゆめみ
(http://yumemi.co.jp)
仕事:スマホ向けアプリ/API/
WEB/サーバ構築 全般
http://qiita.com/hkusu
hiroyuki.kusu
@h_ku_su
https://github.com/hkusu
ABC 2014 Spring
AngularJS × スマホWEBサイト
• AngularJS?
.. Google製のJavaSrciptフレームワーク
.. AndroidもGoogle製
• 今回のスマホWEBサイトの定義
.. HTML、CSS、JavaScript で実現したサイト
.. for Android/iOS
本日の内容
ABC 2014 Spring
WEBの技術(HTML/CSS/JavaScript)の活
用
... Android/iOS 向けのクラスプラット
フォーム開発
… PhoneGap、Monaca 等と連携すれば
ネィティブにも
… 運用フェーズでの更新が容易
大規模WEB開発
… アプリケーションの大きさ
… 開発人数
なぜAngularJS?
ABC 2014 Springデモ
飽きちゃうとあれなのでここでデモ
■UIライブラリに ionic(後述)を使った例
http://hkusu.github.io/AngularJS_ionicjs_demo/
(公式で用意されてるサンプル)
■UIライブラリに onsen ui(後述)を使った例
• iOSテーマ《タブ版》
http://hkusu.github.io/AngularJS_onsenui_demo/app/index-ios-tab.html
• iOSテーマ《スライドメニュー版》
http://hkusu.github.io/AngularJS_onsenui_demo/app/index-ios-sd.html
• Androidテーマ《タブ版》
http://hkusu.github.io/AngularJS_onsenui_demo/app/index-android-tab.html
• Androidテーマ《スライドメニュー版》
http://hkusu.github.io/AngularJS_onsenui_demo/app/index-android-sd.html
■スワイプ(ngTouch)
http://hkusu.github.io/AngularJS_ngTouch_demo/
ABC 2014 SpringなぜAngularJS?
リッチなスマホWEBサイトって?
… 演出? 機能が多いこと?
→ NO。UX(ユーザ体験)が大事、
だと思う
つまり、ユーザアクションに対する反
応をいかに向上させるか
ABC 2014 Spring
従来のページ遷移型のスマホサイトでなくて、シン
グルページアプリケーションへ
なぜAngularJS?
index.html
ダウンロードされたロジック
ファイルが端末側で動作。
従来のようにユーザアクション毎に
HTML丸ごとを取得しにいかない
サーバ
ユーザアクション
HTML(変更分のみ)、
JSON(P)
変更分のみ DOM を更新
ABC 2014 Spring
将来的には
こういう構成のとき、AngularJSいいよねっていう話
HTML
CSS
JavaScript
クライアントブラウザ サーバ
マルチデバイス化
API
表示に関わるものは
ブラウザで処理
(マルチデバイス対応
もここで)
サーバ機能はSaaSな
どでAPIで提供される
なぜAngularJS?
ABC 2014 Springモバイル対応
■METAタグ http://getbootstrap.com/css/ から引用
■PC等も対応するならBootstrapいれる(レスポンシブ)
■タッチイベントの最適化とスワイプ対応
→ ngTouchを導入
■必要あらば UIライブラリ導入
→ ionic、onsen ui など。この2つはそれ自体が AngularJSベース
■遅延読み込み(画像の Lazy Load)を導入
ABC 2014 Springモバイル対応
■AngularJSのファイルサイズが大きいことへの対応
− minifyする .. Gruntで
− gzipで圧縮
− 手作業で圧縮 and .htaccess等で振り分け
− または Grunt で
− または mod_deflateなど(Apacheモジュール)
− 端末側にキャッシュさせる
− HTTPレスポンスの Cache-Control ヘッダ、
Expires ヘッダ
− CDNを使う(AWSでいうと CroudFront)
ABC 2014 Spring
http://qiita.com/hkusu
時間が足りないので後はQiitaみてください^^;
AngularJSとモバイルについてもろもろ書きました。
ほか詳しくは
■Yeoman で AngularJS & UI Bootstrap の開発環境構築
http://qiita.com/hkusu/items/7d748b55ba73cc8a3675
■AngularJS で ngTouchとngAnimate を導入したメモ
http://qiita.com/hkusu/items/6a2d5c19691442e3d731
■ionic(AngularJSベース)のアプリケーション開発環境を構築
http://qiita.com/hkusu/items/a9d5908ede11110acb88
■onsen ui(AngularJSベース)のアプリケーション開発環境を構築
http://qiita.com/hkusu/items/664d025eec9f316d7270
■AngularJSのアプリケーションで画像の遅延読み込み(レイジーロード)を導入したメモ
http://qiita.com/hkusu/items/3b7c474726bd0b4a4c1f
ABC 2014 Springほか詳しくは
■ブラウザのキャッシュコントロールを正しく理解する
http://qiita.com/hkusu/items/d40aa8a70bacd2015dfa
■静的リソース(HTML,JS,CSS,画像)のブラウザキャッシュを制御
http://qiita.com/hkusu/items/468cc0ee0d767e7cc790
ABC 2014 Spring
https://itunes.apple.com/jp/app/id432831907
エンジニア(フロントエンド/サーバ)募集!
デザイナー/WEB制作者 募集! お仕事も募集!
世界中で使われるO2Oサービスの実現
ネイルブック
ゆめみについて
ABC 2014 Spring
http://yumemi-inc.github.io
ゆめみのTEC情報配信サイト。いま準備中。
ゆめみについて
ABC 2014 Spring参考URLほか
■参考URL(公式系)
• http://angularjs.org
• https://github.com/angular/angular.js
• http://docs.angularjs.org/api
• http://angular-ui.github.io/bootstrap/
■参考URL(学習)
• http://js.studio-kingdom.com/angularjs/guide
• http://d.hatena.ne.jp/Kazzz/20131207/p2
• http://www.walbrix.com/jp/blog/2014-01-angularjs-bootstrap.html
• http://8th713.github.io/LearnAngularJS/#/
• http://dev.classmethod.jp/tool/angularjs_getting_started/
• http://angularjsninja.com
• http://blog.asial.co.jp
■参考書籍
• WEB+DB vol.79 特集
• はじめてのAnglarJS(http://www.amazon.co.jp/dp/4777518086)
ABC 2014 Spring
モバイル対応が強化される?
AngularJS 2.0

More Related Content

What's hot (20)

Directiveで実現できたこと
Directiveで実現できたことDirectiveで実現できたこと
Directiveで実現できたこと
Kon Yuichi
 
smartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用についてsmartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用について
剛志 森田
 
STORES.jp x AngularJS
STORES.jp x AngularJSSTORES.jp x AngularJS
STORES.jp x AngularJS
Keisuke Makino
 
Angular2
Angular2Angular2
Angular2
Kenichi Kanai
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
 
Onsen UIが目指すもの
Onsen UIが目指すものOnsen UIが目指すもの
Onsen UIが目指すもの
アシアル株式会社
 
AngularJS入門の巻2
AngularJS入門の巻2AngularJS入門の巻2
AngularJS入門の巻2
Toshio Ehara
 
Enterprise x AngularJS
Enterprise x AngularJSEnterprise x AngularJS
Enterprise x AngularJS
Kenichi Kanai
 
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
icchiman
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS
Mizuho Sakamaki
 
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
Horiguchi Seito
 
イベント駆動AngularJS / 今から書くAngular 2.0
イベント駆動AngularJS / 今から書くAngular 2.0イベント駆動AngularJS / 今から書くAngular 2.0
イベント駆動AngularJS / 今から書くAngular 2.0
Okuno Kentaro
 
フロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみたフロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみた
Kei Yagi
 
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
Shinichiro Yoshida
 
俺とAngular JS 2
俺とAngular JS 2俺とAngular JS 2
俺とAngular JS 2
Masayuki KaToH
 
STORES.jpのそだてかた
STORES.jpのそだてかたSTORES.jpのそだてかた
STORES.jpのそだてかた
Keisuke Makino
 
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒すSwiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒す
Tomoki Hasegawa
 
Angular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェストAngular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェスト
Masahiko Asai
 
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
tomonari takahashi
 
[社内勉強会]SPAのすすめ
[社内勉強会]SPAのすすめ[社内勉強会]SPAのすすめ
[社内勉強会]SPAのすすめ
hirooooo
 
Directiveで実現できたこと
Directiveで実現できたことDirectiveで実現できたこと
Directiveで実現できたこと
Kon Yuichi
 
smartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用についてsmartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用について
剛志 森田
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
 
AngularJS入門の巻2
AngularJS入門の巻2AngularJS入門の巻2
AngularJS入門の巻2
Toshio Ehara
 
Enterprise x AngularJS
Enterprise x AngularJSEnterprise x AngularJS
Enterprise x AngularJS
Kenichi Kanai
 
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
icchiman
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS
Mizuho Sakamaki
 
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
Horiguchi Seito
 
イベント駆動AngularJS / 今から書くAngular 2.0
イベント駆動AngularJS / 今から書くAngular 2.0イベント駆動AngularJS / 今から書くAngular 2.0
イベント駆動AngularJS / 今から書くAngular 2.0
Okuno Kentaro
 
フロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみたフロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみた
Kei Yagi
 
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
Shinichiro Yoshida
 
STORES.jpのそだてかた
STORES.jpのそだてかたSTORES.jpのそだてかた
STORES.jpのそだてかた
Keisuke Makino
 
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒すSwiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒す
Tomoki Hasegawa
 
Angular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェストAngular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェスト
Masahiko Asai
 
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
tomonari takahashi
 
[社内勉強会]SPAのすすめ
[社内勉強会]SPAのすすめ[社内勉強会]SPAのすすめ
[社内勉強会]SPAのすすめ
hirooooo
 

More from Hiroyuki Kusu (9)

【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
Hiroyuki Kusu
 
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
Hiroyuki Kusu
 
【Potatotips #30】RxJavaを活用する3つのユースケース
【Potatotips #30】RxJavaを活用する3つのユースケース【Potatotips #30】RxJavaを活用する3つのユースケース
【Potatotips #30】RxJavaを活用する3つのユースケース
Hiroyuki Kusu
 
【Potatotips #26】Replace EventBus with RxJava/RxAndroid
【Potatotips #26】Replace EventBus with RxJava/RxAndroid【Potatotips #26】Replace EventBus with RxJava/RxAndroid
【Potatotips #26】Replace EventBus with RxJava/RxAndroid
Hiroyuki Kusu
 
【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する
【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する
【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する
Hiroyuki Kusu
 
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
Hiroyuki Kusu
 
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
Hiroyuki Kusu
 
エンジニアにMacを薦める理由
エンジニアにMacを薦める理由エンジニアにMacを薦める理由
エンジニアにMacを薦める理由
Hiroyuki Kusu
 
ソーシャルアプリで人を熱中させる要素を説明する一枚絵
ソーシャルアプリで人を熱中させる要素を説明する一枚絵ソーシャルアプリで人を熱中させる要素を説明する一枚絵
ソーシャルアプリで人を熱中させる要素を説明する一枚絵
Hiroyuki Kusu
 
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
Hiroyuki Kusu
 
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
Hiroyuki Kusu
 
【Potatotips #30】RxJavaを活用する3つのユースケース
【Potatotips #30】RxJavaを活用する3つのユースケース【Potatotips #30】RxJavaを活用する3つのユースケース
【Potatotips #30】RxJavaを活用する3つのユースケース
Hiroyuki Kusu
 
【Potatotips #26】Replace EventBus with RxJava/RxAndroid
【Potatotips #26】Replace EventBus with RxJava/RxAndroid【Potatotips #26】Replace EventBus with RxJava/RxAndroid
【Potatotips #26】Replace EventBus with RxJava/RxAndroid
Hiroyuki Kusu
 
【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する
【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する
【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する
Hiroyuki Kusu
 
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
Hiroyuki Kusu
 
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
Hiroyuki Kusu
 
エンジニアにMacを薦める理由
エンジニアにMacを薦める理由エンジニアにMacを薦める理由
エンジニアにMacを薦める理由
Hiroyuki Kusu
 
ソーシャルアプリで人を熱中させる要素を説明する一枚絵
ソーシャルアプリで人を熱中させる要素を説明する一枚絵ソーシャルアプリで人を熱中させる要素を説明する一枚絵
ソーシャルアプリで人を熱中させる要素を説明する一枚絵
Hiroyuki Kusu
 
Ad

【ABC2014Spring LT】AngularJSでWEBアプリ開発