狠狠撸

狠狠撸Share a Scribd company logo
Single-page Application
本日のテーマ

なぜSingle-page Application(SPA)なのか
SPAの通信技術は?
バックエンドは?
JavaScriptフレームワークは?

Single-page Application
Name:
!

佐川?夫美雄
@albatrosary
http://albatrosary.hateblo.jp/
html5jエンタープライズ部?副部長
HTML5Expert.jpコントリビュータ
Sencha UG

Single-page Application
Single-page Application(SPA)とは

単一ページによるWebアプリケーション
ページはDOMの操作により切り替える
サーバとのやりとりはRESTやWebSocket等を利用

Single-page Application
RIA(Rich Internet Application)に求められたもの

表現力の高さ:動画や音声などマルチディアの活用が可能で高いデザイン性を持った画面要素の再生機能
を備える

デスクトップアプケーションと同等なUI:画面をリフレッシュすることなく、バック
エンドでサーバーとデータの送受信が可能

ユーザーエクスペリエンス:ユーザーの操作が即座にレスポンスされ、表示される画面の情報が
操作に応じて随時変化するようなインタラクティブな操作性を実現

Single-page Application
RIAの衰退

2010年にSteve JobsがFlashを激しく批判
プロプライエタリよりオープン性のあるHTML5を推進

!

2011年MicrosoftはWeb開発者に対するSilverlight戦略を後退
AdobeもモバイルFlashの開発を中止
2014年HTML5正式勧告

Single-page Application
HTML5を使えばRIAと同等のユーザビリティが可能

Single-page Application
RIAからSPAへ

Single-page Application
待った無しです

Single-page Application
何をすれば良いのか?

JavaScriptフレームワークの導入?
開発環境は?
通信は?
バックエンドは?
HTML5と関係する?
etc

Single-page Application
その答えを今日は出します

Single-page Application
SPAに必要な技術

JavaScriptフレームワーク
altJS
CSS Preprocessor
開発環境
通信技術
Webアプリケーションなどのバックエンド技術
そしてHTML5

Single-page Application
SPAに必要な技術

JavaScriptフレームワーク
altJS
CSS Preprocessor
開発環境
通信技術
Webアプリケーションなどのバックエンド技術
そしてHTML5

Single-page Application
SPAに必要なフロントエンド技術

Single-page Application
SPAに必要なフロントエンド技術

Single-page Application
Single-page Application(SPA)の基本的な構造

change
render

DOM
events

View

Template

get
set

Model
Collection

REST
Storage

Single-page Application
jQueryだけの開発はカオス

Single-page Application
JavaScriptフレームワーク
すでにJavaScriptフレームワークは数十種類ある
自分のプロジェクトにあったものを選ぶ

backbone.JS(http://backbonejs.org/)
Angular(http://angularjs.org/)
Sencha(http://www.sencha.com/)

Single-page Application
JavaScriptは危ない言語

Single-page Application
altJS
altJSの言語の多くはクラス機構のサポート
JavaScriptの抱える問題の多くを解決

Co?eeScript
TypeScript

Single-page Application
膨大なCSSをどう整理するか

Single-page Application
CSS Preproccessor
膨大なCSSをどう整理するか

Sass + Compass
Less
Stylus

Single-page Application
どうやって開発するの?

Single-page Application
開発環境

Yeoman
Sencha cmd

Single-page Application
SPAに必要なフロントエンド技術(まとめ)

Single-page Application
SPAを開発するには強固なバックエンド技術が必要

Single-page Application
SPAに必要なバックエンド技術

通信
Webアプリケーションサーバ

Single-page Application
通信技術

REST
WebSocket
SPDY

Single-page Application
Javaで対応
次世代型:クライアントとサーバ間をデータのみで通信し,画面の生
成から表示までをクライアントで行う方式

従来型:サーバ側でデータを埋め込んだ画面を生成し,クライアント
では表示のみを行う方式

基本的にはJavaScriptで多くの処理を行い,以下
のような通信技術を利用して,データのみをサー
バとやり取りします
!
JSON 1.0
JAX-RS 2.0
WebSocket 1.0
Single-page Application
SPAのメリット

ページを遷移させてもJavaScriptのグローバル環境が変わらない
WebSocketが有効に使える

Single-page Application
これで安心?

Single-page Application
SPAの懸念

パフォーマンス
メモリリーク
セキュリティ
フレームワークロックイン
設計思想の転換
フロントエンジニア不足

Single-page Application
パフォーマンス
Sencha Touchの開発チームがHTML5で高速に動作す
るfacebookを開発したことは有名な話

DOMツリーを分離して小さく
TaskQueueで不必要なレイアウト処理を停止
入出力処理はWebWorkersで止めない

Single-page Application
メモリリーク

アプリケーションを使い続けた結果メモリーリークが原
因で画面がフリーズするという問題は発生
!

地道に残っている参照にnullを入れがベージコレクショ
ンの対象にします

Single-page Application
セキュリティ

業務Webアプリケーションの場合のすべてをhttpsで動かす。
セキュアな環境はSSL-VPNなどを使用し比較的簡単に手に入
れることができる。

Single-page Application
フレームワークロックイン

使わざる終えない
オレオレフレームワークは使わない
そのとき選んだフレームワークが最適だとしても未来永
劫最適ではない

Single-page Application
設計思想の転換

アーキテクチャを理解し重順に対応

Single-page Application
フロントエンジニア不足

JavaScriptエンジニアというよりjQueryエンジニアがほとんど
altJSを使って知識不足を補う

Single-page Application
冷静に対応すれば道は開ける

Single-page Application
ご清聴ありがとうございました

Single-page Application
参考文献

http://codebrief.com/2012/01/the-top-10-javascript-mvc-frameworks-reviewed/
http://gihyo.jp/news/report/2013/09/1901?page=2
http://new.takyam.com/entry/2012/12/30/2013%E5%B9%B4%E3%81%AFSPA
%E3%81%AE%E5%B9%B4%E3%83%BB%E3%83%BB%E3%83%BB%E3%81%AB
%E3%81%AA%E3%82%8B%E3%81%A8%E3%81%84%E3%81%84%E3%81%AA
%E3%81%81
http://www.johnpapa.net/spa/
http://singlepageappbook.com/index.html

Single-page Application

More Related Content

What's hot (20)

PPTX
Challenge PWA!! Technical Edition @JAG201809
Ryu Shindo
?
PPTX
贬罢惭尝5ハイブリッドアプリ开発のベストプラクティス
アシアル株式会社
?
PPTX
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Shin Ogata
?
PDF
WordPress APIで作るモバイルアプリ
アシアル株式会社
?
PDF
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
Shinichiro Yoshida
?
PPTX
モバイル用奥别产フレームワーク最前线
アシアル株式会社
?
PDF
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
Naoki Yamada
?
PPTX
惭辞苍补肠补でつくるハイブリッドアプリ
Monaca
?
PDF
プログラム组んだら负け!実は贬罢惭尝/颁厂厂だけでできること2015夏
Yusuke Hirao
?
PPTX
【别尝痴勉强会】础苍驳耻濒补谤闯厂て?のモハ?イルフロントエント?开発
Hiroyuki Kusu
?
PDF
贬迟尘濒5/闯厂モバイルアプリ最前线
アシアル株式会社
?
PDF
CROSS 2015 モバイル開発環境セッション
Masahiro Tanaka
?
PPTX
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
?
PDF
ブラウザのPerformance APIの話
Hiroshi Kawada
?
PDF
120分聞けばドヤ顔で語れる apache cordova スーパー勉強会
Monaca
?
PDF
もっと良くなる贬罢惭尝アプリケーション设计と実装
Mitsue-Links
?
PDF
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
Kazuaki Hidaka
?
PPTX
颁辞谤诲辞惫补で础苍驳耻濒补谤闯厂アプリ开発
アシアル株式会社
?
PDF
イマト?キのフロントエント?エンシ?ニアの道具箱
Fumio SAGAWA
?
PDF
础苍诲谤辞颈诲でもサクサク动く贬罢惭尝5ハイブリッドアプリの作り?
アシアル株式会社
?
Challenge PWA!! Technical Edition @JAG201809
Ryu Shindo
?
贬罢惭尝5ハイブリッドアプリ开発のベストプラクティス
アシアル株式会社
?
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Shin Ogata
?
WordPress APIで作るモバイルアプリ
アシアル株式会社
?
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
Shinichiro Yoshida
?
モバイル用奥别产フレームワーク最前线
アシアル株式会社
?
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
Naoki Yamada
?
惭辞苍补肠补でつくるハイブリッドアプリ
Monaca
?
プログラム组んだら负け!実は贬罢惭尝/颁厂厂だけでできること2015夏
Yusuke Hirao
?
【别尝痴勉强会】础苍驳耻濒补谤闯厂て?のモハ?イルフロントエント?开発
Hiroyuki Kusu
?
贬迟尘濒5/闯厂モバイルアプリ最前线
アシアル株式会社
?
CROSS 2015 モバイル開発環境セッション
Masahiro Tanaka
?
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
?
ブラウザのPerformance APIの話
Hiroshi Kawada
?
120分聞けばドヤ顔で語れる apache cordova スーパー勉強会
Monaca
?
もっと良くなる贬罢惭尝アプリケーション设计と実装
Mitsue-Links
?
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
Kazuaki Hidaka
?
颁辞谤诲辞惫补で础苍驳耻濒补谤闯厂アプリ开発
アシアル株式会社
?
イマト?キのフロントエント?エンシ?ニアの道具箱
Fumio SAGAWA
?
础苍诲谤辞颈诲でもサクサク动く贬罢惭尝5ハイブリッドアプリの作り?
アシアル株式会社
?

Viewers also liked (7)

PDF
モバイル開発を支えるAWS Mobile Services
Keisuke Nishitani
?
PDF
20170210 jawsug横浜(AWSタグ)
Toshihiro Setojima
?
PPTX
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
mizugokoro
?
PDF
サーバーレスのアーキテクチャパターンとそれぞれの実装?テストの勘所
真吾 吉田
?
PDF
サーバーレスの今とこれから
真吾 吉田
?
PDF
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
Amazon Web Services Japan
?
PDF
AWS SAMで始めるサーバーレスアプリケーション開発
真吾 吉田
?
モバイル開発を支えるAWS Mobile Services
Keisuke Nishitani
?
20170210 jawsug横浜(AWSタグ)
Toshihiro Setojima
?
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
mizugokoro
?
サーバーレスのアーキテクチャパターンとそれぞれの実装?テストの勘所
真吾 吉田
?
サーバーレスの今とこれから
真吾 吉田
?
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
Amazon Web Services Japan
?
AWS SAMで始めるサーバーレスアプリケーション開発
真吾 吉田
?
Ad

Similar to Single-page application (20)

PDF
Nodejs beginner
SoheiUchino1
?
PPTX
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
YuzoHirakawa
?
PDF
モバイルコンテンツ制作を効 率化するツールを使いこなせ
Keisuke Todoroki
?
PDF
Phone gap
Tomoyuki Kashiro
?
PPTX
HTML5 クロスプラットフォームアプリ開発の現実解
Monaca
?
KEY
スマートフォンアプリケーション开発の最新动向
Tsutomu Ogasawara
?
PDF
NSA NB委員会セミナー「モハ?イルアフ?リ開発業務におけるmonacaの活用」
アシアル株式会社
?
PDF
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
Akira Inoue
?
PDF
Microsoft Edge概要 物江氏
Japan Electronic Publishing Association
?
PPTX
进化する贰诲驳别+α
Saki Homma
?
PDF
無償でここまで使えるアドビのWeb制作ツール for デブサミ2013
Keisuke Todoroki
?
PDF
奥别产业务アフ?リの新しい潮流
久司 中村
?
PDF
モダン奥别产开発ワークショップ
Staffnet_Inc
?
KEY
みなさんが贬迟尘濒5をやらなくていい3つの理由
Masakazu Muraoka
?
PDF
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival Fukuoka
Keisuke Todoroki
?
PPTX
【デブサミ関西2014】奥别产技术で作るエンタープライズアプリ
アシアル株式会社
?
PDF
Nishimotz osc2011oct-v2
Takuya Nishimoto
?
PDF
[GrapeCity Web TECH FORUM 2018]レガシーからの移行 - 株式会社日本プロテック
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
?
PPTX
Challenge PWA!! TRY PWA4WP!
Ryu Shindo
?
PDF
Firefox OS - Blaze Your Own Path
dynamis
?
Nodejs beginner
SoheiUchino1
?
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
YuzoHirakawa
?
モバイルコンテンツ制作を効 率化するツールを使いこなせ
Keisuke Todoroki
?
HTML5 クロスプラットフォームアプリ開発の現実解
Monaca
?
スマートフォンアプリケーション开発の最新动向
Tsutomu Ogasawara
?
NSA NB委員会セミナー「モハ?イルアフ?リ開発業務におけるmonacaの活用」
アシアル株式会社
?
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
Akira Inoue
?
Microsoft Edge概要 物江氏
Japan Electronic Publishing Association
?
进化する贰诲驳别+α
Saki Homma
?
無償でここまで使えるアドビのWeb制作ツール for デブサミ2013
Keisuke Todoroki
?
奥别产业务アフ?リの新しい潮流
久司 中村
?
モダン奥别产开発ワークショップ
Staffnet_Inc
?
みなさんが贬迟尘濒5をやらなくていい3つの理由
Masakazu Muraoka
?
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival Fukuoka
Keisuke Todoroki
?
【デブサミ関西2014】奥别产技术で作るエンタープライズアプリ
アシアル株式会社
?
Nishimotz osc2011oct-v2
Takuya Nishimoto
?
[GrapeCity Web TECH FORUM 2018]レガシーからの移行 - 株式会社日本プロテック
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
?
Challenge PWA!! TRY PWA4WP!
Ryu Shindo
?
Firefox OS - Blaze Your Own Path
dynamis
?
Ad

More from Fumio SAGAWA (10)

PDF
三大フレームワーク(Angular, react, vue.js) 比較によるweb components 入門
Fumio SAGAWA
?
PDF
NativeScript with angular2
Fumio SAGAWA
?
PDF
と?ういったフレームワークを选ふ?へ?きか
Fumio SAGAWA
?
PDF
イマト?キのフロントエント?开発
Fumio SAGAWA
?
PDF
Start angular2
Fumio SAGAWA
?
PDF
贬罢惭尝5最前线
Fumio SAGAWA
?
PDF
苍驳闯补辫补苍报告会
Fumio SAGAWA
?
PDF
オープンソースで始めるオフラインアプリケーション开発入门
Fumio SAGAWA
?
PDF
次世代奥别产业务アフ?リケーション
Fumio SAGAWA
?
PDF
開発スタイルのこれから for Backbone (powerd by Yeoman)
Fumio SAGAWA
?
三大フレームワーク(Angular, react, vue.js) 比較によるweb components 入門
Fumio SAGAWA
?
NativeScript with angular2
Fumio SAGAWA
?
と?ういったフレームワークを选ふ?へ?きか
Fumio SAGAWA
?
イマト?キのフロントエント?开発
Fumio SAGAWA
?
Start angular2
Fumio SAGAWA
?
贬罢惭尝5最前线
Fumio SAGAWA
?
苍驳闯补辫补苍报告会
Fumio SAGAWA
?
オープンソースで始めるオフラインアプリケーション开発入门
Fumio SAGAWA
?
次世代奥别产业务アフ?リケーション
Fumio SAGAWA
?
開発スタイルのこれから for Backbone (powerd by Yeoman)
Fumio SAGAWA
?

Recently uploaded (9)

PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
PPTX
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
PPTX
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
PDF
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
PPTX
色について.pptx .
iPride Co., Ltd.
?
PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
色について.pptx .
iPride Co., Ltd.
?
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?

Single-page application