We use cookies to provide essential features and services. By using our website you agree to our use of cookies .


COVID-19 Response at Fishpond

Read what we're doing...

Beginning App Development with Flutter


Product Description
Product Details

Table of Contents

Section: Introduction to Flutter 1. Hello Flutter

  • Chapter Synopsis: Setting the stage for the book. Give the reader a feel for why they're here. What problems does Flutter solve? Why the boss would choose Flutter versus some other solution.
  • What is covered in this book
    • Brief chapter overview and roadmap
  • What is notcovered and where to find answers to your questions
    • The Dart language itself - There's an overview and cheatsheet in the Appendix
    • Deploying to a store
    • Device-specific programming
  • Who is this book for?
    • Who's a good fit and who is not
    • Where to go to satisfy the prerequisites
  • What is Flutter?
    • Problems it solves
    • Where it came from - Brief history and origins
  • Competitors to Flutter
    • What other options are available? What might you use if not Flutter? Advantages and disadvantages of Flutter vs the other options
      • React Native
      • Progressive Web Apps
      • WebView solutions (Ionic, etc.)
      • Truly native coding (Swift, Objective-C, Java, Kotlin)
  • Characteristics of Flutter - Big picture things to keep in mind to successfully code in Flutter
    • This ain't the web!
    • Imperative UI
    • You're writing using Dart
    • Everything is a widget (Define widgets and explain the big win of widgets)
    • Widgets composition
    • You have to watch state

    2. How do I develop in Flutter?

    • Chapter synopsis: Flutter has a unique set of tools but it isn't always straightforward what each tool does and how to use it. This chapter guides the reader through the process of write-debug-test-run.
    • Installing Flutter tooling - A very brief and high-level coverage of where to get the tools. It should be brief because the details are likely to change regularly.
    • Overview of each tool
      • The emulators
        • iOS simulator through XCode
        • Android emulator through Android Studio
      • The IDE - Visual Studio Code
        • Alternatives: Android Studio, Atom, jBoss, etc.
      • The Flutter CLI
    • How to check and repair your toolchain through Flutter doctor
    • How to scaffold a new app
    • How to run in an emulator
    • When errors occur
    • How to debug
      • print() statement
      • Flutter inspector or DartCode VS Code plugin
    • Watch mode
    Section: Foundational Flutter 3. Everything is widgets
    • Chapter Synopsis: Widgets are super-important to Flutter since they're the building blocks of every Flutter app. We show why and provide the motivation and basic tools to create widgets.
    • Reminder about widgets
    • Composition
      • Define composition
      • Provide real-world examples
      • Why it is such a win
    • Comparison with Web Components, React, Angular, and Vue
    • The categories of Flutter UI widgets
      • For each category, we'll explain why we'd use them, what they have in common, and give one or two examples of the most fundamental and needed widgets in each category.
      • Value Widgets
        • Example: Text widget
      • Style Widgets
        • Example: Center widget
      • Composition Widgets
      • Example: Container widget
    • Navigation Widgets
      • Example: AppBar widget
  • Bringing the chapter together: Composing them in a custom widget
  • Stateful vs. Stateless widgets
    • What is state?
    • How to create a custom stateless widget (Note: creating a stateful widget is complex so we're saving it for the State chapter).

    4. Value Widgets

    • Chapter Synopsis: Deep dive into widgets that hold a value, especially user-input fields
    • What's the pubspec.yaml file?
    • Text widget
    • ListView widget
      • ListView for a small list
      • ListTitle
      • Using a ListView.builder() for memory efficiency
    • Image widget
    • Input widgets
      • TextField widget
      • Form widget
      • TextFormField widget (Yes, it's different)
      • CheckBox widget
      • RadioButton widget
      • DropDownButton and DropDownMenuItem widgets
      • Validating input data
    5. Responding to Gestures
    • Chapter Synopsis: How to make your program do things in response to user actions like taps, swiping, pinching, and the like
    • The button family
      • RaisedButton widget
      • FlatButton widget
      • IconButton widget
      • FloatingActionButton widget
      • CupertinoButton
    • Custom gestures on custom widgets
    • Step 1 - Decide on your gestures
    • Step 2 - Create your custom widget
    • Step 3 - Add a GestureDetector widget
    • Step 4 - Associate your gesture with a method
      • Example - LongPress
      • Example - Pinching
      • Example - Swiping
    • Competing gestures
      • The GestureArena and conflict resolution

    6. Laying out your widgets

    • Chapter Synopsis: How to lay out a view, controlling how widgets are placed side-by-side and/or above-and-below, defining the amount of space between widgets, and aligning them vertically and horizontally
    • How sizing widgets works
      • Box constraints
      • Box size vs widget size
        • What's the difference and when each apply
      • Width, height, minwidth, maxwidth, minheight, maxheight
      Layout properties that apply to most widgets
      • Margin
      • Border
      • Padding
        • EdgeInsets.all(), EdgeInsets.only()
      • Position
      • Alignment
      • How to apply these things to widgets that don't support them
    • Laying out the whole scene
      • MaterialApp and Scaffold widgets
      • AppBar widget
      • SnackBar widget
        • SnackBarAction
    • Widgets that hold multiple children
      • Row and Column widgets
        • Aligning inside them
      • ScrollView widgets
        • To make view scrollable
      • Expanded widget
        • For when the contents are larger than the screen
      • GridView widget
        • For children across and then down. Like Pinterest
      • Stack widget
        • For allowing widgets to overlay each other in the z-direction
    • Widgets that hold a single child
      • Container widget
      • Expanded widget
      • Center widget
      • SafeArea widget
      • Card widget

    7. Navigation with widgets

    • Chapter Synopsis: Making the app "hide" one widget and "show" another in response to user actions. This makes them feel like they're moving from one view to another.
    • Dialog widget
      • AlertDialog widget and showDialog method
    • Why navigation?
    • Why do we need routes?
    • Named routes
    • The Navigator widget
      • Pushing and popping routes
    • Setting up navigation
      • MaterialPageRoute
    • Types of navigation
      • Tab navigation
      • Stack navigation
      • Dialogs and modals
    • Passing context between routes
    • Drawer widget
    • Tab widget
    • Stack widget
    • Hamburger icon and dropdown navigation
    • BottomSheet widget
    • BottomNavigation widget
    8. Styling your widgets
    • Chapter Synopsis: How to control each widget's position, color, spacing, and other presentational characteristics. We handled light styling as we introduced each widget above but this is where we answer all the questions needed to get a real-world app looking good.
    • This is not CSS
      • Styles don't get inherited
    • What is Material Design?
    • Some widgets take a style parameter.
    • Text
      • TextStyle
        • letterSpacing, fontWeight, color
        • textScaleFactor, fontSize
        • textOverflow, maxlines
        • Underline, overline, strikethrough
      • Using custom fonts
        • Google Fonts
        • pubspec.yaml
        • Selecting, downloading, applying
    • BoxDecoration
      • BorderRadius Widget
      • BoxShadow Widget
      • BoxShape enum (.circle, etc)
    • Themes
      • Applying a theme to the entire app
      • Applying styles from the current theme
    9. Maintaining State
    • Chapter Synopsis: How to get data from one widget to another and how to change that data.
    • Reminder of stateful vs. stateless widgets
    • When to choose each
    • How to create a custom stateful widget
      • Extend StatefulWidget with createState()
      • Extend State with build()
      • Call setState() to trigger a re-render
    • Passing data from host to inner
    • Passing data from inner to host
    • Sharing data between siblings and cousins

    Section: Above and Beyond 10. Talking to other computers

    • Chapter Synopsis: How to read from and write to a server. This is where we show how to make Ajax calls.
    • Why would we want to talk to a server?
    • RESTful APIs are amazing!
      • Definition of REST
      • Structure of REST
      • Get a feel for the API we'll be using in the Firebase appendix
    • How to read a single record
    • How to read a list of records
    • How to add a new record
    • How to delete an existing record
    • How to update an existing record
    11. Including external libraries
    • Chapter Synopsis: How to find, install, and use 3rd-party components and libraries in your Flutter app
    • Locating libraries
    • Installing libraries
    • Integrating in your Flutter app

    12. Using the camera and other device resources

    • Chapter Synopsis: How Flutter allows us to programmatically use the phone's native hardware
    • Taking pictures and video with the camera
    • Making phone calls
    • Sending SMS/text messages
    • Using the GPS and geolocation to know where you are
    • Reading sensors -- thermometer, brightness, proximity, air pressure, accelerometer and gyroscope
    • Battery Power monitor
    Section: Appendices Dart language intro
    • Chapter Synopsis: A brief introduction to the Dart language. More of a cheat sheet
    • Flutter procedural code is written in Dart
    • Why did Google choose Dart?
    • Advantages and Disadvantages of Dart
      • Sort of a compromise between JavaScript and Java
      • Statically-typed like Java
      • Truly object-oriented like Java
    • Dart vs. JavaScript
    • Dart vs. Java/C#
    • Features of Dart we need for Flutter
    • Chapter Synopsis: Firebase is the Google service we'll be using to host our RESTful data. This appendix is a high-level explanation, just enough for the reader to understand the server-side tools. Demystifying the backend enough so the reader isn't distracted. Answers the question, "What parts are done in Flutter and what parts are done by something else?"
    • Firebase functions
    • Firebase Firestore
    • Firebase authentication

    About the Author

    Rap Payne has focused on mobile development since he started Agile Gadgets, a mobile app development company in 2003. He is a consultant, trainer, and entrepreneur who has written apps, mentored developers, and taught software development classes for Fortune 500 companies like Boeing, Walmart, Coca-Cola, Wells Fargo, Honda,CVS, GE, Chase, HP, Lockheed, Exxon-Mobil, Lowe's, Nike, J.C. Penney, USAA, Walgreen's, and government agencies like the US Air Force, Navy, Army, NASA, Britain's GCHQ, Canada's postal service, and several provincial governments, to name a few.As a professional mentor and trainer, Rap has developed a talent for communicating highly complex ideas in easy-to-understand ways. And as a real-world developer, he understands the need to teach these topics using practical and realistic examples and exercises.

    Ask a Question About this Product More...
    Write your question below:
    Item ships from and is sold by Fishpond.com, Inc.
    Back to top