Slide 1

Slide 1 text

Journey to Swift Peter-John Welcome google.com/+PeterJohnWelcome

Slide 2

Slide 2 text

Objective C Was born in 1984 Old school C style language (header files)

Slide 3

Slide 3 text

Swift Was born in 2014 Modern, beautiful, magical language

Slide 4

Slide 4 text

The Journey ● Moving from Monolithic app to having frameworks (pods) ● Reduces compilation times due to incremental builds ● decouple your code, helps with Unit tests

Slide 5

Slide 5 text

The Journey ● Interoperability - bridging ● Big objective C code base (so you would want to reuse some of that code)

Slide 6

Slide 6 text

Code The Journey

Slide 7

Slide 7 text

The Journey Disadvantages to Interoperability ● Developers need to know 2 languages ● Xcode is buggy ( refactoring , debugging , Code completion) ● Swift is a Static dispatcher - no reflection =( ● Swift embedded Libraries (app bloat) ● 3rd Party library problems ● Code Standards ● AppCode did not have great support

Slide 8

Slide 8 text

The Journey The Journey Advantages to Interoperability/Swift ● Less boilerplate code ● Functions are 1st class citizens ● Functional programming paradigm ● Protocol Oriented Programming

Slide 9

Slide 9 text

● Generics ● Tuples ● Enumerations defined in Swift without Int raw value type ● Structures defined in Swift ● Top-level functions defined in Swift ● Global variables defined in Swift ● Typealiases defined in Swift ● Swift-style variadics ● Nested types ● Curried functions The Journey Swift Types

Slide 10

Slide 10 text

The Journey ● https://medium.com/standard-bank/getting-swift-3-compatibility-in-a-large-objective-c-codebase-7ac 9f0bc81b5 ● https://medium.com/google-developers/migrating-from-objective-c-to-swift-googlecast-reference-app -81030ce814ce ● https://www.skilled.io/u/keithsmiley/tales-of-a-rewrite-at-lyft Resources

Slide 11

Slide 11 text

Advice The Journey

Slide 12

Slide 12 text

Thanks! Contact me: google.com/u/0/+PeterJohnWelcome @pjapplez [email protected] Peter-johnwelcome.co.za https://github.com/pjwelcome