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

Modular iOS: My experience

Modular iOS: My experience

Talk by Anton Ogarkov

Антон расскажет нам о модульности в iOS проектах, своем опыте и очевидных (и не очень) преимуществах.
От автора:
Сейчас назревает здоровый тренд на модульность в мобильных приложениях. Хоть он и не такой хайповый, как Coordinator или паттерны для разделения логики и представления, но он очень помогает программистам разделять области ответственности и держать сложность кода под контролем. Я расскажу про свой опыт на одном интересном проекте и как модульность нам много где помогла.

This talk was made for CocoaFriday #4 ( https://cocoaheads.org.ua/cocoafriday/4) which took place June 14, 2019

Video: https://youtu.be/1OqLeAQ_JAM


CocoaHeads Ukraine

June 14, 2019


  1. None
  2. Modular iOS: My experience … and why it is mostly

    a good idea
  3. Hello!

  4. What is recursion again? Are you kidding me?!!

  5. None
  6. I’m Batman


  8. Hello there!

  9. Here is another Xcode project!

  10. May I… No, you may not

  11. sort of…

  12. Plugins

  13. We need that fancy tech Okay!

  14. None
  15. None
  16. None
  17. None
  18. Stop being greedy! Gimme all memory and CPU!

  19. None
  20. None
  21. It was so much work… At least Business Logic will

  22. We don’t have time for selfies.

  23. None
  24. None
  25. None
  26. None
  27. Who came up with this stupid idea??

  28. HEELP!! BASH

  29. We’ve got you covered

  30. HURRAY!

  31. Old Plugin

  32. UI Plugin

  33. Where is it most suitable? Good for large projects with

    a lot of abstract layers (horizontal separation) Good for middle-sized projects where you can separate features into different modules (vertical separation) Bad for small projects - will just make things too complicated
  34. Pros Code separation and namespaces Due to that you design

    is better XCode will compile only what has changed You can go open source with your solution!
  35. Cons Structure may become too complex for some apps CI

    gets harder (only if you have code in different repos) "Image not found” error. You have to master libraries Resources may end up not in main bundle Conflicts in *.pbxproj file. But you can use separate projects
  36. Demo

  37. Questions?

  38. THANKS!