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

Modular iOS Architecture @ Just Eat

Modular iOS Architecture @ Just Eat

Talk given at Mobile London on 6/2/2020

https://www.meetup.com/Mobile-London/events/267907993/

Modular mobile architectures have been a hot topic over the past 2 years, counting a plethora of articles and conference talks. At Just Eat, we jumped on the modular iOS architecture train more than 3 years ago, before it was mainstream. I will walk you through the challenges we faced (technical and not), the historical company facts that brought us to having a modularized architecture, and give you some tips to start this journey in your apps too.

Alberto De Bortoli

February 06, 2020
Tweet

More Decks by Alberto De Bortoli

Other Decks in Programming

Transcript

  1. A modular architecture is a software design technique that emphasises

    separating the functionality of a program into independent, interchangeable modules, such that each one contains everything necessary to execute only one aspect of the desired functionality. MODULAR ARCHITECTURE
  2. TIMELINE The Big Fork Single global platform work starts Modularization

    is completed Early 2014 June 2016 October 2019
  3. AVOID DEPENDENCY HELL ▸ The dependency issue arises around shared

    libraries on which other libraries have dependencies but where they depend on different and incompatible versions ▸ Sometimes duplication is better ▸ Low-level code shouldn’t change frequently, and our code changes frequently by definition
  4. ▸ A flat dependency graph allows Xcode to parallelize the

    build process. source: https://patrickbalestra.com/ FLATTENED OUT DEPENDENCY GRAPH
  5. THINK OPEN-SOURCE ▸ README ▸ Easy to integrate ▸ Tests

    ▸ Reasonably shaped code “I don't wanna use this library because it's not in MVVM.” - said nobody ever
  6. DON'T BE FUSSY ABOUT (A SPECIFIC) ARCHITECTURE ▸ It's simply

    inevitable that different developers prefer different kinds of architecture ▸ Best to evangelise SOLID, Dependency Injection, Inversion of Control and all that jazz MVVM VIPER MVC MVP MVVM-C ELM
  7. ▸ Only run the code you are working on ▸

    Fast compilation times ▸ Jump straight to the desired features ▸ Get it for free with $ pod lib create DEMO APPS
  8. REFERENCES ▸ Personal Twitter: @albertodebo ▸ Personal blog: albertodebortoli.com ▸

    Just Eat blog: tech.just-eat.com ▸ Modular iOS Architecture @ Just Eat albertodebortoli.com/2019/12/19/modular-ios-architecture-at-just-eat ▸ iOS @ Scale(ish) by Bradley Smith @ Wayfair appdevcon.nl/session/ios-at-scaleish ▸ Improving Your Build Time in Xcode 10 patrickbalestra.com/blog/2018/08/27/improving-your-build-time-in-xcode-10.html