Mobile Applications

There are inherently less options for mobile applications. Either projects are built natively in which case, only a single option exists for each platform. Other projects would work well with a cross-platform development framework and should use one of the options below. Backend choices can be chosen from the backend section below.

Flutter - Cross-platform Mobile App Dev

Flutter is an open-source portable UI toolkit built by Google, it’s a comprehensive app Software Development Kit (SDK), complete with widgets and tools. Flutter enables cross-platform app development. It gives developers an easy way to build and deploy visually attractive, natively-compiled applications for mobile (iOS, Android), web, and desktop – all using a single codebase.

Features:

  • It’s based on Dart – a fast, object-oriented programming language. It’s relatively new and easy to learn – especially for experienced developers more familiar with Java and C#.
  • The architecture is based on the very popular reactive programming (it follows the same style as React)
  • It provides its own widgets(similar to components in React), drawn from its own high-performance rendering engine – these are fast, attractive and customizable
  • Excellent documentation with strong support from the Flutter team
  • Very fast development time, good developer experience

Getting Started

Google provides excelent documentation and can be leveraged as your main source for documentation.

Flutter Add-ons

This is a non-comprehensive list of extensions and add-ons to the core flutter framework that Spark! recommends.

State Management

This is an inherently opinionated and project driven choice but we recommend the following:

  1. Flutter RiverPod - Most modern and fully featured. Stepper learning curve
  2. Provider - Less features but easier to learn, superseded by RiverPod

Resources: