Spis treści
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
Opinie
Na razie nie ma opinii o produkcie.