SlideShare a Scribd company logo
1 of 72
Download to read offline
エンジニアじゃなくても
AngularJS×milkcocoaでチャットアプリが1時間!?
非エンジニアから見たAngularJSの感動するポイント3つ
今日のスライド枚数
72枚!!
最高記録(77枚)に1歩及ばす…;;
はじめます。
まずは…
自己紹介
■名前:
 木下 雄策(27歳・福岡出身) @afroscript10
■略歴:
 九州大学大学院で宇宙の研究
 2013年 レバレジーズ入社
■今のお仕事:
 日本のエンジニア業界を最強にすること!!
 →エンジニア特化型Q&Aサイト【teratail】のDevRel担当
 →ITの勉強会【ヒカ☆ラボ】
■その他
 →Gs'ACADEMY2期生の趣味エンジニア
 →LIGブログ「0エンジニアから0.5エンジニアへ」連載中
※前提※
AngularJS全く触ったことない、
ものすっっっごい初心者向けの発表で、
ものすっっっごい薄いところを話そうと思います
伝えたいこと
伝えたいこと
非エンジニアでも、
思ってた以上にAngularJSへの"入門"の敷居は低くて、
使ってすぐ感動するから、
気軽にやってみようよ!!
って話。
「え?簡単に入門できそうじゃん!
自分もやってみよ!!」
…って思って頂けるとうれしいです:)
では、はじめます。
木下(非エンジニア)の最初のスペック
木下(非エンジニア)の最初のスペック
・2月末にAngularJS初体験(AngularJS入門ハンズオン)
・JavaScript暦1年くらい(週末のみ)
・jQueryくらいは多少使ってる
・MEANstackで簡単なCRUDアプリ作ったことある
始める前のAngularJSへのイメージ
始める前のAngularJSへのイメージ
・敷居が高いらしい…
・え、フロント側でフレームワーク?MVW?
・Model-View-Whatever…Whateverって何だ…?
始める前のAngularJSへのイメージ
・敷居が高いらしい…
・え、フロント側でフレームワーク?MVW?
・Model-View-Whatever…Whateverって何だ…?
 ↓
・そんなこんなで、初心者にはやたら難しそうな印象…
AngularJSを使ってみて思ったこと
使い始めて30秒で
感動する!!
ということで感動したところ3つほどに絞って
紹介していきます:)
〜感動Pointその1〜
データバインディングで
リアルタイムな反応が一瞬でできてうれしい!
リアルタイムな反応が一瞬でできる
リアルタイムな反応が一瞬でできる
AngularJSを
読み込んで…
リアルタイムな反応が一瞬でできる
リアルタイムな反応が一瞬でできる
え!?
これだけ!?!?
そう、これだけ。
Demo1
〜感動ポイントその2〜
超簡単にinputフォームのフィルターができる!!
フィルターが簡単すぎる
フィルターが簡単すぎる
え!?
これだけ!?!?
そう、これだけ。
Demo2
他にも「え?これだけ??」がいっぱい。
こことかササッっと概要つかめました→http://www.tohoho-web.com/ex/angularjs.html
〜感動ポイントその3〜
AngularJS×milkcocoaで、
1時間でチャットアプリが作れた!!
milkcocoaって?
BaaS(Backebd as a Service)です。
milkcocoaって?
ちなみに作ったのが同じ大学の同級生なので、愛着ある感じ。:)
milkcocoaって?
JavaScriptだけで簡単にバックエンドも扱えます。:)
こちらのページ見て作りました。
↓
http://masatolan.com/programming/milkcocoa-and-angularjs/
Demo
まずはHTMLの中身
AngularJS×milkcocoaで簡単チャットアプリ
htmlファイルの中身はこんな感じ
AngularJS×milkcocoaで簡単チャットアプリ
htmlファイルの中身はこんな感じ
MIlkcocoa読み込んで
AngularJS×milkcocoaで簡単チャットアプリ
htmlファイルの中身はこんな感じ
bodyにng-appの
名前をつける
AngularJS×milkcocoaで簡単チャットアプリ
htmlファイルの中身はこんな感じ
その中に
コントローラーを
用意します。
AngularJS×milkcocoaで簡単チャットアプリ
htmlファイルの中身はこんな感じ
この
コントローラーの中に
いろいろ書いていくのが
基本です:)
AngularJS×milkcocoaで簡単チャットアプリ
htmlファイルの中身はこんな感じ
userという名前の
ng-modelと
AngularJS×milkcocoaで簡単チャットアプリ
htmlファイルの中身はこんな感じ
msgという名前の
ng-modelを用意
AngularJS×milkcocoaで簡単チャットアプリ
htmlファイルの中身はこんな感じ
クリックイベントを
設定
AngularJS×milkcocoaで簡単チャットアプリ
htmlファイルの中身はこんな感じ
ng-repeatを使うと
「for文」的な繰り返しが
使える
AngularJS×milkcocoaで簡単チャットアプリ
htmlファイルの中身はこんな感じ
ついでに
deleteボタンも
つけときます
AngularJS×milkcocoaで簡単チャットアプリ
htmlファイルの中身はこんな感じ
これだけ!!
続いて、JavaScriptの中身
AngularJS×milkcocoaで簡単チャットアプリ
JSファイルの中身は
30行だけ!!
AngularJS×milkcocoaで簡単チャットアプリ
先頭部分
AngularJS×milkcocoaで簡単チャットアプリ
先頭部分
ng-appでつけた名前を
モジュール名として使います
AngularJS×milkcocoaで簡単チャットアプリ
先頭部分
ng-controllerでつけた名前を
コントローラ名として
使います
AngularJS×milkcocoaで簡単チャットアプリ
先頭部分
Milkccoaを使うインスタンスを
用意。
AngularJS×milkcocoaで簡単チャットアプリ
先頭部分
Milkccoaのデータベースを
「ng-twipainter」って名前を
つけて使いますよ〜。
AngularJS×milkcocoaで簡単チャットアプリ
先頭部分
その他の変数を用意。
AngularJS×milkcocoaで簡単チャットアプリ
MilkcocoaのDBから
データを読み込んで、
apply()で
データを返します。
AngularJS×milkcocoaで簡単チャットアプリ
メッセージを
MilkcocoaのDBに
送信。
AngularJS×milkcocoaで簡単チャットアプリ
ng-modelでとってきた
データは、
$scope.モデル名
や
this.モデル名
で使います
AngularJS×milkcocoaで簡単チャットアプリ
×ボタン押したら
メッセージを
削除するやつ。
AngularJS×milkcocoaで簡単チャットアプリ
メッセージが
pushかremoveされたら、
readMes関数が動きます
AngularJS×milkcocoaで簡単チャットアプリ
これだけ!!
31行!!
非エンジニアでも
コード読み解きつつ、写経して、動かして…
約1時間くらいでできました:)
簡単っっ!!
逆にAngularJSで難しかったこと
ng-●●がいっぱい出てきて
わけわからなくなる…!!
ng-●●がいっぱい出てくる問題
まずはここだけ抑えればいいと思う。
<HTMLの中>
 ng-app="Appの名前"
  ng-controller="コントローラの名前"
   ng-model
   ng-repeat
   ng-click
   ng-●● etc...
<scriptの中>
angular.modules('Appの名前',[]
.controller('コントローラの名前',
function(){
//ここに変数や関数を書くよ
});
まとめ
・開始30秒で目に見える楽しさが体験できる!
・ちょっとHTMLを拡張するくらいの気持ちで使ってもいいので
は?
・milkcocoaとの連携で、1時間でチャットアプリができるお手軽
さ!
・ng-●●はいっぱい出てくるので、
 ng-app > ng-controller > ng-●●がいっぱい出てくる
・もっと複雑なことすると、多分もっと難しいです。
以上です。
ありがとうございました。:)

More Related Content

What's hot

2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
sk44_
 
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたJavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
Satoshi Takami
 
ネットワークトラブルシューティング ~自端末編~
ネットワークトラブルシューティング ~自端末編~ネットワークトラブルシューティング ~自端末編~
ネットワークトラブルシューティング ~自端末編~
creaism
 
日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生
Yuusuke Takeuchi
 

What's hot (20)

エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったこと
 
jQueryで気をつけてほしいこと
jQueryで気をつけてほしいことjQueryで気をつけてほしいこと
jQueryで気をつけてほしいこと
 
20170722_Dragonboardで買い物メモ
20170722_Dragonboardで買い物メモ20170722_Dragonboardで買い物メモ
20170722_Dragonboardで買い物メモ
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
 
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたJavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
 
プログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたプログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみた
 
みんなが不幸にならないための要件定義の話
みんなが不幸にならないための要件定義の話みんなが不幸にならないための要件定義の話
みんなが不幸にならないための要件定義の話
 
20160219 Developers Summit 2016 gusukuハンズオン
20160219 Developers Summit 2016 gusukuハンズオン20160219 Developers Summit 2016 gusukuハンズオン
20160219 Developers Summit 2016 gusukuハンズオン
 
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?
 
Pythonで始める競技プログラミング
Pythonで始める競技プログラミングPythonで始める競技プログラミング
Pythonで始める競技プログラミング
 
pythonで始める筋トレ(競技プログラミング)
pythonで始める筋トレ(競技プログラミング)pythonで始める筋トレ(競技プログラミング)
pythonで始める筋トレ(競技プログラミング)
 
Electron を知る
Electron を知るElectron を知る
Electron を知る
 
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
 
ネットワークトラブルシューティング ~自端末編~
ネットワークトラブルシューティング ~自端末編~ネットワークトラブルシューティング ~自端末編~
ネットワークトラブルシューティング ~自端末編~
 
えっ?まだそのツール使ってるの?
えっ?まだそのツール使ってるの?えっ?まだそのツール使ってるの?
えっ?まだそのツール使ってるの?
 
Make TypingGame in JavaScript
Make TypingGame in JavaScriptMake TypingGame in JavaScript
Make TypingGame in JavaScript
 
Wcan 2013 autumn_trident_mizuno
Wcan 2013 autumn_trident_mizunoWcan 2013 autumn_trident_mizuno
Wcan 2013 autumn_trident_mizuno
 
日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生
 
JS Board で IoT は楽勝か?
JS Board で IoT は楽勝か?JS Board で IoT は楽勝か?
JS Board で IoT は楽勝か?
 
three.jsで作る3Dの世界
three.jsで作る3Dの世界three.jsで作る3Dの世界
three.jsで作る3Dの世界
 

Viewers also liked

WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホン
You_Kinjoh
 

Viewers also liked (8)

WebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリWebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリ
 
CordovaでAngularJSアプリ開発
CordovaでAngularJSアプリ開発CordovaでAngularJSアプリ開発
CordovaでAngularJSアプリ開発
 
AndroidでWebSocket
AndroidでWebSocketAndroidでWebSocket
AndroidでWebSocket
 
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
 
AWSを利用したcms冗長化構成
AWSを利用したcms冗長化構成AWSを利用したcms冗長化構成
AWSを利用したcms冗長化構成
 
WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホン
 
JavaScript 研修
JavaScript 研修JavaScript 研修
JavaScript 研修
 
Cmujp21_node-webkit
Cmujp21_node-webkitCmujp21_node-webkit
Cmujp21_node-webkit
 

Similar to エンジニアじゃなくてもAngularJS×milkcocoaでチャットアプリが1時間!? 非エンジニアから見たAngularJSの感動するポイント3つ

77枚の資料を5分で発表してみたやつ【G’s academy 卒業制作」発表資料(016.03.02) 】
77枚の資料を5分で発表してみたやつ【G’s academy 卒業制作」発表資料(016.03.02) 】77枚の資料を5分で発表してみたやつ【G’s academy 卒業制作」発表資料(016.03.02) 】
77枚の資料を5分で発表してみたやつ【G’s academy 卒業制作」発表資料(016.03.02) 】
Yusaku Kinoshita
 
DevLove四国_LT_yohhatu
DevLove四国_LT_yohhatuDevLove四国_LT_yohhatu
DevLove四国_LT_yohhatu
Yoh Nakamura
 

Similar to エンジニアじゃなくてもAngularJS×milkcocoaでチャットアプリが1時間!? 非エンジニアから見たAngularJSの感動するポイント3つ (20)

「ゼロから構築するDev rel体制」20160316@devrelmeetup
「ゼロから構築するDev rel体制」20160316@devrelmeetup「ゼロから構築するDev rel体制」20160316@devrelmeetup
「ゼロから構築するDev rel体制」20160316@devrelmeetup
 
77枚の資料を5分で発表してみたやつ【G’s academy 卒業制作」発表資料(016.03.02) 】
77枚の資料を5分で発表してみたやつ【G’s academy 卒業制作」発表資料(016.03.02) 】77枚の資料を5分で発表してみたやつ【G’s academy 卒業制作」発表資料(016.03.02) 】
77枚の資料を5分で発表してみたやつ【G’s academy 卒業制作」発表資料(016.03.02) 】
 
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
 
これができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejectedこれができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejected
 
今からでも遅くない! 2から始めるangular js
今からでも遅くない! 2から始めるangular js今からでも遅くない! 2から始めるangular js
今からでも遅くない! 2から始めるangular js
 
今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました
 
OSC2013 HIROSHIMA ライトニングトーク すごい広島
OSC2013 HIROSHIMA ライトニングトーク すごい広島OSC2013 HIROSHIMA ライトニングトーク すごい広島
OSC2013 HIROSHIMA ライトニングトーク すごい広島
 
はじめてのJavaScript / JS Girls Tokyo #1
はじめてのJavaScript / JS Girls Tokyo #1はじめてのJavaScript / JS Girls Tokyo #1
はじめてのJavaScript / JS Girls Tokyo #1
 
実践 Redux Saga -Practical Redux Saga-
実践 Redux Saga -Practical Redux Saga-実践 Redux Saga -Practical Redux Saga-
実践 Redux Saga -Practical Redux Saga-
 
DevLove四国_LT_yohhatu
DevLove四国_LT_yohhatuDevLove四国_LT_yohhatu
DevLove四国_LT_yohhatu
 
from_beginner_to_engineer
from_beginner_to_engineerfrom_beginner_to_engineer
from_beginner_to_engineer
 
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
 
コンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おうコンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おう
 
Ng mtg#3
Ng mtg#3Ng mtg#3
Ng mtg#3
 
WebGL入門ハンズオン資料
WebGL入門ハンズオン資料WebGL入門ハンズオン資料
WebGL入門ハンズオン資料
 
今更聞けない? Androidのテストのいろは
今更聞けない? Androidのテストのいろは今更聞けない? Androidのテストのいろは
今更聞けない? Androidのテストのいろは
 
CoderDojo ひばりヶ丘の取り組み
CoderDojo ひばりヶ丘の取り組みCoderDojo ひばりヶ丘の取り組み
CoderDojo ひばりヶ丘の取り組み
 
20130921 技術ひろばの勉強会
20130921 技術ひろばの勉強会20130921 技術ひろばの勉強会
20130921 技術ひろばの勉強会
 
業務系WebアプリケーションがStrutsから旅立つ日
業務系WebアプリケーションがStrutsから旅立つ日業務系WebアプリケーションがStrutsから旅立つ日
業務系WebアプリケーションがStrutsから旅立つ日
 
クラウド移住体験記
クラウド移住体験記クラウド移住体験記
クラウド移住体験記
 

More from Yusaku Kinoshita

G'sアカデミー2期入学式資料(投影資料版)
G'sアカデミー2期入学式資料(投影資料版)G'sアカデミー2期入学式資料(投影資料版)
G'sアカデミー2期入学式資料(投影資料版)
Yusaku Kinoshita
 

More from Yusaku Kinoshita (11)

集まっTail(集まっている)#8
集まっTail(集まっている)#8集まっTail(集まっている)#8
集まっTail(集まっている)#8
 
Bridging the Gap for Beginners in Developer Communities@DevRelConTokyo_20170729
Bridging the Gap for Beginners in Developer Communities@DevRelConTokyo_20170729Bridging the Gap for Beginners in Developer Communities@DevRelConTokyo_20170729
Bridging the Gap for Beginners in Developer Communities@DevRelConTokyo_20170729
 
集まっtail#7「teratailより」
集まっtail#7「teratailより」集まっtail#7「teratailより」
集まっtail#7「teratailより」
 
Motohashi.#3
Motohashi.#3Motohashi.#3
Motohashi.#3
 
個人開発アプリのご紹介とあり得ない不具合に対する掲示板の活用事例
個人開発アプリのご紹介とあり得ない不具合に対する掲示板の活用事例個人開発アプリのご紹介とあり得ない不具合に対する掲示板の活用事例
個人開発アプリのご紹介とあり得ない不具合に対する掲示板の活用事例
 
G'sアカデミー2期入学式資料(投影資料版)
G'sアカデミー2期入学式資料(投影資料版)G'sアカデミー2期入学式資料(投影資料版)
G'sアカデミー2期入学式資料(投影資料版)
 
5分でわかるphalcon php
5分でわかるphalcon php5分でわかるphalcon php
5分でわかるphalcon php
 
効率的かつユニークな学習法
効率的かつユニークな学習法効率的かつユニークな学習法
効率的かつユニークな学習法
 
150612 middleman(ikuwow)
150612 middleman(ikuwow)150612 middleman(ikuwow)
150612 middleman(ikuwow)
 
Google先生との付き合い方(lightwill氏)
Google先生との付き合い方(lightwill氏)Google先生との付き合い方(lightwill氏)
Google先生との付き合い方(lightwill氏)
 
20150226 炎上を防ぐためにフロントエンドエンジニアとしてできること
20150226 炎上を防ぐためにフロントエンドエンジニアとしてできること20150226 炎上を防ぐためにフロントエンドエンジニアとしてできること
20150226 炎上を防ぐためにフロントエンドエンジニアとしてできること
 

エンジニアじゃなくてもAngularJS×milkcocoaでチャットアプリが1時間!? 非エンジニアから見たAngularJSの感動するポイント3つ