SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
iOS WebView App
@hagino3000
2013-12-12
社内的な勉強会 atVOYAGE GROUP
注
Androidの話は無いです
なぜWebView上にアプリを
構築するのか
• 任意のタイミングでアプリケーション
をアップデートしたい
• WebでUI作った方が楽そうだから
• そんな事は無い → あとで死ぬ
実装戦略
実装戦略
• HTML, CSS, JSのリソースをアプリにバン
ドルする or NOT
• Single Page Web App or NOT
• ネイティブUIパーツを使う or NOT
HTML, CSS, JSファイルを
アプリにバンドルするか
• 完全にオフラインで動作させる事が可能
• それ以外メリット無し
Single Page Web Appにするか
• Single Page
• JSの実装量は増える
• なんらかのJSフレームワークを使う
Sencha Touch, AngularJS etc...
• Multi Page
• 作りはシンプルになる
(番外編) Multi UIWebView
• ページ毎にUIWebViewを作る
• ネイティブのトランジションが使える
• 試してない
iOSのUIパーツを使うか
iOSのUIパーツを使うか
• NavigationBar, UIAlertView, UIActionSheet
etc..
• 使った方が楽 (モーダル制御等)
• ネイティブUIを呼び出すブリッジを作る
• ブラウザでデバッグできるようにPolyfillを
用意しておく
UIWebView
UIWebView
iOSVersion Browser Component
iOS 6 iOS Safari 6.x
iOS 7 iOS Safari 7.0
機能比較
http://caniuse.com/#compare=ios_saf+6.0-6.1,ios_saf+7.0
コンテンツの配置
UIWebView
UIScrollView
HTML Content
(表示領域)
Navigation BarContentsArea(iOS6)
ContentsArea(iOS7)
document.scrollTop 不可視
不可視
ViewPort
<!-- よくある設定 -->
<meta
name="viewport"
content="width=device-width,
height=device-height,
initial-scale=1.0,
maximum-scale=1.0"
/>
スクロールの制御
• Single Page Web App
Height 100%のブロック要素を並べて、
その中でスクロールさせる場合はデフ
ォルトのスクロールが邪魔になる。
(二重スクロール)
• そうでない場合はscrollViewのスクロー
ルを使う
スクロールの制御
// UIScrollViewのスクロールを無効にする
webView.scrollView.scrollEnabled = NO;
/* CSSでブロック要素の慣性スクロールを有効にする */
article.page{
box-sizing: border-box;
position: absolute;
width: 100%; height: 100%;
top 0; left: 0;
overflow: scroll;
-webkit-overflow-scrolling: touch;
}
スクロール速度
scrollView.decelerationRate =
UIScrollViewDecelerationRateNormal;
// デフォルトは UIScrollViewDecelerationRateFast
慣性スクロールの減速が緩くなる。scrollViewのスクロ
ールを使う場合は設定する。
CSSでブロック要素の慣性スクロールを有効にした場
合は UIScrollViewRateNormal 相当になる。
NavigationBar
• ポジション固定にする場合はネイティブのを
使うと楽
• NavigationBarを半透明にして、背後にもコンテ
ンツを配置したい (iOS7)
• 初期表示でnavbarの下にコンテンツが潜りこ
まないようにscrollViewの調節が必要
• webView.scrollView.contentInset
• webView.scrollView.contentOffset
• webView.scrollView.scrollIndicatorInsets
position: fixed
• 効かない
• スクロールに引きずられる
• iScroll
• onScrollイベントを監視してposition:fixedを再
現している
• https://github.com/cubiq/iscroll
• 代替策として別のViewにして配置するのもアリ
テキスト入力
1. <input type=”text”> or <textarea> にフォーカス
2. Keyboard Windowがせり上ってくる
3. document.scrollTopがずれる
• テキスト入力パーツはなるべく画面上部に配置す
る。下の方だと最悪Keyboard Windowが被る。
• scrollViewのスクロールを無効にしているとユーザ
ーが元に戻せない。
→入力後にscrollTopを調整する。
• JavaScriptからキーボードの上げ下げを可能にして
おく
その他よくやる設定
<!-- 電話番号らしき数列をリンクにするのを無効化 -->
<meta name="format-detection" content="telephone=no">
body {
/* 文字列のコピーや選択をできなくする */
-webkit-user-select:none;
/* リンクの長押しメニューを出なくする */
-webkit-touch-callout:none;
/* アンカー要素をタップした時に出現する枠を見えなくする */
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
ネイティブとの連係
To WebView
NSString *js = @”window.App.hello();”;
[self.webView stringByEvaluationgJavaScriptFromString:js];
// 例:ネイティブからsessionId, userId etc.. を渡す
NSString *js = [NSString stringWithFormat:
@”window.App.deviceReady({
sessionId: ‘%@’,
userId: ‘%@’,
apiBase: ‘%@’
});”,
self.sessionId,
self.user_id,
@”http://api.hoge.com”];
[self.webView stringByEvaluatingJavaScriptFromString:js];
From WebView
1. 独自スキーマを指定してlocationを変更
2. UIWebViewDelegateのshouldStartLoadWithRequest
でフック
3. なにかやる
4. UIWebViewのstringByEvaluatingJavaScriptFromString
で結果を返す
ヒント:PhoneGapのソースの方がこのスライドよりも参考になる
https://github.com/phonegap/phonegap/blob/master/lib/ios/CordovaLib/cordova.js
// JS側の実装例
var transactionId = 0;
function nativeBridge(action, params, callback) {
// 後で呼び出すためにコールバック関数を保持する
var transactionId = transactionId++;
callbacks[transactionId] = callback;
var data = encodeURIComponent(JSON.stringify({
transactionId: transactionId,
params: params
}));
// iframeのlocation変更リクエストはWebViewDelegateで
// フックできる
var frame = $('<iframe>').attr('src',
'MyActionHandler://' + action + '/' + data
).css({display: "none"});
$(document.body).append(frame);
frame.remove();
}
// Objective-C
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType {
// Check schema
if ([[request.URL.scheme lowercaseString]
isEqualToString:@”MyActionHandler”]) {
// なんかやる
return NO;
}
return YES;
}
App.nativeBridge(‘alert’, {
title: “Error”,
message:“Sorry...”,
buttonTitle: “OK”
}, function(){
// UIAlertViewのOKボタンがタップされた
})
使用例
最初から作っておくと便利
• キーボードWindowの上げ下げ
• Alert
• Confirm
• ActionSheet
• ジェスチャー認識
リクエストのフック
• UIWebViewDelegateのshouldStartLoadWithRequest
⃝ ロケーション変更 (iframe含む)
⃝ リロード (iframe含む)
⃝ フォームサブミット
× XMLHttpRequest
× script要素、link要素、img要素による通信
• NSURLProtocol
• 全ての通信をフックできる、ホワイトリストを
実装するならこちら
リクエストのフックの応用
• ロケーション変更時、ドメインによって処理を変
える(ex 自サービスの外に出る場合はSafariで開く)
• 認証情報の付加
• NSMutableURLRequestを操作してcookieや独自
ヘッダを付加する
• ホワイトリスト (NSURLProtocol)
• しかし、アドネットワークを利用して広告を表
示しているとホワイトリストのメンテは困難を
極める
パフォーマンス
Clickイベントが遅延する問題
• タッチデバイスブラウザはtouchstart後clickイベント
までの間隔が300msec程度空く
• リンククリックの反応が遅い
• もっさり感
• 解決策
• FastClick.js
• clickイベントが速くなる、リンククリックも改善
• jQuery mobileであればvclickイベントを使う
• clickでは無くtouchendイベントを使う
(ブラウザのデバッグが面倒になる)
DOM操作のチューニング
• DOM操作は最小限に、変更が必要な箇所のみ
• アニメーションはGPUを効かせる
• -webkit-transform: translate3d を使う
• レイアウトの再計算が発生する回数を減らす
• 例
• offsetHeightを取得して挿入した要素の高さだけ
スクロール位置を下にずらす処理
• DOM操作全てが終ったタイミングで行なう
無限リスト
• DOMツリーが増え続けると重くなる
• iOSのテーブルセルの再利用のような仕組みが必要
になる
• iOS SDKのUITabelViewCellの標準機能だけどDOM
にはそんな物無いです……
デバッグ
ブラウザでデバッグ可能にする
Chromeで開発 and デバッグ
↓
iPhoneシミュレーターで開発 and デバッグ
↓
実機 (最終確認)
• ブラウザでデバッグする際はネイティブ機能呼び出
しのブリッジを差しかえる (Alert, ActionSheet ...)
• AppDelegate相当の物を作っておく
• イベント受信部
• Push通知, Navigationbar button操作, on/offline..
• どの画面からでも開始できるようにしておく
• 画面遷移して到達しないと機能しない画面はデバ
ッグしづらい。なるべくステートレスに。
• Chromeのエミュレーションモード
• iPhone5, 4S etc... 選べるがイマイチ
ブラウザでデバッグ
Chromeのエミュレートモード
• オートリロード必須
• リロードするのが手間
• grunt auto-reload を使う
• JS, HTMLはソース編集と同時にリロード
• CSSはDOMの状態を維持したまま変更が反映さ
れる
• window.onerrorでキャッチした例外をXcodeのロ
グに吐くようにしておく(特に発生行数)
• Safariの開発メニューから、開発者コンソールを
アタッチできる
iOSシミュレーターでデバッグ
• ローカルサーバーと通信してると何もかもが一瞬で
取得できてしまう
• Network Link Conditioner を使う
• 使わないと3G回線の速度を再現できない
• 通信中インジケーターをゆっくり眺められる
通信状況のエミュレート
通信状況のエミュレート
• 特にアニメーション、タッチレスポンス周りを確認
• 通信中の電話着信や、アプリがバックグラウンド
に行っても大丈夫か
実機でデバッグ
サーバーAPIの実装
• 素直なRESTful APIにしておく
• Request
• content-type: application/json
• Response
• content-type: application/json
設計
モダンなJavaScriptライブラリはこれが前提になって
いたりする(ex. backbone.js)。道を外れると一気に工
数が跳ね上がる。
• APIサーバーはCross Domain XHRに対応しておく
• HTML, JS, CSSはlocalhost (grunt server)で編集
• APIサーバーはAWS上の開発機を参照してAjaxで
叩く
• デザイナー or フロント担当エンジニアはローカ
ルに静的ファイルの開発環境のみ作れば良い
• 認証情報を独自ヘッダに持たせている場合
• OPTIONSのプリフライトリクエストが飛ぶので
APIサーバーをCORSに対応させておく
開発時
まとめ
• とにかくブラウザでデバッグする
• UIの実装はネイティブ同様時間がか
かる (楽はできない)
• 覚悟が必要
まとめ

Más contenido relacionado

La actualidad más candente

オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
Masayuki Wakizaka
 
Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動
Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動
Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動
Kanahiro Iguchi
 
地理空間とOSGeoとPostGISとを簡単に紹介してみます
地理空間とOSGeoとPostGISとを簡単に紹介してみます地理空間とOSGeoとPostGISとを簡単に紹介してみます
地理空間とOSGeoとPostGISとを簡単に紹介してみます
boiledorange73
 

La actualidad más candente (20)

SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 
Vue.js で XSS
Vue.js で XSSVue.js で XSS
Vue.js で XSS
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
Google Cloud でアプリケーションを動かす.pdf
Google Cloud でアプリケーションを動かす.pdfGoogle Cloud でアプリケーションを動かす.pdf
Google Cloud でアプリケーションを動かす.pdf
 
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
 
Spring bootでweb バリデート編
Spring bootでweb バリデート編Spring bootでweb バリデート編
Spring bootでweb バリデート編
 
Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動
Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動
Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
負荷分散勉強会
負荷分散勉強会負荷分散勉強会
負荷分散勉強会
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
地理空間とOSGeoとPostGISとを簡単に紹介してみます
地理空間とOSGeoとPostGISとを簡単に紹介してみます地理空間とOSGeoとPostGISとを簡単に紹介してみます
地理空間とOSGeoとPostGISとを簡単に紹介してみます
 

Destacado

ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)
ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)
ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)
hagino 3000
 
PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰
hagino 3000
 

Destacado (20)

iOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱いiOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱い
 
UIWebView Tips
UIWebView TipsUIWebView Tips
UIWebView Tips
 
Google App Engine で初めるServerSide JavaScript
Google App Engine で初めるServerSide JavaScriptGoogle App Engine で初めるServerSide JavaScript
Google App Engine で初めるServerSide JavaScript
 
JavaScriptとSalesforceとTwitterマーケティングな話をした時の資料
JavaScriptとSalesforceとTwitterマーケティングな話をした時の資料JavaScriptとSalesforceとTwitterマーケティングな話をした時の資料
JavaScriptとSalesforceとTwitterマーケティングな話をした時の資料
 
ハイパフォーマンスブラウザネットワーキング 12章「HTTP 2.0」と現在の仕様
ハイパフォーマンスブラウザネットワーキング 12章「HTTP 2.0」と現在の仕様ハイパフォーマンスブラウザネットワーキング 12章「HTTP 2.0」と現在の仕様
ハイパフォーマンスブラウザネットワーキング 12章「HTTP 2.0」と現在の仕様
 
Secure Code for Interactive Programming
Secure Code for Interactive ProgrammingSecure Code for Interactive Programming
Secure Code for Interactive Programming
 
Introduction of Leap Motion
Introduction of Leap MotionIntroduction of Leap Motion
Introduction of Leap Motion
 
逃亡の勧め
逃亡の勧め逃亡の勧め
逃亡の勧め
 
はじめてのChaos Proxy Viewer
はじめてのChaos Proxy ViewerはじめてのChaos Proxy Viewer
はじめてのChaos Proxy Viewer
 
PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現
 
Swiftとメソッドのアレコレ
SwiftとメソッドのアレコレSwiftとメソッドのアレコレ
Swiftとメソッドのアレコレ
 
ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)
ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)
ノンタッチUI時代とフロントエンドエンジニア (Using emotiv)
 
PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰
 
Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析
 
5分でわかるText Kit
5分でわかるText Kit5分でわかるText Kit
5分でわかるText Kit
 
Can we live in a pure Swift world?
Can we live in a pure Swift world?Can we live in a pure Swift world?
Can we live in a pure Swift world?
 
Breaking The Cross Domain Barrier
Breaking The Cross Domain BarrierBreaking The Cross Domain Barrier
Breaking The Cross Domain Barrier
 
WKWebViewとUIWebView
WKWebViewとUIWebViewWKWebViewとUIWebView
WKWebViewとUIWebView
 
脱swift初心者するための2つのきっかけ
脱swift初心者するための2つのきっかけ脱swift初心者するための2つのきっかけ
脱swift初心者するための2つのきっかけ
 
異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知
 

Similar a iOS WebView App

Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
Shotaro Suzuki
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdk
Kazuki Nakajima
 
ハイブリッドアプリへのLocalytics導入ガイド
ハイブリッドアプリへのLocalytics導入ガイドハイブリッドアプリへのLocalytics導入ガイド
ハイブリッドアプリへのLocalytics導入ガイド
LocalyticsJP
 
20111031 MobileWeb at TDC
20111031 MobileWeb at TDC20111031 MobileWeb at TDC
20111031 MobileWeb at TDC
Nobuhiro Sue
 
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
Yuki Takei
 
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発
Kazuki Nakajima
 

Similar a iOS WebView App (20)

Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
 
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & TipsjQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
 
Webに今求められているレベル: HTML5 コントロールを利用した開発
Webに今求められているレベル: HTML5 コントロールを利用した開発Webに今求められているレベル: HTML5 コントロールを利用した開発
Webに今求められているレベル: HTML5 コントロールを利用した開発
 
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフラインWebフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdk
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
 
スマホにおけるWebGL入門
スマホにおけるWebGL入門スマホにおけるWebGL入門
スマホにおけるWebGL入門
 
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
 
Knockout.js を利用したインタラクティブ web アプリケーション開発
Knockout.js を利用したインタラクティブ web アプリケーション開発Knockout.js を利用したインタラクティブ web アプリケーション開発
Knockout.js を利用したインタラクティブ web アプリケーション開発
 
ハイブリッドアプリへのLocalytics導入ガイド
ハイブリッドアプリへのLocalytics導入ガイドハイブリッドアプリへのLocalytics導入ガイド
ハイブリッドアプリへのLocalytics導入ガイド
 
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
 
20111031 MobileWeb at TDC
20111031 MobileWeb at TDC20111031 MobileWeb at TDC
20111031 MobileWeb at TDC
 
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうHTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろう
 
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
 
Getting started with Handoff
Getting started with HandoffGetting started with Handoff
Getting started with Handoff
 
Selenium webdriver使ってみようず
Selenium webdriver使ってみようずSelenium webdriver使ってみようず
Selenium webdriver使ってみようず
 
AngularJSの高速化
AngularJSの高速化AngularJSの高速化
AngularJSの高速化
 
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発
 

Más de hagino 3000 (8)

スパース性に基づく機械学習 2章 データからの学習
スパース性に基づく機械学習 2章 データからの学習スパース性に基づく機械学習 2章 データからの学習
スパース性に基づく機械学習 2章 データからの学習
 
アドネットワークのデータ解析チームを支える技術
アドネットワークのデータ解析チームを支える技術アドネットワークのデータ解析チームを支える技術
アドネットワークのデータ解析チームを支える技術
 
Where does my money go チーム発表
Where does my money go チーム発表Where does my money go チーム発表
Where does my money go チーム発表
 
NUIとKinect
NUIとKinectNUIとKinect
NUIとKinect
 
今日からはじめるKinect Hack
今日からはじめるKinect Hack今日からはじめるKinect Hack
今日からはじめるKinect Hack
 
Introduction of Kinect Hacks
Introduction of Kinect HacksIntroduction of Kinect Hacks
Introduction of Kinect Hacks
 
HTML5を使ったウェブアプリケーションの高速化
HTML5を使ったウェブアプリケーションの高速化HTML5を使ったウェブアプリケーションの高速化
HTML5を使ったウェブアプリケーションの高速化
 
Extjs + Gears
Extjs + GearsExtjs + Gears
Extjs + Gears
 

Último

Último (11)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

iOS WebView App