By Kevin Hou
6 minute read
This past summer (2016) I worked at a startup called Breathometer as an iOS frontend developer. Going into the summer, I was looking to work on a smaller team and get some real world experience building with Swift.
My big project was to design and develop the on-boarding experience for the company’s new app. With an estimated 20,000 projected users, my project would truly be making an impact right out of the box. I did a lot of research using various tools such as useronboard.com, a website that tears down onboarding flows, and Dribble (see my design inspirations on Dribbble). I spent a lot of days simply researching and taking notes on what made certain mobile onboarding flows better than others. I learned a lot, including permission priming, clarity, the effect of animations, and much more. It was the culmination of my summer learning Swift 3.0, taking advantage of a lot of the new animation features that offered. I designed the onboarding flow in Sketch and coded the project itself in Xcode.
Another one of my projects was to integrate user analytics into one of the current apps, Mint. Originally, I was only supposed to set up remote push notification capabilities, but I ended implementing both Carnival, a push notification service, as well as Google Analytics. I learned a lot about user behavior tracking and audience segmentation. It was fascinating being able to crunch a massive amount of information and simplify a person’s data into human-readable categories.
This project also required a lot of research, especially since I had to balance cost and features between nearly ten different push notification/analytics services. I presented my findings at many points during the research process. This included slideshows and even mini app demos. I learned how to articulate my ideas in the business world. Although there were many similarities to school, I noticed that a key difference was in the execution of a presentation. Because I was essentially pitching my opinions, I had to be prepared to not only back up my ideas, but also answer questions that I couldn't plan for ahead of time. It really helped me become a better team member and software engineer.
Finally, one of my smaller-scale projects was to internationalize Breathometer’s mobile app to expand the products internationally into five countries, including China. This involved localizing language, units, and media assets for each country. It was my first project and although it was anticipated to take a majority of my summer, I was able to complete it in only a week. It was my first time touching the Swift code base and helped me learn my way around Xcode. It was really neat learning the power of Xcode and the guidelines Apple has for localization. I watched a lot of WWDC videos and did a lot of research on various app translation platforms in order to successfully execute this project. I also learned how to write documentation so that other members of the team could replicate my work and add more localizations if needed.
I had an ongoing project mocking up screens for Breathometer’s new app. I also spent a couple of days doing app testing and reviewing documentation.
With the release of Swift 3.0, it was a opportune time to get my feet wet in the latest and greatest of iOS development, especially how to create cool animations. I became well versed with Xcode, Cocoapods, and other third party services (push notifications, analytics, localizations, etc.). I also got my first exposure to code efficiency.
I had worked at Salesforce in summer of 2015 as a web developer and designer, gaining a lot of experience working in a large company setting. I also got a lot of experience with GitHub pull requests/issues and code readability/commenting.
I did a lot of work in Swift building screens for both my onboarding experience and other aspects of the app. I ended up doing a lot of research on medical app UX and how to best implement animations.
Among the various technical skills I picked up, I also spent a lot of time writing documentation, reviewing other people’s code, testing, and researching.
Given my new tools, both technical and non-technical, I will do a handful of things moving forward. I hope to continue teaching myself Swift 3.0 and always have at least a bit of iOS development in my life just so I can keep the rust off. I'm planning on using the research that I did to help me make decisions with my own apps in the future. Now that I have a good footing in animations, app design, and general Swift code structure, I can build better apps.
I also hope to implement what I learned with user analytics into my personal website. Now that I can see the power of audience segmentation and data collection, it'd be really cool to see what types of people are accessing my site and from where. I'm a fan of internet privacy so I definitely won't be collecting sensitive information, so for anyone reading this, don't worry.
In general, this was a great summer for me as a coder and as a team member. I learned a lot of both tangible and intangible skills that I'll keep with me for a while and met a lot of interesting people from all walks of life. I owe it to my mentor and my manager at Breathometer, both of whom are incredible people and will do great things in the future. Thanks to everyone at Breathometer for making it a great summer and I look forward to applying what I've learned in the future!