Cart
Free Shipping in the UK
Proud to be B-Corp

Beginning App Development with Flutter Rap Payne

Beginning App Development with Flutter By Rap Payne

Beginning App Development with Flutter by Rap Payne


£40.19
Condition - New
Only 2 left

Beginning App Development with Flutter Summary

Beginning App Development with Flutter: Create Cross-Platform Mobile Apps by Rap Payne

Create iOS and Android apps with Flutter using just one codebase. App development on multiple platforms has historically been difficult and complex. This book breaks down complex concepts and tasks into easily digestible segments with examples, pictures, and hands-on labs with starters and solutions.

In doing so, you'll develop a basic understanding of the Dart programming language; the entire Flutter development toolchain; the differences between stateful and stateless widgets; and a working knowledge of the architecture of apps. All the most important parts of app development with Flutter are covered in this book. Work with themes and styles. Develop custom widgets. Teach your app to respond to gestures like taps, swipes, and pinches. Design, create and control the layout of your app. Create tools to handle form data entry from users. And ultimately create killer multiscreen apps with navigation, menus, and tabs.

Flutter is Google's new framework for creating mobile apps that run on iOS and Android phones both.You had to be a super-developer to write apps for iOS or Android alone. But writing for both? Forget about it! You had to be familiar with Swift, Java/Kotlin, Xcode, Eclipse, and a bunch of other technologies simultaneously. Beginning App Development with Flutter simplifies the entire process.

What You'll Learn

  • Get the most out of great Flutter widgets

  • Create custom widgets, both stateless and stateful
  • Exercise expert control over your Flutter layouts
  • Make your app respond to gestures like swiping, pinching and tapping
  • Initiate async Ajax calls to RESTful APIs - including Google Firebase!


Who This Book Is ForDevelopers who have coded in Java, C#, C++, or any similar language. It brings app development within the reach of younger developers, so STEM groups are likely to pick up the technology. Managers, product owners, and business analysts need to understand Flutter's capabilities.

About Rap Payne

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.

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

    Firebase

    • 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

    Additional information

    NLS9781484251805
    9781484251805
    1484251806
    Beginning App Development with Flutter: Create Cross-Platform Mobile Apps by Rap Payne
    New
    Paperback
    APress
    2019-12-05
    309
    N/A
    Book picture is for illustrative purposes only, actual binding, cover or edition may vary.
    This is a new book - be the first to read this copy. With untouched pages and a perfect binding, your brand new copy is ready to be opened for the first time

    Customer Reviews - Beginning App Development with Flutter