Book Image

Flutter for Beginners - Second Edition

By : Thomas Bailey, Alessandro Biessek
Book Image

Flutter for Beginners - Second Edition

By: Thomas Bailey, Alessandro Biessek

Overview of this book

There have been many attempts at creating frameworks that are truly cross-platform, but most struggle to create a native-like experience at high performance levels. Flutter achieves this with an elegant design and a wealth of third-party plugins, making it the future of mobile app development. If you are a mobile developer who wants to create rich and expressive native apps with the latest Google Flutter framework, this book is for you. This book will guide you through developing your first app from scratch all the way to production release. Starting with the setup of your development environment, you'll learn about your app's UI design and responding to user input via Flutter widgets, manage app navigation and screen transitions, and create widget animations. You'll then explore the rich set of third party-plugins, including Firebase and Google Maps, and get to grips with testing and debugging. Finally, you'll get up to speed with releasing your app to mobile stores and the web. By the end of this Flutter book, you'll have gained the confidence to create, edit, test, and release a full Flutter app on your own.
Table of Contents (18 chapters)
1
Section 1: Introduction to Flutter and Dart
6
Section 2: The Flutter User Interface – Everything Is a Widget
10
Section 3: Developing Fully Featured Apps
14
Section 4: Testing and App Release

Native development

Often cited as the purest solution, native development refers to writing apps in the language common to the platform of the device. For iOS this is Swift (or previously, Objective-C), for Android it is Kotlin (or previously, Java), and for the web it is generally HTML/JavaScript:

Figure 3.1 – Swift and Kotlin logos

Native is seen as the purest solution because there is no bridge between the app and the platform, or no transpilation of code. Therefore, the code that is developed is the code that is run and talks directly to the features available from the platform, be that iOS, Android, or the web browser. Once you move away from native development, you introduce certain risks, such as the following:

  • The software bridge having slow performance or deep, difficult to diagnose, bugs
  • The transpilation process having deep, difficult to diagnose, bugs
  • A lack of access to key platform features

It is therefore critically...