Upload
Download free for 30 days
Login
Submit Search
スマホ向けWebアプリ開発で使えるフロントエンド高速化手法
35 likes
8,976 views
Eiji Kodama
第一回Build Insider OFFLINEでの資料です。
Read more
1 of 53
Download now
Downloaded 54 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
More Related Content
PDF
20120316 designerworkshoppublished
Yoichiro Sakurai
PDF
無料で始めるアプリのバックエンド開発
Shoichi Takagi
KEY
スマートフォンアプリケーション開発の最新動向
Tsutomu Ogasawara
KEY
20120413 nestakabaneworkshop
Yoichiro Sakurai
PDF
nanapi IGNITIONチームの開発フローとその構築
晃 遠山
PPTX
小さく早い改善がスマホのサービス開発を変える
Hiroto Igarashi
PPTX
Onsen UIが目指すもの
アシアル株式会社
PPTX
Azure Mobile ServicesとAzure Mobile Apps
Masaki Yamamoto
20120316 designerworkshoppublished
Yoichiro Sakurai
無料で始めるアプリのバックエンド開発
Shoichi Takagi
スマートフォンアプリケーション開発の最新動向
Tsutomu Ogasawara
20120413 nestakabaneworkshop
Yoichiro Sakurai
nanapi IGNITIONチームの開発フローとその構築
晃 遠山
小さく早い改善がスマホのサービス開発を変える
Hiroto Igarashi
Onsen UIが目指すもの
アシアル株式会社
Azure Mobile ServicesとAzure Mobile Apps
Masaki Yamamoto
What's hot
(20)
PDF
Onsen UI 2.0とUIライブラリの未来
アシアル株式会社
PPTX
Microsoft Azureで始めるサクサクAndroid開発 in jazug青森
Masaki Yamamoto
PDF
Crunchtimer会社案内
Yuya Miyamoto
PPTX
PWAがたぶんくる
Ryu Shindo
PDF
Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅
アシアル株式会社
PDF
ServiceWorkerでつくるWebの未来
Yoshiki Kobayashi
PDF
Cordovaの特徴と開発手法概要
アシアル株式会社
PDF
Spa のための web サーバ構築ノウハウ
Kazuhiro Kotsutsumi
PPTX
Monaca事例から学ぶHTML5モバイルアプリの活用ポイント
アシアル株式会社
PDF
Html5/JSモバイルアプリ最前線
アシアル株式会社
PDF
iQONの開発手法 at iQONエンジニアセミナー
Imamura Masayuki
PPTX
Web標準技術でiOS、Android両対応アプリを開発
アシアル株式会社
PPTX
WordPressサイトをスマホアプリにしちゃおう!
Ryu Shindo
PPTX
最新UIフレームワーク Onsen UI2でカッコイイWordPress連携アプリを作る方法
アシアル株式会社
PPTX
Challenge PWA!! Technical Edition @JAG201809
Ryu Shindo
PPTX
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Shin Ogata
PDF
Ionicでハイブリッドアプリ入門①
Tomokatsu Iguchi
PDF
チーム「ヘップバーン」- 2020/09 キャンプハッカソン
Saito Kotaro
PDF
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
アシアル株式会社
PPTX
Hello, React!! まで導く Reactの基礎
iPride Co., Ltd.
Onsen UI 2.0とUIライブラリの未来
アシアル株式会社
Microsoft Azureで始めるサクサクAndroid開発 in jazug青森
Masaki Yamamoto
Crunchtimer会社案内
Yuya Miyamoto
PWAがたぶんくる
Ryu Shindo
Androidでもサクサク動くHTML5ハイブリッドアプリの作り⽅
アシアル株式会社
ServiceWorkerでつくるWebの未来
Yoshiki Kobayashi
Cordovaの特徴と開発手法概要
アシアル株式会社
Spa のための web サーバ構築ノウハウ
Kazuhiro Kotsutsumi
Monaca事例から学ぶHTML5モバイルアプリの活用ポイント
アシアル株式会社
Html5/JSモバイルアプリ最前線
アシアル株式会社
iQONの開発手法 at iQONエンジニアセミナー
Imamura Masayuki
Web標準技術でiOS、Android両対応アプリを開発
アシアル株式会社
WordPressサイトをスマホアプリにしちゃおう!
Ryu Shindo
最新UIフレームワーク Onsen UI2でカッコイイWordPress連携アプリを作る方法
アシアル株式会社
Challenge PWA!! Technical Edition @JAG201809
Ryu Shindo
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Shin Ogata
Ionicでハイブリッドアプリ入門①
Tomokatsu Iguchi
チーム「ヘップバーン」- 2020/09 キャンプハッカソン
Saito Kotaro
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
アシアル株式会社
Hello, React!! まで導く Reactの基礎
iPride Co., Ltd.
Ad
Viewers also liked
(20)
PDF
Build Insider OFFLINE vol.01 スマートフォンサイトのこれから ~ レスポンシブ・Webデザインは救世主となり得るか
H2O Space. Co., Ltd.
PDF
スケーラビリティと耐障害性を両立するWeb アプリケーション
Masayoshi Hagiwara
PPTX
ProductManagement / front-endin Sansan( & remote work)
Iwashita Hironori
PDF
よりよい開発を目指すための、プロセス&ツール活用
Kaoru NAKAMURA
PDF
レスポンシブ+α 第12回WordBench大阪
Junko Nukaga
PPTX
HTML5とWeb開発に関する最新動向
Shumpei Shiraishi
PDF
スマートフォン対応とレスポンシブWebデザイン
Marie Suenaga
PDF
Css nite fukuoka8 suenaga
Marie Suenaga
PPTX
Node.js Hands-On
Akinari Tsugo
PDF
一生食える強みの作り方 まとめ
Manabu Uekusa
PPTX
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
Tusyoshi Matsuzaki
PDF
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
Hajime Ogushi
PDF
レスポンシブWebデザインの実践ワークフロー(WDS)
Hiroyuki Ogawa
PDF
レスポンシブWebデザイン ワークフロー
Hiroyuki Ogawa
PDF
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
Yossy Taka
PDF
短期間でのスマホ向けWeb開発
Manabu Uekusa
PDF
スマホアプリ開発-プロモーション・集客・サポート・広告収入-
Yossy Taka
PDF
Ajax非同期通信によるサーバー通信
Yossy Taka
PDF
JavaScriptによるgoogle maps apiの使い方
Yossy Taka
PDF
簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
Yuji Nojima
Build Insider OFFLINE vol.01 スマートフォンサイトのこれから ~ レスポンシブ・Webデザインは救世主となり得るか
H2O Space. Co., Ltd.
スケーラビリティと耐障害性を両立するWeb アプリケーション
Masayoshi Hagiwara
ProductManagement / front-endin Sansan( & remote work)
Iwashita Hironori
よりよい開発を目指すための、プロセス&ツール活用
Kaoru NAKAMURA
レスポンシブ+α 第12回WordBench大阪
Junko Nukaga
HTML5とWeb開発に関する最新動向
Shumpei Shiraishi
スマートフォン対応とレスポンシブWebデザイン
Marie Suenaga
Css nite fukuoka8 suenaga
Marie Suenaga
Node.js Hands-On
Akinari Tsugo
一生食える強みの作り方 まとめ
Manabu Uekusa
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
Tusyoshi Matsuzaki
これで大丈夫。Web制作で使うコマンドラインツールの名前と役割をざっくり理解する
Hajime Ogushi
レスポンシブWebデザインの実践ワークフロー(WDS)
Hiroyuki Ogawa
レスポンシブWebデザイン ワークフロー
Hiroyuki Ogawa
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
Yossy Taka
短期間でのスマホ向けWeb開発
Manabu Uekusa
スマホアプリ開発-プロモーション・集客・サポート・広告収入-
Yossy Taka
Ajax非同期通信によるサーバー通信
Yossy Taka
JavaScriptによるgoogle maps apiの使い方
Yossy Taka
簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
Yuji Nojima
Ad
Similar to スマホ向けWebアプリ開発で使えるフロントエンド高速化手法
(20)
PDF
フロントエンドから見たWebアプリの高速化 #gotandapm
Ryo Iinuma
PPTX
5分で詰め込む フロントエンド最適化
Shohei Tai
PDF
Frontend optimization dena_creativeseminar
DeNA_open_events
PDF
スマートフォンWebアプリ最適化”3つの極意”
Koji Ishimoto
PDF
速くなければスマフォじゃない
Kazunari Hara
PDF
我が家のフロントエンド開発事情
Naoki Yamada
PDF
Aqua ion press_tech_20121116_publish
Keita Watanabe
PPTX
フロントエンドの技術を刷新した話し。
Yutaka Horikawa
PDF
もっと良くなるHTMLアプリケーション設計と実装
Mitsue-Links
PDF
フロント作業の効率化
Yuto Yoshinari
PDF
Browser Computing Structure
Shogo Sensui
PDF
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...
SwapSkills
PDF
高速化はじめの一歩
Yuki Nakane
PDF
HTML5ハイブリッド アプリ開発実践編
Monaca
PDF
アプリ開発の
maruyama097
PPTX
Webエンジニアによるスマートフォンアプリ開発
takeuchi-tk
PPTX
Mobile SEO (Japanese Version)
ssuserd60633
PPTX
Speed Up Web 2012
彰 村地
PDF
Smartphone ui:ux」 de na creative seminar vol.1 レポート
Masaru Kimura
PDF
スタートアップ向け!1人日でできるサービスの高速化方法と成果
Koichiro Sumi
フロントエンドから見たWebアプリの高速化 #gotandapm
Ryo Iinuma
5分で詰め込む フロントエンド最適化
Shohei Tai
Frontend optimization dena_creativeseminar
DeNA_open_events
スマートフォンWebアプリ最適化”3つの極意”
Koji Ishimoto
速くなければスマフォじゃない
Kazunari Hara
我が家のフロントエンド開発事情
Naoki Yamada
Aqua ion press_tech_20121116_publish
Keita Watanabe
フロントエンドの技術を刷新した話し。
Yutaka Horikawa
もっと良くなるHTMLアプリケーション設計と実装
Mitsue-Links
フロント作業の効率化
Yuto Yoshinari
Browser Computing Structure
Shogo Sensui
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...
SwapSkills
高速化はじめの一歩
Yuki Nakane
HTML5ハイブリッド アプリ開発実践編
Monaca
アプリ開発の
maruyama097
Webエンジニアによるスマートフォンアプリ開発
takeuchi-tk
Mobile SEO (Japanese Version)
ssuserd60633
Speed Up Web 2012
彰 村地
Smartphone ui:ux」 de na creative seminar vol.1 レポート
Masaru Kimura
スタートアップ向け!1人日でできるサービスの高速化方法と成果
Koichiro Sumi
スマホ向けWebアプリ開発で使えるフロントエンド高速化手法
1.
スマホ向けWebアプリ開発で使える フロントエンド高速化手法 株式会社gloops 児玉 映治
2.
2 自己紹介 • 児玉 映治 •
株式会社gloops UI/UXグループマネージャー 兼WEBデザイングループマネージャー • 元々サーバサイドのエンジニア
3.
3 弊社紹介 • 株式会社gloops • 事業内容:ソーシャルアプリケーション事業 •
累計ユーザー数1800万人 • 主なタイトル
4.
4 アジェンダ 1. フロントエンド高速化の基本 ① ページサイズとHTTPリクエストの軽減 ②
ソースコードの最適化 2. ユーザーの体感速度 ① レンダリング ② イベント
5.
5 1. フロントエンド高速化の基本
6.
6 なぜフロントエンドの高速化が必要なのか ・ネイティブアプリ並のリッチさとパフォーマンスを スマホのWebアプリにも求められる ・UXに直結 ・継続率、離脱率、売上などに影響
7.
7 代表的な高速化の方法 ・ページサイズを軽くする ・HTTPリクエストを減らす ・styleは上に、scriptは下に書く ・CSSセレクタの最適化 ・処理速度の速いJavaScriptを書く ここと ここの話
8.
8 ① ページサイズとHTTPリクエストの軽減
9.
9 ページサイズを軽くする方法 ・画像最適化 ・画像をCSSで代用する ・minify化、gzip圧縮 ・キャッシュを使う
10.
10 HTTPリクエストを減らす方法 ・CSSスプライトを使う ・DataURIスキームを使う ・画像をCSSで代用する ・cssファイルや、jsファイルを纏める ここの話
11.
11 ・HTTPリクエストを一気に減らせる CSSスプライトの特徴 ・画像の表示は遅い ⇒CSSの解釈が終わってから画像を取りに行くため ・画像を用意する人とCSSを作る人が別々の場合 運用が少々面倒
12.
12 DataURIスキームの特徴 ・CSSスプライトより表示処理は早い ・画像ファイルの時より容量が増加する =キャッシュ必須 ・画像を更新するにはCSSファイルも更新する必要がある =キャッシュクリアされ、初回の読込みに時間がかかる ・HTTPリクエストが発生しない
13.
13 CSSスプライト ・更新頻度が少ない ・一つの画面で1回くらいしか使わない それぞれどう使い分ける? DataURIスキーム ・更新頻度が少ない ・一つの画面で何度も使う ・色数やサイズが小さい
14.
14 ・ページサイズは何kb? HTTPリクエストは何回? どの程度まで軽減するべきか? ・1秒以内を目指す ⇒2秒を超えると人は遅いと感じる ・速ければ速い程良い ・あとはデザインのクオリティと相談
15.
15 ページサイズを軽くした結果 ページサイズ HTTPリクエスト 時間 1120kb
50 1238.36ms 725kb 50 1036.88ms 508kb 50 910.67ms 308kb 50 689.29ms あるアプリでのLoadイベントまでの時間 ※iPhone4S(ios6.1) 3G回線を使用
16.
16 HTTPリクエストを減らした結果 ページサイズ HTTPリクエスト 時間 447kb
80 1006.86ms 436kb 50 939.71ms 442kb 35 662.50ms
17.
17 ページサイズ HTTPリクエスト 時間 447kb
80 1006.86ms 436kb 50 939.71ms 442kb 35 662.50ms
18.
18 あるアプリBで、2倍以上の差が発生 ページサイズ HTTPリクエスト 時間 アプリA
508kb 57 910.67ms アプリA 442kb 35 662.50ms アプリB 517kb 33 2091.90ms 減らすだけでは不十分
19.
19 ページサイズとHTTPリクエストを 減らしても遅い場合
20.
20 ② ソースコードの最適化 その1. CSS編
21.
21 CSSセレクタの高速化 ・セレクタは右から左へ解釈されるので 細かくするよりもシンプルにする方が高速
22.
22 計ってみた iPhone4 iPhone5 Galaxy
Nexus div > div > div > div.hoge 432ms 203ms 605ms .hoge 405ms 201ms 595ms 1000回実行してみると
23.
23 CSSセレクタの高速化 ・セレクタは右から左へ解釈されるので 細かくするよりもシンプルにする方が高速 ・運用性を重視した方が総合的に見て良い ・難解なセレクタ、汎用性のないセレクタ、 複雑な構造のHTMLにならないようにする
24.
24 セレクタよりも描画処理に注意する ・Google Chromeの開発ツールでTimelineを確認すると ボトルネックは大抵描画(緑色:Painting)
25.
25 ・重めのCSS ・スマホでCSSスプライトを使う場合 RetinaDisplay対応のためにbackground-size指定はほぼ必須 ⇒スプライト画像が大きいと background-sizeの処理も重くなる 描画が重くなるCSS
26.
26 描画が重い原因を探す ・Google Chrome Canaryの開発ツール ・CSSプロパティを調整し 重い原因を探す
27.
27 ② ソースコードの最適化 その2. JavaScript編
28.
28 変数を利用する ・DOM, 関数, style,
length etc… 複数回使うなら変数の中に入れてそっちを使う ・必ずvarで宣言してローカル変数にする ・基本中の基本 ・だけど見落としやすい
29.
29 変数を利用してDOM操作の回数を減らす
30.
30 一度に処理してDOM操作の回数を減らす
31.
31 かかる時間はJavaScriptだけではない ・DOM操作を行うと、ブラウザ側でも スタイルやレイアウトの再計算が行われている ・DOM操作の回数を減らすことで JavaScriptの処理だけでなく ブラウザ側の処理も軽くすることができる
32.
32 ② ソースコードの最適化 その3. jQuery編
33.
33 jQueryの最適化 ・jQueryオブジェクトの生成 速いのはどっち?
34.
34 jQueryの最適化 ・jQueryオブジェクトの生成 ○ × 速いのはどっち? ※ただしgetElementsByClassNameが実装されていないブラウザの場合はBが速い スマホの場合はA
35.
35 jQueryのセレクタの仕組み ① 初めにgetElementBy系が使われる (getElementById, getElementsByClassName,
getElementsByTagName) ② ①で取れない場合はquerySelectorAllが使われる ③ ②でもダメならsizzleエンジンが使われる
36.
36 jQueryのセレクタの仕組み ① 初めにgetElementBy系が使われる (getElementById, getElementsByClassName,
getElementsByTagName) ② ①で取れない場合はquerySelectorAllが使われる ③ ②でもダメならsizzleエンジンが使われる
37.
37 jQueryなどライブラリ利用時の注意点 ・確かに便利 ・だけど中でどういう処理がされているのかを 知っておくことで、 より速い処理を選択することができる
38.
38 1. フロントエンド高速化の基本 まとめ ・様々な高速化の手法が既に公開されている ・必ず自分自身で確かめる ・しかし自分と全く同じ環境で効果があるとは限らない
39.
39 2. ユーザーの体感速度
40.
40 ・ページサイズとHTTPリクエストを軽減すれば 速くなる 高速化のジレンマ ・ある程度まで軽減すると、 そこから先はデザインのクオリティが犠牲になる
41.
41 デザインのクオリティは下げられない 表示速度をこれ以上速くするのは難しい
42.
42 ① レンダリング ユーザーは読み込み中であろうと 操作できると思ったら即座に操作を始める 操作できると思う部分を先に表示して ユーザーにとっての待ち時間を短くする
43.
43 ・画像のレンダリングは表示方法によって順番が異なる 画像のレンダリング順を入れ替える ・img要素か、CSSのbackground-imageか ・img要素の方が、CSSのbackground-imageより 速く表示される(先にレンダリングされる) ・速く表示したい部分はimg要素で実装する
44.
44 <a href=“#” style=“position:absolute;
width:20px; height:20px; overflow:hidden; display:block;”> <img src=“sprite.png” width=“100” height=“200” alt=“hoge” style=“position:absolute; top:50px; left:0px;” /> </a> スプライト画像を使う ・img要素でもスプライト画像は使える ※但しHTMLの階層が深くなりやすい
45.
45 ② イベント ユーザーは何かの操作に対する応答が 100ms以上かかると違和感を持つ ユーザーの操作に対して速く応答する
46.
46 タップ時のイベントの種類 ・スマホでのタップ関連のイベントは主に次の6つがある mousedown, mousemove, mouseup touchstart,
touchmove, touchend
47.
47 touchイベントとmouseイベントの違い ・PCはtouchイベントが発生しない ・スマホでもmouseイベントやclickイベントは発生するが 違和感を感じるレベルでtouchイベントよりも遅い ・スマホであればtouchイベントを使う 何でもかんでもonclickで作らない
48.
48 touchstartとtouchend ・touchstart⇒指が触れただけで発生する touchend⇒ディスプレイから指を離すと発生する ・モーダルウィンドウやアコーディオンの表示など、 瞬時に処理を実行したい場合はtouchstartを使う ・ただしスマホの場合、画面をスクロールする時に ボタンに触れてしまうことがよくある。 画面遷移の実行など 全て反応が速ければ良いというわけでもない
49.
49 2. ユーザーの体感速度 まとめ ・基本的な高速化の対応をしたら 後はどれだけ気付き、気遣えるか ・そのためにはユーザーと同じ目線、 通信環境、心理状態になって 自分のアプリを触ってみることが必要 ・ユーザーに取って重要な部分がわかったら、 徹底的にそこをチューニングする
50.
50 3. さいごに
51.
51 なぜフロントエンドの高速化が必要なのか ・ネイティブアプリ並のリッチさとパフォーマンスを スマホのWebアプリにも求められる ・UXに直結 ・継続率、離脱率、売上などに影響
52.
52 なぜフロントエンドの高速化が必要なのか ・より良いUXの提供を目指す上で 操作時の不自然さは大きな障害 ・その不自然さを取り除くことが 高速化の役割 ・方法は色々あるので、 ユーザー目線に立って根気強くベストプラクティスを探す
Download