log 2: baby steps
Starting small
This week was the first week I was able to finally put a tiny amount of progress into making my product, which is an iOS based application. So far I have been learning and planning all my steps so that when I start, I have a concrete plan I can follow. The past two months have been spent teaching myself a completely new coding language, which has been a blast. However, the more I learn and plan, the more I realise I don’t know anything. Thinking of cool features and layouts is really easy, but actually getting them to work is a different beast. Every session I have taken to work on my app or company, I have hit a roadblock. Whether it is which database to use online, how to contact a lawyer, how to use Xcode auto layout (the absolute worst), or how to prepare my product for marketing, I get stuck all the time. Trust me, I have thought about running away to live in the forest as a woodsman multiple times because I have no idea where to put my time. The only thing I do know is what fitness has taught me; discipline and consistency will yield the best results. The idea of creating a revolutionary app straight out of the void has blinded me to the reality of how much work needs to be done. So, I have approached the work I need to do like I approach a PR in the gym, with progressive overload. Essentially, taking baby steps and finishing one thing at a time. Here is what I have completed this week.
The first thing I needed to decide was which database I would use for my app. There are so many choices online and funky keywords, that it took me a single Google search to get confused. After a little bit of research and testing I was down to two choices, Google Firebase and Realm by mongoDB. Realm was my initial choice because it was incredibly easy to read and code. A simple write this, read that, kind of format. However, the database file is stored in the app itself, which would be downloaded to each device. This dissuaded me because the database is the secret ingredient of my app, and having it downloaded repeatedly giving anybody access seemed silly. I’m sure there is a way to protect or encrypt the file so that hackerman can’t access it, but that posed another challenge. This is where I found Google Firebase. Firebase includes an authentication service for new users and a database that is completely customizable. While it does allow me more freedom within the database and includes more features, it feels like coding in a foreign language. The format is far more confusing and will take some time to get used to, but, I think it will be far more worth it. Not to mention, the database is also hosted in a cloud service so I don’t need to worry too much about leaking my secrets. Unless I accidentally upload the API key online … which I accidentally did.
The second order of business I finished this week was finalizing my app logo. After a lot of back and forth with a designer I found on Fiverr, I finally found a design that I was happy with. Instead of spending time learning how to edit my own logo, I decided to outsource this task to save me a lot of time. I came up with the initial design but I needed someone else to make it pretty while I spent my time on more important things, like suffering in Xcode. After the logo was finalized I was able to put in an order for custom shirts which will come into play later down the line. It felt good to finally check one thing off the list after such a long time of non-stop learning and work. Even though it’s a small step, I can’t wait to wear and show off my logo as I continue to work on the more difficult tasks ahead. The remainder of the week is going to be dedicated to making a working database and writing the code to read it.