SlideShare a Scribd company logo
SWIFT AT SCALE
WAR STORIES FROM
KAMILAH TAYLOR, SENIOR SOFTWARE ENGINEER, LINKEDIN
#SwiftSummit 2016 @kamilah
I SINCERELY PROMISE TO
KEEP MY SWIFT 3 MIGRATION
COMPLAINTS TO A MINIMUM.
@kamilah
SO THIS TALK... #SwiftSummit
REALLY I PROMISE EVEN THOUGH THIS IS HOW I DREAM OF XCODE NOW
@kamilah #SwiftSummit
SWIFT AT LINKEDIN
WHAT I MEAN WHEN I SAY AT SCALE
▸ In January 2015, we started the
complete rewrite of our flagship
app in Swift, as part of project
Voyager
▸ It's not just one app, it's a growing
family of apps
▸ It's not just a family of apps, it's a
growing set of libraries, internally
and open sourced
▸ ~100 iOS devs, ~40 on flagship
@kamilah #SwiftSummit
SWIFT AT LINKEDIN
THE WORKFLOW
▸ Weekly release cycles
▸ Large unit and integration test suites
▸ First version of Swift embraced - the betas (https://
engineering.linkedin.com/ios/our-swift-experience-
slideshare)
▸ Number of Swift files in our flagship app - over 4500
@kamilah #SwiftSummit
HOW DO WE HAVE
IT ALL?
SPOILER ALERT: WE DON'T.
THIS IS HARD. HERE ARE
SOME STORIES.
@kamilah #SwiftSummit
THE COMPILER
STORIES
<- THIS NEVER STOPS
BEING TRUE
@kamilah #SwiftSummit
THE COMPILE TIME STORIES
DEVELOPER HAPPINESS + PRODUCTIVITY
▸ Compile times very very very long for large codebase (~25
min for a cold build on 15” rMBP)
▸ This has improved with each Xcode version
▸ Three workarounds
▸ code structure
▸ hardware
▸ objective-c (yes, really)
@kamilah #SwiftSummit
THE COMPILE TIME STORIES
THE SOLUTION FOR VOYAGER
▸ Mac Pros for everyone! (12 cores gave us a 2x speed boost over the top
of the line MBP)
▸ Switched generated models to ObjC (to reduce the number of Swift files)
▸ Code structure
▸ Dropped iOS 7 support
▸ Modularized using Cocoapod's devpods
▸ This broke debug symbols
▸ Converted devpods into dynamic frameworks
@kamilah #SwiftSummit
@kamilah
THE XCODE PROJECT FILE
FIELD NOTE NUMBER 12:
SOMETIMES YOU MAY NEED
DARK MAGIC TO EDIT THE
PROJECT FILE
#SwiftSummit
THE XCODE PROJECT FILE
DARK MAGIC IS NOT AN EXAGGERATION
@kamilah #SwiftSummit
THAT SEGFAULT 11 THOUGH
http://classicprogrammerpaintings.com/post/142796894989/c-
developers-aiding-a-comrade-facing-segfault
@kamilah #SwiftSummit
THAT SEGFAULT 11 THOUGH
SOMETIMES THE XCODE COMPILER JUST CRASHES
▸ The problem (on LinkedIn Learning): Our builds started to
flakily fail because of a compiler crash once we added a
full test suite, as we geared up for our launch
▸ Even locally, the compiler would occasionally crash with a
segfault 11
▸ The solution: Back to manipulating the xcode project
settings, a skill I don't remember needing in the objective-
c days
@kamilah #SwiftSummit
THE BUILD ALWAYS NEEDS WORK
FAILED TO AUTHORIZE RIGHTS (0X1) WITH STATUS: -60007
▸ The problem: Our builds started to flakily fail because of a
compiler crash (Xcode 7.3) - for everyone's app
▸ Really bad side effect - missing when an actual bad
commit went in while the trunk is red
▸ The solution: Our tools team found a work around by
splitting the test build (done in xcodebuild) and running
tests, now via xctool
▸ Funny follow up: had to revert this patch for Swift 3
@kamilah #SwiftSummit
THE SWIFT
MIGRATION STORIES
<- IF ONLY THIS WERE
NOT SO APT
@kamilah #SwiftSummit
SWIFT BETA - SWIFT 2
THE EARLY DAYS OF MIGRATING
▸ Pre Swift 2
▸ This mostly affected Slideshare, our first Swift app
▸ No migrator tool so all manual
@kamilah #SwiftSummit
SWIFT BETA - SWIFT 2
THE EARLY DAYS OF MIGRATING
▸ Swift 2 migration
▸ Needed Xcode 7 for the improved build times
▸ 2 months before launch
▸ Migration tool crashed on large codebase (okay for
smaller apps at LinkedIn)
▸ (What we thought was) Lengthy, manual migration to
new Swift version for Voyager
@kamilah #SwiftSummit
BEYOND SWIFT 2
AND THEN 2016 CAME...WITH SWIFT 2.3 AND SWIFT 3
@kamilah #SwiftSummit
SWIFT 2 - SWIFT 2.3
IT WAS ONLY KIND OF A PAIN FREE MIGRATION
▸ Swift 2.3
▸ Again, we needed to upgrade to Xcode 8
▸ Actually quite painful for Voyager
▸ 14 Swift libraries, 4500 Swift files in Voyager
▸ For LinkedIn Learning, actually not so bad
▸ Took me about 1 week since libraries had already
been migrated and migrator "worked"
@kamilah #SwiftSummit
THAT INITIAL ERROR COUNT OF
666 WAS THE FIRST SIGN.
@kamilah
MIGRATING TO SWIFT 3 #SwiftSummit
SWIFT 3
QUITE POSSIBLY THE WORST DEVELOPER EXPERIENCE
▸ The migrator tool, pretty much useless
▸ Saving grace: http://swift.ayaka.me/posts/2016/6/17/
running-the-swift-30-migrator-on-a-standalone-swift-file
▸ Had a script that ran this for an entire directory
▸ The battle had only begun
▸ Massive effort to upgrade all the swift libraries from the
infra and voyager team
@kamilah #SwiftSummit
SWIFT 3 MIGRATION
QUITE THE COORDINATED EFFORT
@kamilah #SwiftSummit
THE SWIFT 3 MIGRATION
THESE ARE ACTUAL COMMIT MESSAGES FROM THE VOYAGER TEAM
@kamilah #SwiftSummit
SWIFT 3
QUITE POSSIBLY THE WORST DEVELOPER EXPERIENCE
▸ Voyager
▸ Froze the trunk for nearly two weeks
▸ LinkedIn Learning
▸ Still ongoing, even on our much smaller codebase (~800
Swift files) the migrator crashed
@kamilah #SwiftSummit
THE SWIFT 3 MIGRATION
OKAY A FEW MORE COMMIT MESSAGES
@kamilah #SwiftSummit
SO HOW DO WE DO SWIFT
AT SCALE AT LINKEDIN?
@kamilah #SwiftSummit
ALMOST DONE...
SO HOW HAVE WE DONE SWIFT AT SCALE AT LINKEDIN?
▸ Early adoption -> hard earned learnings both from our
developers and tools team
▸ Communicate communicate communicate
▸ Frequent knowledge sharing across the company
▸ Internal iOS meetups
▸ Many slack channels, including a dedicated one for swift 3
▸ Open sourced a swift style guide
@kamilah #SwiftSummit
ALMOST DONE...
SO HOW HAVE WE DONE SWIFT AT SCALE AT LINKEDIN?
▸ Constant experimentation on how to improve our build
and compile times
▸ Shout out to our tools team who are always trying to
improve the process, test new versions of Xcode
@kamilah #SwiftSummit
NOW I'M DONE
LEARNINGS
▸ This won't come for free
▸ Invest in your tools and infra teams
▸ Swift does require more developer time for maintenance,
though less time for training and actual coding
▸ Be ready with much patience and all the humor
@kamilah #SwiftSummit
@kamilah #SwiftSummit
SO LONG AND THANKS
FOR ALL THE SWIFT FUN

More Related Content

What's hot (20)

PDF
Creating Custom Slack Integrations with Vapor
🔴 Keli'i Martin
 
PDF
CocoaPods for private libraries
CocoaHeads France
 
PPTX
Grails Spring Boot
TO THE NEW | Technology
 
PDF
Web is the New Mobile: Building Progressive Web Apps - Erica Stanley - Codemo...
Codemotion
 
PDF
Development environment agile way
Izzet Mustafaiev
 
PDF
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a Bar
Atlassian
 
PDF
4Developers 2015: Do you think you're doing microservice architecture? - Marc...
PROIDEA
 
PDF
Microservices for the Masses with Spring Boot, JHipster, and JWT - J-Spring 2017
Matt Raible
 
PDF
Full Stack Reactive with React and Spring WebFlux - Dublin JUG 2019
Matt Raible
 
PDF
Microservices for the Masses with Spring Boot, JHipster, and JWT - Devoxx UK...
Matt Raible
 
PDF
Build An Automated Testing Pipeline
Mohamed Labouardy
 
PDF
The Hitchhiker's Guide to Building a Progressive Web App
Christopher Nguyen
 
PDF
DevOps For Small Teams
Joe Ferguson
 
PDF
Ionic
Aircon Chen
 
PDF
What's New in JHipsterLand - Devoxx Poland 2017
Matt Raible
 
PPTX
Understand immutable infrastructure, what? Why? How? - Meta-Meetup DEVOPS NIGHT
Quentin Adam
 
PDF
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
Frank van der Linden
 
PDF
Front End Development for Back End Developers - Devoxx UK 2017
Matt Raible
 
PDF
Full Stack Reactive with React and Spring WebFlux - PWX 2019
Matt Raible
 
PDF
Behaviour Driven Development con Behat & Drupal
sparkfabrik
 
Creating Custom Slack Integrations with Vapor
🔴 Keli'i Martin
 
CocoaPods for private libraries
CocoaHeads France
 
Grails Spring Boot
TO THE NEW | Technology
 
Web is the New Mobile: Building Progressive Web Apps - Erica Stanley - Codemo...
Codemotion
 
Development environment agile way
Izzet Mustafaiev
 
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a Bar
Atlassian
 
4Developers 2015: Do you think you're doing microservice architecture? - Marc...
PROIDEA
 
Microservices for the Masses with Spring Boot, JHipster, and JWT - J-Spring 2017
Matt Raible
 
Full Stack Reactive with React and Spring WebFlux - Dublin JUG 2019
Matt Raible
 
Microservices for the Masses with Spring Boot, JHipster, and JWT - Devoxx UK...
Matt Raible
 
Build An Automated Testing Pipeline
Mohamed Labouardy
 
The Hitchhiker's Guide to Building a Progressive Web App
Christopher Nguyen
 
DevOps For Small Teams
Joe Ferguson
 
What's New in JHipsterLand - Devoxx Poland 2017
Matt Raible
 
Understand immutable infrastructure, what? Why? How? - Meta-Meetup DEVOPS NIGHT
Quentin Adam
 
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
Frank van der Linden
 
Front End Development for Back End Developers - Devoxx UK 2017
Matt Raible
 
Full Stack Reactive with React and Spring WebFlux - PWX 2019
Matt Raible
 
Behaviour Driven Development con Behat & Drupal
sparkfabrik
 

Similar to Swift at Scale (19)

PPTX
Tips for migration from swift 2.2 to swift 3.0
Key Hui
 
PDF
Let's migrate to Swift 3.0
CocoaHeads France
 
PPTX
Basic iOS Training with SWIFT - Part 1
Manoj Ellappan
 
PDF
The iOS technical interview: get your dream job as an iOS developer
Juan C Catalan
 
PDF
Learning Swift 3 Early release 3rd Edition Jonathan Manning
pundaiarleny
 
PDF
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
batyegrocez1
 
PPTX
Is your Swift iOS project ready to deploy?
Anuja Arosha
 
PDF
Understanding iOS from an Android perspective
Lauren Yew
 
PDF
iOS Development Methodology
SmartLogic
 
PDF
Handle the error
CocoaHeads France
 
PDF
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning 2024 scribd...
lalikaukpono
 
PDF
Learning Swift 3 Early release 3rd Edition Jonathan Manning
nieysaiotti
 
PDF
Migrating Objective-C to Swift
Elmar Kretzer
 
PDF
Make School 2017 - Mastering iOS Development
Make School
 
PDF
How we migrated Zalando app to Swift3?
Vijaya Prakash Kandel
 
PPTX
iOS App Development Presented by Edifyself
Edifyself
 
PDF
Ios 12 App Development Essentials Learn To Develop Ios 12 Apps With Xcode 10 ...
kotakyimam93
 
PDF
Migrating from Objective-C to Swift
Dominique Stranz
 
PDF
Steer Your Career on Your Terms with the Right Side Project
Vui Nguyen
 
Tips for migration from swift 2.2 to swift 3.0
Key Hui
 
Let's migrate to Swift 3.0
CocoaHeads France
 
Basic iOS Training with SWIFT - Part 1
Manoj Ellappan
 
The iOS technical interview: get your dream job as an iOS developer
Juan C Catalan
 
Learning Swift 3 Early release 3rd Edition Jonathan Manning
pundaiarleny
 
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
batyegrocez1
 
Is your Swift iOS project ready to deploy?
Anuja Arosha
 
Understanding iOS from an Android perspective
Lauren Yew
 
iOS Development Methodology
SmartLogic
 
Handle the error
CocoaHeads France
 
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning 2024 scribd...
lalikaukpono
 
Learning Swift 3 Early release 3rd Edition Jonathan Manning
nieysaiotti
 
Migrating Objective-C to Swift
Elmar Kretzer
 
Make School 2017 - Mastering iOS Development
Make School
 
How we migrated Zalando app to Swift3?
Vijaya Prakash Kandel
 
iOS App Development Presented by Edifyself
Edifyself
 
Ios 12 App Development Essentials Learn To Develop Ios 12 Apps With Xcode 10 ...
kotakyimam93
 
Migrating from Objective-C to Swift
Dominique Stranz
 
Steer Your Career on Your Terms with the Right Side Project
Vui Nguyen
 
Ad

Recently uploaded (20)

PPTX
Lecture 1 Shell and Tube Heat exchanger-1.pptx
mailforillegalwork
 
PPTX
EC3551-Transmission lines Demo class .pptx
Mahalakshmiprasannag
 
PPTX
Pharmaceuticals and fine chemicals.pptxx
jaypa242004
 
PDF
Biomechanics of Gait: Engineering Solutions for Rehabilitation (www.kiu.ac.ug)
publication11
 
PPTX
Server Side Web Development Unit 1 of Nodejs.pptx
sneha852132
 
PDF
Introduction to Productivity and Quality
মোঃ ফুরকান উদ্দিন জুয়েল
 
PDF
PORTFOLIO Golam Kibria Khan — architect with a passion for thoughtful design...
MasumKhan59
 
PPTX
MPMC_Module-2 xxxxxxxxxxxxxxxxxxxxx.pptx
ShivanshVaidya5
 
PDF
monopile foundation seminar topic for civil engineering students
Ahina5
 
PDF
Zilliz Cloud Demo for performance and scale
Zilliz
 
PPTX
Solar Thermal Energy System Seminar.pptx
Gpc Purapuza
 
PDF
Ethics and Trustworthy AI in Healthcare – Governing Sensitive Data, Profiling...
AlqualsaDIResearchGr
 
PDF
ARC--BUILDING-UTILITIES-2-PART-2 (1).pdf
IzzyBaniquedBusto
 
PPTX
MobileComputingMANET2023 MobileComputingMANET2023.pptx
masterfake98765
 
PDF
Water Design_Manual_2005. KENYA FOR WASTER SUPPLY AND SEWERAGE
DancanNgutuku
 
PPTX
artificial intelligence applications in Geomatics
NawrasShatnawi1
 
PPTX
Break Statement in Programming with 6 Real Examples
manojpoojary2004
 
PDF
GTU Civil Engineering All Semester Syllabus.pdf
Vimal Bhojani
 
PDF
Statistical Data Analysis Using SPSS Software
shrikrishna kesharwani
 
PPTX
ISO/IEC JTC 1/WG 9 (MAR) Convenor Report
Kurata Takeshi
 
Lecture 1 Shell and Tube Heat exchanger-1.pptx
mailforillegalwork
 
EC3551-Transmission lines Demo class .pptx
Mahalakshmiprasannag
 
Pharmaceuticals and fine chemicals.pptxx
jaypa242004
 
Biomechanics of Gait: Engineering Solutions for Rehabilitation (www.kiu.ac.ug)
publication11
 
Server Side Web Development Unit 1 of Nodejs.pptx
sneha852132
 
Introduction to Productivity and Quality
মোঃ ফুরকান উদ্দিন জুয়েল
 
PORTFOLIO Golam Kibria Khan — architect with a passion for thoughtful design...
MasumKhan59
 
MPMC_Module-2 xxxxxxxxxxxxxxxxxxxxx.pptx
ShivanshVaidya5
 
monopile foundation seminar topic for civil engineering students
Ahina5
 
Zilliz Cloud Demo for performance and scale
Zilliz
 
Solar Thermal Energy System Seminar.pptx
Gpc Purapuza
 
Ethics and Trustworthy AI in Healthcare – Governing Sensitive Data, Profiling...
AlqualsaDIResearchGr
 
ARC--BUILDING-UTILITIES-2-PART-2 (1).pdf
IzzyBaniquedBusto
 
MobileComputingMANET2023 MobileComputingMANET2023.pptx
masterfake98765
 
Water Design_Manual_2005. KENYA FOR WASTER SUPPLY AND SEWERAGE
DancanNgutuku
 
artificial intelligence applications in Geomatics
NawrasShatnawi1
 
Break Statement in Programming with 6 Real Examples
manojpoojary2004
 
GTU Civil Engineering All Semester Syllabus.pdf
Vimal Bhojani
 
Statistical Data Analysis Using SPSS Software
shrikrishna kesharwani
 
ISO/IEC JTC 1/WG 9 (MAR) Convenor Report
Kurata Takeshi
 
Ad

Swift at Scale

  • 1. SWIFT AT SCALE WAR STORIES FROM KAMILAH TAYLOR, SENIOR SOFTWARE ENGINEER, LINKEDIN #SwiftSummit 2016 @kamilah
  • 2. I SINCERELY PROMISE TO KEEP MY SWIFT 3 MIGRATION COMPLAINTS TO A MINIMUM. @kamilah SO THIS TALK... #SwiftSummit
  • 3. REALLY I PROMISE EVEN THOUGH THIS IS HOW I DREAM OF XCODE NOW @kamilah #SwiftSummit
  • 4. SWIFT AT LINKEDIN WHAT I MEAN WHEN I SAY AT SCALE ▸ In January 2015, we started the complete rewrite of our flagship app in Swift, as part of project Voyager ▸ It's not just one app, it's a growing family of apps ▸ It's not just a family of apps, it's a growing set of libraries, internally and open sourced ▸ ~100 iOS devs, ~40 on flagship @kamilah #SwiftSummit
  • 5. SWIFT AT LINKEDIN THE WORKFLOW ▸ Weekly release cycles ▸ Large unit and integration test suites ▸ First version of Swift embraced - the betas (https:// engineering.linkedin.com/ios/our-swift-experience- slideshare) ▸ Number of Swift files in our flagship app - over 4500 @kamilah #SwiftSummit
  • 6. HOW DO WE HAVE IT ALL? SPOILER ALERT: WE DON'T. THIS IS HARD. HERE ARE SOME STORIES. @kamilah #SwiftSummit
  • 7. THE COMPILER STORIES <- THIS NEVER STOPS BEING TRUE @kamilah #SwiftSummit
  • 8. THE COMPILE TIME STORIES DEVELOPER HAPPINESS + PRODUCTIVITY ▸ Compile times very very very long for large codebase (~25 min for a cold build on 15” rMBP) ▸ This has improved with each Xcode version ▸ Three workarounds ▸ code structure ▸ hardware ▸ objective-c (yes, really) @kamilah #SwiftSummit
  • 9. THE COMPILE TIME STORIES THE SOLUTION FOR VOYAGER ▸ Mac Pros for everyone! (12 cores gave us a 2x speed boost over the top of the line MBP) ▸ Switched generated models to ObjC (to reduce the number of Swift files) ▸ Code structure ▸ Dropped iOS 7 support ▸ Modularized using Cocoapod's devpods ▸ This broke debug symbols ▸ Converted devpods into dynamic frameworks @kamilah #SwiftSummit
  • 10. @kamilah THE XCODE PROJECT FILE FIELD NOTE NUMBER 12: SOMETIMES YOU MAY NEED DARK MAGIC TO EDIT THE PROJECT FILE #SwiftSummit
  • 11. THE XCODE PROJECT FILE DARK MAGIC IS NOT AN EXAGGERATION @kamilah #SwiftSummit
  • 12. THAT SEGFAULT 11 THOUGH http://classicprogrammerpaintings.com/post/142796894989/c- developers-aiding-a-comrade-facing-segfault @kamilah #SwiftSummit
  • 13. THAT SEGFAULT 11 THOUGH SOMETIMES THE XCODE COMPILER JUST CRASHES ▸ The problem (on LinkedIn Learning): Our builds started to flakily fail because of a compiler crash once we added a full test suite, as we geared up for our launch ▸ Even locally, the compiler would occasionally crash with a segfault 11 ▸ The solution: Back to manipulating the xcode project settings, a skill I don't remember needing in the objective- c days @kamilah #SwiftSummit
  • 14. THE BUILD ALWAYS NEEDS WORK FAILED TO AUTHORIZE RIGHTS (0X1) WITH STATUS: -60007 ▸ The problem: Our builds started to flakily fail because of a compiler crash (Xcode 7.3) - for everyone's app ▸ Really bad side effect - missing when an actual bad commit went in while the trunk is red ▸ The solution: Our tools team found a work around by splitting the test build (done in xcodebuild) and running tests, now via xctool ▸ Funny follow up: had to revert this patch for Swift 3 @kamilah #SwiftSummit
  • 15. THE SWIFT MIGRATION STORIES <- IF ONLY THIS WERE NOT SO APT @kamilah #SwiftSummit
  • 16. SWIFT BETA - SWIFT 2 THE EARLY DAYS OF MIGRATING ▸ Pre Swift 2 ▸ This mostly affected Slideshare, our first Swift app ▸ No migrator tool so all manual @kamilah #SwiftSummit
  • 17. SWIFT BETA - SWIFT 2 THE EARLY DAYS OF MIGRATING ▸ Swift 2 migration ▸ Needed Xcode 7 for the improved build times ▸ 2 months before launch ▸ Migration tool crashed on large codebase (okay for smaller apps at LinkedIn) ▸ (What we thought was) Lengthy, manual migration to new Swift version for Voyager @kamilah #SwiftSummit
  • 18. BEYOND SWIFT 2 AND THEN 2016 CAME...WITH SWIFT 2.3 AND SWIFT 3 @kamilah #SwiftSummit
  • 19. SWIFT 2 - SWIFT 2.3 IT WAS ONLY KIND OF A PAIN FREE MIGRATION ▸ Swift 2.3 ▸ Again, we needed to upgrade to Xcode 8 ▸ Actually quite painful for Voyager ▸ 14 Swift libraries, 4500 Swift files in Voyager ▸ For LinkedIn Learning, actually not so bad ▸ Took me about 1 week since libraries had already been migrated and migrator "worked" @kamilah #SwiftSummit
  • 20. THAT INITIAL ERROR COUNT OF 666 WAS THE FIRST SIGN. @kamilah MIGRATING TO SWIFT 3 #SwiftSummit
  • 21. SWIFT 3 QUITE POSSIBLY THE WORST DEVELOPER EXPERIENCE ▸ The migrator tool, pretty much useless ▸ Saving grace: http://swift.ayaka.me/posts/2016/6/17/ running-the-swift-30-migrator-on-a-standalone-swift-file ▸ Had a script that ran this for an entire directory ▸ The battle had only begun ▸ Massive effort to upgrade all the swift libraries from the infra and voyager team @kamilah #SwiftSummit
  • 22. SWIFT 3 MIGRATION QUITE THE COORDINATED EFFORT @kamilah #SwiftSummit
  • 23. THE SWIFT 3 MIGRATION THESE ARE ACTUAL COMMIT MESSAGES FROM THE VOYAGER TEAM @kamilah #SwiftSummit
  • 24. SWIFT 3 QUITE POSSIBLY THE WORST DEVELOPER EXPERIENCE ▸ Voyager ▸ Froze the trunk for nearly two weeks ▸ LinkedIn Learning ▸ Still ongoing, even on our much smaller codebase (~800 Swift files) the migrator crashed @kamilah #SwiftSummit
  • 25. THE SWIFT 3 MIGRATION OKAY A FEW MORE COMMIT MESSAGES @kamilah #SwiftSummit
  • 26. SO HOW DO WE DO SWIFT AT SCALE AT LINKEDIN? @kamilah #SwiftSummit
  • 27. ALMOST DONE... SO HOW HAVE WE DONE SWIFT AT SCALE AT LINKEDIN? ▸ Early adoption -> hard earned learnings both from our developers and tools team ▸ Communicate communicate communicate ▸ Frequent knowledge sharing across the company ▸ Internal iOS meetups ▸ Many slack channels, including a dedicated one for swift 3 ▸ Open sourced a swift style guide @kamilah #SwiftSummit
  • 28. ALMOST DONE... SO HOW HAVE WE DONE SWIFT AT SCALE AT LINKEDIN? ▸ Constant experimentation on how to improve our build and compile times ▸ Shout out to our tools team who are always trying to improve the process, test new versions of Xcode @kamilah #SwiftSummit
  • 29. NOW I'M DONE LEARNINGS ▸ This won't come for free ▸ Invest in your tools and infra teams ▸ Swift does require more developer time for maintenance, though less time for training and actual coding ▸ Be ready with much patience and all the humor @kamilah #SwiftSummit
  • 30. @kamilah #SwiftSummit SO LONG AND THANKS FOR ALL THE SWIFT FUN