Kawakami Kazuyoshi
Hey guys! This is my slides. Let's have enjoy!
まずは、Angularプロジェクトのセットアップから振り返ってみましょう
Angularのボイラーテンプレートを作成してくれる、コマンドライン・インタフェース
次に使用方法を見てみましょう
$ npm install -g @angular/cli
$ ng new my-app
インストールはnpmを使います。-gオプションを付けるとどこでも使えるようになります。
ngがCLIコマンドで、new my-appでプロジェクト作成
$ cd my-app
$ ng serve --open
プロジェクトを起動するには、serveコマンドを使います。--openオプションをつけるとブラウザが自動的に立ち上がります
では実際にAngular CLIを使ってプロジェクトを作って立ち上げてみます
初期は以下ような構成となっておりますので、扱いやすいように変更を加えます
$ rm -f ./app/app.component.*
$ ng g component component/app
SCSSが使えます。cssを読み込んでいる箇所とファイル名をscssに変更するだけです
コンポーネントとサービスについて振り返りましょう
まずはこちらをご覧ください
コンポーネント分け方には個人差がありますが、私の場合は次のように分けました
私の場合は、役割毎にコンポーネントを切りました。役割ごとに切ることで、見通しがよく追いやすくなります
サービスは4つ作成しステートを管理します。再生ボタンで各ステートを読み込んで音を鳴らします
いざアプリを作ると考えてもなかなかアイディアが浮かんでこないものです。私の場合はブラウザAPIを使ったアプリを考えてみることをおすすめします。
数多くあるブラウザAPIの中でおすすめはWebRTCです。
WebRTCを導入するのは簡単で、第2引数のコールバックにストリームデータが返りますので、それを扱うと映像や音声を扱うことが出来ます
navigator.getUserMedia({audio: true, video: false},
(mediaStream) => {
...
},
(err) => {
console.error(err);
}
);
PWA対応を行なうとオフラインで接続できたり、プッシュ通知を行えたり、ネイティブアプリのようにすることができます
Angular Mobile Toolkitを導入すると、簡単にPWA対応が行なえます
https://youtu.be/ecu1vAO23ZM
インストール
$ npm install --save @angular/service-worker
$ ng set apps.0.serviceWorker=true
$ vi .angular-cli.json
"apps": [
{
"serviceWorker": true
}
]
# NGSW works only in --prod mode
$ ng build --prod
詳細はNG CONFのビデオが参考になります
マテリアルデザインは、わかりやすさを追求したデザイン設計。
Angularでマテリアルデザインを取り入れる場合は、@angilar/materialを使うと簡単に導入できます
import {
MdButtonModule, MdCardModule, MdCheckboxModule, MdCommonModule, MdGridListModule, MdMenuModule,
MdToolbarModule
} from '@angular/material';
@NgModule({
...
imports : [
MdButtonModule,
MdCheckboxModule,
MdMenuModule,
MdCommonModule,
MdToolbarModule,
MdCardModule,
MdGridListModule
],
...
})
export class AppModule {}
<md-card [style.padding]="0" *ngFor="let item of items">
<img md-card-image src="{{item.src}}">
<md-card-content>
<md-grid-list cols="2" rowHeight="50px" [style.padding]="0">
<md-grid-tile>{{item.name}}</md-grid-tile>
<md-grid-tile>{{item.temperature}}℃</md-grid-tile>
</md-grid-list>
</md-card-content>
</md-card>
現在多くのAPIがSSL通信が必須となっております。そのためSSL接続も提供してくれるFirebaseがおすすめです
Firebaseは、バックエンドサービスです。databaseの他にホスティングやPush通知なども使うことが出来ます
Angularコミュニティとしてng-japanがあります。ng-japanでは年1回の大きなカンファレンスを行っており、最新のAngular情報を得ることができます
ng-japanではslackに専用チャンネルを用意しております。Angularを使っていてわからない点の質問や、最新情報をお届けしております。
https://ng-japan-invite.herokuapp.com/
不定期開催ですが、およそ2ヶ月1回の割合でアンオフィシャルなAngularイベントを開催しております。
https://ng-sake.connpass.com/
no Angular no Life
ng new からはじめよう
By Kawakami Kazuyoshi