Slide 1

Slide 1 text

Modular IOS APPS

Slide 2

Slide 2 text

GOALS

Slide 3

Slide 3 text

divide THE XING IOS APP INTO LOGICAL PARTS

Slide 4

Slide 4 text

make it easier FOR NEW COWORKERS TO GET STARTED

Slide 5

Slide 5 text

ENABLE versioning IN THE DIFFERENT MODULES

Slide 6

Slide 6 text

slim down THE MAIN APP

Slide 7

Slide 7 text

MAKE OTHER PRODUCT TEAMS more productive

Slide 8

Slide 8 text

WRITE cleaner code DUE TO SEGMENTATION

Slide 9

Slide 9 text

HOW

Slide 10

Slide 10 text

▸ CocoaPods ▸ Rake ▸ Jenkins ▸ Ruby command line tool

Slide 11

Slide 11 text

EACH MODULE HAS A PODSPEC

Slide 12

Slide 12 text

PRIVATE COCOAPODS SPECS REPOSITORY ON GITHUB ENTERPRISE

Slide 13

Slide 13 text

JENKINS BUILDS THE SPEC REPO ON EVERY PULL REQUEST AND CHECKS FOR VALID PODSPECS Just like the real Specs Repo

Slide 14

Slide 14 text

unified rake tasks FOR EACH PROJECT

Slide 15

Slide 15 text

rake build # builds the project for CI rake version:bump:minor # bumps minor, patch and major version number rake git:release # tags the version and pushes to master rake pod:push # pushes the podspec to the master repo

Slide 16

Slide 16 text

RUBY CLI ▸ based on Thor gem ▸ heavily uses Xcodeproj from Cocoapods

Slide 17

Slide 17 text

$ xcnew help new Usage: xcnew new PROJECTNAME PREFIX Description: `xcnew new` creates a new XING iPhone App module project to get you up and running in no time. It will create our desired file structure for modules, install our dependencies and create simple Xcode project with Login using the XNGAPIClient. $ xcnew new XNGCocoaHeads CH

Slide 18

Slide 18 text

DEMO

Slide 19

Slide 19 text

MODULES

Slide 20

Slide 20 text

13 CORE MODULES EXTRACTED 21 OTHER MODULES (REGULAR PODS)

Slide 21

Slide 21 text

XNGUIKIT UIDEVICE, UIIMAGE, UIIMAGEVIEW, ... CATEGORIES AND SUBCLASSES

Slide 22

Slide 22 text

XNGFOUNDATION NSSTRING, NSARRAY, NSDICTIONARY, ... CATEGORIES AND SUBCLASSES

Slide 23

Slide 23 text

XNGDATAMODEL COREDATA MODEL, MOGENERATOR MODELS, MODELS, DATAFETCHER ETC.

Slide 24

Slide 24 text

BASEVIEWCONTROLLERS UIVIEWCONTROLLER, UICOLLECTIONVC, UITABLEVC, ...

Slide 25

Slide 25 text

OTHER MODULES LOGIN, WALKTHROUGH, REGISTER, XNGFONT, XNGCOLOR, TRACKER ...

Slide 26

Slide 26 text

WHAT'S next?

Slide 27

Slide 27 text

PORT THE INSTALLER TO COCOAPODS GitHub: pietbrauer/cocoapods-generate-command

Slide 28

Slide 28 text

APPLY MODULES PATTERN TO NETWORK NEWS, PROFILE ETC. ONCE THE SMALL ISSUES ARE RESOLVED

Slide 29

Slide 29 text

FIND MORE IOS DEVELOPERS.

Slide 30

Slide 30 text

BUILD MORE MODULES.

Slide 31

Slide 31 text

ANSWER YOUR QUESTIONS.

Slide 32

Slide 32 text

THANKS ! @PIET_NBN