Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Angular Platform
Search
puku0x
February 26, 2019
Technology
5
520
Angular Platform
FukuokaJS #7
puku0x
February 26, 2019
Tweet
Share
More Decks by puku0x
See All by puku0x
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
1.7k
Nx × AI によるモノレポ活用 〜コードジェネレーター編〜
puku0x
0
1.3k
ファインディにおけるフロントエンド技術選定の歴史
puku0x
2
240
ファインディでのGitHub Actions活用事例
puku0x
9
3.5k
Findyの開発生産性向上への取り組み ~Findyフロントエンドの場合~
puku0x
0
440
Findyの開発生産性を上げるためにやったこと
puku0x
1
610
Angularコーディングスタイルガイドはいいぞ
puku0x
1
370
Nx CloudでCIを爆速にした話
puku0x
0
890
Findyのフロントエンド設計刷新を通して得られた技術的負債との向き合い方
puku0x
1
1.8k
Other Decks in Technology
See All in Technology
SCONE - 動画配信の帯域を最適化する新プロトコル
kazuho
1
320
Okta Identity Governanceで実現する最小権限の原則 / Implementing the Principle of Least Privilege with Okta Identity Governance
tatsumin39
0
170
AI-Readyを目指した非構造化データのメダリオンアーキテクチャ
r_miura
1
300
CREが作る自己解決サイクルSlackワークフローに組み込んだAIによる社内ヘルプデスク改革 #cre_meetup
bengo4com
0
310
混合雲環境整合異質工作流程工具運行關鍵業務 Job 的經驗分享
yaosiang
0
170
ハノーファーメッセ2025で見た生成AI活用ユースケース.pdf
hamadakoji
0
420
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
140
AI AgentをLangflowでサクッと作って、1日働かせてみた!
yano13
1
150
コンパウンド組織のCRE #cre_meetup
layerx
PRO
1
250
事業開発におけるDify活用事例
kentarofujii
5
1.4k
現場データから見える、開発生産性の変化コード生成AI導入・運用のリアル〜 / Changes in Development Productivity and Operational Challenges Following the Introduction of Code Generation AI
nttcom
1
460
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
170
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
RailsConf 2023
tenderlove
30
1.3k
The Invisible Side of Design
smashingmag
302
51k
Visualization
eitanlees
149
16k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Designing Experiences People Love
moore
142
24k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
The Illustrated Children's Guide to Kubernetes
chrisshort
49
51k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Transcript
Angular Platform FukuokaJS #7
Noriyuki Shinpuku ng-fukuoka organizer @puku0x 2 VEGA corporation Co., Ltd.
フロントエンドの課題 • 複雑&大規模化 • デザイン • パフォーマンス • トレンドの追従 •
生産性 • 保守 : 3
4 つらい
5 Angular
Angular Googleが開発するフロントエンドフレームワーク • フルスタック • 堅牢&高速 • 充実したエコシステム https://angular.io/ 6
Why Angular? 7
8
TypeScript • JSのスーパーセット • 漸進的型付け言語 • 高い保守性 9 TypeScript ES201x
ES5
コンポーネント @Component({ selector: 'app-root', template: `<p>Hello, {{ title }} !</p>`,
}) export class AppComponent { title = 'Angular'; } 10
サービス/プロバイダ 11 @Injectable({ providedIn: 'root' }) export class UserService {
constructor(private http: HttpClient) {} fetchUsers() { return this.http.get<User[]>('/users'); } }
12 モジュール機構(NgModule) Root Module Feature Module Shared Module Feature Module
Feature Module Bootstrap Eager Loaded Lazy Loaded { path: './feature', loadChildren: './feature.module#FeatureModule' } @NgModule({ imports: [SharedModule] }) export class FeatureModule { }
13 is “Full Stack”
公式パッケージ 14
Angular Material 15
Angular Material • 公式UIライブラリ • 新Material Design対応 16 https://material.angular.io
17
Component Dev Kit 18
Component Dev Kit • Virtual Scroll & Drag-and-Drop https://blog.angular.io/version-7-of-angular-cli-prompts-virtual-s croll-drag-and-drop-and-more-c594e22e7b8c
19
Angular Elements 20
Custom Elementsとして出力 export class AppModule implements DoBootstrap { constructor(injector: Injector)
{ const el = createCustomElement(HelloComponent, { injector }); customElements.define('app-hello', el); } ngDoBootstrap(appRef: ApplicationRef) {} } 21
22 Tools
Angular CLI 23 環境構築 $ ng new コード生成/機能追加 $ ng
generate $ ng add 開発/リリース $ ng serve $ ng build --prod https://cli.angular.io/
$ npm install -g @angular/cli 24
Angularアプリケーションの作成 $ ng new my-app ? Would you like to
add Angular routing? Yes ? Which stylesheet format would you like to use? (Use arrow keys) ❯ CSS SCSS [ http://sass-lang.com ] SASS [ http://sass-lang.com ] LESS [ http://lesscss.org ] Stylus [ http://stylus-lang.com ] 25
• Schematicsによる拡張 CLIエコシステム 26
27 $ ng add
ng add 対応パッケージ 28
29 $ ng update
サポート期間 半年 年 今ここ 30 APIの破壊的変更は 段階的に適用される
31 https://link.medium.com/KgTODwwFWT
Language Service(VS Code 拡張) 32 • コード補完 • テンプレートチェック •
定義ジャンプ https://marketplace.visualstudio.com/items?itemName =Angular.ng-template
33
Angular Console Angular CLIのGUI版 デスクトップアプリ または VS Code拡張 34 https://angularconsole.com/
StackBlitz 35 オンライン版 VS Code 様々なテンプレート • Angular • Ionic
• React https://stackblitz.com/
36 Community
37 ng-japan 2018 Keynote
38 150万人/月のアクティブユーザ https://twitter.com/angular/status/1069727630734151680
39 https://news.crunchbase.com/news/popular-web-frameworks-seed-early-stage-startups/
40 国内 約1万人/月のアクティブユーザ
国内コミュニティ 41 • 東京 • 京都 • 神戸 • 福岡
• 群馬 https://community.angular.jp/
Angular in 2019 42
Angular v8/v9 43
Ivy 新しいレンダラー ・バンドルサイズ削減 ・高速なビルド ・シンプルなAPI ng-conf 2018: Angular Keynote https://docs.google.com/presentation/d/1zgpjyV
kDgUPfGKuxOcU0lLusCiMSfLZZjYHWrFvl71I 44
45 ng-conf 2018: Angular Keynote(和訳)
$ ng new my-app --experimental-ivy ※正常に動作しない場合があります 46
47 Bazel
Bazelビルドサポート $ npm i -g @angular/bazel $ ng new my-app
--collection=@angular/bazel $ cd my-app $ ng serve $ ng build --prod 48
49 ngAtlanta 2019: Angular in 2019 http://bit.ly/ngAtlanta-2019 Angular Mix 2018:
Angular Prototyping Tool http://bit.ly/AngularCodesign
50 Angular
51 学習コストが...
まぁわかる 52
でも 53
コストに見合う リターンがある 54
Angularを選んで良かったこと(1) • 強いオピニオン ◦ Angularチームのベストプラクティス ◦ 高品質なデフォルトセット ◦ 意思決定のコスト削減 •
プロダクトの価値に集中できる 55
Angularを選んで良かったこと(2) • 将来の資産となる知識 ◦ モダンなWeb技術 ◦ 次世代のWeb標準 ◦ コンポーネント設計、テスト設計 •
将来を見据えた技術習得 56
• スピード • スケーラビリティ • 将来性 57
58 https://angular.jp/ Angularをはじめよう 日本語ドキュメント もあります
新福 宜侑 @puku0x ng-fukuoka organizer Thank you! 59