Slide 1

Slide 1 text

LIVING IN THE FASTLANE ALEX TAMOYKIN & MICHAEL MONTGOMERY

Slide 2

Slide 2 text

AGENDA WHAT’S THE PLAN ▸ What ▸ Why ▸ How

Slide 3

Slide 3 text

FASTLANE WHAT’S

Slide 4

Slide 4 text

WHAT SET OF AUTOMATION TOOLS ▸ Deployment ▸ Build process ▸ Screenshots ▸ Tests ▸ etc

Slide 5

Slide 5 text

WOULDN’T A SHELL SCRIPT WORK JUST FINE? WHY

Slide 6

Slide 6 text

WHY WHY FASTLANE ▸ Open Source Community Support ▸ Maintained by Twitter ▸ DRY (Don’t Repeat Yourself)

Slide 7

Slide 7 text

GET TO CODE HOW

Slide 8

Slide 8 text

HOW INSTALL ▸ Prerequisites ▸ $ ruby (installation instructions) ▸ $ gem install fastlane

Slide 9

Slide 9 text

INITIALIZATION ▸ $ cd ▸ $ fastlane init HOW

Slide 10

Slide 10 text

HOW FASTFILE platform :ios do desc "Deploy a new version to the App Store" lane :deploy do |options| # <—— your code goes here end end

Slide 11

Slide 11 text

THAT’S NOT THE REAL THING :-/ SLOWFILE

Slide 12

Slide 12 text

HOW APPFILE # The bundle identifier of your app app_identifier “com.mycompany.myapp” # from Xcode team_name “My Company Inc.” # from Xcode team_id “123ABC123ABC”

Slide 13

Slide 13 text

HOW SCREENSHOTS ▸ Put them inside the screenshots folder ▸ Namespace by language

Slide 14

Slide 14 text

HOW METADATA ▸ Lives inside the metadata folder ▸ Categories should match Apple Provided List of categories ▸ Namespaced by language

Slide 15

Slide 15 text

HOW RUN IT ‣$ fastlane ios deploy

Slide 16

Slide 16 text

HOW SUBMIT MULTIPLE APPS ▸ Environment variables to the rescue ▸ https://github.com/rightbalance/ temporary_environment

Slide 17

Slide 17 text

HOW TEMPORARY ENVIRONMENT VARIABLES require 'temporary_environment' puts ENV['MY_AWESOME_ENV_VARIABLE'] # nil TemporaryEnvironment.with_env_variable( key: 'MY_AWESOME_ENV_VARIABLE', value:’SOME_USEFUL_VALUE' ) do puts ENV['MY_AWESOME_ENV_VARIABLE'] # SOME_USEFUL_VALUE end puts ENV['MY_AWESOME_ENV_VARIABLE'] # nil

Slide 18

Slide 18 text

HOW FASTLANE ENVIRONMENT VARIABLES ▸ Fastfile ▸ FASTLANE_TEAM_ID ▸ FASTLANE_TEAM_NAME

Slide 19

Slide 19 text

WHAT WE’VE LEARNED RECAP

Slide 20

Slide 20 text

RECAP RECAP ▸ What ▸ Why ▸ How

Slide 21

Slide 21 text

RECAP NOW WHAT? ▸ http://fastlane.tools ▸ https://github.com/fastlane ▸ Say Hi: ▸ Alex on twitter: @fsproru ▸ Michael on LinkedIn: https://www.linkedin.com/in/ michael-montgomery-a7b45028

Slide 22

Slide 22 text

THANKS!