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

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: 978-83-283-7826-1
stron: 416, Format: ebook
Data wydania: 2021-10-12
Księgarnia: Helion
Cena książki: 48,95 zł (poprzednio: 87,41 zł)
Oszczędzasz: 44% (-38,46 zł)
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!
Osoby które kupowały "Flutter i Dart 2 dla początkujących. Przewodnik dla twórców aplikacji mobilnych", wybierały także:
- Programming the Mobile Web. Reaching Users on iPhone, Android, BlackBerry, Windows Phone, and more. 2nd Edition 157,37 zł, (29,90 zł -81%)
 - Building Android Apps with HTML, CSS, and JavaScript. Making Native Apps with Standards-Based Web Tools. 2nd Edition 135,91 zł, (29,90 zł -78%)
 - Beginning NFC. Near Field Communication with Arduino, Android, and PhoneGap 99,67 zł, (29,90 zł -70%)
 - Mobile JavaScript Application Development. Bringing Web Programming to Mobile Devices 78,68 zł, (29,90 zł -62%)
 - Making Musical Apps. Real-time audio synthesis on Android and iOS 78,68 zł, (29,90 zł -62%)
 
Spis treści
Flutter i Dart 2 dla początkujących. Przewodnik dla twórców aplikacji mobilnych eBook -- 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  
 - Klasa Animation
 - 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
 





