Just for a brief introduction of mine, I am an Android developer for more than about two years now. I have been developing apps as a hobby and as a freelancer. Natively!!!
I have always been a great advocate of Native App development and always considered Cross-platform or hybrid solutions as cheaper solutions resulting in lower quality apps. Not that I never tried developing a cross-platform app. I did. Using React Native. But I was disappointed. I am not questioning the capabilities of React Native. They might be really good. But designing user interface of React Native was a pain for me. Maybe due to my lack of experience in React Native but I just didn't like that experience. So I never worked on React Native again.
But here comes flutter. Google was crazily promoting this framework. They have a dedicated youtube channel for flutter where they post podcasts and short tutorials almost daily. Initially, I was like "Why have they introduced a cross-platform solution, they'll kill native development with their bare hands. Urrghhhh!!!!". Yeah 🤐 Sorry for that. This is how crazy I was in favor of Native development. But seeing flutter videos in my recommendation almost on a daily basis urged me to give this framework a try. (Googleee!!! You won. You prediction played very well with my mind)
I was kinda free these days. Recently graduated. So I decided to take on a challenge that was previously taken by another guy. This is his post.
This man did an amazing job and his post really inspired me. So I decided to take on this challenge. I wanted to have some well defined criteria in mind for apps. Because its easy to publish one app per day if I am just publishing plain empty activities.
So here was my criteria.
- The apps will have internet connectivity
- Apps will have user authetication
- Apps must perform some read/write operation on some database (firebase in my case)
I started working on my first app. Note that this is the first-ever app I am going to develop on Flutter. And my goal is to publish this app in 24 hours. Yes. So I worked on it. Worked on it. And everything just seemed to work. Layouts, lists, formatting, styling, everything was beautiful. Everything went smoother than expected. And it was so much less code than I was used to writing natively. I knew I am already in love with flutter. But it took me about 30 hours (including other activities like going for food or just some rest) to complete and publish the app. But I did. And here it is.
Feeling motivated after publishing my first app, I moved on towards my second one. Not denying that I was mentally tired after those hours of extreme coding, but lets continue. This time, I discovered something else in Flutter. The ANIMATIONS!!! This was kind of a no go area for me in my whole two years of Android development. Because the time it requires in building a simple feature in native development is always so much that one can hardly imagine adding even more beauty in terms of animations. But in flutter, I thought why not give it a try. And I did. And I don't regret that decision. It's amazingly beautiful and extremely easy. Flutter renders UI in 60 FPS so the animations are buttery smooth. And here goes my second application.
Beautiful, isn't it? Trust me. This is the most favorite app of mine. And the idea of it is even more beautiful. I've written a separate article on this app. Being my most favorite app, I worked on it later as well. So the current state of this app on Play Store is a bit more evolved than what I developed that day.
Feel free to read more about this app here:
At this moment, I was extremely tired. Building that second app made me so tired that I wasn't able even to look at my screen. I was feeling bad at getting tired so early but I somehow started this third app. But this time, my goal wasn't to publish this app in a day. I wanted to publish a good app. I was willing to give it the time it deserves. And it took 3 days. Not saying this was the most complex app. I was just too tired to work with the same speed (And I was going crazy with animation, I wanted to add animation everywhere, like a cook who adds his favorite ingredient in every dish he makes). No doubt I removed a lot of animations along the way because it felt like I was overdoing it. But.... I was enjoying it. So it felt fine. And after three days, this app was published.
At this moment, I knew that I wasn't going to publish 30 apps in 30 days. But I was so happy that I opted flutter for my quest. I don't think if I can ever work natively again. If given choice, I'll choose flutter any day. As of right now, I am so happy for getting my hands dirty with flutter.