1 of 36

Scalability and optimization

From MVP to Full Fledged Flutter app

Debasmita Sarkar

GDE Flutter & Dart

@The__Debo

2 of 36

Agenda

Introduction to Scalability and optimization

01

Challenges to transform MVP to Scalable apps

03

Understanding MVP

02

Solutions

04

Case Studies

05

Q & A

06

3 of 36

What’s scalability and optimization?

01

4 of 36

Scalability

Optimization

5 of 36

Understanding MVP

02

6 of 36

What is MVP?

7 of 36

8 of 36

9 of 36

What is MVP?

MVP means Minimum viable product

  • Simplified version of the app.
  • Just enough features to satisfy early customers.
  • A foundation for what’s to come.

10 of 36

Flutter for MVP

Quick prototyping

Cross platform Development

Pixel perfect UI

High performance

11 of 36

Challenges Post MVP Creation

03

12 of 36

MVP

Scalable App

Supporting new features

Quality assurance

Handling different device sizes

Unknown errors

13 of 36

How to make scalable Flutter apps?

04

14 of 36

Modular Architecture

  • Organized Structure
  • Incremental Scaling
  • Improved Maintainability
  • Parallel Development and resource optimization
  • Efficient Testing

15 of 36

Modular Architecture

MVC (Model View Controller)

MVVM (Model View ViewModel)

CLEAN

16 of 36

MVC

17 of 36

MVC

Model represents the data layer,

View represents the UI layer,

Controller acts as an intermediary that handles the input from the View, processes it, and returns the output display (View).

When to use MVC?

Simple to medium complexity application

18 of 36

MVVM

19 of 36

MVVM

Model is the data layer,

View is the UI layer,

ViewModel acts as an intermediary, but unlike Controller, it doesn't know about the View.

When to use MVVM?

Apps with Complex UI interactions

Simpler testing

20 of 36

CLEAN

21 of 36

CLEAN

  • Presentation Layer: Responsible for displaying data to the user and handling user input.
  • Domain Layer: Contains business logic and entities.
  • Data Layer: Deals with data source code like consuming REST APIs, accessing local databases, and other data sources

When to use CLEAN Architecture?

Large scale application

Complex business logic

Highly testable and long term maintainability

22 of 36

Tailored State management solutions

Predictable Data flow

Performance optimization

Manages complexity

Increases readability

23 of 36

Tailored State management solutions

Provider

Riverpod

Bloc

24 of 36

Tailored State management solutions

Provider

  • For simpler to medium complexity apps
  • Straightforward state management solution.
  • More intuitive and less boilerplate code compared to Bloc.
  • Easy to learn and implement

25 of 36

Tailored State management solutions

Riverpod

  • More flexibility and testability compared to Provider.
  • For larger-scale applications
  • Complex state management needs.
  • Advanced state management solution

26 of 36

Tailored State management solutions

Bloc

  • Complex business logic
  • Need a reactive solution to manage state.
  • Medium to large-scale applications where the predictability of data flow is crucial.

27 of 36

Performance optimization

Flutter Devtools

28 of 36

Continuous Monitoring

Firebase Crashalytics

29 of 36

Case studies

05

30 of 36

1 Million+

31 of 36

10M+ Downloads

50% reduction in time required to launch new features

64% reduction in codebase size

100% code coverage

32 of 36

Venus has a beautiful name and is the second planet from the Sun. Venus is hot and has a very poisonous atmosphere

Nubank 100M+ Downloads

30% better merge success rate compared to iOS

600% faster merge rate of PRs

33 of 36

Venus has a beautiful name and is the second planet from the Sun. Venus is hot and has a very poisonous atmosphere

Google Pay 1B+ Downloads

70% reduction in engineering effort

35% reduction in lines of code

34 of 36

Q & A

06

35 of 36

Thank you!!

36 of 36

Connect with me!!