XCODE PLAYGROUND · 2. XCODE PLAYGROUND 33 2 XCODE PLAYGROUND , - Hello World . . Xcode -
How to xcode in teams (without killing anyone) - #supengineering
-
Upload
james-campbell -
Category
Engineering
-
view
688 -
download
0
Transcript of How to xcode in teams (without killing anyone) - #supengineering
![Page 1: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/1.jpg)
HOW TO XCODE IN TEAMS (Without killing anyone)
@Supmenow
![Page 2: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/2.jpg)
#SUPENGINEERING @Supmenow
Alex Barton
CTO
@alexmbarton
James Campbell
iOS Engineer
@jcampbell_05
Tiziano Bruni
iOS Engineer
@t_bruni
![Page 3: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/3.jpg)
THE PROBLEM @Supmenow
![Page 4: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/4.jpg)
A beautiful seamless experience to see your friends more
https://bnc.lt/apps-world
![Page 5: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/5.jpg)
@Supmenow
See Facebook Friends. See when they’re nearby or meet someone new.
Start a conversation.
![Page 6: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/6.jpg)
@Supmenow
ON YOUR TERMS
![Page 7: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/7.jpg)
A beautiful seamless experience to see your friends more
https://bnc.lt/apps-world
![Page 8: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/8.jpg)
TIPS TO HELP YOU SPEND MORE TIME BUILDING AWESOME PRODUCTS
@Supmenow
7
HOW TO XCODE IN TEAMS
![Page 9: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/9.jpg)
WHAT ARE THE ISSUES ? @Supmenow
➤Conflicts. ➤Time consuming to maintain. ➤Inconsistent behaviour between development machines.
![Page 10: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/10.jpg)
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
![Page 11: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/11.jpg)
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
![Page 12: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/12.jpg)
TIP 3: COCOAPODS @Supmenow
“CocoaPods is the dependency manager for Swift and Objective-C Cocoa projects.”
![Page 13: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/13.jpg)
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.
![Page 14: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/14.jpg)
TIP 4: FASTLANE @Supmenow
Fastlane allows you to automate the process of testing and releasing your application.
![Page 15: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/15.jpg)
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
![Page 16: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/16.jpg)
@SupmenowTIP 4: FASTLANEFastlane tools:
![Page 17: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/17.jpg)
TIP 4: FASTLANE @Supmenow
lane :appstore do increment_build_number cocoapods xctool snapshot sigh deliver sh "./customScript.sh" slack end
Fastfile:
![Page 18: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/18.jpg)
TIP 5: BUNDLER @Supmenow
Manage the development tools used for your applications.
![Page 19: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/19.jpg)
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.
![Page 20: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/20.jpg)
TIP 6: CI @Supmenow
Allows you to integrate changes from each developer and see how it affects the app
![Page 21: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/21.jpg)
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
![Page 22: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/22.jpg)
TIP 7: COMMUNICATION @Supmenow
![Page 23: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/23.jpg)
Sup. A Social Connection app that brings people together by letting them know when friends are nearby.
https://bnc.lt/apps-world
![Page 24: How to xcode in teams (without killing anyone) - #supengineering](https://reader034.fdocuments.net/reader034/viewer/2022042722/58a7fc9e1a28abfa488b613b/html5/thumbnails/24.jpg)
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