Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
23
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
110
Using Google Maps with Jetpack Compose
lnicolet
0
160
Drawing on GoogleMaps with Jetpack Compose
lnicolet
0
140
Engineering a design system
lnicolet
0
690
Compose your TRILL
lnicolet
0
170
MVI with Jetpack Compose
lnicolet
1
480
Jetpack Compose: exploring a pre-alpha
lnicolet
0
260
MVI with Jetpack Compose
lnicolet
1
550
MVI with Jetpack Compose
lnicolet
2
240
Featured
See All Featured
A designer walks into a library…
pauljervisheath
207
24k
Statistics for Hackers
jakevdp
799
220k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Embracing the Ebb and Flow
colly
86
4.8k
The Invisible Side of Design
smashingmag
301
51k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Optimizing for Happiness
mojombo
379
70k
Being A Developer After 40
akosma
90
590k
Writing Fast Ruby
sferik
628
62k
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 🙏