Just like art ideas can't be forced. Beginning of 2018 I came across a very creative dribbble design that had a very unusual list view. During the same time, I was exploring new Kotlin language for Android Apps. I have been using Java for many years and this time I want to build some prototype using Kotlin.
I spent a couple weeks learning the syntax and power of the Kotlin and at the same time used the dribbble mockup as a mini project to learn. The end result of amazing and was very happy with the prototype. Now I want to take the prototype to the next level and want to use the same design interaction to build a production application.
While learning Kotlin I had to do a load of searches in Google and most of the time different articles are talking about the same topic. I tried to use Twitter to follow few people and search using #hashtags. Again most of the time people are tweeting the same article again and again. During that time I thought why not build an app that will showcase the quality and unique articles of almost all programming languages and frameworks.
The first task I started was to build an API and system where I can publish these articles on various topics. So, I build the system in python using Django as the framework. I have used python and Django for many years and I was able to design and build a comprehensive system to manage articles, topics, profiles. The system also has parts of Machine Learning evaluate what people are reading and to how relevant articles to the user. All the models were exposed using REST and GraphQL. Finally hosted the API to Heroku.
Once the API was ready I started working on the V1 of the application using Kotlin and Java for android platform. After nearly 4-6 weeks of development, the application was ready and was very impressive. I want to publish the application and make it available other developers to use. Because I used Kotlin and Java I could only publish it to play store for Android but I want to also make it available for iOS Apple user. I have done some project for iOS using Swift but I didn't want to maintain two code base.
During the same time I was working on Code Nova I was involved in other client project using React Native. So, I decided to build the V2 of the app using React Native and make it available to iOS users as well. I also want to check the real-time comparison on developing the same app in Native and Hybrid. I spent next couple of months on and off working on the V2 and build the exact same functional application to React Native. I have already published the application to android play store and iOS version is also going to be available in a few weeks.
It was a very interesting journey of developing the same application in different programming languages. I haven't stopped yet. I have started working on the V3 of the application using the next googles framework called Flutter. Once V3 is ready I will replace the React Native version with Flutter.