SlideShare une entreprise Scribd logo
1  sur  90
Télécharger pour lire hors ligne
Angularと
Onsen UIで作る
最高のHTML5
ハイブリッドアプリ
ng-japan 2015年3月21日
アシアル株式会社 久保田光則
久保田光則
- @anatoo
- アシアル株式会社所属
- UI/UXデザイナー兼

ソフトウェアエンジニア
- Onsen UIリード開発者
好評発売中!
- 最近になって韓国語版も翻訳出版されます
話すこと
Onsen UIテーマ:
http://onsen.io
Onsen UI
- HTML5ハイブリッドアプリ用のUIフレームワーク
- Angularをベースにしています
- iOS, Androidをサポートしています
- 高速な動作性がウリです
- なんてことを説明しててもつまらないですよね。
本当に話すこと
- HTML5ハイブリッドアプリとは?
- ハイブリッドアプリ開発にどんな問題があるのか?
- なぜAngularとOnsen UIが必要なのか?
- 少しだけOnsen UIの紹介
HTML5ハイブリッドアプリとは
ネイティブアプリ
- Objective-CやJavaなど、そのOSの流儀で実装
- いわゆる普通のアプリ
Java
or
Objective-C
Java
or
Objective-C
アプリ
ウェブアプリ
- ブラウザで動作する
- 要するにただのウェブページ
HTML5ハイブリッドアプリ
- アプリとして動作
- 内部の実装にHTML5をつかっている
アプリ
ネイティブ層
HTML5
仕組み
アプリ
HTML
読み込み
WebView
HTML5ハイブリッドアプリの
何が良いのか?
クロスプラットフォーム性
Android iOS
ウェブの知識が活かせる
ストアでの配布
- 外見は普通のアプリなので、ストアで配布可能
ネイティブの機能の呼び出し
Android / iOS
OS API
Cordovaについて
- ハイブリッドアプリ用フレームワーク
- 昔はPhoneGapという名前だった
http://cordova.apache.org
Cordovaがやってくれること
- HTML5をアプリ内部にパッケージ化
- OSとのAPIのやり取りを一本化
Cordovaの提供するプラグイン
‣ さらにCordovaプラグインの

仕組みを使えばこれ以外のことも可能
ファイルストレージ、カメラ、コンパス
加速度センサー、コンタクトリスト、
位置情報取得、ネットワーク、Bluetooth通信、
Androidのインテント、アプリ内ブラウザ、
GPS、NFC、etc…
「HTML5でモバイルアプリが作れるんです
ね、やったー」
こうして数多くのフロントエンド開発者が
HTML5ハイブリッドアプリに
取り組んでいくことになった…
結果
- 数年程度前の出来事
- いったいなにが起こった?
最も有名な失敗例
「HTML5に けたのは失敗」
Facebook ザッカーバーグCEO
- HTML5で記述したfacebookアプリを

ネイティブで書きなおす
2012年9月11日 TechCrunch Disrupt SF 2012より
数年前に比べて現在状況は
好転してきた
- 端末スペックの向上
- CPU、メモリ共に一昔前のノートPCとほぼ同じに
- AndroidでのWebViewのChromiumの採用
- 利用できるHTML5 APIの増加
- Android2.3系のシェアの低下
- CrossWalkの登場
- Android5からのAndroid System WebViewの導入
- HTML5ハイブリッドアプリの事例の増加
- BYODの一般化により
好転を表すシグナル
- Rails作者のDHHによるHTML5ハイブリッドアプリ評
しかしそれでも
- HTML5ハイブリッド
アプリは遅い!
- ネイティブに比べると

使い物にならない!
- 昔の体験が・・・
画像出典: ヒストリエ
問題
直接の問題
- パフォーマンスや安定性が悪い
- UIコンポーネントをいちいち作らないといけない
パフォーマンスに関する答え
チューニングすればいいじゃん!
- 今ではハイブリッドアプリは十分速く動作する
- だから勝手にチューニングすればいい、と思ってた
得られた知見
- フロントエンド開発者の多くは、

HTML・CSS・JSの書き方だけしかわかっていない

ことがわかった
- 多くの開発者はより素早く描画するための

チューニング方法を知らない
レンダリングの仕組み
効率的なチューニング
- まずは、どこがボトルネックになっているのかを知
る
- インスペクタのTimelineタブで計測
- AndroidではChrome、

iOSではSafariのインスペクタを利用
- インスペクタのTimelineタブで計測
- AndroidではChrome、iOSではSafariのインスペ
クタを利用
インスペクタのTimelineタブで取れるカテゴリ
Loading
Scripting
Rendering
Painting
}1frame
描画が始まって終わるまでが1frame
これを16ms以下に抑えれば最高
ボトルネックがどこにあるかで

チューニングもまた変わってくる
1. Loading
- リソースの読み込みやパース
- ハイブリッドアプリではウェブアプリよりも

ここが消費する時間は短い
- リソースがローカルにすでにあるから
2. Scripting
- JavaScriptの実行時間
- 純粋な計算は速い。基本的に問題にならない。
- ただし、canvasへの描画やディスクI/Oが発生し
たりリフローを同期的に強制するコードなどは遅
い
Scriptingがボトルネックだったら?
- 話は簡単
- Profilesタブでさらにどのコードが重いのかを見る
- Bottom UpのSelf欄が重要
3. Rendering
- Rendering - レイアウト処理
- Recalculate Style - 要素に当たるCSSルールの計算
- Layout - Render Treeの生成
Recalculate Style - 要素のスタイルの計算
- 個別のDOM要素に対して、当たるスタイルを計算
する
- CSS OMを参照して、DOM要素の数 x CSSルール
の数分マッチング処理が走る
- 重たいCSSの書き方を減らす
- 使っていないCSSのルールは消す
Layout - RenderTreeの生成
- 全てのDOMのレイアウト情報を計算
- 計算された結果の視覚的なオブジェクト

のツリーがRenderTree
4. Painting
- Painting - 描画処理
- Paint - Display List(ChromiumだとSkiaへの命
令)の生成
- Rasterize - Display Listの実行してピクセル化
- Composite Layers - レイヤの合成
雑多なチューニングテクニック小話
translate3d(0, 0, 0)が速いのはなぜ?
- GPUで描画されるから?
- 半分正解だが半分間違っている
- transform CSSプロパティを変更しても、

Composite Layersのみが起こるから
- つまり、同時に別処理でLayoutを引き起こしたり
すると台無し
どのCSSプロパティを変更すると何が起こる?
- 要素の大きさが変わるような場合

Layoutから処理が始まる
- transformやopacityだとComposite Layersのみ走る
- CSSプロパティによって変更で何が起こるか違う
- 詳しくはCSS Triggersでググるんだ!
DOMリークを防ぐ
- DOM要素が誤って参照されたまま開放されない
- 見た目よりも深刻
- detached DOMツリーとそれに参照されている
リソースが全てリークする
- iOS, Androidだとメモリスワッピングが弱く設計
されている
reflowを起こさないようにする
- 画像のサイズは必ず指定する
- 一度DOMツリーから切り離して操作する
- offsetHeightやgetBoundingClientRect()を呼び
出しつつstyleを変更するみたいなコードをループ
で書くと地獄
GPUバウンド
- CPUよりもGPUの方で時間がかかっている状態
- Rasterize後にテクスチャとしてGPUのVRAMに転
送
- Composite Layers
- GPUへの転送や合成がCPU時間よりも時間がかかっ
ていればGPUバウンド
GPUバウンドなページを作る
- 大きな領域を持つ要素にtransform:
translate3d(0, 0, 0)を当ててたくさん生成してア
ニメーションさせる
- Rasterize時にGPUにテクスチャとして転送される
- 転送や合成に時間がかかるようになる
- GPUのVRAMへのbandwidthが分かれば

転送にかかる時間の理論値が割り出せる
省略
- スライドが150ページ超えそうなので省略。
チューニングの罠
ただし
- こういったチューニングの大部分は

レンダリングエンジンの実装に依存している
- どうしてもわからない時はWebKitやChromiumの
コードを読むしか無い
ふと我に帰る瞬間
- なぜ単にHTML5でアプリ書きたいだけなのに

私はChromiumのコードを読んでいるのか?

- なぜ単にCSS書いてるだけなのに私は

GPUのVRAMへの転送速度を気にしなければなら
ないのか?
- ここまでチューニングする余裕がアプリ開発中にある
のだろうか?
- こういったチューニングを全て把握することを全ての
開発者に求めて良いのだろうか?
否!!
何かがおかしい
- ごく一部の人間でないと高速なHTML5ハイブリッ
ドアプリは開発できないのだろうか?
- ユーザがアプリの構築そのものにフォーカスできな
いのだろうか?
ハイブリッドアプリ開発から見た
今のHTML5の課題
- アプリケーションアーキテクチャの構築方法の不在
- チューニングされて高速に動作するUI基盤が無い
?
iOS
UIKit
アプリ
Objective-C/Swift
Android
View System
アプリ
Java
iOSアプリ Androidアプリ
ネイティブだとUIフレームワークがある
- そのOSに必要なUIが全て っている
- 開発者はUIフレームワークが裏で何をやっているか

気にしなくても良い
- すぐにアプリを開発し始められる
- これに対してHTML5ハイブリッドアプリでは?
WebView&Cordova
!
アプリ
iOS/Android
HTML5ハイブリッドアプリ
- アプリの開発者が何もかも考えなければならない!
リストビューはどうやって実装すれば?
画面遷移の管理はどうすれば
ジェスチャを扱うにはどうすれば良い?
MVCフレームワークには何を使おう?
アプリが遅いけどチューニングってどうやるの? CSSは最初から書いていく
iOSのSwitchってどうやって実装するの
viewportの設定ってどうやればいいの?
DOMの数が巨大になるとどれぐらい重くなるんだろう?
Bootstrapって使っていいのかな?
実装すれば?
CSSの設計規約って何がいいのかな?fpsはどれぐらいを目標にすればいいんだろう?
描画の速度ってCIやテストで回せるっけ?
無いもの
- 使うだけで高速に描画されるUIキット
- アプリケーションアーキテクチャを形作るもの
Onsen UI
- 開発者が、アプリの開発そのものに

フォーカスできるようにする。
Angularをベースにして構築
- HTMLを拡張して、アプリも記述可能にしてくれる
- 大規模なアプリでも耐えられるアーキテクチャ
- DIコンテナ、サービス、コントローラ、フィルタ等
Custom Elements
- HTMLを記述するだけでUIを構築できる
<ons-page class=“first-page”>
<ons-toolbar>
<div class=“center”>Toolbar Title</div>
</ons-toolbar>
<div>
<p>Page Contents</p>
<ons-button ng-click=“foo()”>
MyButton
</ons-button>
</div>
</ons-page>
CSSによるテーマ
- Adobeの超高速CSSフレームワークtopcoatをベースに構築
- CSSメタ言語にStylusを利用
- 設計規約はBEMを採用
http://components.onsen.io/
- ウェブ上で簡単に色をカスタマイズできるテーマローラも完備
Onsen UIのコンポーネント群
- チューニングにより高速に動作
ons-navigator
- 画面遷移と遷移アニメーションを管理する
<ons-navigator class=“first-page”>
<ons-toolbar>
<div class=“center”>Toolbar Title</div>
</ons-toolbar>
<div>
<p>Page Contents</p>
<ons-button ng-click=“foo()”>
MyButton
</ons-button>
</div>
</ons-navigator>
- ページをスタックで管理する
- 画面遷移を司るコンポーネント
page1.html
page2.html
page1.html
pushPage() popPage()
page1.html
ons-pull-hook
- いわゆるpull-to-refreshを実装できるコンポーネント
<ons-page>
<ons-pull-hook ng-action="load($done)">
Pull to refresh
</ons-pull-hook>
<ons-list>
...
</ons-list>
</ons-page>
- pull-to-refreshの例
ons-lazy-repeat
- 数千数万のDOM要素のライフサイクルを管理
- いわゆる無限リストが簡単に実装できる
<ul>
<li ons-lazy-repeat=“lazyRepeatDelegate”>
…
</li>
</ul>
- 画面に必要な分だけ表示するので高速
- AndroidやiOSのリストビューと同等のことが可能
隠れたら
アンロード
表示しそうなら
ロード
ons-sliding-menu要素
- スライディングメニュー、ドロワーメニューを表現
ons-alert-dialog要素
- HTMLで表現されたアラートダイアログ
ons-popover要素
- 吹き出しを表現するコンポーネント
ons-carousel要素
- 置くだけでカルーセルのUIを表現
Onsen UIが目指すもの
- だれでもHTML5で高速に動作する

モバイルアプリを作ることができる世界
- UIをどのようにチューニングするか、

ではなくアプリの本質的機能の開発に

フォーカスするための基盤
Onsen UI 2.0
- Material Designsサポート
- Angular2サポート
最後に
開発者募集
- アシアル株式会社では一緒にOnsen UIを開発して
くれるエンジニアを募集しています
ご清聴ありがとうございました

Contenu connexe

Tendances

スキスキIonic
スキスキIonicスキスキIonic
スキスキIonicKon Yuichi
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門Shumpei Shiraishi
 
Web標準技術で iOS、Android両対応アプリを開発
Web標準技術でiOS、Android両対応アプリを開発Web標準技術でiOS、Android両対応アプリを開発
Web標準技術で iOS、Android両対応アプリを開発 アシアル株式会社
 
Monaca+Onsen UIで作るアプリ事始め
Monaca+Onsen UIで作るアプリ事始めMonaca+Onsen UIで作るアプリ事始め
Monaca+Onsen UIで作るアプリ事始めKenichi Inoue
 
【ABC2014Spring LT】AngularJSでWEBアプリ開発
【ABC2014Spring LT】AngularJSでWEBアプリ開発【ABC2014Spring LT】AngularJSでWEBアプリ開発
【ABC2014Spring LT】AngularJSでWEBアプリ開発Hiroyuki Kusu
 
今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしましたMitsuru Ogawa
 
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについてネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについてKazuaki Hidaka
 
AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化Toshio Ehara
 
Directiveで実現できたこと
Directiveで実現できたことDirectiveで実現できたこと
Directiveで実現できたことKon Yuichi
 
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)Mitsuru Ogawa
 
AngularJS入門の巻
AngularJS入門の巻AngularJS入門の巻
AngularJS入門の巻Toshio Ehara
 
Angular js開発事例
Angular js開発事例Angular js開発事例
Angular js開発事例Shun Takeyama
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJSMizuho Sakamaki
 
Angular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェストAngular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェストMasahiko Asai
 
Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅
Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅
Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅アシアル株式会社
 
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)icchiman
 
イベント駆動AngularJS / 今から書くAngular 2.0
イベント駆動AngularJS / 今から書くAngular 2.0イベント駆動AngularJS / 今から書くAngular 2.0
イベント駆動AngularJS / 今から書くAngular 2.0Okuno Kentaro
 
smartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用についてsmartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用について剛志 森田
 

Tendances (20)

スキスキIonic
スキスキIonicスキスキIonic
スキスキIonic
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
 
Web標準技術で iOS、Android両対応アプリを開発
Web標準技術でiOS、Android両対応アプリを開発Web標準技術でiOS、Android両対応アプリを開発
Web標準技術で iOS、Android両対応アプリを開発
 
Monaca+Onsen UIで作るアプリ事始め
Monaca+Onsen UIで作るアプリ事始めMonaca+Onsen UIで作るアプリ事始め
Monaca+Onsen UIで作るアプリ事始め
 
【ABC2014Spring LT】AngularJSでWEBアプリ開発
【ABC2014Spring LT】AngularJSでWEBアプリ開発【ABC2014Spring LT】AngularJSでWEBアプリ開発
【ABC2014Spring LT】AngularJSでWEBアプリ開発
 
今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました
 
Angular2
Angular2Angular2
Angular2
 
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについてネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
 
AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化
 
Directiveで実現できたこと
Directiveで実現できたことDirectiveで実現できたこと
Directiveで実現できたこと
 
Html5/JSモバイルアプリ最前線
Html5/JSモバイルアプリ最前線Html5/JSモバイルアプリ最前線
Html5/JSモバイルアプリ最前線
 
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
 
AngularJS入門の巻
AngularJS入門の巻AngularJS入門の巻
AngularJS入門の巻
 
Angular js開発事例
Angular js開発事例Angular js開発事例
Angular js開発事例
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS
 
Angular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェストAngular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェスト
 
Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅
Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅
Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅
 
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
 
イベント駆動AngularJS / 今から書くAngular 2.0
イベント駆動AngularJS / 今から書くAngular 2.0イベント駆動AngularJS / 今から書くAngular 2.0
イベント駆動AngularJS / 今から書くAngular 2.0
 
smartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用についてsmartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用について
 

En vedette

ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3Masahiro Wakame
 
フロントエンドのツール Yeoman を勘違いしていた
フロントエンドのツール Yeoman を勘違いしていたフロントエンドのツール Yeoman を勘違いしていた
フロントエンドのツール Yeoman を勘違いしていたgirigiribauer
 
3分でわかるangular js
3分でわかるangular js3分でわかるangular js
3分でわかるangular jsShin Adachi
 
初心者 × AngularJS × TypeScript
初心者 × AngularJS × TypeScript初心者 × AngularJS × TypeScript
初心者 × AngularJS × TypeScriptYuta Matsumura
 
忙しい人のためのBackbone.jsとAngular.js入門
忙しい人のためのBackbone.jsとAngular.js入門忙しい人のためのBackbone.jsとAngular.js入門
忙しい人のためのBackbone.jsとAngular.js入門Toshiaki Maki
 
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1clubangular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1clubsilvers ofsilvers
 
デザイナーとの協業を本気で考える
デザイナーとの協業を本気で考えるデザイナーとの協業を本気で考える
デザイナーとの協業を本気で考えるkwatch
 
Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923Staffnet_Inc
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!Yuji Nojima
 

En vedette (12)

ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
 
フロントエンドのツール Yeoman を勘違いしていた
フロントエンドのツール Yeoman を勘違いしていたフロントエンドのツール Yeoman を勘違いしていた
フロントエンドのツール Yeoman を勘違いしていた
 
3分でわかるangular js
3分でわかるangular js3分でわかるangular js
3分でわかるangular js
 
Alt01-LT
Alt01-LTAlt01-LT
Alt01-LT
 
初心者 × AngularJS × TypeScript
初心者 × AngularJS × TypeScript初心者 × AngularJS × TypeScript
初心者 × AngularJS × TypeScript
 
忙しい人のためのBackbone.jsとAngular.js入門
忙しい人のためのBackbone.jsとAngular.js入門忙しい人のためのBackbone.jsとAngular.js入門
忙しい人のためのBackbone.jsとAngular.js入門
 
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1clubangular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1club
 
デザイナーとの協業を本気で考える
デザイナーとの協業を本気で考えるデザイナーとの協業を本気で考える
デザイナーとの協業を本気で考える
 
Angularを利用しよう
Angularを利用しようAngularを利用しよう
Angularを利用しよう
 
Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
 
TypeScriptで快適javascript
TypeScriptで快適javascriptTypeScriptで快適javascript
TypeScriptで快適javascript
 

Similaire à AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ

アプリのUXを磨くベスト・プラクティス
アプリのUXを磨くベスト・プラクティスアプリのUXを磨くベスト・プラクティス
アプリのUXを磨くベスト・プラクティスYuichi Kato
 
これからiPhoneアプリを作ってみたいけど、プログラミング知識のない方へ!ワンコインセミナーでその一歩を踏み出してみよう!
これからiPhoneアプリを作ってみたいけど、プログラミング知識のない方へ!ワンコインセミナーでその一歩を踏み出してみよう!これからiPhoneアプリを作ってみたいけど、プログラミング知識のない方へ!ワンコインセミナーでその一歩を踏み出してみよう!
これからiPhoneアプリを作ってみたいけど、プログラミング知識のない方へ!ワンコインセミナーでその一歩を踏み出してみよう!Yoshinori Kobayashi
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情Naoki Yamada
 
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発Satoru Yamaguchi
 
Android webブラウザのhtml5対応状況
Android webブラウザのhtml5対応状況 Android webブラウザのhtml5対応状況
Android webブラウザのhtml5対応状況 Masakazu Muraoka
 
「Camelog」Android開発秘話
「Camelog」Android開発秘話「Camelog」Android開発秘話
「Camelog」Android開発秘話Shoya Tsukada
 
Web開発の 今までとこれから
Web開発の 今までとこれからWeb開発の 今までとこれから
Web開発の 今までとこれからShinichi Takahashi
 
嗚呼、素晴らしき哉 MonoTouch
嗚呼、素晴らしき哉 MonoTouch嗚呼、素晴らしき哉 MonoTouch
嗚呼、素晴らしき哉 MonoTouchhIDDENxv
 
SketchがAndroidのUIデザインに向いているワケ
SketchがAndroidのUIデザインに向いているワケSketchがAndroidのUIデザインに向いているワケ
SketchがAndroidのUIデザインに向いているワケAsami Yamamoto
 
はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 Monaca
 
JavaScript祭りLTでmonacaを紹介
JavaScript祭りLTでmonacaを紹介JavaScript祭りLTでmonacaを紹介
JavaScript祭りLTでmonacaを紹介Yuki Okamoto
 
Abc2013 spring appinventorユーザー会
Abc2013 spring appinventorユーザー会Abc2013 spring appinventorユーザー会
Abc2013 spring appinventorユーザー会Takeaki Tada
 
ユーザーの心に刺ささるためには - UX実践編 -
ユーザーの心に刺ささるためには - UX実践編 -ユーザーの心に刺ささるためには - UX実践編 -
ユーザーの心に刺ささるためには - UX実践編 -Midori Hirose
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Atsushi Harada
 
Mobile cloudnight 2015/11/11
Mobile cloudnight 2015/11/11Mobile cloudnight 2015/11/11
Mobile cloudnight 2015/11/11YUSUKE MORIZUMI
 
HTML5とか勉強会#48 ionic
HTML5とか勉強会#48 ionicHTML5とか勉強会#48 ionic
HTML5とか勉強会#48 ionicKenichi Kanai
 
App inventorで想いを形に
App inventorで想いを形にApp inventorで想いを形に
App inventorで想いを形にTakeaki Tada
 
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClipアプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomCliptakaaya
 

Similaire à AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ (20)

アプリのUXを磨くベスト・プラクティス
アプリのUXを磨くベスト・プラクティスアプリのUXを磨くベスト・プラクティス
アプリのUXを磨くベスト・プラクティス
 
これからiPhoneアプリを作ってみたいけど、プログラミング知識のない方へ!ワンコインセミナーでその一歩を踏み出してみよう!
これからiPhoneアプリを作ってみたいけど、プログラミング知識のない方へ!ワンコインセミナーでその一歩を踏み出してみよう!これからiPhoneアプリを作ってみたいけど、プログラミング知識のない方へ!ワンコインセミナーでその一歩を踏み出してみよう!
これからiPhoneアプリを作ってみたいけど、プログラミング知識のない方へ!ワンコインセミナーでその一歩を踏み出してみよう!
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
 
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
 
Android webブラウザのhtml5対応状況
Android webブラウザのhtml5対応状況 Android webブラウザのhtml5対応状況
Android webブラウザのhtml5対応状況
 
「Camelog」Android開発秘話
「Camelog」Android開発秘話「Camelog」Android開発秘話
「Camelog」Android開発秘話
 
Web開発の 今までとこれから
Web開発の 今までとこれからWeb開発の 今までとこれから
Web開発の 今までとこれから
 
嗚呼、素晴らしき哉 MonoTouch
嗚呼、素晴らしき哉 MonoTouch嗚呼、素晴らしき哉 MonoTouch
嗚呼、素晴らしき哉 MonoTouch
 
Html5 js waffle
Html5 js waffleHtml5 js waffle
Html5 js waffle
 
SketchがAndroidのUIデザインに向いているワケ
SketchがAndroidのUIデザインに向いているワケSketchがAndroidのUIデザインに向いているワケ
SketchがAndroidのUIデザインに向いているワケ
 
はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情
 
ABC 2012 spring
ABC 2012 springABC 2012 spring
ABC 2012 spring
 
JavaScript祭りLTでmonacaを紹介
JavaScript祭りLTでmonacaを紹介JavaScript祭りLTでmonacaを紹介
JavaScript祭りLTでmonacaを紹介
 
Abc2013 spring appinventorユーザー会
Abc2013 spring appinventorユーザー会Abc2013 spring appinventorユーザー会
Abc2013 spring appinventorユーザー会
 
ユーザーの心に刺ささるためには - UX実践編 -
ユーザーの心に刺ささるためには - UX実践編 -ユーザーの心に刺ささるためには - UX実践編 -
ユーザーの心に刺ささるためには - UX実践編 -
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
 
Mobile cloudnight 2015/11/11
Mobile cloudnight 2015/11/11Mobile cloudnight 2015/11/11
Mobile cloudnight 2015/11/11
 
HTML5とか勉強会#48 ionic
HTML5とか勉強会#48 ionicHTML5とか勉強会#48 ionic
HTML5とか勉強会#48 ionic
 
App inventorで想いを形に
App inventorで想いを形にApp inventorで想いを形に
App inventorで想いを形に
 
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClipアプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
 

Plus de アシアル株式会社

Monacaによるモバイルアプリ開発ことはじめ
Monacaによるモバイルアプリ開発ことはじめMonacaによるモバイルアプリ開発ことはじめ
Monacaによるモバイルアプリ開発ことはじめアシアル株式会社
 
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験アシアル株式会社
 
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)アシアル株式会社
 
書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)
書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)
書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)アシアル株式会社
 
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)アシアル株式会社
 
Onsen UI 2 開発における JS フレームワーク衝突事例集
Onsen UI 2 開発における JS フレームワーク衝突事例集Onsen UI 2 開発における JS フレームワーク衝突事例集
Onsen UI 2 開発における JS フレームワーク衝突事例集アシアル株式会社
 
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)アシアル株式会社
 
Onsen UI の最近とこれから 〜 国内サポートはじめました
Onsen UI の最近とこれから 〜 国内サポートはじめましたOnsen UI の最近とこれから 〜 国内サポートはじめました
Onsen UI の最近とこれから 〜 国内サポートはじめましたアシアル株式会社
 
Monaca事例から学ぶHTML5モバイルアプリの活用ポイント
Monaca事例から学ぶHTML5モバイルアプリの活用ポイントMonaca事例から学ぶHTML5モバイルアプリの活用ポイント
Monaca事例から学ぶHTML5モバイルアプリの活用ポイントアシアル株式会社
 
モバイル用Webフレームワーク最前線
モバイル用Webフレームワーク最前線モバイル用Webフレームワーク最前線
モバイル用Webフレームワーク最前線アシアル株式会社
 
Monacaソリューションセミナー20160621
Monacaソリューションセミナー20160621Monacaソリューションセミナー20160621
Monacaソリューションセミナー20160621アシアル株式会社
 
創業明治33年の衣料卸問屋がﰀ アプリで挑むコミュニケーション変革 ﰀ ~MonacaとmBaaSを活用したﰀ ビジネスチャットアプリの紹介〜 ﰀ
創業明治33年の衣料卸問屋がﰀ アプリで挑むコミュニケーション変革 ﰀ ~MonacaとmBaaSを活用したﰀ ビジネスチャットアプリの紹介〜 ﰀ創業明治33年の衣料卸問屋がﰀ アプリで挑むコミュニケーション変革 ﰀ ~MonacaとmBaaSを活用したﰀ ビジネスチャットアプリの紹介〜 ﰀ
創業明治33年の衣料卸問屋がﰀ アプリで挑むコミュニケーション変革 ﰀ ~MonacaとmBaaSを活用したﰀ ビジネスチャットアプリの紹介〜 ﰀアシアル株式会社
 
HTML5ハイブリッドアプリ開発 で拓くビジネスチャンス
HTML5ハイブリッドアプリ開発で拓くビジネスチャンスHTML5ハイブリッドアプリ開発で拓くビジネスチャンス
HTML5ハイブリッドアプリ開発 で拓くビジネスチャンス アシアル株式会社
 
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンスHTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンスアシアル株式会社
 

Plus de アシアル株式会社 (20)

MonacaとEducation活動の紹介
MonacaとEducation活動の紹介MonacaとEducation活動の紹介
MonacaとEducation活動の紹介
 
PWA 4 Business
PWA 4 BusinessPWA 4 Business
PWA 4 Business
 
Monacaによるモバイルアプリ開発ことはじめ
Monacaによるモバイルアプリ開発ことはじめMonacaによるモバイルアプリ開発ことはじめ
Monacaによるモバイルアプリ開発ことはじめ
 
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
 
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
 
書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)
書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)
書籍『Monacaで学ぶはじめてのプログラミング』発展資料(試験問題アプリ編)
 
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド第2弾(体験版)
 
Onsen UI 2 開発における JS フレームワーク衝突事例集
Onsen UI 2 開発における JS フレームワーク衝突事例集Onsen UI 2 開発における JS フレームワーク衝突事例集
Onsen UI 2 開発における JS フレームワーク衝突事例集
 
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
書籍『Monacaで学ぶはじめてのプログラミング』 講義スライド(体験版)
 
Cordovaの特徴と開発手法概要
Cordovaの特徴と開発手法概要Cordovaの特徴と開発手法概要
Cordovaの特徴と開発手法概要
 
Onsen UI の最近とこれから 〜 国内サポートはじめました
Onsen UI の最近とこれから 〜 国内サポートはじめましたOnsen UI の最近とこれから 〜 国内サポートはじめました
Onsen UI の最近とこれから 〜 国内サポートはじめました
 
Monaca事例から学ぶHTML5モバイルアプリの活用ポイント
Monaca事例から学ぶHTML5モバイルアプリの活用ポイントMonaca事例から学ぶHTML5モバイルアプリの活用ポイント
Monaca事例から学ぶHTML5モバイルアプリの活用ポイント
 
Gartner summit 2016
Gartner summit 2016Gartner summit 2016
Gartner summit 2016
 
モバイル用Webフレームワーク最前線
モバイル用Webフレームワーク最前線モバイル用Webフレームワーク最前線
モバイル用Webフレームワーク最前線
 
Monacaソリューションセミナー20160621
Monacaソリューションセミナー20160621Monacaソリューションセミナー20160621
Monacaソリューションセミナー20160621
 
20160308seminar2
20160308seminar220160308seminar2
20160308seminar2
 
Nifty cloud mbaas
Nifty cloud mbaasNifty cloud mbaas
Nifty cloud mbaas
 
創業明治33年の衣料卸問屋がﰀ アプリで挑むコミュニケーション変革 ﰀ ~MonacaとmBaaSを活用したﰀ ビジネスチャットアプリの紹介〜 ﰀ
創業明治33年の衣料卸問屋がﰀ アプリで挑むコミュニケーション変革 ﰀ ~MonacaとmBaaSを活用したﰀ ビジネスチャットアプリの紹介〜 ﰀ創業明治33年の衣料卸問屋がﰀ アプリで挑むコミュニケーション変革 ﰀ ~MonacaとmBaaSを活用したﰀ ビジネスチャットアプリの紹介〜 ﰀ
創業明治33年の衣料卸問屋がﰀ アプリで挑むコミュニケーション変革 ﰀ ~MonacaとmBaaSを活用したﰀ ビジネスチャットアプリの紹介〜 ﰀ
 
HTML5ハイブリッドアプリ開発 で拓くビジネスチャンス
HTML5ハイブリッドアプリ開発で拓くビジネスチャンスHTML5ハイブリッドアプリ開発で拓くビジネスチャンス
HTML5ハイブリッドアプリ開発 で拓くビジネスチャンス
 
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンスHTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
 

AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ