27
今からでも遅くない! 2から始めるAngularJS 2017.03.14 JavaScript Bash!!! GoldSpot Media Inc. 小橋大助

今からでも遅くない! 2から始めるangular js

Embed Size (px)

Citation preview

Page 1: 今からでも遅くない! 2から始めるangular js

今からでも遅くない!2から始めるAngularJS

2017.03.14

JavaScript Bash!!!

GoldSpot Media Inc. 小橋大助

Page 2: 今からでも遅くない! 2から始めるangular js

自己紹介

小橋大助

株式会社ゴールドスポットメディア

  シニアアーキテクト兼フロントエンドスペシャリスト

Webのフロントエンドから、ネイティブアプリやUnityゲームなんかまで、

フロントエンド・ユーザビリティに関わるコードを中心に書いています。

Page 3: 今からでも遅くない! 2から始めるangular js

会社紹介

株式会社 ゴールドスポットメディア

動画・リッチメディア広告のクリエイティブ制作と第三者配信(3PAS)の会社

フロントエンドもサーバサイドもjs系が多いです

● MongoDB● node.js(Express, LoopBack)● AngularJS● Angular2● React● Erlang   ・・・を社内で使用しています。

Page 4: 今からでも遅くない! 2から始めるangular js

Angular2 の話をします

Page 5: 今からでも遅くない! 2から始めるangular js

Angular2

Page 6: 今からでも遅くない! 2から始めるangular js

Angular JS 2

Page 7: 今からでも遅くない! 2から始めるangular js

なぜ Angular「JS」2ではない?

➢ 開発がTypeScriptベースになった

○ 利用もTypeScriptがおすすめ

○ (JSでの使用も可能ではある )

○ (Dartでの使用も可能ではある ...)

➢ TypeScriptはJSの上位互換

○ JS(ES2016)の機能は完全に持ちつつ、おしゃれな新機能を追加した

➢ ・・・「.js」を付けないのが流行り、というのもある

○ React, Vue も付けなくなってる

○ そもそもJavaScriptかECMAScriptか?とか

➢ とにかく Angular2 を使うときは、 TypeScriptにしよう!

Page 8: 今からでも遅くない! 2から始めるangular js

Angular2は超簡単

Page 9: 今からでも遅くない! 2から始めるangular js

Angular2は超簡単

$ npm install -g angular-cli$ ng new PROJECT-NAME $ cd PROJECT-NAME$ ng serve

Page 10: 今からでも遅くない! 2から始めるangular js

4行でアプリ起動!

Page 11: 今からでも遅くない! 2から始めるangular js

たった4行のみでも内部的には

➢ webpackのビルド環境

➢ typescriptコンパイル環境

➢ ミニファイ・難読化

➢ 使用してない機能・関数群を削除してファイルサイズ削減

➢ ユニットテストコードの雛形作成

➢ e2eテストコードの雛形作成

 ・・・などをしてくれています。

angular-cliで4行アプリ

Page 12: 今からでも遅くない! 2から始めるangular js

Angular Component

Page 13: 今からでも遅くない! 2から始めるangular js

Angular Component➢ カスタムタグの定義

➢ cssはこの中に限定される(Scoped CSS)○ *{ font-size: 99px; } とかやっても、影響範囲は当該コンポーネント内だけ

➢ 変数・CSS・内部HTML…すべてをスコープ内に閉じ込める

➢ (Reactと違い)普通のHTMLや普通のCSS/SASSで書ける

➢ デザイナに優しい!

※ イメージ

Page 14: 今からでも遅くない! 2から始めるangular js

Reactよりデザイナに優しい!

Page 15: 今からでも遅くない! 2から始めるangular js

Angular vs React➢ Angularはフレームワーク。Reactはビュー・ライブラリ

○ React単体では、HTTP-GETすら出来ない。

➢ ReactはJSX。Angularは素のHTML & CSS○ デザイナにわかりやすい

➢ サニタイズ、WebComponent、CSSモジュール…○ Reactでは意識的に使う。Angularでは無意識に使うことができる

➢ Reactの最初のリリースは2013/05Angular(2.x)の最初のリリースは 2016/09!最新だ!

○ ・・・ちょっと卑怯な比較 :-P

➢ AngularはTypeScriptを使っているので型安全○ ReactにもFlow(FlowType)がある

Page 16: 今からでも遅くない! 2から始めるangular js

Angular が やや優位!――サーバサイドレンダリング・

  ネイティブアプリ対応でも     Reactと、ほぼ同格!

  

Page 17: 今からでも遅くない! 2から始めるangular js

TypeScript vs Flow(FlowType)➢ Flow   :FaceBookが作ったjs型チェックシステム

➢ TypeScript :Microsoftが作った型付きAltJS

➢ Flowは…○ 型制約・型推論が強い。ちょっと強すぎ。

○ 既存のjsコードに徐々に入れることが可能。

■ 逆に言うと、型チェックされない箇所が許される

➢ TypeScriptは…○ JavaやC#によく似た型システムを持つ。

○ 言語拡張としての追加機能がある。 Decorator, Enum….○ 既存のjsコードとは、ライブラリとして連携することは可能

基本的に、両者はよく似てる。同じコードで両者が動作する。

Page 18: 今からでも遅くない! 2から始めるangular js

TypeScriptとFlowの差は   …あんまり無い

Page 19: 今からでも遅くない! 2から始めるangular js

AngularJS(1) vs Angular(2)➢ 両者はほとんど全くの別物

➢ 学習コスト○ Angular(2) : シンプル・一貫してる・学習コストが小さい

○ Angular(1) : 複雑・いくつものやり方が混在・学習コストが高い

➢ 速度○ もう圧倒的にAngular2

➢ 両者共通のよい点○ DI○ フルスタック・フロントエンド・フレームワーク

Page 20: 今からでも遅くない! 2から始めるangular js

Angular? AngularJS1? Angular2?

Page 21: 今からでも遅くない! 2から始めるangular js

Just “Angular”!

Page 22: 今からでも遅くない! 2から始めるangular js

Angular 2 でなく、Angularと呼ぼう

➢ AngularJS(1.x)とAngular(2.x以降)は別物○ 1.x → 2.x への移行は、ほぼ書き直しに。

➢ Angular(2.x以降)は今後は半年に一度メジャーアップデート予定○ 2, 4, 5, 6, 7… と半年ごとに

○ 個々のバージョンでは下位互換性がある

➢ バージョン番号が目まぐるしく変わる&そこには下位互換性があるので

単に「Angular」と呼ぶのを推奨○ 「Angular2」は、来年には「Angular5」や「Angular6」になっちゃう

Page 23: 今からでも遅くない! 2から始めるangular js

Angular4➢ 今年の3月にリリース予定。

○ もうすぐ!

○ 3/1に rc.2 が出ています!

➢ 機能追加?破壊的変更?○ ありません!2.xで動いたコードは基本的に完全に動きます

○ 基本的には、機能追加のみのリリースです

○ 完全な下位互換性があります

➢ 2.xにあった機能が無くなったりしない?○ なくなりません。

○ 4で非推奨(deprecated)になっても、削除されるのは 6.0。1年後。

➢ なんで4?3は?○ 3は諸事情で飛ばされました …

Page 24: 今からでも遅くない! 2から始めるangular js

Angular “2” を始めよう?

Page 25: 今からでも遅くない! 2から始めるangular js

“Angular” を始めよう!

Page 26: 今からでも遅くない! 2から始めるangular js

“Angular” を始めよう!

――2から!

Page 27: 今からでも遅くない! 2から始めるangular js

ご清聴ありがとうございます。