2 minute read

Wannabe Mobile App Developer

Mobile App Developer

After 12 weeks of late nights and burnt weekends, I've finally (more or less) completed a full mobile application built using Flutter. Here are some sample UI screens of the completed app:

ui screens
UI Screens of the app.

How does it work?

Well the architecture is pretty simple, to handle the different states I used GetX State Management and instead of building a backend with an API gateway to handle requests or even use Cloud Functions(Firebase)/Lambda Functions (AWS). I just used the Firebase SDK to query because it is able to handle the caches for me. Of course there's a trade-off, queries are slower in a sense, and it's not necessarily built for scale. At the present moment its meant for an internal beta of 100-200 users.

As you can see the architecture is fairly simple, no fluff right now, all of it is lean and green

architecture
Overview of the architecture.

Limitations

Long lines of code

While building of flutter is really nice and pretty straight forward, I've noticed that it gets really tedious as the UI components get more complex, and you need to really think how to write them better. Just a simple Screen with multiple "widgets" get go up to as many as 1000 lines of code. Most of the time while developing, I had a hard time figuring out which bracket/bracer belonged to which method.

Firebase? Firestore?

Working with Firebase again brings back memories, this has to be the most complex personal project I've ever attempted, it tested my understanding of Software Engineering Practices I've learnt and how well I could build something without any prior knowledge.

Flutter 3 wait what? Wasn't it 2.0

Flutter 3.0 most definitely is an entirely new framework to me, many things I did with Flutter 2.0 has changed, like Slivers, Scroll Views and how State management works. Honestly, I'd expected more out of Flutter but well it's popular but not that popular enough right?

Implementing a Search feature on the app was as challenging as integrating the in-app payments. The lack of documentations and the amount of outdated medium articles out there are just too many. The YouTube explanations were so rudimentary that I had to figure it out on my own by reading how the dependency was written by the Stripe team.

Next Steps

I'll probably launch the app to App Store in the coming weeks as I'm going to take a short break away to prevent getting burnt out from work and this side project.

RELATED POSTS |Blog, Learning, Mobile, Dart, Flutter

Get in touch 👋

Feel free to email me about anything. I'd love to hear from you!

You can also reach me at: GitHub or LinkedIn