Today I spent the afternoon with another iOS freelancer named Li. He has been developing iOS apps independently for almost two years, after obtaining a non-CS/ECE degree from Queen’s, very much like me. It turned out we have so much in common, even the fact that we both came to Canada in elementary school grade 5, from the same hometown!
We chatted about freelancing as well as iOS development independently in general. He suggests that some really good source of learning how to code is coding spaces such as Lighthouse Lab where lots of people with industrial experience are able to provide some insight in your code. Second, reverse engineering from other people’s GitHub projects, and hacking and breaking the code down to test what code does what, piece by piece. Thirdly, by focusing on a personal project where you know you are doing meaningful work, and by having the drive to push yourself and complete something that belongs to you – really enhances the learning experience. Lastly, by involving in boot camps like Lighthouse Lab, lots of the motivation come from the intense pressure of having to learn each day’s material to understand the next day’s material. In addition to the Stanford course, Li suggested me another book called “iOS Big Ranch Guide” by Christian Keur and Aaron Hillegass. I looked it up and it actually updates very frequently as Swift and iOS versions are updated. At this moment the book is already ordered!
In terms of freelancing, client relations is a crucial part in becoming successful. Sometimes the client is vague or simply does not know what he/she wants exactly. By suggesting and selling creative ideas, clients are more likely to accept them, especially if the idea is credited to the client somehow. Next, when showing off your portfolio, it is important to get good at the show and tell. It really reveals your competency as a developer. And of course, your own uniqueness.
Later in the day, Li showed me his app which I thought is incredibly cool. It is an ancient-China-themed hack and slash action game. What’s amazing is, one: it incorporates Force Touch as the attack strength on devices that support it; two: he hand-draws all the graphics for the game on a Bamboo tablet using PhotoShop; third; he composes all of the game’s music assets all by himself! I became fascinated by how talented he is as I listened (and watched) to his music playing inside Logic Pro X. His songs sound really good, to the point where I wouldn’t think it is made by a non-professional music producer. It is incredible that someone from the finance industry is able to code, draw, animate, compose and put all of these together to make something he’s enjoying so much doing. Li said although he’s been working on it for quite a while, the app is planning to be released in two months. I’m super excited to be one of his beta testers.
Li also has another personal app: a highly customizable speed-reading app that can display text one word at a time, with options to pause longer at commas and periods. The display speed is also variable, with options to accelerate, stop, and manually scroll up and down. When stopped, it has the option to look up a word in the dictionary, or even have the text-to-speech engine pronouncing it. Personally I have read lots about speed reading, and I know how helpful such an app can be.
After returning home, I went through lecture 3 of the CS193P course in iTunes U. It added more functions to Matchismo: 12 cards instead of 1; flipping a card now checks if they match, and if they do, the score will be shown on the bottom. The ugly “Flips” label has been replace with a slightly less ugly, centered “Score” label. Yes, I felt that centering it made it less ugly. I believe prettier UI will be implemented soon. The negative score is caused by the fact that there’s a cost of 1 point each time a card is flipped. And hey, let’s leave the time of the simulator in there too.
P.S. I am registered as a paid Apple Developer today. Hooray! Here I come, push notifications, more apps on the demo phone, Testflight, and beta software!