Flutter Handbook by Applover 2022

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 46

The Flutter Handbook

Your guide to building a successful


Flutter application

By Applover Full-Stack Digital Agency


2022
Table of contents
Introduction  3

Flutter 101: What is Flutter?  4

Expert’s Recipe: Top Flutter & Dart packages you should know 8

Why is Flutter the future? 10

Expert’s Recipe: Best Flutter tools for efficient development 14

When should you choose Flutter? 16

Expert’s Recipe: Should you build your web app with Flutter Web? 25

What to look for when outsourcing Flutter development? 27

Expert’s Recipe: Flutter app testing – pro tips you should know 33

How much does it cost to develop the Flutter application? 35

Expert’s Recipe: Reasons to use Flutter for your next mobile app 40

What to expect after you contact Applover? 41

2
Introduction
Most likely, you have already used an app built with Flutter without even realizing it.

This technology has evolved so much that it’s difficult to distinguish it from natively

built applications. Flutter allows you to develop apps using a single codebase for two

major mobile platforms. It’s a game-changer.

There’s a reason why Flutter is currently the most popular cross-platform mobile

framework used by global developers. And with its rising popularity, Flutter has

become the dominant solution for creating mobile apps that run on several platforms.

This guide will walk you through the trends of Flutter’s development. Using our years

of experience, we’ve selected essential knowledge to help you begin your journey with

Flutter. You’ll learn how it works, its pros and cons, when you should choose Flutter,

as well as the costs associated with its development. All of that is topped off with

insights from our tech experts and tips based on real-life cases.

Without further ado, make the most of this guide. We’re always eager for further

improvement, so let us know what you think!

Piotr Sędzik
CEO
3
Flutter 101: What is Flutter?
To paraphrase an old adage, „you can’t build a stable house without a foundation”,

you also shouldn’t start a development process unless you’ve done your research.

As Flutter grows in popularity and becomes the standard technology for creating

mobile apps, let’s take a closer look at its foundational ideas.

s
rove
oApp
#Tac

RT
#SUPPO

4
Flutter in a nutshell
Flutter is known as a highly performant cross-platform tool for building mobile apps.

It was developed by Google, and it’s a free and open-source SDK (software

development kit). The main reason why people want to develop mobile apps with Flutter

is that it allows you to build Android and iOS apps from one codebase. It’s a game-

-changer. Before this type of solution, you had to hire two teams for two different

projects for Android and iOS.

What’s the difference between Native


and Cross-Platform?
Cross-platform technology is about developing a single app that can support

multiple platforms. In the past, software developers would have to release

a mobile application on every major operating system with their source code. Nowadays,

an emerging trend in application development is cross-platform development.

An app developer using toolkits and frameworks like Flutter can develop mobile

applications running both on the iOS and Android platforms. Additionally, this

multi-platform software can be easily repurposed in the future. It enables reaching

a wide range of smartphone users with one codebase. A solution like that provides

many opportunities, but also some to be careful of.

Is Flutter a programming language?


Flutter isn’t a programming language. It’s a software development kit (SDK)

that includes modifiable widgets, together with tools, libraries, and documentation

for creating applications that run on several platforms.

The Dart programming language is used to develop Flutter apps – an object-

oriented programming language also created by Google. As developers say,

the process of writing applications in Flutter is more enjoyable than in other

technologies designed to develop cross-platform mobile applications. Since

Flutter uses its programming language, you need developers that are fluent in Dart

to create your project.


5
Other SDKs for mobile app development
Software development kits (SDKs) are precompiled collections of code samples,

simulators, and other resources that can be used to build apps quickly. SDKs can

be classified as either „native” or „cross-platform”. Since each platform’s native SDK

is platform-specific, developers who create an app for one platform (say,

Android) must start from scratch to port it to another (say, iOS). However, there are many

cross-platform development tools available in the business. Besides Flutter, you

should be aware of:

React Native – an open-source framework launched in 2015 and backed by

Facebook. It’s based on a JavaScript library and can be used to create a whole

app from scratch for mobile devices.

Xamarin – an open-source framework based on the .NET developer platform

and using C# for coding. It was launched in 2011 by Microsoft.

6
Key takeaways

Flutter is Google’s software development kit (SDK) for developing

cross-platform apps.

With Flutter, you can develop Android and iOS apps from one

codebase.

To develop mobile apps with Flutter, you need developers familiar with

Dart.

7
Expert’s Recipe: Top Flutter & Dart
packages you should know

Every framework contains a lot of libraries that help developers to create valuable

products. The same goes for Flutter, which is known for having a strong community

and numerous packages that make development faster and easier. Some of them are

essential for application development, especially in projects created at Applover.

Kamil Piekarz
Flutter Developer

mason – a powerful package that enables developers to create and consume

reusable templates that are called bricks.

flutter_bloc – this state management package handles the possible states

of your application in a really easy way.

flutter_hooks – a Flutter implementation of React hooks.

freezed – a scalable code generator for data classes, unions, pattern-matching,

and cloning.

purchases_flutter – a client for the RevenueCat subscription and purchase

tracking system.

flutter_launches_icons – a package that makes adding icons for all platforms

take less than 5 minutes

flutter_native_splash – similar to the previous one, but it’s about the splash

screen.

package_info_plus – a useful package that provides an API for querying

information about an application package.

in_app_review – a package to show an adaptive review pop-up where users

can leave a review for your application. 8


flutter_screenutil – a package for adapting screen and font size.

animations – an effortless package for beautiful transition effects.

equatable – a helpful package used to compare Dart objects.

Recipe

9
Why is Flutter the future?
Mobile apps continue to grow in popularity. The number of app downloads worldwi-

de increased from 204 billion in 2019 to 230 billion in 2021. This trend has only been

intensified by the pandemic, and even companies that were previously unwilling

to adopt digital transformation are now looking for new technologies. That tenden-

cy is especially visible in software development – more and more companies need

applications to improve the work or convenience of customers. As a result,

there’s a great demand for mobile app development. But why Flutter, you may ask?

Flutter’s advantages
The advantage that distinguishes Flutter from other technologies and program-

ming languages is that it is relatively easy to learn because learning Dart is easy.

On the other hand, the elements that improve the created application’s performance

are the Skia Engine and ready libraries. The Skia Engine is an open-source 2D graphics

library that enables the rendering of the built-in library of platform user interface

components. Flutter, similarly to React Native, has many ready-made libraries that

make it easy to create applications and use native functions such as push notifications,

geolocation, or the camera.

Due to the possibility of creating applications for two platforms simultaneously,

Flutter enables faster code writing and, as a result, more efficient delivery

of the final product. Working with this technology also allows for faster application

testing. Programmers can almost immediately see and check the changes in real time.

The testing process is also shortened thanks to the UI app itself for both the latest

and older versions of the platforms, contributing to maintaining compatibility

with all platforms. Finally, it is also ideal for companies that want to create an MVP

(Minimum Valuable Product) for their project. In the case of startups, the

cost of Flutter app development, which is often half the cost of separate

development of applications for Android and iOS, is also an advantage.

10
The disadvantages of using Flutter
Flutter has many advantages, especially when it comes to projects that need to be

delivered quickly while maintaining high quality. In Flutter, all of these elements

are possible, but it is not free of flaws like other technologies.

Despite its dynamic development, Flutter is still in its early stages. However, its

dynamic development makes Flutter more and more stable. Another disadvantage

is the underdevelopment of some extensions. Therefore, it is best to involve a highly

experienced team to work with this technology. To create Flutter apps, you need to

know Dart, but unfortunately, that’s not all. To write plugins communicating with

native apps, the team needs people who specialize in Android and iOS.

Why Flutter?
Entrepreneurs often choose Flutter thanks to its possibility of developing projects

for different operating systems simultaneously. It helps them save time and reso-

urces. Besides, this technology provides a lot of useful features, such as hot-reload

(reloading applications in a few hundred milliseconds), the composition of the

interface with aesthetic and well-designed components (widgets), or a focus on

a particular programming style. These capabilities are extremely attractive

to companies and programmers who want to provide aesthetic and consistent

solutions for the two most popular platforms.

Flutter app development is a great idea, especially if your company or startup

is at an early stage. Nowadays, mobile applications are crucial in the lives of every

person. They make our lives easier and our work much more efficient and advanced.

Thanks to them, we can easily order a book, make any purchase, and even measure

our medical condition.

Is Flutter going to replace other SDKs?


Each SDK can be categorized as either „native” or „cross-platform”. If you build an

app natively for Apple’s iOS, you can’t port it to Google’s Android without starting

from scratch. But Flutter is a cross-platform development SDK, and as mentioned

before, there’s also React Native and Xamarin.


11
In today’s developer ecosystem, Flutter in particular is becoming increasingly

popular. According to JetBrains’ 2021 study on the state of the developer ecosystem,

„Flutter has surpassed React Native to become the most popular cross-platform

mobile framework. In 2019, it had a 30% share, and it now leads with a share

of 42%”. It’s a popular option for developing top-notch mobile apps due to its

advantages – over half a million apps have been created using Flutter so far.

When comparing Flutter vs. React Native – the biggest competitor, the most nota-

ble distinction is that the Flutter team uses plugins created by the Google team

for features like geolocation and mapping. Unfortunately, React Native is best

suited for use with apps that only require a location once and don’t need to save it.

Flutter’s improved stability through system updates makes it more user-friendly.

This means that the app will continue to function normally regardless of whether the user

is running iOS or Android. However, as React Native uses native components, there

may be issues with the launch app after the update is rolled out.

Given Flutter’s present popularity, it’s safe to expect that Google will make

an effort to continue the development of this tool. Is it possible that more cutting-edge

alternatives to Flutter will emerge? In all likelihood, that is. Even so, Flutter’s future

looks promising.
Key takeaways

Flutter saves time and money by developing one app for several

operating systems.

Developing a mobile app in Flutter is perfect for early-stage businesses

or startups.

Flutter is gaining popularity among developers and, right now,

is the most popular cross-platform mobile framework.

13
Expert’s Recipe: Best Flutter tools
for efficient development?

The most effective use of Flutter requires the use of specialized supporting tools.

When developing in Flutter, you have access to many unmatched tools for addressing

issues like code completion, debugging, and cross-platform support. Here are the 4 best

Flutter tools that will be useful for daily development!

Michał Gauza
Flutter Developer

1. Android Studio or Visual Studio Code


To develop a Flutter application in 2022, we of course need IDE. One of the most

popular is Visual Studio Code and Android Studio. My daily driver is Android Studio

so here are a few tips to make Flutter development faster. Most of them (if not every)

you can also do in VS Code.

2. Codemagic
Codemagic is a CI/CD tool for mobile platforms, especially for Flutter SDK. If you (like

me) don’t like setting up CI/CD this tool is a blessing. You can set up your CI/CD in a few

steps (with deployment to stores or Firebase App Distribution). Even if you are new

to this topic Codemagic has one of the best documentation I have ever seen. Every

month 500 minutes so if you have a small project this is the perfect solution to try.

3. Firebase and Google Cloud Platform


Firebase and GCP are together because these things are connected. Hard to explain

how much this tool is useful, better to say that I use this in every project. 14
4. Vysor
This app does not help with development but more with presenting our app. Vysor

allows us to display our phone screen on a PC and show what we and our app

are doing. Not helpful in development but overall a nice-to-have application.

5. Mason
This is one of my favorite Flutter app development tools and IMO really unapprecia-

ted. So just a quick intro about what Mason actually is – it lets us generate code from

bricks (templates). It works similarly to Android Studio templates but Mason is more

powerful. With Mason, we can generate a few files or even whole projects!

Recipe

15
When should you choose Flutter?
The developer community is embracing cross-platform application development

toolkits. They are mainly characterized by cross-platform code usability or reusable

UI elements. By choosing a core that allows creating projects for different operating

systems simultaneously, companies save on development time and financial aspects.

Besides, this technology provides many valuable features, such as hot-reloading

(reloading the application in a few hundred milliseconds), and composing

the interface from aesthetic and well-designed components (widgets). With all

these advantages, it is clear why more and more products are created

in this particularframework.

10 best examples of Flutter mobile apps


Since Flutter became a recognized tool for mobile app development and investors

recognized its business advantages, more and more applications are created using

this open-source. We have selected the most exciting applications created in Flutter,

each of them representing a different category, which shows how broadly Flutter

is used in mobile app development.

Google Ads
While presenting the best examples of Flutter apps, it is impossible not to mention

Google Ads – an application created by Google (just like Flutter) that arouses some

curiosity and generates consideration about whether Google will make more tools

using its products. Google Ads is a tool used to collect statistical data about sites and

services. Clicks, conversions, views, and audience groups are some of the information

extracted using this tool. This information helps conduct digital marketing campaigns,

and marketing specialists mostly use it. Like all other Google products, Google Ads has

an easy-to-use interface that makes sense on its own.

Philips Hue
The Philips Hue lighting system was one of the first intelligent home management

products. It has become increasingly popular with a growing number of products


16
and integration with other devices dedicated to space management. The development

team has started the first phase of work with Flutter to release two apps to control

lights in 2019 – Hue Bluetooth lights and the Hue Sync box. Philips Hue is using Flutter

in all their mobile applications. Philips Hue offers a range of possibilities to control

lighting – the user can decide on the light intensity, and its shade, or choose any color

from a range of colors. It is also possible to automate lighting to match an individual’s

daily cycle or synchronize light with music, games, and movies.

My BMW
BMW is a prominent automotive app developer and supplier with a 100% in-house

Flutter architecture. My BMW is an application compatible with your vehicle. Thanks

to it, you can control the security of your car, and prepare it for driving by turning

on the air conditioning, heating the seats, or setting the preferred route.

This automotive app is perfect for users of electric and hybrid cars, allowing you to

monitor energy consumption and costs via the charging and air conditioning timer.

With an installed application, you can also contact the dealership of your choice

or be notified of upcoming services. My BMW is your everyday driving assistant.

17
RTYST Applover’s Project

RTYST is a mobile application with video streaming technology that helps aspiring

artists share audio-visual content while competing in contests. You can think of it

as Tik Tok for aspiring artists around the world. The idea was born from the hearts

of novice creators who wanted to share their talent, build an engaged fanbase, find

peers to collaborate with, create traction in their industry, and generate income.

In contrast to traditional social media promoting existing, career-advanced stars,

the RTYST platform supports those who are at the beginning of their journey.

We used Flutter technology to develop the mobile app on Android and iOS. Our

client wanted the user experience to be of the highest possible quality, irrespective

of the localization and the quality of the users’ network. Even though we only had

a small budget, we were able to come up with a good way to speed up the loading

of the video.

We used the Amazon CloudFront (CDN) service, which takes data from AWS

S3 and distributes it to numerous databases located around the world. The

users’ requests are sent to the nearest localization, which helps to avoid delays

related to the distance between the user and the central database.

We put in a mechanism for videos to be preloaded. The movies that come

after the one you’re watching are loaded in the background, so when you go

to the next one, it starts right away.

Optimization of the videos with the usage of the FFmpeg library to decrease

the size of videos while maintaining the best quality at the same time. The key

here was to compress the videos using appropriate parameters.


Nubank
Nubank is the largest financial services technology company in Latin America.

Currently, 40 million Brazilians use its banking services. At Nubank, test automation

is a development priority. Hence, after much deliberation, the technology choice

fell on Flutter, which has excellent testing capabilities (built-in testing infrastructure

for unit, integration, and end-to-end tests without the need for rendering to the

screen). With improved hot reload features, excellent official documentation,

and a more reliable API, the Flutter development experience is excellent.

Cadi59 Applover’s Project

Cadi59 was envisioned by people, who have been working in the golf industry

for over 30 years and have seen the troubles impacting it over that time. It aims to

bring golf club professionals and golf club members closer together by giving them

a platform to interact on a level that is essential in today’s world.

The server part of the application was written in the Ruby language. Ruby language

is interpreted, fully object-oriented and dynamically typed. Moreover, it’s flexible and

in connection with the Ruby on Rails framework, it allows for the implementation

of both very simple and complex solutions.

Finally, the mobile app for the Android and iOS platforms was prepared in Flutter

using Clean Architecture and Bloc/Cubit state management. The app was created with

the recently released version 2.0 of Flutter which brings in a lot of features in terms

of performance, security, accessibility, and usability.


Reflectly
Reflectly is a virtual journal that uses artificial intelligence to organize and reflect

on daily thoughts and topics recorded in the notes. The app is meant to organize

thoughts and accompany a healthy approach to mental health and mindfulness.

The app was initially developed using React Native. However, creating a similar

version for Android and iOS proved to be a considerable challenge. Thanks to the

non-complexity of Dart 2, it fell on Flutter, and thanks to this choice, the develop-

ment team managed to port the application in two months. Thus, the UI for users of

these operating systems is the same.

Family Section Applover’s Project

The Family Section arose from the needs of the inhabitants of Saudi Arabia,

where the sale of homemade food is very popular. The application is intended to act

as a platform for families to share the dishes cooked by themselves with their

potential customers. The families can add self-made meals there, and the consumers,

on the other hand, can easily find those households in their neighborhood. Until then,

such advertisements could only be found on Facebook. It makes our client’s solution

very innovative.

Our client wanted to release the MVP of their product on the market as soon

as possible, so the development phase had to be done quickly. The final app was

intended to be used mostly on mobile devices. For that reason, we decided to use

Flutter and Ruby on Rails. Thanks to Flutter, we were able to create the app both

for the iOS and Android platforms, and the fast RoR allowed us to keep up with

the pace of the front-end development.


Pairing
Dating apps are just as popular as those for organizing shuffles. Since Tinder paved

the way and made many people take their first steps into online dating right there,

the creators of Pairing decided to create something with a similar interface but easier

to use, in a more sophisticated style. Pairing is a great example of a popular app that

has been made with Flutter.

Pairing features a lack of targeted ads in addition to using algorithms to match pairs

of people who potentially want to connect. Additionally, an enhanced search option

allows users to match with people outside of their immediate area.

University of Wrocław Applover’s Project

The University of Wrocław is one of the oldest universities in Poland. With its years

of experience, interesting courses, and professional staff, the university attracts

numerous students from abroad. That is why we were asked to build a mobile

application that would help foreign students get the most useful and essential

information in one place. One of the crucial pieces of information was The Jungle

Book, which we had in paperback. Our goal was to digitize it in the most suitable way

for younger generations.

The app was developed for the Android and iOS operating systems using the

Flutter framework. UI and UX design were crucial in this project to organize the data

in a user-friendly way. It needed to be as easy to understand as possible for all of the

students coming to study at Wrocław from all over the world. To ease the orientation

between the various buildings of the University of Wrocław, we introduced a map with

search options for particular objects.

We were happy to develop the application by introducing reusable components,

which shortened the creation process and allowed us to focus on functionality

and user experience.

21
Google Pay
Google Pay was initially called Tez and was introduced as a payment app in India

in 2017. As its popularity grew, Google expanded the work on the app, and thus Google

Pay now has around 70 million active users.

Currently, integrating the Flutter app with Google Pay is extremely easy, just with

the help of a plugin provided by Google. The plugin gives you the ability to add

functionality to your app on different platforms using a single and familiar

codebase written in Dart. The open-source plugin for Flutter simplifies adding

payments to Flutter’s cross-platform apps.

The plugin allows you to add components to apps across many platforms using

a single, well-known Dart code base. It changes the usual steps needed to allow

payments so that they work with the way Flutter builds components, interacts with

the app’s user interface, and sends data between the native and Dart ends.

22
Is it worth developing a mobile app in Flutter?
The answer to this question is not so simple because it depends on the effect you

want to achieve. However, if you are looking for a solution that will allow you to save

resources and time compared to native development but will also provide an aesthetic

UI and reach the largest possible audience – it is worth considering developing

applications in Flutter. The above list is just a smattering of mobile apps. Flutter

is a relatively new technology, so the number of applications built with it is small,

but it allows for the introduction of new ideas to the market, and applications built

with Flutter may become the most popular in the future.


Key takeaways

Since Flutter became a popular development tool and investors saw its

financial potential, more apps began using it.

Flutter is used by a wide range of companies – from startups to corpo-

rations like Google, BMW, or Philips.

If you want to deliver an appealing UI and reach the widest possible

audience, Flutter is your go-to option.

24
Expert’s Recipe: Should you build
your web app with Flutter Web?

Besides Android and iOS, Flutter allows you also to build web applications from

the same codebase. Does it mean that you can run any app prepared for mobile

as a web app?

Szymon Mazanik
Flutter Lead

In most cases, yes. However, a good quality web application will require UI tweaks

and preparation for more giant screens. If your mobile app uses some mobile-

specific APIs like a camera or local storage, implementing these features in a web app

may be more challenging or even impossible.

Flutter Web can use two rendering engines: HTML or CanvasKit. It’s up to the

development team which one should be used. Both have their advantages

and disadvantages, which we will discuss later.

When building with Flutter Web brings business


value?

1. Web and simultaneous mobile development


If you plan to create an app for mobile and web simultaneously, Flutter might be

your go-to solution. Building your whole product from one codebase with one team

of developers may sound unbelievable, but it’s possible now.


25
2. Reuse code from an existing mobile app
Another use case might be if you already have a Flutter mobile app and want to work

on a web version. In that case, you can use already existing logic and UI elements

to output web apps faster than using other web frameworks. The web version of your

app doesn’t have to implement all features the mobile one does.

3. Companion app
Many of our clients also leveraged Flutter for web apps that are companions

to mobile apps. An example of this can be an admin panel for your mobile app, demo

app, or proof of concept that shares code with a more extensive system already built

with Flutter.

Recipe

26
What to look for when outsourcing
Flutter development?
Outsourcing has recently acquired a lot of interest as a strategy, and there are various

reasons why companies think it’s a good idea. If you want to launch your app quickly

without spending money on hiring people, or you have limited in-house talents, out-

sourcing Flutter development might be a great solution for you.

How does offshore software development


outsourcing work?
Outsourcing refers to relocating your development work to another country.

The most significant distinction between offshore and nearshore outsourcing

is proximity to your own. Nearshoring occurs when another development company

provides services from a location that is quite close to your organization.

And outsourcing to countries with lower-cost economies is known

as offshoring. It is made up of members of the development team who are based

in different countries.

The majority of companies contemplate employing an app developer on a full-time

basis. Outsourcing is much more cost-effective and faster than in-house develop-

ment since it eliminates the need to pay for office space, set up a whole development

infrastructure, and hire an internal skilled team.

It may help you make up for a lack of internal resources by allowing you to focus

on your main responsibilities. That, however, is simply the tip of the iceberg.

All you need is a product concept to get started, and you’ll have access to a full suite

of analytics, consulting design, and development services.

#Ta
coA
ppro
ves

27
By being not limited by location, you can take advantage of other

teams’ expertise and professionalism. You not only get a development team

with more expertise and a broader skill pool, but you also save money, reduce

time, and avoid micromanagement.

However, to make the most of offshore outsourcing, you must prepare a list

of specific criteria, make a budget estimate, spend some time researching companies,

and choose the right agency to work with. It may be tricky, so here’s how to succeed

in choosing a software company.

28
Where can you find the best Flutter app
developer?
When it comes to the outsourcing development process, you’ll need to provi-

de a detailed explanation of your Flutter app development concept. To put it

another way, you must first decide what you want to get out of the application.

Only you are aware of the company’s core beliefs. Even if you use an outsourcing com-

pany to assist you to produce digital products, having a vision for the product is es-

sential. It’s also simpler to identify suitable companions or reduce your possibilities

when you have a clear idea of what you want to do. Keep also in mind that your most

important resources are money and time.

When you know what you want, narrowing down a list of possible companies for your

project might be difficult. There are many agencies to choose from. You may rely on

the following resources to help you get things done faster:

Clutch. Clutch is a business-to-business (B2B) research, rating, and review

platform. Leading IT and marketing service providers and applications

are identified on this platform. As a third-party service, it helps businesses

manage their online reputation, enhance brand awareness, and drive more
visitors. Take a peek at the feedback they’ve received. Lookup a candidate’s

name in industry rankings.

TechReviewer. This is a similar portal to Clutch that publishes rankings

and evaluations of the best software firms. You can find the most up-to-date

information on technology businesses and their capabilities.

Portfolio. When you find an interesting candidate, examine the portfolio

of the company. You should look for relevant experience related to your

project if you want to end up with a truly great outcome. Ask whether they’ve

produced similar solutions in other industries if app development businesses

will not have a history in the same area as you.

Recommendations. Also, check to see if any of your relationships have

recently outsourced development for any of their applications.


29
How do you choose the best Flutter app
development company?
It’s not easy to select the right company for Flutter app development

services. Involving someone in the development of your app idea may appear

to be risky. And you may not want to disclose it to developers. It’s completely

understood, yet the advantages of working with a development company can

be enormous. Having a dependable partner that understands the complexity

and purpose of application development is necessary for success. The chosen

software company should have a lot of expertise and provide services ata reasona-

ble price. Before you begin your search, there are a few factors for you to consider.

Define your company’s needs and the budget


The first step is to know what your business and the digital product need.

Recognize your objectives and answer to yourself what development

platform you require. Which features should be included in your Flut-

ter application? What outcome is expected with this app? All of this infor-

mation is required to create a work plan and choose the right specialists to collabo-

rate with, whose skills and experience perfectly match your project assumptions.

Also, establish your budget and decide how much you want to spend on

Flutter app development. It’s critical before looking for someone to deve-

lop your digital product as the development agency needs to know your

limit. Of course, the software cost will vary depending on your requirements.

Look through your contacts and internet platforms


When you know what you’re looking for, it’s a matter of choosing the best partner

out there. Maybe you have some contacts that worked with software development

partners and can advise you. When you find an interesting choice, it’s time to verify.

30
Evaluate their technological stack
A business that has worked on a variety of mobile apps can offer you many possibilities

and help you choose the best tech stack. Check out what technologies that company

worked in. It’s better when such an app developer worked not only in Flutter but also

in iOS and Android. Technology selection is critical when selecting a partner. So it’s

essential to check for firms who have completed similar projects to yours.

Examine their portfolio and reviews


It’s an easy method for improving your chances of finding an app development

firm that meets your needs and understands your product. The portfolio is

essential for determining technical skills, project ideas, business areas, and other

factors. Check whether the company has worked in the past on a development project

comparable to your organization’s requirements. You can get a sense of their expertise

and skillset by looking at their case studies. Reviews and ratings will also give you

a glance at the skills you’re looking for. You can search for them on mentioned online

platforms like Clutch, or the company’s website testimonials. It’s a great way to learn

about the whole app development process and what communication with the Flutter

developer’s team is like.


Key takeaways

You have to explain your Flutter app concept when outsourcing.

First, decide what you want from the application.

The chosen software provider should be skilled and affordable.

Before you search, consider these factors.

Search for the right partner looking by at their Clutch and portfolio,

or get some recommendations.

32
Expert’s Recipe: Flutter app testing
– pro tips you should know

Software testing undoubtedly brings many advantages, increasing trust in the created

project and also allowing you to indicate errors during mobile app development. If you

want to develop a high-quality product, you definitely should test it. It is no different in

the case of building commercial apps in the Flutter framework.

Michał Smolarek
Flutter Developer

1. Try to achieve 100% test coverage


It is very important to cover our code with 100% tests. It means that all logical behavior

has its test. Of course, that situation doesn’t mean that our code is 100% bug-free or

that everything works as expected. One of the biggest benefits of covering code with

100% tests is that our future code will also have tests and will not break the tests we

have already written. If our codebase has 100% test coverage it forces us to write tests

for future code.

2. Mockito
Mockito framework is a library for testing purposes to mock class behaviors. Why sho-

uld you use that Flutter package? Imagine that you have communication with API and

sometimes a single call takes longer than usual. We don’t want to make that call and

wait for the result because we test behavior and result in our test so we can mock it

using Mockito.
33
3. Manual app testing
Automated tests are not always the best choice, especially if we are dealing with very

customized solutions. Sometimes it is better to engage an additional person to test

the functionality “manually” which often allows us to find the bug in question faster. In

addition, if such tests are carried out by several different people in different ways, we

can be almost sure that the code we wrote works correctly.

4. Try not to bypass automated tests


The process of running tests is, of course, the extra time you should spend on Flutter

app development. Such code should be maintained and always keep tests in mind for

new functionality. Consider that a good investment of resources in tests will increase

the confidence of our code and often eliminate bugs.

Recipe

34
How much does it cost to develop
the Flutter application?
There is a long way from idea to implementation in any field. Many outstanding

concepts fail because of their lacking mobile app development partnership. Let’s

say, you came up with a great app idea for mobile devices, but need some help with

developing it. It’s better to consider searching for someone who is an expert in that

area. But what kind of budget you should estimate?

How to optimize your app development cost?


Some people believe that they can make the app completely by themselves, or that

they can hire an amateur student to do so. At some point that could be a solution, but

not necessarily a good one. Learning how to code and design apps is time-consuming.

It’s much easier to find a reliable partnership and delegate at least some parts of the

app project.

Why do you need a mobile app development partner?


Engaging someone in the business you’ve established might seem risky. You may re-

fuse to share your most important thoughts with app developers you work with. It’s

understandable, however, the benefits of collaborating with an IT partner might be

significant. A good partnership helps you with saving your time, energy, and resources.

It gives you the chance to create the best version of your desired mobile app, which

will not only open new opportunities for viable business growth but also allow the

promotion of your business.

Though the advantages are numerous, the process of locating the best IT provider can

be quite difficult. Using professionals to make your application brings you not only a

well-built mobile application that correlates with your marketing needs. This process

takes a lot of time, but in the end, it pays off with the most valuable results in exchange.

35
What does the process look like?
In any field, the path from concept to implementation is long. The primary purpose

of releasing an application to the market is to get maximum popularity. Effective

planning is a number one principle that can be applied to both large corporations and

startups. Customer research should be the beginning point for everyone going for the

app design.

Your IT partner should have a strong knowledge of your sector as well as a track

record of success. By communicating your business needs and desires, you can both

work out a solution to fulfill objectives. They will assist you at every stage of creating

a successful app solution:

Planning and product design workshops

Minimum Viable Product (MVP) development

Services for the whole development lifecycle

Further support and optimization

As you can see, during the development process of an app, your IT partner should not

only know how mobile development works but also the app market. There should be

a clear division of responsibility areas. When looking for a partner to build apps with,

it’s crucial to have a clear idea of what you want out of this.

What to expect from the partnership?


Your IT partner will be in charge of some of the most sensitive and vital aspects of your

organization, and it’s crucial to trust and rely on them. It is best to collaborate with

an app development company that specializes in your type of technology rather than

a generalist or a development team that specializes in something entirely different.

An IT partner can help you choose the best technology stack for a digital product.

Mutual trust is the foundation of all relationships. Even though several businesses

offer high outcomes, most of them are unable to accurately define the benefits.

36
The partner supports the development of the project from start to finish, including

after it has been published on the app marketplace. A given partner not only knows

how to create an application but also how to publish it, what is needed there and what

should you pay attention to.

Even the finest mobile applications will fail if they do not reach consumers. App shops

are locations where people may download and learn about applications. The key

to success in these stores is iOS App Store Optimization and/or Google Play

optimization – depending on the selected mobile app platform.

When you’re ready to take the initial steps toward a good partnership, be sure your

potential partners understand your viewpoint and share your goals and ambitions.

Estimating the cost of the Flutter application


It’s your mobile app concept that influences the development costs. However, cost

estimation can be confusing, as the factors that make it up can be very complex

and depend on the experience of the company you choose. The duration of the project

over the app development and the overall cost has an impact:

the complexity, number of functionality, and features your app will have

the level of UI and design sophistication

the infrastructure needed for your application host to run

the size of the development team

The Applover’s headquarters is located in Wrocław, Poland. Our location in Central

and European Europe determines the cost of our services. Thanks to that, we offer

our customers competitive prices while maintaining the highest quality of develop-

ment. Our developers’ average labor rates range from 320 to 480 dollars per person

day, and the final cost depends on the project’s requirements and advancement level.

If you’re wondering what budget you should prepare when planning to develop your

application in Flutter, then the total cost of creating an app is more or less 40 000 USD.
While at the same time, creating an app for Android and iOS separately is usually

valued at 35-50 000 USD each (70-100 000 USD total).


37
How Applover can help you?
Because of the reduced total cost of hiring skilled programmers, outsourcing

is becoming a more popular method of mobile application development. And one of

the most attractive places for IT outsourcing is Poland. The reasons for this are similar

time zones, which make it easy to communicate with the western part of Europe.

We’d be pleased to speak with you if you’re considering building a mobile app

and are searching for experienced Flutter professionals. We were named Top Flutter

Developers in 2021. We’ve created many successful mobile apps. In Google Play, one

of our Flutter apps was ranked #5 in the health & fitness category. As our clients have

stated, we can manage any Flutter-related issues and assist in achieving project goals,

we are just one of the best app development companies!

We uniquely approach each project. Our work is based on a proven process, which

you will read more about in Applover’s Process Book. Our clients can expect high-

quality products, which is why we work with a highly qualified team. Regardless of the

chosen technology, we make sure that the projects we develop bring high value to their

originators and meet their business goals.


38
Key takeaways

Key takeaways

Your IT partner should have sector knowledge and success. They’ll help

at every level of app development.

Applover’s developers’ average daily charges range from 320 to 480 USD,

depending on the project’s requirements and level of development.

The entire cost of producing a Flutter app is at least 40 000 USD. Creating

an MVP app for Android or iOS costs 35-50k per platform (70-100 000

USD total).

39
Expert’s Recipe: Reasons to use
Flutter for your next mobile app

Are you still wondering which framework you should use to create your next mobi-

le application? When it is time to choose the technology, there are many variables

to consider. The leading solution is the Flutter development framework.

Kamil Piekarz
Flutter Developer

Free and open-source – everything is well documented and gives advantages

like flexibility, quality, and freedom.

Cross-platform solution – currently, applications made with Flutter can be

published on iOS, Android, the web, and desktop.

Powerful UI Engine – the framework provides more than 1,000 in-built widgets.

Plenty of open source packages available – pub.dev contains a lot of ready-

-to-use libraries made by developers from across the globe.

Performance – the standard Flutter frame rate is 60 frames per second (FPS).

“Hot Reload” – there is no need to rebuild the mobile app every time you

change something in your code to see the changes you make.

Animations – Flutter was created with animations in mind and makes

developers’ lives easier.

Less time spent on Quality Assurance – a single codebase affects testing time.

Startup-friendly – a powerful engine to hit the niche fast with MVP products.

Growing Popularity and Developer Community – a powerful community

of many developers who work to make Flutter better.

40
What to expect after you
contact Applover?
When you contact Applover, we respond within a few hours and arrange with you

an intro call. This is an opportunity for us to get to know each other, and for you to

tell us about your company and business needs. At this stage, if you want, we can sign

an NDA (non-disclosure agreement). What’s important for us is to get a complete

picture of the situation at hand. Keep reading to learn more about how we evaluate

your company’s needs and what’s next!

In the beginning, there was a brief


At the beginning of every collaboration, we ask you to complete a brief. What is it?

It’s a set of questions directed to the client, which initially defines the goals,

as well as the functionality of the product, and helps us create a work plan. The brief

is also useful for creating an initial valuation.

Don’t worry about not knowing how to go about completing the brief! In the

document that we will send you, you will find examples and tips that can help you

define your assumptions. However, if you need additional help, then our team will

always provide you with all the answers and advice you need! We are here for you.

The brief is essential for further cooperation, so it’s worth spending as much time

as possible on it in focus. Not only will it help you define the idea and main goals of the

product you want to create, but it also allows us to get to know your vision better

and becomes an initial reference point for you and us. Based on the brief, we are also

able to conduct an initial quote. How does it work?

41
Initial valuation, which means everything
is under control
Let’s be clear – pricing is never an easy subject. That’s why we prepare an initial

valuation as soon as we get familiar with the concept detailed in the brief. This

allows us to check if we are a good fit for your budget. By determining the budget

at the initial stage, you will know where you stand from the very beginning. For us,

good communication and honesty are the main pillars of good cooperation. Our

proposal will tell you how many developers will be needed for your project, as well

as how many hours they will need to work and at what rate. The valuation can also be

presented in the form of a spreadsheet divided into separate functions and sections.

We care about making everything easy to read for you.

Remember that such a valuation is in no way binding – it is an opportunity to have

a good chat about the budget. If it turns out that your capabilities are different, we can

try to work out a monthly quote, or we will try to find another solution. Maybe some

technologies and functionalities can be modified or replaced with others. Let’s talk

about it!

Get to the framework agreement


Let’s imagine that everything went smoothly with the valuation – what’s next? We

need to define the framework of our cooperation, the rates, and the degree of

confidentiality of the project. To the contract, an extension is attached in a separate

document, which describes specific orders such as:

Business analysis

UX/UI analysis

First workshop

Second workshop

Functionality specification

Clickable mockups

42
Each order is broken down into the following parameters:

The subject of the order (scope of work)

Price

Deadlines

Warranty

To reserve staff for the preparation of the next step, which is the specification, it is im-

portant to sign the documents within a maximum of 7 days of receipt. This will allow

us to carry out further steps without problems!

First workshop ahead


This part will gather the information and materials that our team will need

to create a preliminary specification and technical analysis, as well as a business

analysis. Our specialists, with the help of the information gathered from you, will deter-

mine, among other things, what user expectations might look like, what functionality

will be needed to create the product, and, most importantly, what technologies would

be recommended for a project of this type.

By sharing as much project data with us as possible, you help our team understand

the basics of your business and provide direct insight into how your business works.

The first workshop is also a time to define and discuss any technological risks

associated with the project. To make you feel comfortable, we can conduct

the workshop at a location of your choice, or remotely!


In the second workshop, your project takes
shape
During the second workshop, you will already be familiar with the tools that our

team will use to create your project. During this stage, we will create the final version

of the specification (that is, the set of requirements for the product) and wireframes.

Wireframes are nothing more than a visualization of the product. With the help of such

a mockup, you will see the behavior of the various functionalities and their location

on the user’s screen. They are a raw preview of the product without design elements.

The second workshop is for you to have a look at the first results of your product work.

You will see if your vision is well reflected in the project. Also, you will be able to get

better familiar with the tools you are using and discuss problems and new challenges

that may arise. After the workshop, you will get a summary of all the findings from us.

What are wireframes for?

Creating a mockup of your product is key to giving structure to the entire project.

While working on the final wireframes, you’ll meet our UX/UI Designers – the people

responsible for building user experience through thoughtful interactions on

a website or app, and who will take care of the visual side of the product. With the help

of prepared sketches, you will see suggestions for the look of the site. To stay up to

date, we will give you access to wireframes in a Figma file, so you can preview the work

on the product and freely contact our team.

What are wireframes for?


Creating a mockup of your product is key to giving structure to the entire project.

While working on the final wireframes, you’ll meet our UX/UI Designers – the people

responsible for building user experience through thoughtful interactions on

a website or app, and who will take care of the visual side of the product. With the help

of prepared sketches, you will see suggestions for the look of the site. To stay up

to date, we will give you access to wireframes in a Figma file, so you can preview

the work on the product and freely contact our team.

44
Why is project specification so important?
This is our source of all knowledge about the project. All its features, necessary

tools, details of functionality, specific business requirements, names of individual

components – everything is in the specification, which will be prepared

in a private document. With this form, you can add comments to individual points

and communicate with the development team. Thanks to the specification, both you,

and we have clearly defined actions, and all possible delays in the deadline

can be detected earlier. Remember that changes inspecifications are not

impossible, but may affect the valuation.

The kick-off stage


We are close to the finish line! Once everything is set and approved – we finalize legal

matters. Signing the framework agreement, purchase order, design, and development

work orders. After everything comes the moment when the Project Manager presents

the project to everyone involved and well… we set a start date!

Feel free to contact us!


We are aware that the IT world can seem very complicated. That’s why it is good

to have trusted partners. At Applover, we make sure that our clients feel confident

and informed during the process of building and developing a product. The comfort

of cooperation is important for both sides and is the key to creating a fully qualitative

product. Hope to see you there!

45
Thank you!
Thank you for taking the time to read The Flutter Handbook!

If you have any questions, get in touch with us!

Jan Kamiński
CSO

jan@applover.com

Applover HQ Poland
Świeradowska 77,
50-559 Wrocław
Poland

You might also like