Upgrade to PRO for Only $50/YearβLimited-Time Offer! π₯
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
From 0 to production with Flutter in a month*
Search
Luca Nicoletti
November 30, 2024
0
27
From 0 to production with Flutter in aΒ month*
Slides of my talk at DroidconItaly 2024: From 0 to production with Flutter in a month*
Luca Nicoletti
November 30, 2024
Tweet
Share
More Decks by Luca Nicoletti
See All by Luca Nicoletti
Using Google Maps with Jetpack Compose
lnicolet
1
130
Using Google Maps with Jetpack Compose
lnicolet
0
180
Drawing on GoogleMaps with Jetpack Compose
lnicolet
0
160
Engineering a design system
lnicolet
0
700
Compose your TRILL
lnicolet
0
170
MVI with Jetpack Compose
lnicolet
1
490
Jetpack Compose: exploring a pre-alpha
lnicolet
0
270
MVI with Jetpack Compose
lnicolet
1
560
MVI with Jetpack Compose
lnicolet
2
250
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
700
Building Applications with DynamoDB
mza
96
6.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Site-Speed That Sticks
csswizardry
13
990
What's in a price? How to price your products and services
michaelherold
246
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.7k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.2k
GitHub's CSS Performance
jonrohan
1032
470k
Rails Girls ZΓΌrich Keynote
gr2m
95
14k
[SF Ruby Conf 2025] Rails X
palkan
0
500
Transcript
From 0 to production Β© Luca Nicoletti 2024 With Flutter
in a month*
Luca Nicoletti β’ Android Engineer ~7 years β’ Jetpack Compose
enthusiast β’ Youtuber (ish) β’ Into Multiplatform β’ Not only KMP π
How?
Chat GPT
Questions?
The timeline
The timeline 1 month development 03/05 27/05 First commit First
release
The timeline Weeks before 03/05 The wall π§± Coding π»*
The switch π
The timeline Months before Coding π» 08/03 The idea π‘
The planning π The design π¨
The timeline Diamong painting
The timeline Diamong painting
The timeline Years before 2024 Coding job The idea π‘
2013 May - Jun 2017 } Flutter test*
The app π±
The app π±
The app π±
The switch π
The switch π Facing a wall π§± β’ Slow rendering
(with Jetpack Compose) β’ Would need a second project for the Native iOS β’ With 0-ish knowledge of the platform
The switch π Why not React? β’ Adversion through Js
β’ ReactNative uses native components β’ Would the rendering problem occur again?
The switch π Why not KMP? β’ Love for Kotlin
β’ Compose Multiplatform β’ Would face the same problem? β’ LocalDB? β’ Still too early?
Tools
Tools What I used β’ Visual Studio Code + Terminal
β’ Android Studio β’ Mac OS β’ iPhone β’ Emulators β’ Physical Android
Tools What I used
The development
The development Libraries β’ Navigation: `go_router` β’ Persistence: `provider` β’
Storage: `shared_preferences` & `sq f lite` β’ Interactions: β’ Sounds: `soundpool` β’ Vibrations: ` f lutter_vibrate` β’ Upgrade dialog: `upgrader`
The development Libraries β’ Others β’ ` f irebase_analytics` β’
` f irebase_crashlytics` β’ ` f irebase_database` β’ `cached_network_image` β’ ` f lutter_svg`
The development go_router
The development go_router
The development go_router
The development Provider
The development shared_preferences
The development shared_preferences
The development shared_preferences
The development sq f lite
The development sq f lite
The development sq f lite
The development Soundpool
The development Soundpool
The development f lutter_vibrate
The development Upgrader
The development Upgrader
The development Libraries β’ Image picker: `image_picker` β’ Image cropper:
`image_cropper`
The development image_picker
The development image_picker & image_cropper
The development image_cropper
The development image_cropper
The development image_cropper
The development image_cropper
The development Libraries β’ UI β’ Confetti: `confetti` β’ Intro:
`page_view_dot_indicator`, `carousel_slider` β’ Intro: `rotated_corner_decoration` β’ Capturing the Widget: `widgets_to_image` β’ Sharing the result: `share_plus`
The development widgets_to_image & share_plus
The development widgets_to_image & share_plus
The development confetti
The development confetti
The development rotated_corner_decoration
The development rotated_corner_decoration
The development rotated_corner_decoration
First feedbacks
First feedbacks What to improve β’ The timer gives anxiety
π₯ β’ Haptic feedback π³ β’ Sound π β’ Multiple games at the same time βπΎπΉπ²
First feedbacks What to improve β’ Timer became collapsible
First feedbacks What to improve β’ Multiple games at the
same time βπΎπΉπ²
Release!
Release Now what? Task iOS Android Setup Developer account β
β Pay the fees β β Generate release builds β β Beta release β β Promote the release β β
Release Building them
Release Now what? Task iOS Android Setup Developer account π°
π° Pay the fees β β Generate release builds π° π° Beta release β β Promote the release π° π°
Problems
Problems What went wrong β’ ChatGPT is ok, not good
β’ ZoomableWidget* β’ Apps size! β’ Users really notice that!
Problems ZoomableWidget
Problems ZoomableWidget
Problems ZoomableWidget
Problems ZoomableWidget
Problems ZoomableWidget
Problems Widget generation
Problems Widget generation ChatGPT VSCode plugin
Problems Widget generation
Problems What I did wrong β’ Simple approach (Provider π)
β’ Complexity kept adding β’ No structure
Problems Provider
Future
Future Would I use it again? β’ Yes β’ No
Future Would I use it again? β’ Yes β’ Framework
knowledge β’ Enjoyment of development β’ Multi-platform β’ Good support & libraries β’ No
Future Would I use it again? β’ Yes β’ No
β’ App size β’ Language lacks features β’ Lacking knowledge (Architecture, best practices, etcβ¦)
The serious ones Questions?
Thank you! Β© Luca Nicoletti 2024 π