Flutter UI Challenges App — A case Study
This is a case study on how I was able to take my Flutter app from a simple open source project on GitHub to 20k downloads in Play Store and 3k downloads in App Store. In this article, I will provide a full case study as how and why I started the project and what I believe are the key factors that led to the success of this app. This case study I believe will be an inspiration and a useful resource for budding developers out there who are planning to develop and launch their next app using Flutter.
Back in December 2018, I was doing web development and React Native for cross platform mobile development. And in December 4, 2018, when the first stable version of flutter (Flutter 1.0) was launched, I happened to watch the YouTube live stream. Impressed by their demo and quality of the already existing production apps in Flutter, I thought to give it a try. So I started learning Flutter. I was learning from courses on Udemy and tutorials on YouTube as well as going through the official documentation.
Firstly, it was very easy to get started with Flutter. installing and setting up development machine for flutter was nothing compared to the difficulties I had setting up React Native. Then I stuck with Flutter due to the amazing developer experience. Replicating few UIs that I had previously developed with React Native, took me only 1/5th of the time it took me before. And the development tools and workflow was very straight forward and felt complete.
Back when I was doing Ionic and React Native, I had contributed components on open source projects, so almost after a week of doing flutter I thought, why not do the same, create open source components (widgets) for everyone to use. That is how I started the Flutter UI challenge repository in GitHub and was contributing almost one UI everyday. And slowly, I started sharing the screenshots, on Twitter, Facebook and GitHub. Sharing screenshot with code was the first best decision I took, as both the non coders as well as coders could understand what I was doing, what I could do. It was almost a month, I had contributed more than 20 UIs in the repository, that was when I got a message for my first Flutter project. Since then I have almost completely been working with Flutter in daily basis. And whenever I had time I would find designs in dribbble and uplabs and recreate those UIs in Flutter and push to my UI challenge repository along with screenshots that I share in my social network. Slowly after publishing few UI and posting my designs on Flutter Groups in Facebook, people started noticing my repository and I was occasionally getting few stars in GitHub.
Up until then, the app was only on GitHub, so if anyone wished to see the app, they had to clone the repository, setup Flutter if they haven’t already done, and then run the project. Also searching through play store, there were only few Flutter related apps, that were helpful for up and coming Flutter developers. So I thought why not publish this app in the Play Store. I already had Play Store subscription. So on one weekend I built the first APK, prepared launcher icon, few screenshots, and other content related to Play Store and published the first version of my application at the end of March 2019. Reaching first 1000 users was a challenge. I was posting in social media groups relating to Flutter, in my Facebook and twitter with link to Play Store. Also our local community Flutter Nepal was a great help in reaching the first 1000 milestone.
Around the same time I heard about Codemagic, the automated build and deployment platform completely tailored for Flutter, and they had a free access model. So I signed up for codemagic. That was then next best decisions I made for Flutter UI challenge app, as that gave me the power to automate the process of delivering updates to my app continuously. Since then I have been very happy with Codemagic and it’s services. Doing that, every time I pushed 2–3 UI I merged my development branch to master and once I pushed code to my master branch, codemagic was setup to automatically build an android appbundle and publish it to the Play Store production release. This made me able to provide continuous content update to my users. And I was publishing around 2–3 UIs every month and publishing new version of my app in play store almost every month. This I believe was key for me in getting continuous increase in users of my app.
Around the same time I also started my previously silent, YouTube channel, which had few contents on Javascript and React Native. I was so much into Flutter, that I started completely focusing on flutter on my YouTube. During this time, on my work, I was required to setup multiple flavors of my application, one production that was to be deployed and published in the stores and next a development version that was to be used for testing. The app I was working on had dependencies like Firebase, so I had to setup flavors both in native level so that I could use different Firebase project for different flavors. Searching on google, I couldn’t find any video tutorials however, I found this article by Luca which was very helpful. So starting my Flutter content, I made the first 3 videos on setting up flavors in Flutter, after that I started recording and sharing the speed code videos of me coding some of the UIs in the flutter UI challenge app. With every video and description I was sharing the link to my GitHub for UI Challenge as well as play store app.This I believe was another best decision I made in favor of Flutter UI Challenge app.
During this period I was also teaching Flutter to college students as a professional course. This gave me another platform to share my work and my knowledge. This also helped me a lot in improving my Flutter skill. Also everything I made while learning and teaching Flutter, I open sourced in GitHub. This was another major decision that helped me a lot as people were able to trust me more by viewing my other small projects and examples of various scenarios in flutter.
After around 3 months of good feedback and reviews in Play Store, people were asking me if I could develop for both android and iOS, so I decided to launch my UI challenge app in App Store as well. So in July 2019, I submitted first build of my application in App Store. I used the service of Codemagic as before to build and publish my application to App Store Connect. However the first version of my application was rejected, saying that it was like a bunch of UIs collected from internet, didn’t have enough functionalities for users. So in app store, I found other Flutter related apps, they had in app code viewing feature, so I implemented the same feature in my application. I redesigned the App so that users were able to view the code to the UIs I have written right in the application. Also users were able to share code, link to GitHub code file was all available along with the preview to the UI. And then in the next few tries my application was published in the App Store.
Also through the app I made it easier for people to find link to my GitHub, YouTube channel as well. Later I also added Firebase and authentication service, so users could save the favorite UIs for later use. I also left an option for users to use the app without ever signing in as before because not all people would like to sign in to the app without first trying the application.
During this period, I was also giving talks in developer meetups, helping organize flutter study jams and workshops with Flutter Nepal, where I was able to share my work and my skills. This also helped a lot in getting me and my project noticed.
As of now My app has 4.9 star rating with 11000+ active install and 19000+ total installs in Play Store and 2800+ downloads in App Store. I am still contributing new UIs and content in the application. I have also updated to have more features, links to my other projects, tutorials on YouTube etc.
Summary:
- Being consistent with learning and sharing in multiple platform and multiple formats was the key
- Being able to deliver quickly with tools like Codemagic was another major push point
- Sharing in multiple formats (YouTube videos of speed code, screenshots of UI, App in store, codes in GitHub was another major push point)
So, I believe, that my passion for learning and developing with Flutter, my consistency in delivering content to my users and being able to present in multiple formats and platform right from the beginning was the key to success of this application.
Finally, I would like thank all those who supported me directly and indirectly in this journey. And, stay tuned as there is more to come.
Download Today
Want to connect with me
Facebook: https://fb.me/lohanidamodar
GitHub: https://github.com/lohanidamodar
YouTube: https://youtube.com/c/reactbits
Twitter: https://twitter.com/LohaniDamodar
Linked In: https://www.linkedin.com/in/lohanidamodar/