Alex’s Buck’s Developer Story @ the IBM Mobile Innovation Lab

I’m a Software Engineer at IBM’s Mobile Innovation Lab (MIL) in Austin Texas. I grew up in Monroe, Connecticut and attended the University of Connecticut (UCONN) where I earned a degree in Computer Science and Engineering, focusing on both hardware and software.
I currently live in downtown Austin, where I’m able to fully experience all the weirdness the city has to offer. I really enjoy coffee shop coding. Most nights during the week you can find me at Austin’s Brew & Brew with other members of the MIL hacking away. I really like to embrace a work life blend (not balance) ideology. I don’t think innovation and creativity happen during set hours of a day, they happen when we feel inspired and motivated to create awesome things. Great work can’t be forced.
I’ve been developing iOS apps for about three years now and have been a member of the Mobile Innovation lab for a year and a half. My favorite aspect of iOS development is building the Front End User Interface. Although building UI isn’t always the most algorithmically satisfying code to write and at times can feel like “pixel pushing”, to me I think its the most important aspect of iOS development since its the layer of the app the user directly interacts with. My passion for good UI/UX, I believe, is what separates me from a lot of developers. I really enjoy working with the designers on our team to come up with new types of UI interactions and custom animations.
The most recent app I worked on, Ready App for Travel and Transportation, I was able collaborate with our Advisory Designer Aaron Kettl to create a custom segue to create a seamless and visually pleasing transition between two view controllers. An example can be seen below:

In addition we also collaborated to create a similar UI experience found on the profile screen of the Twitter iPhone app where there is a sticky/stretchy cover photo on top of the view that can collapse and fade into the navigation bar, seen below:

While working on Ready App for Travel and Transportation I was able to experiment with some new development practices such as architecting the app using Model-View-View-Model (MVVM) instead of the standard Model-View-Controller (MVC) most apps use. The motivation to switch to MVVM came from some issues we had around having bloated view controller’s while developing Ready App for Loyalty. MVVM solves this issue by splitting up the view controller into two parts, a controller and a viewModel. The controller is in charge of everything UI related, such as handling user interaction or animations — while the viewModel is in charge of the view controller’s state as well as handling anything related to data manipulation.
Building the Ready App for Travel and Transportation also allowed me to experiment with Reactive Programming by using the ReactiveCocoa Framework. Using Reactive Cocoa allowed us to get away from using callbacks or a delegate pattern and instead observe signals that were produced when our current data model changed, which lead to cleaner and more readable code.
I’ll end my developer story by recommending a few iOS frameworks and software I’ve really enjoyed working with the past year that have made my life as an iOS developer much easier:
AlamoFire — An awesome Rest/HTTP networking library.
AlamoFireObjectMapper — A swift extension wrapper around ObjectMapper that allows you to easily map JSON to data model objects. In my opinion, its the best swift solution to parsing JSON, way better than SwiftyJSON
SDWebImage—A great asynchronous image URL downloader that provides a cache that can persist image data accross multiple app instances
Realm—An SQLite and Core Data replacement that allows you to persist data accross multiple app instances.
Zeplin — The ultimate collaboration tool between developers and designers that allow designers to convert their sketch designs into meaningful app blueprints for developers. It gives developer’s point dimensions of ui elements, generates assets, gives you hex colors of elements, has slack integration…etc