Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Future proofing your iOS apps

Future proofing your iOS apps

When developing our iOS applications we want it to be able to support the latest hardware and software. When we started out we did not anticipate for an Apple Watch or a widget. In this talk I'll explain our journey from being a rigid and single track application to becoming a flexible scalable application architecture with which we can now easily adopt new features and hardware. I would like to give a sneak peek into our transformation into becoming a modularized app.

By Pim Stolk

Powered by http://xebia.com

do{iOS} conference

November 09, 2015
Tweet

More Decks by do{iOS} conference

Other Decks in Programming

Transcript

  1. whoami $ whois pimstolk Whois Server Version 2.0 * Software

    Engineer @ ING * Works on the Mobile Banking App * Like Electronics * Loves Domotica * Has to many motorbikes >>> Last update of whois database: Sun, 01 Nov 2015 16:00:16 GMT <<< For more information on this Whois status codes, please visit https://www.linkedin.com/pimstolk
  2. The iPad • Last minute decision • Focus only on

    iPhone • Hire extra people to meet the deadline
  3. A new programming language • Adopt Swift into our code

    • Huge Objective-c codebase • SourceKit no taylor swift jokes no taylor swift jokes
  4. App Stats • Approaching the 1 million lines of code.

    • More then 40 different developers > more then 40000 hours of coding. • More then 25500 commits • Around since of iOS3 • autorelease retain • Introduction of ARC • Nib/Xibs/Storyboard/Sizeclasses/NSURLConnection/ SplitViewController/ and so much more • More then 2.000.000 active users
  5. Different Targets • Not Scalable • No clear overview of

    what is going on • Easy to break the build
  6. Dynamic framework • Easy to work on in a big

    team • Support Swift • No need to relink when updates • Final Linked Image INGFoundation INGFoundation.framework BalanceFetcher BalanceFetcher.framework CryptorKit CryptorKit.framework Sub projects ING INGFoundation.framework BalanceFetcher.framework CryptorKit.framework ING Project
  7. Things still to figure out • Inter-framework communications • Who

    does the communication? • Who owns the data? • How do you navigate from screen to screen.
  8. Wrap up • ING Mobile Banking Journey • Growing number

    of devices with different purposes • How to deal with the scalability of your application • Implementation of dynamic frameworks