Flutter is an open-source UI (User Interface) software development kit (SDK) created by Google. It is relatively new, building on top of a previous iteration called ‘Sky’, Flutter 1.0 was released in 2018. It allows developers to build cross-platform applications for mobile, web, and desktop from a single codebase. Flutter uses the Dart programming language, also developed by Google, and provides a rich set of pre-designed UI components and tools.
One of the key features of Flutter is its ability to create highly responsive and visually appealing applications with a native-like experience. It achieves this by using a rendering engine called Skia, which allows for efficient graphics rendering across different platforms. Flutter also has a “hot reload” feature that enables developers to see the changes made to the code immediately reflected in the app, making the development process faster and more interactive.
Flutter’s cross-platform capabilities mean that developers can write code once and deploy it on multiple platforms, such as iOS, Android, web browsers, and even desktop operating systems like Windows, macOS, and Linux. This not only saves development time but also ensures consistent app behaviour and UI across different platforms.
Furthermore, Flutter provides access to a wide range of libraries and packages known as “pub packages,” which help developers add additional functionalities to their apps, such as networking, database integration, state management, and more
Firebase and flutter pros and cons.
Flutter comes with an excellent integration of Firebase (+Firestore) (both owned by Alphabet) database. Firebase is a file based database system (JSON), with a no-SQL query language. Here we will compare both of them separately.
Pros of using Firebase Firestore are:
- Realtime database
- Wide range of authentication options, including Web3
- Various cloud functions
- Easy to work with from the browser and helps you with monitoring insights
- JSON file system of firebase cannot filter data within a folder before fetching (so expensive). Limited querying capabilities.
- Expensive for mid-large scale companies
- Limited server side control, for that you need Azure/AWS.
Pros of using Flutter:
- Easy database integration with Firebase, large fee tier with 50k MAU for free per
- Firebase offers realtime databases and is good with AI and machine learning.
- Faster, productive, flexible, well designed and easy to learn.
- Layout is easier than CSS
- Cross platform means you build for both Android and IOS in one go (although you do
have two folders), and achieve about 90% of the native performance.
- Excellent for startups, where fast iteration is required.
Ease to hire people from Upwork, Freelancer or Fiverr, where platform specialised developers are harder to find. Flutter saves money and time.
Cons of using Flutter:
- Vendor lock-in (by Alphabet) including Firebase, lack of migration options for transferring data.
- New features by Android/Apple cannot be immediately implemented, because they need to be integrated by Flutter.
- Mobile first means desktop last
- Native tools build nicer interfaces, best and fastest performance is native.
- A responsive website (PWA, progressive web app) works on any platform, no need to bother with specific mobile implementation.
Fun fact: Starbucks reported a 50% increase in usage after converting to PWA (lower entry barrier, and people do not want to install apps anymore).
Flutter Upcoming features:
- 3D image rendering.
faster language whilst remaining compatible.
One common approach is to use Flutter for mobile and Vue/Angular/React for web. Use Flutter if you are a startup, bigger companies can build native for that 10% extra performance/features that you get by optimising for Android or IOS specifically. However, nowadays the trend is moving away from native apps and towards web based. It all depends on what you need. If your business model benefits most from app store purchases, Flutter can be good to build and iterate as a startup.
- Flutter: http://flutter.dev/
- 4 things to know about the future of Flutter:
- Why I Do NOT Use Flutter for Mobile App Development:
- Should you use Flutter for Web Apps?:
By Walt Schagen CTO and Co Founder of Mood Global Services