Description

Book Synopsis

Build your first app in Flutterno experience necessary!

Beginning Flutter: A Hands-On Guide to App Development is the essential resource for both experienced and novice developers interested in getting started with Flutterthe powerful new mobile software development kit. With Flutter, you can quickly and easily develop beautiful, powerful apps for both Android and iOS, without the need to learn multiple programming languages or juggle more than one code base. This book walks you through the process step by step.

In Flutter, you'll be working with Dart, the programming language of choice for top app developers. Even if you're just starting out in your development career, you can learn Dart quickly, eliminating the barrier to entry for building apps. This is a more efficient way to develop and maintain cross-platform mobile apps, and this book makes the process even easier with a teach-by-example approach.

  • Focus on providing quality content by

    Table of Contents

    Introduction xxi

    Part I: The Foundations of Flutter Programming

    Chapter 1: Introducing Flutter and Getting Started 3

    Introducing Flutter 4

    Defining Widgets and Elements 5

    Understanding Widget Lifecycle Events 5

    The StatelessWidget Lifecycle 6

    The StatefulWidget Lifecycle 6

    Understanding the Widget Tree and the Element Tree 8

    Stateless Widget and Element Trees 9

    Stateful Widget and Element Trees 10

    Installing the Flutter SDK 13

    Installing on macOS 13

    System Requirements 13

    Get the Flutter SDK 13

    Check for Dependencies 14

    iOS Setup: Install Xcode 14

    Android Setup: Install Android Studio 14

    Set Up the Android Emulator 15

    Installing on Windows 15

    System Requirements 15

    Get the Flutter SDK 16

    Check for Dependencies 16

    Install Android Studio 16

    Set Up the Android Emulator 17

    Installing on Linux 17

    System Requirements 17

    Get the Flutter SDK 18

    Check for Dependencies 19

    Install Android Studio 19

    Set Up the Android Emulator 19

    Configuring the Android Studio Editor 20

    Summary 20

    Chapter 2: Creating a Hello World App 25

    Setting Up the Project 25

    Using Hot Reload 30

    Using Themes to Style Your App 33

    Using a Global App Theme 33

    Using a Theme for Part of an App 35

    Understanding Stateless and Stateful Widgets 37

    Using External Packages 38

    Searching for Packages 39

    Using Packages 40

    Summary 41

    Chapter 3: Learning Dart Basics 43

    Why Use Dart? 43

    Commenting Code 44

    Running the main() Entry Point 45

    Referencing Variables 45

    Declaring Variables 46

    Numbers 47

    Strings 47

    Booleans 47

    Lists 47

    Maps 48

    Runes 48

    Using Operators 49

    Using Flow Statements 51

    if and else 51

    ternary operator 52

    for Loops 52

    while and do-while 53

    while and break 54

    continue 54

    switch and case 55

    Using Functions 55

    Import Packages 57

    Using Classes 57

    Class Inheritance 60

    Class Mixins 60

    Implementing Asynchronous Programming 61

    Summary 62

    Chapter 4: Creating a Starter Project Template 65

    Creating and Organizing Folders and Files 65

    Structuring Widgets 69

    Summary 74

    Chapter 5: Understanding the Widget Tree 77

    Introduction to Widgets 77

    Building the Full Widget Tree 79

    Building a Shallow Widget Tree 85

    Refactoring with a Constant 86

    Refactoring with a Method 86

    Refactoring with a Widget Class 91

    Summary 99

    Part II: Intermediate Flutter: Fleshing Out an App

    Chapter 6: Using Common Widgets 103

    Using Basic Widgets 103

    SafeArea 107

    Container 108

    Text 112

    RichText 112

    Column 114

    Row 115

    Column and Row Nesting 115

    Buttons 119

    FloatingActionButton 119

    FlatButton 121

    RaisedButton 121

    IconButton 122

    PopupMenuButton 123

    ButtonBar 126

    Using Images and Icons 130

    AssetBundle 130

    Image 131

    Icon 132

    Using Decorators 135

    Using the Form Widget to Validate Text Fields 139

    Checking Orientation 143

    Summary 149

    Chapter 7: Adding Animation to an App 151

    Using AnimatedContainer 152

    Using AnimatedCrossFade 155

    Using AnimatedOpacity 160

    Using AnimationController 164

    Using Staggered Animations 170

    Summary 175

    Chapter 8: Creating an App’s Navigation 177

    Using the Navigator 178

    Using the Named Navigator Route 188

    Using Hero Animation 188

    Using the BottomNavigationBar 193

    Using the BottomAppBar 199

    Using the TabBar and TabBarView 203

    Using the Drawer and ListView 207

    Summary 217

    Chapter 9: Creating Scrolling Lists and Effects 221

    Using the Card 222

    Using the ListView and ListTile 223

    Using the GridView 230

    Using the GridView.count 230

    Using the GridView.extent 232

    Using the GridView.builder 233

    Using the Stack 237

    Customizing the CustomScrollView with Slivers 243

    Summary 250

    Chapter 10: Building Layouts 253

    A High-Level View of the Layout 253

    Weather Section Layout 256

    Tags Layout 256

    Footer Images Layout 257

    Final Layout 257

    Creating the Layout 257

    Summary 265

    Chapter 11: Applying Interactivity 267

    Setting Up GestureDetector: The Basics 267

    Implementing the Draggable and Dragtarget Widgets 275

    Using the GestureDetector for Moving and Scaling 278

    Using the InkWell and InkResponse Gestures 289

    Using the Dismissible Widget 296

    Summary 303

    Chapter 12: Writing Platform-Native Code 307

    Understanding Platform Channels 307

    Implementing the Client Platform Channel App 309

    Implementing the iOS Host Platform Channel 313

    Implementing the Android Host Platform Channel 318

    Summary 322

    Part III: Creating Production-Ready Apps

    Chapter 13: Saving Data with Local Persistence 327

    Understanding the JSON Format 328

    Using Database Classes to Write, Read, and Serialize JSON 330

    Formatting Dates 331

    Sorting a List of Dates 332

    Retrieving Data with the FutureBuilder 333

    Building the Journal App 335

    Adding the Journal Database Classes 339

    Adding the Journal Entry Page 344

    Finishing the Journal Home Page 359

    Summary 371

    Chapter 14: Adding The Firebase and Firestore Backend 375

    What are Firebase and Cloud Firestore? 376

    Structuring and Data Modeling Cloud Firestore 377

    Viewing Firebase Authentication Capabilities 380

    Viewing Cloud Firestore Security Rules 381

    Configuring the Firebase Project 383

    Adding a Cloud Firestore Database and Implementing Security 391

    Building the Client Journal App 395

    Adding Authentication and Cloud Firestore Packages to the Client App 395

    Adding Basic Layout to the Client App 403

    Adding Classes to the Client App 406

    Summary 409

    Chapter 15: Adding State Management to the Firestore Client App 411

    Implementing State Management 412

    Implementing an Abstract Class 414

    Implementing the InheritedWidget 415

    Implementing the Model Class 416

    Implementing the Service Class 417

    Implementing the BLoC Pattern 417

    Implementing StreamController, Streams, Sinks, and StreamBuilder 419

    Building State Management 421

    Adding the Journal Model Class 422

    Adding the Service Classes 424

    Adding the Validators Class 430

    Adding the BLoC Pattern 432

    Adding the AuthenticationBloc 432

    Adding the AuthenticationBlocProvider 435

    Adding the LoginBloc 436

    Adding the HomeBloc 441

    Adding the HomeBlocProvider 443

    Adding the JournalEditBloc 444

    Adding the JournalEditBlocProvider 447

    Summary 449

    Chapter 16: Adding Blocs to Firestore Client App Pages 453

    Adding the Login Page 454

    Modifying the Main Page 460

    Modifying the Home Page 465

    Adding the Edit Journal Page 472

    Summary 484

    Index 489

Beginning Flutter

Product form

£26.34

Includes FREE delivery

RRP £30.99 – you save £4.65 (15%)

Order before 4pm today for delivery by Fri 19 Dec 2025.

A Paperback / softback by Marco L. Napoli

1 in stock


    View other formats and editions of Beginning Flutter by Marco L. Napoli

    Publisher: John Wiley & Sons Inc
    Publication Date: 15/11/2019
    ISBN13: 9781119550822, 978-1119550822
    ISBN10: 1119550823

    Description

    Book Synopsis

    Build your first app in Flutterno experience necessary!

    Beginning Flutter: A Hands-On Guide to App Development is the essential resource for both experienced and novice developers interested in getting started with Flutterthe powerful new mobile software development kit. With Flutter, you can quickly and easily develop beautiful, powerful apps for both Android and iOS, without the need to learn multiple programming languages or juggle more than one code base. This book walks you through the process step by step.

    In Flutter, you'll be working with Dart, the programming language of choice for top app developers. Even if you're just starting out in your development career, you can learn Dart quickly, eliminating the barrier to entry for building apps. This is a more efficient way to develop and maintain cross-platform mobile apps, and this book makes the process even easier with a teach-by-example approach.

    • Focus on providing quality content by

      Table of Contents

      Introduction xxi

      Part I: The Foundations of Flutter Programming

      Chapter 1: Introducing Flutter and Getting Started 3

      Introducing Flutter 4

      Defining Widgets and Elements 5

      Understanding Widget Lifecycle Events 5

      The StatelessWidget Lifecycle 6

      The StatefulWidget Lifecycle 6

      Understanding the Widget Tree and the Element Tree 8

      Stateless Widget and Element Trees 9

      Stateful Widget and Element Trees 10

      Installing the Flutter SDK 13

      Installing on macOS 13

      System Requirements 13

      Get the Flutter SDK 13

      Check for Dependencies 14

      iOS Setup: Install Xcode 14

      Android Setup: Install Android Studio 14

      Set Up the Android Emulator 15

      Installing on Windows 15

      System Requirements 15

      Get the Flutter SDK 16

      Check for Dependencies 16

      Install Android Studio 16

      Set Up the Android Emulator 17

      Installing on Linux 17

      System Requirements 17

      Get the Flutter SDK 18

      Check for Dependencies 19

      Install Android Studio 19

      Set Up the Android Emulator 19

      Configuring the Android Studio Editor 20

      Summary 20

      Chapter 2: Creating a Hello World App 25

      Setting Up the Project 25

      Using Hot Reload 30

      Using Themes to Style Your App 33

      Using a Global App Theme 33

      Using a Theme for Part of an App 35

      Understanding Stateless and Stateful Widgets 37

      Using External Packages 38

      Searching for Packages 39

      Using Packages 40

      Summary 41

      Chapter 3: Learning Dart Basics 43

      Why Use Dart? 43

      Commenting Code 44

      Running the main() Entry Point 45

      Referencing Variables 45

      Declaring Variables 46

      Numbers 47

      Strings 47

      Booleans 47

      Lists 47

      Maps 48

      Runes 48

      Using Operators 49

      Using Flow Statements 51

      if and else 51

      ternary operator 52

      for Loops 52

      while and do-while 53

      while and break 54

      continue 54

      switch and case 55

      Using Functions 55

      Import Packages 57

      Using Classes 57

      Class Inheritance 60

      Class Mixins 60

      Implementing Asynchronous Programming 61

      Summary 62

      Chapter 4: Creating a Starter Project Template 65

      Creating and Organizing Folders and Files 65

      Structuring Widgets 69

      Summary 74

      Chapter 5: Understanding the Widget Tree 77

      Introduction to Widgets 77

      Building the Full Widget Tree 79

      Building a Shallow Widget Tree 85

      Refactoring with a Constant 86

      Refactoring with a Method 86

      Refactoring with a Widget Class 91

      Summary 99

      Part II: Intermediate Flutter: Fleshing Out an App

      Chapter 6: Using Common Widgets 103

      Using Basic Widgets 103

      SafeArea 107

      Container 108

      Text 112

      RichText 112

      Column 114

      Row 115

      Column and Row Nesting 115

      Buttons 119

      FloatingActionButton 119

      FlatButton 121

      RaisedButton 121

      IconButton 122

      PopupMenuButton 123

      ButtonBar 126

      Using Images and Icons 130

      AssetBundle 130

      Image 131

      Icon 132

      Using Decorators 135

      Using the Form Widget to Validate Text Fields 139

      Checking Orientation 143

      Summary 149

      Chapter 7: Adding Animation to an App 151

      Using AnimatedContainer 152

      Using AnimatedCrossFade 155

      Using AnimatedOpacity 160

      Using AnimationController 164

      Using Staggered Animations 170

      Summary 175

      Chapter 8: Creating an App’s Navigation 177

      Using the Navigator 178

      Using the Named Navigator Route 188

      Using Hero Animation 188

      Using the BottomNavigationBar 193

      Using the BottomAppBar 199

      Using the TabBar and TabBarView 203

      Using the Drawer and ListView 207

      Summary 217

      Chapter 9: Creating Scrolling Lists and Effects 221

      Using the Card 222

      Using the ListView and ListTile 223

      Using the GridView 230

      Using the GridView.count 230

      Using the GridView.extent 232

      Using the GridView.builder 233

      Using the Stack 237

      Customizing the CustomScrollView with Slivers 243

      Summary 250

      Chapter 10: Building Layouts 253

      A High-Level View of the Layout 253

      Weather Section Layout 256

      Tags Layout 256

      Footer Images Layout 257

      Final Layout 257

      Creating the Layout 257

      Summary 265

      Chapter 11: Applying Interactivity 267

      Setting Up GestureDetector: The Basics 267

      Implementing the Draggable and Dragtarget Widgets 275

      Using the GestureDetector for Moving and Scaling 278

      Using the InkWell and InkResponse Gestures 289

      Using the Dismissible Widget 296

      Summary 303

      Chapter 12: Writing Platform-Native Code 307

      Understanding Platform Channels 307

      Implementing the Client Platform Channel App 309

      Implementing the iOS Host Platform Channel 313

      Implementing the Android Host Platform Channel 318

      Summary 322

      Part III: Creating Production-Ready Apps

      Chapter 13: Saving Data with Local Persistence 327

      Understanding the JSON Format 328

      Using Database Classes to Write, Read, and Serialize JSON 330

      Formatting Dates 331

      Sorting a List of Dates 332

      Retrieving Data with the FutureBuilder 333

      Building the Journal App 335

      Adding the Journal Database Classes 339

      Adding the Journal Entry Page 344

      Finishing the Journal Home Page 359

      Summary 371

      Chapter 14: Adding The Firebase and Firestore Backend 375

      What are Firebase and Cloud Firestore? 376

      Structuring and Data Modeling Cloud Firestore 377

      Viewing Firebase Authentication Capabilities 380

      Viewing Cloud Firestore Security Rules 381

      Configuring the Firebase Project 383

      Adding a Cloud Firestore Database and Implementing Security 391

      Building the Client Journal App 395

      Adding Authentication and Cloud Firestore Packages to the Client App 395

      Adding Basic Layout to the Client App 403

      Adding Classes to the Client App 406

      Summary 409

      Chapter 15: Adding State Management to the Firestore Client App 411

      Implementing State Management 412

      Implementing an Abstract Class 414

      Implementing the InheritedWidget 415

      Implementing the Model Class 416

      Implementing the Service Class 417

      Implementing the BLoC Pattern 417

      Implementing StreamController, Streams, Sinks, and StreamBuilder 419

      Building State Management 421

      Adding the Journal Model Class 422

      Adding the Service Classes 424

      Adding the Validators Class 430

      Adding the BLoC Pattern 432

      Adding the AuthenticationBloc 432

      Adding the AuthenticationBlocProvider 435

      Adding the LoginBloc 436

      Adding the HomeBloc 441

      Adding the HomeBlocProvider 443

      Adding the JournalEditBloc 444

      Adding the JournalEditBlocProvider 447

      Summary 449

      Chapter 16: Adding Blocs to Firestore Client App Pages 453

      Adding the Login Page 454

      Modifying the Main Page 460

      Modifying the Home Page 465

      Adding the Edit Journal Page 472

      Summary 484

      Index 489

    Recently viewed products

    © 2025 Book Curl

      • American Express
      • Apple Pay
      • Diners Club
      • Discover
      • Google Pay
      • Maestro
      • Mastercard
      • PayPal
      • Shop Pay
      • Union Pay
      • Visa

      Login

      Forgot your password?

      Don't have an account yet?
      Create account