❓ What is it about
Coinmoji is a web and mobile application which provides insights into over 6000 cryptocurrencies. I am a huge fan of Bitcoin and blockchain technology in general and I am convinced that this technology will change the world in several ways, not only on the dimension of how we transact money and store value but also how it will change supply chain infrastructures, e-sports or oracle systems. When I check information on the crypto market, be it for Bitcoin, Ethereum or other Altcoins, I am mostly interested in the market cap and price changes. There are several platforms out there like Blockfolio, CoinMarketCap, Coingecko, Coindesk etc. which list these type of information. Nevertheless, it was always a bit cumbersome for me, to go on these pages as they also contain a lot of noise which I am not interested in. At the same time, I was also often finding myself converting e.g. the amount of ETH I own into USD and vice verca. But to do this it took several steps, such as opening the browser and retrieving the current ETH price, openinig the calculator and typing the values and finaly retrieving the conversion amount. After a little bit of research on simple and lightweight apps or websites, I came to the conclusion that there was nothing out there which fullfilled my needs. This was then a great project for me to start looking into.
At the very same time I launched with a couple of other friends Welloon.io, a data-driven platform which provides insights into how employer well-being can be improved in organizations. With Welloon, I got into Google’s Flutter development language. I was super amazed how intuitive Flutter is. In a nutshell: Flutter allows developers to build applications for web, mobile and desktop with only one code-base. React Native would be another framework which allows similar capabilities but in my opinion I find Flutter much more fun to use. Anyways, with my new Flutter skills which I acquired, I wanted to build Coinmoji in my free time (at that time I was employeed 100% at a full-time job). There were two intentions I had in mind by building this project.
- Improve significantly my knowledge of Flutter
- Create a shippable product in the shortest time possible
To point number 1 – I learned just recently about Flutter and I knew there is much more to learn. I defined concrete concepts, which I wanted to learn such as how do asynchronous functions work with Flutter. Async functions are for many people a difficult concept to grasp and many people are able to make an async function work but just hacking around and adding here and there code snippets like “async” or “await”. But I wanted to understand that concept on a much deeper level which requires also the according mental effort. That’s the key for bringing ones skill to the next level. Defining exactly the hard things and then also putting aside the uninterrupted deep work to really understand the hard things. And that applies for for any skill you are working on. It’s the same with learning the piano for example.
Just repeating the same piece over and over again without consciously defining what parts of the overall piece is not well played, will not bring you to the next level. Whereas if you can exactly identify where you lack expertise and improve that skill in an isolated manner will bring you much further. With these techniques, I was able to bring my Flutter skills in a very short amount of time to a very good level.
To point number 2 – As you may know or not, I am totally passionate about building and designing new products. That’s probably also the reason why studied engineering. The ability that engineers have is to create things which do not exist in this world yet. Obviously, you do not need to have an engineering degree or anything alike. I also do not call myself a data scientist or software engineering but rather a hacker. Hacker not in the sense of hacking into systems and doing illegal stuff but rather hacker in the sense of building computer programs with the purpose of commercialization and that in the quickest time possible with an agile mindset and approach. And I can not stress that point enough. I made my lessons the hard way what it means to do fast iterations.
If you are serious about building a product for the broader market, you NEED to ensure at all cost that you can reach your end-costumer in the shortest time possible and more importantly receive feedback. This feedback should be flowing into the iteration loop in order to produce the next version of the product. Then the cycle begins over and over again. Why do you need to have first costumer feedback as early as possible? When you design a product you are basing these on a lot of assumptions. These assumptions will be most often biased due to your own world views. The last thing what you want to do is building something in silo, pourring time and energy into it and then once you feel “ready” to go to market to only realize that there is no market.
Coinmoji is one of my latest projects (as of the date 21st January 2021) and I am proud that I managed to build a web + Android app in just under two weeks (as mentioned I worked only in the evenings on the platform as I had a full-time job). That’s a great success for me.
⚡️ Current Status
After just under two weeks I was able to have a working product. All market data are fetched via the Coingecko Open Source free API. Due to the Flutter SDK, I just needed to make a few tweaks to make it user friendly for both platforms i.e. web and mobile. I also understand now end-2-end, how to set up a project properly in Android Studio as well as how to publish an app in the Google Playstore. I initially thought, it would take significantly more time and I was somewhat sure that the first submission will be rejected because of quality issues but to my surprise, everything went very smoothly.
It’s an app which I am using on a regular basis and in my point of view for my purpose and maybe also for some others, it is a much better app than the other existing platforms. Also I am amazed on Flutters rendering on web and mobile. All transitions and animations or super smooth and without lags. Also for displaying the information I am querying a lot of various information via API and also doing calculations in the background but all is loaded and displayed almost instantly. As a next step, I want to integrate Google Analytics into the app as well as allowing users to “bookmark” their favorite coins for quick access. One of the larger concepts I want to tackle is the pop up notification which I would like to trigger out Firebase Cloud functions. These things, will again, require my full attention and uninterrupted deep work, however, my focus at the time of writing is with welloon.io.
Leave a comment below if you have any comments or feedback.