Webinar Angular w Ionic

Czy jesteś gotowy na warsztaty programowania w ramach inicjatywy „Koduj w Płocku”? Proponuję krótkie wprowadzenie do języka TypeScript.

Oprócz cyklicznych spotkań programistów planuję organizację warsztatów dla zainteresowanych tematem kodowania. Odbędą się one już niedługo. Przez całą sobotę będziemy tworzyli twoją pierwszą aplikację mobilną. Przyjdziesz ze swoim komputerem a wyjdziesz z działającą apką.

Rejestracja

Webinarium będę prowadził za pomocą oprogramowania zoom.us. W celu uczestnictwa w spotkaniu musisz się zarejestrować. Zalecam też instalację klienta zoom.us ze strony https://zoom.us/download.
Masz równiez możliwość dodać zoom.us do przeglądarki Chrome.
Prezentację możesz także oglądać za pomocą Androida lub iPhona.

Przed webinarium

Zapoznaj się z edytorem kodu on-line Stack Blitz => https://stackblitz.com/fork/ionic

Jest to właściwie internetowa wersja Visual Studio Code który instalowaliśmy podczas pierwszego webinaru.

Przejrzyj też materiał o języku TypeScript z drugiego webinara.

Podczas webinarium

Szybki start

export class HomePage {
  samochody = SAMOCHODY;

  constructor(public navCtrl: NavController) {
  }
}

export class Samochod {
  marka: string;
  typ: string;
}

export const SAMOCHODY: Samochod[] = [
  { marka: 'Toyota', typ: 'Yaris' },
  { marka: 'Toyota', typ: 'Camry' },
  { marka: 'Toyota', typ: 'Corolla' },
  { marka: 'Toyota', typ: 'Prius' },  
  { marka: 'VW', typ: 'Polo' },
  { marka: 'VW', typ: 'Golf' },
  { marka: 'VW', typ: 'Passat' },  
  { marka: 'BMW', typ: 'X3' },
];
<ion-content padding>
	<h2>Lista Samochodów</h2>
	<ul>
      <li *ngFor="let samochod of samochody">
        <span>{{samochod.marka}}</span> {{samochod.typ}}
    </li>
  </ul>
</ion-content>

Struktura projektu

Serwisy

import { Injectable } from '@angular/core';

@Injectable()

export class SamochodService {
  private samochody: Samochod[] = [
    { marka: 'Toyota', typ: 'Yaris' },
    { marka: 'Toyota', typ: 'Camry' },
    { marka: 'Toyota', typ: 'Corolla' },
    { marka: 'Toyota', typ: 'Prius' },
    { marka: 'VW', typ: 'Polo' },
    { marka: 'VW', typ: 'Golf' },
    { marka: 'VW', typ: 'Passat' },
    { marka: 'BMW', typ: 'X3' },
  ];

  constructor() { }

  public getSamochody() {
    return this.samochody;
  }
}

export class Samochod {
  marka: string;
  typ: string;
}
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { SamochodService, Samochod } from '../../app/samochod.service';


@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  public samochody: Samochod[];

  constructor(public navCtrl: NavController, private samochodService: SamochodService) {
    this.samochody = samochodService.getSamochody();
  }
}
import { SamochodService, Samochod } from './samochod.service';

...

  providers: [
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    SamochodService
  ]

Formularze

<ion-content padding>
  <p>
    Wybrany samochód: {{ samochody[1].typ }}
  </p>

  <h2>Lista Samochodów</h2>
  <ul>
      <li *ngFor="let samochod of samochody">
        <span>{{samochod.marka}}</span> {{samochod.typ}}
    </li>
  </ul>
</ion-content>
import { Component } from '@angular/core';
import { FormControl } from '@angular/forms';
import { NavController } from 'ionic-angular';
import { SamochodService, Samochod } from '../../app/samochod.service';


@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  public samochody: Samochod[];
  typ: string;

  constructor(public navCtrl: NavController, private samochodService: SamochodService) {
    this.samochody = samochodService.getSamochody();
  }
}
<ion-content padding>
  <label>
    Name: <input type="text" [(ngModel)]="typ"/>
  </label>
  <p>
    Wybrany samochód: {{ typ }}
  </p>

  <h2>Lista Samochodów</h2>
  <ul>
      <li *ngFor="let samochod of samochody">
        <span>{{samochod.marka}}</span> {{samochod.typ}}
    </li>
  </ul>
</ion-content>
ionic start webinarApp super 

Po webinarium

Jeśli spodobała ci się taka forma zdobywania wiedzy, to zostaw komentarz lub napisz do mnie czy chciałbyś, żeby organizować więcej takich internetowych prelekcji. Wspomnij też co chciałbyś zobaczyć na kolejnym webinarium.

Tak jak po poprzednim spotkaniu, do osób zarejestrowanych wyślę nagranie video.

Szafrański Michał
Architekt oprogramowania, bujający w chmurach obliczeniowych.