SlideShare a Scribd company logo
AngularJSとBootstrapでサ
クッと作るWebアプリ
2013年3月19日 (火)
HTML5勉強会 名古屋#2
自己紹介
上田拓也
豊橋技術科学大学大学院
電子・情報工学専攻
博士後期課程3年
twitter : @tenntenn
blog: http://u.hinoichi.net
アジェンダ
● ぼくのかんがえたさいきょうのうぇぶあぷりかい
はつ
● CRUDアプリとRESTful API
○ 基本的なWebのデータの流れ
○ CRUD
○ RESTful API
● AngularJSとは
● Bootstrapとは
ぼくのかんがえた さいきょうの
うぇぶあぷり かいはつ
Webアプリのざっくりとした構成
AngularJS
Bootstrap
Goweb
MongoDB
Memcached
クライアントサイド サーバサイド
RESTful
サーバサイド
● Goweb
○ Go言語のライブラリでRESTful APIを提供する
● MongoDB
○ NoSQLのドキュメント指向型のデータベース
● Memcached
○ オンンメモリ型のキーバリューストア
クライアントサイド
● AngularJS
○ JavaScriptのMVCフレームワーク
● Bootstrap
○ 簡単にきれいなサイトが作れるCSS/JSライブラリ
使用する言語
HTML
Typscript
SCSS
Go言語
クライアントサイド サーバサイド
RESTful
サーバサイド
● Go言語
○ Googleの開発した言語
○ Google App Engineなどで使える
○ GoCon 2013 springが大人気
クライアントサイド
● Typescript
○ Microsoftが開発しているJavaScript代替言語
○ 型がある
○ ECMAScript6との互換を視野に入れている
● SCSS
○ CSSを拡張したもの
CRUDアプリとRESTful API
基本的なWebのデータの流れ
ブラウザ Webサーバ
GETリクエスト
HTML/JS/CSS/画像など
POSTリクエスト
IDやステータスなど
ユーザのデータ
HTTP通信 DB
永続化取得
CRUDアプリケーション
C : Create
R : Read
U : Update
D : Delete
を主にやるアプリケーション
⇒ RESTful APIで実現!
RESTful API
● HTTPのメソッドとURIをうまくを使う
● ステートレスなリソースサーバを提供
● 多くの大手Webサービスで提供されている
● クライアントサイドに依存しない
○ 複数種類のクライアントで共通で利用可能
■ PC版Web
■ モバイル版Web
■ モバイルアプリ など
RESTful APIとCRUDアプリ
ブラウザ Webサーバ
[1] CREATE
DB
永続化
POST/diary/arriticle
{ "articleId" : 1 }
日記のデータ
{"title" : "今日のご飯",
"body" : "寿司"}
取得
RESTful APIとCRUDアプリ
ブラウザ Webサーバ
[2] READ
DB
永続化取得
GET/diary/arriticle/1
{"articleId" : 1,
"title" : "今日のご飯",
"body" : "寿司"}
RESTful APIとCRUDアプリ
ブラウザ Webサーバ
[3] UPDATE
DB
永続化
PUT/diary/arriticle/1
{"articleId" : 1,
"title" : "今日のご飯",
"body" : "寿司"}
取得
RESTful APIとCRUDアプリ
ブラウザ Webサーバ
[4] DELETE
DB
永続化取得
DELETE/diary/arriticle/1
CRUDとRESTful APIの対応
● メソッドでやりたい事を指定する
○ Create, Read, Update, Delete
● URIで対象のリソース(データ)を指定する
○ diary/article/1
AngularJSとは
AngularJSとは?
● Google製
● MVCフレームワーク
● 双方向データバインド
● CRUDアプリに向いている
● テストが容易
MVCフレームワーク
Model
jsのデータ
View
html/css
Controller
ロジック
$scope
双方向バインディングでない場合
Model
jsのデータ
View
htmlI(DOM)
今日のご飯タイトル:
title = "今日のご飯";
ユーザWebアプリ
title = "昨日のご飯";
$("#title").val("昨日のご飯");
双方向バインディングのない場合
Model
jsのデータ
View
htmlI(DOM)
ユーザWebアプリ
今日のご飯タイトル:
title = "昨日のご飯";
同期!
実際の例 ngRepeate
<ul ng-repeate="article in articles">
<li>
<a href="#/article/{{article.articleId}}">
{{article.title}}
</a>
</li>
</ul>
KnockoutJSとの違い
● 特別なラッパーがいらない
○ ko.observableやko.observableArrayみたいな
● バリデーションが簡単にできる
○ inputタグで入力されたデータのチェックができる
AngularJSとCRUDアプリ
Model
jsのデータ
Controller
ロジック
RESTful API
ngResource
実際の例
var article = article.$get({articleId : 1});
article.title = "ほげ";
article.$save({articleId : 1});
AngularJSとテスト
View
html/css
Controller
ロジック
$scope
それぞれ別にテストできる!
直接繋がっていない
Bootstrapとビュー
Bootstrap
● Twitter社が開発しているCSSのライブラリ
● リッチなUIが簡単にできる
○ グリッド
○ ボタン
○ かっこいアイコン
● class属性をうまく使う
○ HTMLとCSSだけでできる
○ jQuery UIとかだと、見た目を構築する部分がJSに入っ
てしまう!
グリッドの例
<div class="row">
<div class="span6">
右!
</div>
<div class="span6">
左!
</div>
</div>
アイコン付きボタンの例
<a href="#" class="btn btn-primary">
<i class="icon-plus icon-white"></i>
追加
</a>
アイコン付きボタンの例
Awesome Font
● BootstrapのアイコンをWebFontにする
○ Bootstrapのアイコンはpng
○ pngだと拡大できない
○ フォントであれば拡大自由!
● アニメーションが使える
○ ぐるぐるまわる読み込み中のアイコンとか
まとめ
● それぞれの構成の関係を疎にする
○ 役割分担やテストがしやすくなる
● AngularJSを使うと
○ MVCでコントローラーとビューが独立できる
○ 双方向バインディングでモデルとビューを同期
○ RESTful APIと相性がいい
● Bootstrap
○ class属性でリッチなUIが作れる
○ ビューとコントローラーが依存しにくい
■ JSでUIの見た目の構築をあまりしないので

More Related Content

Viewers also liked (20)

PDF
業務アプリケーション開発を支える.NET技術 #ngtnet
将 高野
 
PPTX
【ABC2014Spring LT】AngularJSでWEBアプリ開発
Hiroyuki Kusu
 
PDF
第8回rest勉強会 bootstrap編
ksimoji
 
PDF
.Net技術でこれからも食べていくための技術戦略
Yuya Yamaki
 
PDF
入門HTML5/CSS3@HTML5 conference 2015 in 鹿児島
Fuminori Mori
 
PDF
Backbonejs @BuildInsiderOffline #1
daisuke shimizu
 
KEY
続・Twitter bootstrap入門 #html5j
Toshiaki Maki
 
PDF
Windowsフォームで大丈夫か?一番良いのを頼む。
Yuya Yamaki
 
PPTX
はじめてのASP.NET MVC5
Tomo Mizoe
 
PDF
AngularJS 概説
Kenichi Kanai
 
PPTX
大人の基礎C#【Niigat.NET 2015-10】
Mitsuhito Ishino
 
PDF
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
Fumio SAGAWA
 
PDF
Flashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたら
Hiroaki Okubo
 
PPTX
HTML5/JavaScriptで作るAndroidアプリ開発seminar
kujirahand kujira
 
PDF
サルでもわかるHTML5超入門
tomo kaneko
 
PDF
BootstrapとRailsで、 高速にWebサイトを作ってみた
BeMarble
 
PDF
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
崇之 清水
 
PDF
0528 kanntigai ui_ux
Saori Matsui
 
PDF
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
MOCKS | Yuta Morishige
 
PDF
女子の心をつかむUIデザインポイント - MERY編 -
Shoko Tanaka
 
業務アプリケーション開発を支える.NET技術 #ngtnet
将 高野
 
【ABC2014Spring LT】AngularJSでWEBアプリ開発
Hiroyuki Kusu
 
第8回rest勉強会 bootstrap編
ksimoji
 
.Net技術でこれからも食べていくための技術戦略
Yuya Yamaki
 
入門HTML5/CSS3@HTML5 conference 2015 in 鹿児島
Fuminori Mori
 
Backbonejs @BuildInsiderOffline #1
daisuke shimizu
 
続・Twitter bootstrap入門 #html5j
Toshiaki Maki
 
Windowsフォームで大丈夫か?一番良いのを頼む。
Yuya Yamaki
 
はじめてのASP.NET MVC5
Tomo Mizoe
 
AngularJS 概説
Kenichi Kanai
 
大人の基礎C#【Niigat.NET 2015-10】
Mitsuhito Ishino
 
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
Fumio SAGAWA
 
Flashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたら
Hiroaki Okubo
 
HTML5/JavaScriptで作るAndroidアプリ開発seminar
kujirahand kujira
 
サルでもわかるHTML5超入門
tomo kaneko
 
BootstrapとRailsで、 高速にWebサイトを作ってみた
BeMarble
 
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
崇之 清水
 
0528 kanntigai ui_ux
Saori Matsui
 
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
MOCKS | Yuta Morishige
 
女子の心をつかむUIデザインポイント - MERY編 -
Shoko Tanaka
 

Similar to Angular jsとbootstrapでサクッと作るwebアプリ@html5勉強会 名古屋#2 (20)

PDF
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
pinmarch_t Tada
 
PDF
なぜ Enterprise は Sencha を選ぶのか?
久司 中村
 
PPTX
シンプルな9つのサンプルで学ぶJava Script初心者のためのAngularJS超入門ハンズオン
健一 茂木
 
PDF
Sencha Touch working with AWS
久司 中村
 
PDF
AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)
pinmarch_t Tada
 
PPT
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
 
PPTX
JavaScriptテンプレートエンジンで活かすData API
Hajime Fujimoto
 
PDF
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Shumpei Shiraishi
 
PDF
RESTful開発フロントエンド編(SPA・AltJS・フレームワーク)
K Tsukada
 
PDF
jQuery Mobile で作る" 実用" スマフォアプリ
Takashi Okamoto
 
PDF
我が家のフロントエンド開発事情
Naoki Yamada
 
PPTX
HTML5&API総まくり
Shumpei Shiraishi
 
PPTX
CordovaでAngularJSアプリ開発
アシアル株式会社
 
PPTX
JavaScriptテンプレートエンジンで活かすData API
Hajime Fujimoto
 
PDF
Sails workshop1
Tomokatsu Iguchi
 
PPTX
HTML5 クロスプラットフォームアプリ開発の現実解
Monaca
 
PPTX
HTML5最新動向
Shumpei Shiraishi
 
PDF
Html5/JSモバイルアプリ最前線
アシアル株式会社
 
PDF
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
 
PDF
Web development fundamental
Takuya Kumagai
 
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
pinmarch_t Tada
 
なぜ Enterprise は Sencha を選ぶのか?
久司 中村
 
シンプルな9つのサンプルで学ぶJava Script初心者のためのAngularJS超入門ハンズオン
健一 茂木
 
Sencha Touch working with AWS
久司 中村
 
AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)
pinmarch_t Tada
 
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
 
JavaScriptテンプレートエンジンで活かすData API
Hajime Fujimoto
 
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Shumpei Shiraishi
 
RESTful開発フロントエンド編(SPA・AltJS・フレームワーク)
K Tsukada
 
jQuery Mobile で作る" 実用" スマフォアプリ
Takashi Okamoto
 
我が家のフロントエンド開発事情
Naoki Yamada
 
HTML5&API総まくり
Shumpei Shiraishi
 
CordovaでAngularJSアプリ開発
アシアル株式会社
 
JavaScriptテンプレートエンジンで活かすData API
Hajime Fujimoto
 
Sails workshop1
Tomokatsu Iguchi
 
HTML5 クロスプラットフォームアプリ開発の現実解
Monaca
 
HTML5最新動向
Shumpei Shiraishi
 
Html5/JSモバイルアプリ最前線
アシアル株式会社
 
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
 
Web development fundamental
Takuya Kumagai
 
Ad

More from Takuya Ueda (20)

PDF
Goにおけるバージョン管理の必要性 − vgoについて −
Takuya Ueda
 
PDF
WebAssembly with Go
Takuya Ueda
 
PDF
GAE/Goとsyncパッケージ
Takuya Ueda
 
PDF
静的解析を使った開発ツールの開発
Takuya Ueda
 
PDF
そうだ、Goを始めよう
Takuya Ueda
 
PDF
マスター・オブ・goパッケージ
Takuya Ueda
 
PDF
メルカリ カウルのマスタデータの更新
Takuya Ueda
 
PDF
Go1.8 for Google App Engine
Takuya Ueda
 
PDF
Go Friday 傑作選
Takuya Ueda
 
PDF
GoによるiOSアプリの開発
Takuya Ueda
 
PDF
Static Analysis in Go
Takuya Ueda
 
PDF
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
 
PDF
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
 
PDF
エキスパートGo
Takuya Ueda
 
PDF
Go静的解析ハンズオン
Takuya Ueda
 
PDF
Goにおける静的解析と製品開発への応用
Takuya Ueda
 
PDF
オススメの標準・準標準パッケージ20選
Takuya Ueda
 
PDF
Gopher Fest 2017参加レポート
Takuya Ueda
 
PDF
Google Assistant関係のセッションまとめ
Takuya Ueda
 
PDF
Cloud functionsの紹介
Takuya Ueda
 
Goにおけるバージョン管理の必要性 − vgoについて −
Takuya Ueda
 
WebAssembly with Go
Takuya Ueda
 
GAE/Goとsyncパッケージ
Takuya Ueda
 
静的解析を使った開発ツールの開発
Takuya Ueda
 
そうだ、Goを始めよう
Takuya Ueda
 
マスター・オブ・goパッケージ
Takuya Ueda
 
メルカリ カウルのマスタデータの更新
Takuya Ueda
 
Go1.8 for Google App Engine
Takuya Ueda
 
Go Friday 傑作選
Takuya Ueda
 
GoによるiOSアプリの開発
Takuya Ueda
 
Static Analysis in Go
Takuya Ueda
 
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
 
エキスパートGo
Takuya Ueda
 
Go静的解析ハンズオン
Takuya Ueda
 
Goにおける静的解析と製品開発への応用
Takuya Ueda
 
オススメの標準・準標準パッケージ20選
Takuya Ueda
 
Gopher Fest 2017参加レポート
Takuya Ueda
 
Google Assistant関係のセッションまとめ
Takuya Ueda
 
Cloud functionsの紹介
Takuya Ueda
 
Ad

Recently uploaded (9)

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

Angular jsとbootstrapでサクッと作るwebアプリ@html5勉強会 名古屋#2