Muutke küpsiste eelistusi

Pragmatic Flutter: Building Cross-Platform Mobile Apps for Android, iOS, Web & Desktop [Kõva köide]

  • Formaat: Hardback, 337 pages, kõrgus x laius: 234x156 mm, kaal: 625 g, 9 Line drawings, black and white; 139 Halftones, black and white; 148 Illustrations, black and white
  • Ilmumisaeg: 13-Aug-2021
  • Kirjastus: CRC Press
  • ISBN-10: 0367612097
  • ISBN-13: 9780367612092
  • Formaat: Hardback, 337 pages, kõrgus x laius: 234x156 mm, kaal: 625 g, 9 Line drawings, black and white; 139 Halftones, black and white; 148 Illustrations, black and white
  • Ilmumisaeg: 13-Aug-2021
  • Kirjastus: CRC Press
  • ISBN-10: 0367612097
  • ISBN-13: 9780367612092

Have you ever thought of creating beautiful blazing fast native apps for iOS and Android from a single codebase   If so, this book, Pragmatic Flutter: Building Cross-Platform Mobile Apps for Android, iOS, Web & Desktop, is the right place to start your journey to developing cross-platform apps. 



Have you ever thought of creating beautiful blazing fast native apps for iOS and Android from a single codebase? Have you dreamt of taking your native apps to the web and desktop without costing a fortune? If so, this book, Pragmatic Flutter: Building Cross-Platform Mobile Apps for Android, iOS, Web & Desktop, is the right place to start your journey to developing cross-platform apps. Google’s Flutter is the brand-new way for developing beautiful, fluid, and blazing fast cross-platform apps for Android, iOS, web, and desktops (macOS, Linux, Windows).

Google's new Fuchsia OS UI is implemented using Flutter as well. Learning to develop mobile apps with Flutter opens the door to multiple devices, form-factors, platforms using a single codebase. You don't need any prior experience using Dart to follow along this book. However, its recommended to have some familiarity writing code using one of the object-oriented programming languages.

You will start your journey with learning to structure and organize the Flutter project to develop apps for multiple platforms. Next, you will explore fundamentals of
Flutter widgets. You will continue your journey of widgets with Flutter’s layout widgets while learning to build responsive layouts. You will get an understanding of organizing and applying themes and styles, handling user input, and gestures. Then you will move on to advanced concepts like fetching data over the network, integrating and consuming REST API in your app. You will get hands-on experience on design patterns, data modeling, routing, navigation for multi-screen apps. When you are finished with this book, you will have a solid foundational knowledge of Flutter that will help you move forward in your journey building great and successful mobile apps that can be deployed to Android, iOS, web, and desktop (macOS) platforms from a single code base.

Preface xiii
Author xv
Chapter 1 Dart Fundamentals: A Quick Reference to Dart 2
1(14)
The main Function
1(1)
Variables & Data Types
2(1)
Collections
2(1)
Spread Operator
3(1)
Transform List Items
3(1)
Filtering
3(1)
Adding Item
4(1)
Removing Item
4(1)
Adding Multiple Items
4(1)
Intersection of Two Set(s)
5(1)
Union of Two Set(s)
5(1)
Checking for Key
6(1)
Checking for Value
7(1)
Accessing all Values
7(1)
Iterating Key/Value Pairs
7(1)
Functions
8(2)
Classes
10(2)
Conclusion
12(1)
References
12(3)
Chapter 2 Introduction to Flutter
15(8)
Cross-Platform Solutions
15(3)
Why Flutter
18(2)
Conclusion
20(1)
References
20(3)
Chapter 3 Setting Up Environment
23(12)
System Requirements for macOS
23(1)
Setting Up Flutter SDK
23(2)
Setting Up for the Android Platform
25(2)
Setting Up for the iOS Platform
27(1)
Setting Up for Web
28(1)
Setting Up for Desktop
29(2)
Source Code Online
31(1)
Setting Up Editor
32(1)
Conclusion
32(1)
References
32(3)
Chapter 4 Flutter Project Structure
35(12)
Choosing Flutter Channel
35(1)
Creating Flutter Project
36(3)
Cross-Platform Flutter Project Structure
39(1)
Running Default App: Android, iOS, Web, and Desktop
40(1)
Running Code Samples
41(4)
Useful Commands
45(1)
Conclusion
46(1)
References
46(1)
Chapter 5 Flutter App Structure
47(16)
Flutter Widgets
48(1)
Display `Hello Books' Text
49(2)
Add Cushion Around the Text
51(2)
Center the Text
53(1)
App Anatomy #1
53(1)
App Anatomy #2
53(8)
Conclusion
61(1)
References
61(2)
Chapter 6 Flutter Widgets
63(24)
Image Widget
63(2)
ToggleButtons Widget
65(3)
TextField Widget
68(3)
FutureBuilder Async Widget
71(3)
Placeholder Widget
74(2)
StreamBuilder Async Widget
76(2)
AlertDialog Widget
78(5)
Conclusion
83(1)
References
84(3)
Chapter 7 Building Layouts
87(40)
Revisiting HelloBooksApp Layout
87(2)
Types of Layout Widgets
89(1)
Container Widget
90(7)
Padding Widget
97(2)
ConstrainedBox Widget
99(2)
SizedBox Widget
101(2)
Row Widget
103(2)
IntrinsicHeight Widget
105(5)
Column Widget
110(2)
IntrinsicWidth Widget
112(3)
ListView Widget
115(2)
GridView Widget
117(1)
Table Widget
117(2)
Stack Widget
119(2)
IndexedStack Widget
121(2)
Conclusion
123(1)
References
124(3)
Chapter 8 Responsive Interfaces
127(16)
FittedBox Widget
127(1)
Expanded Widget
128(4)
Flexible Widget
132(2)
FractionallySizedBox Widget
134(3)
LayoutBuilder Widget
137(1)
Wrap Widget
137(2)
Conclusion
139(2)
References
141(2)
Chapter 9 Building User Interface for BooksApp
143(10)
The BooksApp Interface
143(1)
The BooksApp Anatomy
143(1)
Implementing User Interface
144(4)
Custom Widget: BooksListing
148(3)
Conclusion
151(1)
References
151(2)
Chapter 10 Flutter Themes
153(16)
Global Theme
153(4)
Modularizing Themes
157(2)
Using Custom Fonts
159(1)
Local Theme
160(3)
Switching Themes
163(4)
Conclusion
167(1)
References
168(1)
Chapter 11 Persisting Data
169(20)
Light Theme (Default)
169(1)
Key/Value Data Store (Shared Preferences Plugin)
169(4)
Local Database (Moor Library)
173(7)
Light Theme on Multiple Platforms
180(2)
Dark Theme on Multiple Platforms
182(4)
Conclusion
186(1)
References
187(2)
Chapter 12 Integrating REST API
189(14)
What Is an API?
189(1)
Flutter Configuration
190(1)
API Key
190(2)
API Endpoint
192(1)
Building Simple Interface
193(3)
Running Code
196(2)
Adding Entitlement
198(1)
AndroidManifest.xml
199(1)
Conclusion
200(1)
References
201(2)
Chapter 13 Data Modeling
203(26)
Parsing JSON
203(4)
List-View Widget: Listing Entries
207(2)
Custom Widget: BookTile
209(8)
Constructing Data Model
217(3)
Converting API Response to BookModel List
220(1)
Run the Code
221(6)
Conclusion
227(1)
References
228(1)
Chapter 14 Navigation and Routing
229(12)
Simple BookDetailsPage Screen
229(3)
Navigator Widget
232(1)
Direct Navigation
233(1)
Detecting Gesture
233(1)
Passing Data
234(1)
Static Navigation
235(1)
Detecting Gesture
236(1)
Passing Data
236(1)
Dynamic Navigation
237(1)
The generateRoute () Function
237(1)
Detecting Gesture
238(1)
Passing Data
238(1)
Conclusion
239(1)
References
239(2)
Chapter 15 The Second Page - BookDetailsPage Widget
241(10)
Anatomy of BookDetailsPage Widget
241(1)
BookDetailsPage Screen's Layout
242(1)
Implementing BookDetailsPage Widget
243(6)
Conclusion
249(1)
References
249(2)
Chapter 16 Introduction to State Management
251(6)
Revisiting Default CounterApp
251(1)
Vanilla Pattern
252(3)
Conclusion
255(1)
References
256(1)
Chapter 17 ValueNotifier
257(8)
Using ValueNotifier Approach
257(5)
Conclusion
262(1)
References
262(3)
Chapter 18 Provider and ChangeNotifier
265(6)
What Is Provider
265(1)
What Is ChangeNotifier
266(1)
Anatomy of CounterApp
266(1)
Increasing Counter
267(1)
Custom Widget: CountWidget
267(1)
Finished Implementation
268(2)
Conclusion
270(1)
References
270(1)
Chapter 19 BLoC Design Pattern
271(16)
What Is BLoC Pattern?
271(1)
Anatomy of CounterApp
271(2)
Basic BLoC Pattern Implementation
273(3)
Event StreamController
276(1)
Event Sink
276(1)
Event Stream/CounterBloc Constructor
276(1)
State StreamController
277(1)
State Sink
277(1)
State Stream
277(2)
Improvised BLoC Pattern Implementation
279(1)
State StreamController
280(1)
State Sink
280(1)
State Stream
281(1)
Implementing BLoC Pattern Using Library
282(3)
Conclusion
285(1)
References
285(2)
Chapter 20 Unit Testing
287(10)
Package Dependencies
287(1)
The CounterApp
287(5)
Test File
292(2)
Running Unit Tests
294(1)
Conclusion
295(1)
References
295(2)
Chapter 21 Widget Testing
297(10)
Package Dependency
297(1)
Testing Widgets
298(7)
Running Widget Tests
305(1)
Conclusion
305(1)
References
305(2)
Chapter 22 Integration Testing
307(8)
Package Dependency
307(1)
Preview CounterApp Code
307(3)
Test Pair Files
310(1)
Writing Integration Tests
310(3)
Running Integration Tests
313(1)
Conclusion
314(1)
References
314(1)
Chapter 23 Rolling into the World
315(16)
Adding Launcher Icon
315(1)
Releasing Android Apps
316(6)
Releasing iOS Apps
322(5)
Releasing Web Apps
327(3)
Releasing Desktop (macOS) Apps
330(1)
Conclusion 331(1)
References 331(2)
Index 333
Priyanka Tyagi has over 13 years of experience designing and developing software, web and mobile systems for a diverse range of industries from automobile and e-commerce to entertainment and EdTech. Her expertise lies in Flutter, Dart, Android, Firebase, Mobile SDKs, AWS/Google cloud-based solutions, cross-platform apps and game-based learning. Priyanka earned her M.S. in Computer Science from Illinois Institute of Technology, Chicago, IL. In the past, she led the Android team at Disney Interactive, and contributed significantly to Disney wide core-platform services. As CTO at Zapptitude Inc, she helped build cloud-based Assessment as a Service (ASAS) platform for game/app based learning. Now, she works as a freelance Software Engineering Consultant. In her free time she likes to volunteer her time in local public schools to introduce computer science to young minds.