Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Modular iOS: My experience … and why it is mostly a good idea

Slide 3

Slide 3 text

Hello!

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

I’m Batman

Slide 7

Slide 7 text

WHAT? WHY IS IT NOT WORKING???!!!

Slide 8

Slide 8 text

Hello there!

Slide 9

Slide 9 text

Here is another Xcode project!

Slide 10

Slide 10 text

May I… No, you may not

Slide 11

Slide 11 text

sort of…

Slide 12

Slide 12 text

Plugins

Slide 13

Slide 13 text

We need that fancy tech Okay!

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Stop being greedy! Gimme all memory and CPU!

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

It was so much work… At least Business Logic will stay!

Slide 22

Slide 22 text

We don’t have time for selfies.

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

Who came up with this stupid idea??

Slide 28

Slide 28 text

HEELP!! BASH

Slide 29

Slide 29 text

We’ve got you covered

Slide 30

Slide 30 text

HURRAY!

Slide 31

Slide 31 text

Old Plugin

Slide 32

Slide 32 text

UI Plugin

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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!

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

Demo

Slide 37

Slide 37 text

Questions?

Slide 38

Slide 38 text

THANKS!