+ All Categories
Home > Engineering > How to xcode in teams (without killing anyone) - #supengineering

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

Date post: 18-Feb-2017
Category:
Upload: james-campbell
View: 681 times
Download: 0 times
Share this document with a friend
24
HOW TO XCODE IN TEAMS (Without killing anyone) @Supmenow
Transcript
Page 1: How to xcode in teams (without killing anyone) - #supengineering

HOW TO XCODE IN TEAMS (Without killing anyone)

@Supmenow

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

#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

THE PROBLEM @Supmenow

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

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

@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

@Supmenow

ON YOUR TERMS

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

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

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

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

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

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

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

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

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

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

@SupmenowTIP 4: FASTLANEFastlane tools:

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

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

TIP 5: BUNDLER @Supmenow

Manage the development tools used for your applications.

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

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

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

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

TIP 7: COMMUNICATION @Supmenow

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

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

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


Recommended