Helion


Szczegóły ebooka

Flutter i Dart 2 dla początkujących. Przewodnik dla twórców aplikacji mobilnych

Flutter i Dart 2 dla początkujących. Przewodnik dla twórców aplikacji mobilnych


Flutter to opracowany przez Google framework do tworzenia aplikacji mobilnych, które świetnie wyglądają i dobrze działają w systemach Android i iOS. Pisanie reaktywnych aplikacji we Flutterze jest przyjemną i efektywną pracą. Język Dart został bowiem zbudowany tak, by ułatwić pisanie poprawnego kodu. Flutter jest intensywnie rozwijany przez Google: framework co kilka tygodni zyskuje nowe funkcjonalności. Mimo że to relatywnie nowe rozwiązanie, cieszy się dużą popularnością. Liczba poważnych aplikacji napisanych we Flutterze stale rośnie.

Dzięki temu przewodnikowi płynnie rozpoczniesz pisanie aplikacji we Flutterze w języku Dart. Dowiesz się, jak skonfigurować środowisko programistyczne i rozpocząć projekt. Książka poprowadzi Cię przez proces projektowania interfejsu użytkownika i funkcji umożliwiających poprawną pracę aplikacji. Nauczysz się pisać własne wtyczki (tzw. plug-iny). Poznasz techniki poprawy wrażeń użytkownika i dowiesz się, jak tworzyć dobre, intuicyjne interfejsy. Dzięki licznym wyjaśnieniom, przykładom i wskazówkom nauczysz się pisać aplikacje wolne od błędów i gotowe do wdrożenia w App Store i Google Play. W efekcie dobrze przygotujesz się do projektowania aplikacji we Flutterze na wysokim, profesjonalnym poziomie.

W książce:

  • podstawy języka programowania Dart i koncepcje interfejsu Fluttera
  • pisanie wtyczek i widżetów Fluttera
  • stylizacja aplikacji i poprawa wrażeń użytkownika we Flutterze
  • stosowanie komponentu AnimatedBuilder
  • uzyskiwanie natywnej wydajności aplikacji

Flutter od Google. Specjalnie dla profesjonalnych twórców najlepszych aplikacji!


O autorze 13

O recenzencie 15

Przedmowa 17

CZĘŚĆ I. WPROWADZENIE DO JĘZYKA DART 21

Rozdział 1. Wprowadzenie do języka Dart 23

  • Pierwsze kroki z językiem Dart 23
    • Ewolucja Darta 24
    • Jak działa Dart 25
    • Dart w praktyce 26
  • Dlaczego Flutter korzysta z języka Dart 29
    • Zwiększanie produktywności 29
    • Łatwa nauka 30
    • Dojrzałość 32
  • Podstawy języka Dart 33
    • Operatory 33
    • Przepływ sterowania i pętle 41
    • Funkcje 42
    • Struktury danych, kolekcje i typy ogólne 45
  • Wprowadzenie do OOP w języku Dart 47
    • Właściwości OOP 47
  • Podsumowanie 50
  • Dalsza lektura 50

Rozdział 2. Średnio zaawansowane programowanie w języku Dart 51

  • Klasy i konstruktory w języku Dart 52
    • Typ wyliczeniowy enum 53
    • Notacja kaskadowa 53
    • Konstruktory 54
    • Metody dostępu - pobierające i ustawiające 56
    • Pola i metody statyczne 57
    • Dziedziczenie klas 59
  • Interfejsy, klasy abstrakcyjne i domieszki 60
    • Klasy abstrakcyjne 60
    • Interfejsy 61
    • Domieszki - dodawanie zachowania do klasy 62
    • Klasy wywoływane, funkcje najwyższego poziomu i zmienne 64
  • Biblioteki i pakiety języka Dart 66
    • Importowanie i korzystanie z biblioteki 66
    • Tworzenie bibliotek Darta 70
    • Pakiety Darta 76
    • Struktury pakietów 77
    • Stagehand - generator projektów Darta 80
    • Plik pubspec 81
    • Zależności pakietów - pub 82
  • Wprowadzenie do programowania asynchronicznego z wykorzystaniem obiektów Future i Isolate 86
    • Obiekty Future 86
    • Obiekty Isolate 89
  • Wprowadzenie do testów jednostkowych w języku Dart 91
    • Pakiet test Darta 92
    • Pisanie testów jednostkowych 92
  • Podsumowanie 94

Rozdział 3. Wprowadzenie do Fluttera 95

  • Porównanie z innymi platformami do tworzenia aplikacji mobilnych 96
    • Problemy, które Flutter chce rozwiązać 96
    • Różnice między istniejącymi frameworkami 97
  • Kompilacja Fluttera (Dart) 103
    • Kompilacja w fazie rozwoju oprogramowania 103
    • Kompilacja dla wersji release 103
    • Obsługiwane platformy 103
  • Renderowanie Fluttera 104
    • Technologie webowe 104
    • Frameworki i widżety OEM 105
    • Flutter - renderowanie samodzielnie 106
  • Wprowadzenie do widżetów 106
    • Kompatybilność 107
    • Niezmienność 107
    • Wszystko jest widżetem 107
  • Hello Flutter 109
    • Plik pubspec 111
    • Uruchomienie wygenerowanego projektu 113
  • Podsumowanie 115

CZĘŚĆ II. INTERFEJS UŻYTKOWNIKA FLUTTERA - WSZYSTKO JEST WIDŻETEM 117

Rozdział 4. Widżety: tworzenie layoutów Fluttera 119

  • Widżety stanowe i bezstanowe 119
    • Widżety bezstanowe 120
    • Widżety stanowe 121
    • Reprezentowanie widżetów stanowych i bezstanowych za pomocą kodu 121
    • Widżety dziedziczone 126
    • Właściwość key widżetu 127
  • Widżety wbudowane 128
    • Widżety podstawowe 128
  • Wprowadzenie do wbudowanych widżetów layoutu 133
    • Kontenery 133
    • Stylizacja i pozycjonowanie 134
    • Inne widżety (gesty, animacje i transformacje) 134
  • Tworzenie interfejsu użytkownika za pomocą widżetów (aplikacja do zarządzania przysługami) 135
    • Ekrany aplikacji 135
    • Ekran główny aplikacji 136
    • Ekran prośby o przysługę 144
  • Tworzenie niestandardowych widżetów 147
  • Podsumowanie 149

Rozdział 5. Obsługa danych wejściowych i gestów użytkownika 151

  • Obsługa gestów użytkownika 151
    • Wskaźniki 152
    • Gesty 152
    • Gesty w widżetach Material Design 157
  • Widżety danych wejściowych 157
    • FormField i TextField 158
    • Form 160
  • Walidacja danych wejściowych (Form) 162
    • Walidacja danych użytkownika 162
  • Niestandardowa obsługa danych wejściowych i FormField 163
    • Tworzenie niestandardowej obsługi danych wejściowych 163
    • Przykład niestandardowego widżetu danych wejściowych 163
  • Łączymy wszystko razem 167
    • Ekran przysług 167
    • Ekran prośby o przysługę 173
  • Podsumowanie 175

Rozdział 6. Motyw i styl 177

  • Widżety motywu 177
    • Widżet Theme 178
    • Tworzenie motywu w praktyce 180
    • Klasa Platform 182
  • Material Design 183
    • Widżet MaterialApp 184
    • Widżet Scaffold 186
    • Motyw niestandardowy 187
  • iOS Cupertino 189
    • CupertinoApp 189
    • Cupertino w praktyce 190
  • Korzystanie z niestandardowych czcionek 191
    • Importowanie czcionek do projektu Fluttera 191
    • Zastępowanie domyślnej czcionki w aplikacji 193
  • Dynamiczne style z MediaQuery i LayoutBuilder 193
    • LayoutBuilder 194
    • MediaQuery 196
    • Dodatkowe klasy responsywne 199
  • Podsumowanie 199

Rozdział 7. Routing: nawigacja między ekranami 201

  • Omówienie widżetu Navigator 201
    • Navigator 202
    • Overlay 202
    • Route 203
    • MaterialPageRoute i CupertinoPageRoute 203
    • Przykład 203
    • WidgetsApp 207
  • Trasy nazwane (named routes) 208
    • Obsługa tras nazwanych 208
    • Pobieranie wyników z Route 210
  • Przejścia między ekranami 212
    • PageRouteBuilder 212
  • Animacje Hero 214
    • Widżet hero 214
    • Implementacja przejść Hero 215
  • Podsumowanie 221

CZĘŚĆ III. TWORZENIE PROFESJONALNYCH APLIKACJI 223

Rozdział 8. Wtyczki Firebase 225

  • Omówienie Firebase 225
    • Konfigurowanie Firebase 226
    • Łączenie aplikacji Fluttera z Firebase 229
  • Uwierzytelnianie Firebase 233
    • Włączanie usług uwierzytelniania w Firebase 233
    • Ekran uwierzytelniania 235
    • Logowanie za pomocą Firebase 236
  • Baza danych NoSQL z Cloud Firestore 241
    • Włączanie Cloud Firestore w Firebase 241
    • Cloud Firestore i Flutter 243
    • Ładowanie przysług z Firestore 243
    • Aktualizowanie przysług w Firebase 246
    • Zapis przysługi w Firebase 246
  • Cloud Storage z Firebase Storage 248
    • Wprowadzenie do Firebase Storage 248
    • Dodawanie zależności Flutter Storage 249
    • Przesyłanie plików do Firebase 249
  • Reklamy z Firebase AdMob 252
    • Konto AdMob 252
    • Tworzenie konta AdMob 253
    • AdMob we Flutterze 255
    • Wyświetlanie reklam we Flutterze 258
  • Uczenie maszynowe z wykorzystaniem Firebase ML 260
    • Dodanie zestawu uczenia maszynowego do Fluttera 260
    • Korzystanie z detektora etykiet we Flutterze 261
  • Podsumowanie 263

Rozdział 9. Tworzenie własnej wtyczki Fluttera 265

  • Tworzenie projektu pakietu/wtyczki 265
    • Pakiety Fluttera a pakiety Dart 266
    • Rozpoczynanie projektu pakietu Dart 266
    • Uruchamianie pakietu wtyczek Fluttera 268
  • Struktura projektu wtyczki 268
    • MethodChannel 269
    • Wdrożenie wtyczki Androida 270
    • Implementacja wtyczki iOS 271
    • API Darta 272
    • Przykład pakietu wtyczek 272
    • Korzystanie z wtyczki 273
  • Dodanie dokumentacji do pakietu 274
    • Pliki dokumentacji 274
    • Dokumentacja biblioteki 274
    • Generowanie dokumentacji 275
  • Publikowanie pakietu 275
  • Zalecenia dotyczące tworzenia projektu wtyczki 276
  • Podsumowanie 276

Rozdział 10. Dostęp do funkcji urządzenia z aplikacji Fluttera 279

  • Uruchomienie adresu URL z aplikacji 279
    • Wyświetlanie linku 280
    • Uruchomienie adresu URL 282
  • Zarządzanie uprawnieniami aplikacji 284
    • Zarządzanie uprawnieniami we Flutterze 284
  • Importowanie kontaktu z telefonu 285
    • Importowanie kontaktu za pomocą contact_picker 286
    • Uprawnienia do kontaktu za pomocą permission_handler 288
  • Integracja aparatu w telefonie 289
    • Robienie zdjęć za pomocą image_picker 290
    • Uprawnienia do aparatu za pomocą permission_handler 291
  • Podsumowanie 292

Rozdział 11. Widoki platformy oraz integracja mapy 295

  • Wyświetlanie mapy 295
    • Widoki platformy 296
    • Tworzenie widżetu widoku platformy 297
    • Pierwsze kroki z wtyczką google_maps_flutter 301
  • Dodawanie znaczników do mapy 308
    • Klasa Marker 308
    • Dodawanie znaczników w widżecie GoogleMap 309
  • Dodawanie interakcji na mapie 311
    • Dynamiczne dodawanie znaczników 311
    • GoogleMapController 312
    • Pobieranie GoogleMapController 312
    • Animowanie kamery mapy do lokalizacji 312
  • Korzystanie z interfejsu API Google Places 313
    • Włączanie API Google Places 313
    • Pierwsze kroki z wtyczką google_maps_webservice 314
    • Uzyskiwanie adresu miejsca za pomocą wtyczki google_maps_webservice 314
  • Podsumowanie 316

CZĘŚĆ IV. ZAAWANSOWANY FLUTTER - ZASOBY DLA ZŁOŻONYCH APLIKACJI 319

Rozdział 12. Testowanie, debugowanie i wdrażanie 321

  • Testowanie we Flutterze - testy jednostkowe oraz widżetów 321
    • Testy widżetów 322
  • Debugowanie aplikacji Fluttera 324
    • Observatory 325
    • Dodatkowe funkcje debugowania 326
    • DevTools 327
  • Profilowanie aplikacji Fluttera 329
    • Profiler Observatory 329
    • Tryb profilowania 329
  • Sprawdzanie drzewa widżetów Fluttera 331
    • Inspektor widżetów 332
  • Przygotowywanie aplikacji do wdrożenia 333
    • Tryb wydania (release mode) 334
    • Wydawanie aplikacji na Androida 334
  • Wydawanie aplikacji na iOS 339
    • App Store Connect 339
    • Xcode 340
  • Podsumowanie 341

Rozdział 13. Poprawa komfortu użytkowania 343

  • Dostępność we Flutterze i dodawanie tłumaczeń do aplikacji 343
    • Wsparcie Fluttera dla dostępności 344
    • Internacjonalizacja Fluttera 344
    • Dodawanie lokalizacji do aplikacji Fluttera 345
  • Komunikacja między kodem natywnym a Flutterem z wykorzystaniem kanałów platformy 351
    • Kanał platformy 351
    • Kodeki wiadomości 353
  • Tworzenie procesów pracujących w tle 354
    • Funkcja Fluttera compute() 354
    • Przykład compute() 355
    • Proces pracujący w tle 356
    • Inicjalizacja obliczeń 357
  • Dodanie kodu specyficznego dla systemu Android w celu uruchomienia kodu Darta w tle 360
    • Klasa HandsOnBackgroundProcessPlugin 360
    • Klasa BackgroundProcessService 362
  • Dodanie kodu specyficznego dla systemu iOS w celu uruchomienia kodu Darta w tle 365
    • Klasa SwiftHandsOnBackgroundProcessPlugin 366
  • Podsumowanie 370

Rozdział 14. Operacje graficzne na widżetach 371

  • Transformacje widżetów za pomocą klasy Transform 371
    • Widżet Transform 372
  • Rodzaje transformacji 373
    • Obrót 373
    • Skalowanie 374
    • Translacja 375
    • Transformacje złożone 376
  • Stosowanie transformacji do widżetów 377
    • Obracanie widżetów 377
    • Skalowanie widżetów 378
    • Translowanie widżetów 378
    • Stosowanie wielu transformacji 379
  • Korzystanie z niestandardowych malarzy i elementów canvas 380
    • Klasa Canvas 380
    • Widżet CustomPaint 382
    • Obiekt CustomPainter 383
    • Praktyczny przykład 384
    • Wariant wykresu radialnego 389
  • Podsumowanie 393

Rozdział 15. Animacje 395

  • Wprowadzenie do animacji 395
    • Klasa Animation 395
  • Korzystanie z animacji 398
    • Animacja obrotu 398
    • Animacja skalowania 401
    • Animacja translacji 403
    • Wiele transformacji i niestandardowy Tween 404
  • Korzystanie z AnimatedBuilder 408
    • Klasa AnimatedBuilder 409
    • Powrót do naszej animacji 409
  • Korzystanie z AnimatedWidget 412
    • Klasa AnimatedWidget 412
    • Przepisanie animacji za pomocą AnimatedWidget 412
  • Podsumowanie 413

  • Tytuły: Flutter i Dart 2 dla początkujących. Przewodnik dla twórców aplikacji mobilnych
  • Autor: Alessandro Biessek
  • Tytuł oryginału: Flutter for Beginners: An introductory guide to building cross-platform mobile applications with Flutter and Dart 2
  • Tłumaczenie: Łukasz Wójcicki
  • ISBN książki drukowanej: 978-83-283-7825-4, 9788328378254
  • Data wydania książki drukowanej: 2021-10-12
  • ISBN Ebooka: 978-83-283-7826-1, 9788328378261
  • Data wydania: 2021-10-12
  • Format: 168x237
  • Identyfikator pozycji: flutte
  • Kategorie:
  • Wydawca: Helion