iOS Enterprise Development

AmfamApp.jpg

It is the clash of two worlds—the breakneck speed of mobile app delivery and the lumbering pace of enterprise development. Mobile development is a speed boat zipping around obstacles. Enterprise development is a cargo ship moving slowly and steadily, carrying a lot of force. Bridging these two speeds together is a monumental challenge.

As of yesterday, the customer-facing iOS application we’ve been working on for the last six months finally made it to the App Store. The project started in May and was finished in 13 two-week sprints. It was a colossal challenge. We needed to integrate into a new API Gateway, which fronted a spider web of Java apps that accessed data from Oracle, DB2, and the Mainframe (yes, the Mainframe). Pre-prod data was all over the place and very difficult to piece together. Our data was inconsistent, and we needed to write a ton of “protection” code in Swift to ensure our app was flexible enough to handle it. As one of my fellow developers stated, he had to become a “Data Ninja” 😉. Not to mention a nasty merge bug introduced in Xcode 8 that made code conflict resolution a challenge.

Storyboard references, protocols/delegates, and multiple threads made the app technically easier. We had distinct groups for Controllers, Views, and Models. The use of SwiftyJSON helped with mapping the data into our model objects. Using auto layout and some fun UIView animations made the app lively. It always amazes me how quickly an iOS App becomes complicated. To access a Restful API via URLSession, you need to work with completion blocks and multiple threads, but this complication allows for an amazingly dynamic and responsive app. The use of custom protocols, the use of MVC, and the creation of a data access layer also helped.

The app is not perfect. It has bugs, but I’m damn proud of it. The group of developers that I worked with each stepped up to the challenge of creating this app. There were times that we wondered if it was going to happen. The APIs were delayed. We did not start “backend-ing” the app until late in the game. The data was not stable. At one point, an entire database was dropped. Through it all, they kept plugging away. Each of them plays a critical role in getting this app done.

The higher-ups will take credit for having the “vision,” but I know who made this happen on the iOS side: Kevin, Khalid, Danny, and Annie. Thanks for leaving it all the field and giving it 110% of what you have. You rock!

I can’t wait to do it all over again!

Previous
Previous

Creative Selection vs Lean

Next
Next

WWDC 2016