SlideShare a Scribd company logo
1 of 24
Download to read offline
HOW TO XCODE IN TEAMS(Without killing anyone)
@Supmenow
#SUPENGINEERING @Supmenow
Alex Barton
CTO
@alexmbarton
James Campbell
iOS Engineer
@jcampbell_05
Tiziano Bruni
iOS Engineer
@t_bruni
THE PROBLEM @Supmenow
A beautiful seamless experience to
see your friends more
https://bnc.lt/apps-world
@Supmenow
See Facebook Friends. See when they’re nearby 

or meet someone new.
Start a conversation.
@Supmenow
ON YOUR TERMS
A beautiful seamless experience to
see your friends more
https://bnc.lt/apps-world
TIPS TO HELP YOU SPEND
MORE TIME BUILDING
AWESOME PRODUCTS
@Supmenow
7
HOW TO XCODE IN TEAMS
WHAT ARE THE ISSUES ? @Supmenow
➤Conflicts.
➤Time consuming to maintain.
➤Inconsistent behaviour between development machines.
TIP 1: .GITIGNORE @Supmenow
Xcode Projects contain a lot of information about what each developer was doing.
We can use a .gitignore file to ignore all of that.
## Build generated
build/
DerivedData
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
## Other
*.xccheckout
*.moved-aside
*.xcuserstate
*.xcscmblueprint
## Obj-C/Swift specific
*.hmap
*.ipa
## Mac Files
.DS_Store?
.DS_Store
TIP 2: .GITATTRIBUTE @Supmenow
git doesn’t really understand Xcode projects, we can use .gitattribute file to
let it know what to do when resolving conflicts.
*.pbxproj binary merge=union
TIP 3: COCOAPODS @Supmenow
“CocoaPods is the dependency manager for Swift
and Objective-C Cocoa projects.”
LIBRARIES MADE EASY @Supmenow
target 'myapp' do
pod 'FlatUIKit'
end
We can easily add and maintain code written by others without
having to add it to our project manually.
We just need to create a podfile and cocoapods does the rest.
TIP 4: FASTLANE @Supmenow
Fastlane allows you to automate the process of testing and releasing
your application.
TIP 4: FASTLANE @Supmenow
Fastlane uses the concept of lanes. Each
lane is different way of distributing your
app.
It could be to the app store or just to test
flight.
We describe all of this inside of a fastfile
Your App
@Supmenow
TIP 4: FASTLANE
Fastlane tools:
TIP 4: FASTLANE @Supmenow
lane :appstore do
increment_build_number
cocoapods
xctool
snapshot
sigh
deliver
sh "./customScript.sh"
slack
end
Fastfile:
TIP 5: BUNDLER @Supmenow
Manage the development tools used for your
applications.
TIP 5: BUNDLER @Supmenow
source "https://rubygems.org"
gem "cocoapods", "~> 0.39"
gem "fastlane", "~> 1.36"
We use a lot of tools when developing our apps, controlling which
version we use makes it easier when working in teams.
We just need to create our gemfile, describing which and what
version of our tools.
TIP 6: CI @Supmenow
Allows you to integrate changes from each developer and see how it affects the app
TIP 6: CI @Supmenow
To tell travis how to build our app we simply use a .travis.yml file and it will
handle the rest.
language: objective-c
osx_image: xcode7
script: fastlane beta
TIP 7: COMMUNICATION @Supmenow
Sup. A Social Connection app that 

brings people together by letting
them know when friends are nearby.
https://bnc.lt/apps-world
Alex Barton
CTO
@alexmbarton
James Campbell
iOS Engineer
@jcampbell_05
Tiziano Bruni
iOS Engineer
@t_bruni
#SUPENGINEERING @Supmenow
WE HAVE BLOG
https://medium.com/sup-engineering

More Related Content

What's hot

Unpacking Developer Experience
Unpacking Developer ExperienceUnpacking Developer Experience
Unpacking Developer ExperienceAmit Jotwani
 
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...Yusuke Takahashi, PhD
 
Introduction to development with Django web framework
Introduction to development with Django web frameworkIntroduction to development with Django web framework
Introduction to development with Django web frameworkSammy Fung
 
Evernote release process
Evernote release processEvernote release process
Evernote release processReid Baker
 
Create Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
Create Cross-Platform Native Mobile Apps in Flex with ELIPS StudioCreate Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
Create Cross-Platform Native Mobile Apps in Flex with ELIPS StudioGuilhem Ensuque
 
GlueCon'11 - Native vs Wrapped Mobile apps : What to Build ?
GlueCon'11 - Native vs Wrapped Mobile apps : What to Build ?GlueCon'11 - Native vs Wrapped Mobile apps : What to Build ?
GlueCon'11 - Native vs Wrapped Mobile apps : What to Build ?Guilhem Ensuque
 
VDC Conference 2011 - Developing Cross-Platform Apps
VDC Conference 2011 - Developing Cross-Platform AppsVDC Conference 2011 - Developing Cross-Platform Apps
VDC Conference 2011 - Developing Cross-Platform AppsGuilhem Ensuque
 
How to edit in Capcut?
How to edit in Capcut?How to edit in Capcut?
How to edit in Capcut?AngelaBonife
 
Continuous Delivery for Mobile
Continuous Delivery for MobileContinuous Delivery for Mobile
Continuous Delivery for MobileSweta Vajjhala
 
FAKE (F# Make) & Automation
FAKE (F# Make) & AutomationFAKE (F# Make) & Automation
FAKE (F# Make) & AutomationSergey Tihon
 
Hello PhoneGap
Hello PhoneGapHello PhoneGap
Hello PhoneGapmwbrooks
 
Ofir Dagan - (Don’t) Blame it on React Native - Codemotion Rome 2019
Ofir Dagan - (Don’t) Blame it on React Native - Codemotion Rome 2019Ofir Dagan - (Don’t) Blame it on React Native - Codemotion Rome 2019
Ofir Dagan - (Don’t) Blame it on React Native - Codemotion Rome 2019Codemotion
 
SydMobNet September 2014: ReactiveUI, Genymotion, Xamarin.UITest and Xamarin ...
SydMobNet September 2014: ReactiveUI, Genymotion, Xamarin.UITest and Xamarin ...SydMobNet September 2014: ReactiveUI, Genymotion, Xamarin.UITest and Xamarin ...
SydMobNet September 2014: ReactiveUI, Genymotion, Xamarin.UITest and Xamarin ...Alec Tucker
 
Google Apps Script Overview
Google Apps Script OverviewGoogle Apps Script Overview
Google Apps Script Overviewtty fky
 
devopsdays Riga 2018 - Chaos while deploying AI and making sure it doesn’t hu...
devopsdays Riga 2018 - Chaos while deploying AI and making sure it doesn’t hu...devopsdays Riga 2018 - Chaos while deploying AI and making sure it doesn’t hu...
devopsdays Riga 2018 - Chaos while deploying AI and making sure it doesn’t hu...Thiago de Faria
 
ApacheCon 2011
ApacheCon 2011ApacheCon 2011
ApacheCon 2011mwbrooks
 

What's hot (20)

Unpacking Developer Experience
Unpacking Developer ExperienceUnpacking Developer Experience
Unpacking Developer Experience
 
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
 
Introduction to development with Django web framework
Introduction to development with Django web frameworkIntroduction to development with Django web framework
Introduction to development with Django web framework
 
Evernote release process
Evernote release processEvernote release process
Evernote release process
 
Create Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
Create Cross-Platform Native Mobile Apps in Flex with ELIPS StudioCreate Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
Create Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
 
GlueCon'11 - Native vs Wrapped Mobile apps : What to Build ?
GlueCon'11 - Native vs Wrapped Mobile apps : What to Build ?GlueCon'11 - Native vs Wrapped Mobile apps : What to Build ?
GlueCon'11 - Native vs Wrapped Mobile apps : What to Build ?
 
VDC Conference 2011 - Developing Cross-Platform Apps
VDC Conference 2011 - Developing Cross-Platform AppsVDC Conference 2011 - Developing Cross-Platform Apps
VDC Conference 2011 - Developing Cross-Platform Apps
 
How to edit in Capcut?
How to edit in Capcut?How to edit in Capcut?
How to edit in Capcut?
 
Continuous Delivery for Mobile
Continuous Delivery for MobileContinuous Delivery for Mobile
Continuous Delivery for Mobile
 
Google App Inventor
Google App InventorGoogle App Inventor
Google App Inventor
 
FAKE (F# Make) & Automation
FAKE (F# Make) & AutomationFAKE (F# Make) & Automation
FAKE (F# Make) & Automation
 
Hello PhoneGap
Hello PhoneGapHello PhoneGap
Hello PhoneGap
 
Ofir Dagan - (Don’t) Blame it on React Native - Codemotion Rome 2019
Ofir Dagan - (Don’t) Blame it on React Native - Codemotion Rome 2019Ofir Dagan - (Don’t) Blame it on React Native - Codemotion Rome 2019
Ofir Dagan - (Don’t) Blame it on React Native - Codemotion Rome 2019
 
SydMobNet September 2014: ReactiveUI, Genymotion, Xamarin.UITest and Xamarin ...
SydMobNet September 2014: ReactiveUI, Genymotion, Xamarin.UITest and Xamarin ...SydMobNet September 2014: ReactiveUI, Genymotion, Xamarin.UITest and Xamarin ...
SydMobNet September 2014: ReactiveUI, Genymotion, Xamarin.UITest and Xamarin ...
 
Drupoid
DrupoidDrupoid
Drupoid
 
DevOps + MongoDB Serverless = 
DevOps + MongoDB Serverless = DevOps + MongoDB Serverless = 
DevOps + MongoDB Serverless = 
 
Plugin development
Plugin developmentPlugin development
Plugin development
 
Google Apps Script Overview
Google Apps Script OverviewGoogle Apps Script Overview
Google Apps Script Overview
 
devopsdays Riga 2018 - Chaos while deploying AI and making sure it doesn’t hu...
devopsdays Riga 2018 - Chaos while deploying AI and making sure it doesn’t hu...devopsdays Riga 2018 - Chaos while deploying AI and making sure it doesn’t hu...
devopsdays Riga 2018 - Chaos while deploying AI and making sure it doesn’t hu...
 
ApacheCon 2011
ApacheCon 2011ApacheCon 2011
ApacheCon 2011
 

Similar to How to xcode in teams (without killing anyone) - #supengineering

Stanislav Khorunzhyi, "Front-end it like a PRO"
Stanislav Khorunzhyi, "Front-end it like a PRO"Stanislav Khorunzhyi, "Front-end it like a PRO"
Stanislav Khorunzhyi, "Front-end it like a PRO"Sigma Software
 
Building a design system with (p)react
Building a design system with (p)reactBuilding a design system with (p)react
Building a design system with (p)reactBart Waardenburg
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerBill Scott
 
The Chronicle of iPhone Automation -- From Frank to UISpec to UIAutomation to...
The Chronicle of iPhone Automation -- From Frank to UISpec to UIAutomation to...The Chronicle of iPhone Automation -- From Frank to UISpec to UIAutomation to...
The Chronicle of iPhone Automation -- From Frank to UISpec to UIAutomation to...Hinling Yeung
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to productjoeysim
 
Cucumber meets iPhone
Cucumber meets iPhoneCucumber meets iPhone
Cucumber meets iPhoneErin Dees
 
TiConf NYC - Documenting Your Titanium Applications
TiConf NYC - Documenting Your Titanium ApplicationsTiConf NYC - Documenting Your Titanium Applications
TiConf NYC - Documenting Your Titanium ApplicationsJamil Spain
 
Documenting apps ti confnyc
Documenting apps   ti confnycDocumenting apps   ti confnyc
Documenting apps ti confnycJamil Spain
 
Jenkins - Automating Yourself Out Of A Job (One That You Don't Want)
Jenkins - Automating Yourself Out Of A Job (One That You Don't Want)Jenkins - Automating Yourself Out Of A Job (One That You Don't Want)
Jenkins - Automating Yourself Out Of A Job (One That You Don't Want)lloydbenson
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deploymentFilippo Zanella
 
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014Pebble Technology
 
GeeCON 2015 DevOps and the dark side
GeeCON 2015 DevOps and the dark side GeeCON 2015 DevOps and the dark side
GeeCON 2015 DevOps and the dark side Steve Poole
 
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for goodDevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for goodSteve Poole
 
Lessons learned maintaining Open Source ActionScript projects
Lessons learned maintaining Open Source ActionScript projectsLessons learned maintaining Open Source ActionScript projects
Lessons learned maintaining Open Source ActionScript projectsZeh Fernando
 
Testing Native Apps at PAYBACK
Testing Native Apps at PAYBACKTesting Native Apps at PAYBACK
Testing Native Apps at PAYBACKMarcel Gehlen
 
Django simplified : by weever mbakaya
Django simplified : by weever mbakayaDjango simplified : by weever mbakaya
Django simplified : by weever mbakayaMbakaya Kwatukha
 
Continuous delivery of embedded systems embedded meetup
Continuous delivery of embedded systems   embedded meetupContinuous delivery of embedded systems   embedded meetup
Continuous delivery of embedded systems embedded meetupMike Long
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with AppiumSrijan Technologies
 

Similar to How to xcode in teams (without killing anyone) - #supengineering (20)

Stanislav Khorunzhyi, "Front-end it like a PRO"
Stanislav Khorunzhyi, "Front-end it like a PRO"Stanislav Khorunzhyi, "Front-end it like a PRO"
Stanislav Khorunzhyi, "Front-end it like a PRO"
 
Building a design system with (p)react
Building a design system with (p)reactBuilding a design system with (p)react
Building a design system with (p)react
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
 
The Chronicle of iPhone Automation -- From Frank to UISpec to UIAutomation to...
The Chronicle of iPhone Automation -- From Frank to UISpec to UIAutomation to...The Chronicle of iPhone Automation -- From Frank to UISpec to UIAutomation to...
The Chronicle of iPhone Automation -- From Frank to UISpec to UIAutomation to...
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to product
 
Cucumber meets iPhone
Cucumber meets iPhoneCucumber meets iPhone
Cucumber meets iPhone
 
TiConf NYC - Documenting Your Titanium Applications
TiConf NYC - Documenting Your Titanium ApplicationsTiConf NYC - Documenting Your Titanium Applications
TiConf NYC - Documenting Your Titanium Applications
 
Documenting apps ti confnyc
Documenting apps   ti confnycDocumenting apps   ti confnyc
Documenting apps ti confnyc
 
Jenkins - Automating Yourself Out Of A Job (One That You Don't Want)
Jenkins - Automating Yourself Out Of A Job (One That You Don't Want)Jenkins - Automating Yourself Out Of A Job (One That You Don't Want)
Jenkins - Automating Yourself Out Of A Job (One That You Don't Want)
 
Importance Of Alert And Notification In App Dev
Importance Of Alert And Notification In App DevImportance Of Alert And Notification In App Dev
Importance Of Alert And Notification In App Dev
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deployment
 
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014
 
TxJS 2011
TxJS 2011TxJS 2011
TxJS 2011
 
GeeCON 2015 DevOps and the dark side
GeeCON 2015 DevOps and the dark side GeeCON 2015 DevOps and the dark side
GeeCON 2015 DevOps and the dark side
 
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for goodDevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
 
Lessons learned maintaining Open Source ActionScript projects
Lessons learned maintaining Open Source ActionScript projectsLessons learned maintaining Open Source ActionScript projects
Lessons learned maintaining Open Source ActionScript projects
 
Testing Native Apps at PAYBACK
Testing Native Apps at PAYBACKTesting Native Apps at PAYBACK
Testing Native Apps at PAYBACK
 
Django simplified : by weever mbakaya
Django simplified : by weever mbakayaDjango simplified : by weever mbakaya
Django simplified : by weever mbakaya
 
Continuous delivery of embedded systems embedded meetup
Continuous delivery of embedded systems   embedded meetupContinuous delivery of embedded systems   embedded meetup
Continuous delivery of embedded systems embedded meetup
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
 

Recently uploaded

CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 

Recently uploaded (20)

CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 

How to xcode in teams (without killing anyone) - #supengineering

  • 1. HOW TO XCODE IN TEAMS(Without killing anyone) @Supmenow
  • 2. #SUPENGINEERING @Supmenow Alex Barton CTO @alexmbarton James Campbell iOS Engineer @jcampbell_05 Tiziano Bruni iOS Engineer @t_bruni
  • 4. A beautiful seamless experience to see your friends more https://bnc.lt/apps-world
  • 5. @Supmenow See Facebook Friends. See when they’re nearby 
 or meet someone new. Start a conversation.
  • 7. A beautiful seamless experience to see your friends more https://bnc.lt/apps-world
  • 8. TIPS TO HELP YOU SPEND MORE TIME BUILDING AWESOME PRODUCTS @Supmenow 7 HOW TO XCODE IN TEAMS
  • 9. WHAT ARE THE ISSUES ? @Supmenow ➤Conflicts. ➤Time consuming to maintain. ➤Inconsistent behaviour between development machines.
  • 10. TIP 1: .GITIGNORE @Supmenow Xcode Projects contain a lot of information about what each developer was doing. We can use a .gitignore file to ignore all of that. ## Build generated build/ DerivedData ## Various settings *.pbxuser !default.pbxuser *.mode1v3 !default.mode1v3 *.mode2v3 !default.mode2v3 *.perspectivev3 !default.perspectivev3 xcuserdata ## Other *.xccheckout *.moved-aside *.xcuserstate *.xcscmblueprint ## Obj-C/Swift specific *.hmap *.ipa ## Mac Files .DS_Store? .DS_Store
  • 11. TIP 2: .GITATTRIBUTE @Supmenow git doesn’t really understand Xcode projects, we can use .gitattribute file to let it know what to do when resolving conflicts. *.pbxproj binary merge=union
  • 12. TIP 3: COCOAPODS @Supmenow “CocoaPods is the dependency manager for Swift and Objective-C Cocoa projects.”
  • 13. LIBRARIES MADE EASY @Supmenow target 'myapp' do pod 'FlatUIKit' end We can easily add and maintain code written by others without having to add it to our project manually. We just need to create a podfile and cocoapods does the rest.
  • 14. TIP 4: FASTLANE @Supmenow Fastlane allows you to automate the process of testing and releasing your application.
  • 15. TIP 4: FASTLANE @Supmenow Fastlane uses the concept of lanes. Each lane is different way of distributing your app. It could be to the app store or just to test flight. We describe all of this inside of a fastfile Your App
  • 17. TIP 4: FASTLANE @Supmenow lane :appstore do increment_build_number cocoapods xctool snapshot sigh deliver sh "./customScript.sh" slack end Fastfile:
  • 18. TIP 5: BUNDLER @Supmenow Manage the development tools used for your applications.
  • 19. TIP 5: BUNDLER @Supmenow source "https://rubygems.org" gem "cocoapods", "~> 0.39" gem "fastlane", "~> 1.36" We use a lot of tools when developing our apps, controlling which version we use makes it easier when working in teams. We just need to create our gemfile, describing which and what version of our tools.
  • 20. TIP 6: CI @Supmenow Allows you to integrate changes from each developer and see how it affects the app
  • 21. TIP 6: CI @Supmenow To tell travis how to build our app we simply use a .travis.yml file and it will handle the rest. language: objective-c osx_image: xcode7 script: fastlane beta
  • 22. TIP 7: COMMUNICATION @Supmenow
  • 23. Sup. A Social Connection app that 
 brings people together by letting them know when friends are nearby. https://bnc.lt/apps-world
  • 24. Alex Barton CTO @alexmbarton James Campbell iOS Engineer @jcampbell_05 Tiziano Bruni iOS Engineer @t_bruni #SUPENGINEERING @Supmenow WE HAVE BLOG https://medium.com/sup-engineering