Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fastlane - App automation done right

Fastlane - App automation done right

Данил Лисовой

Alexander Saenko

September 28, 2019
Tweet

More Decks by Alexander Saenko

Other Decks in Programming

Transcript

  1. App automation done right The Way of the Jedi developer

    automate every aspect of your development and release workflow
  2. Inside gems are the following components: • Code (including tests

    and supporting utilities) • Documentation • gemspec
  3. % tree freewill freewill/ !"" bin/ # $"" freewill !""

    lib/ # $"" freewill.rb !"" test/ # $"" test_freewill.rb !"" README !"" Rakefile $"" freewill.gemspec
  4. RVM is a command-line tool which allows you to easily

    install, manage, and work with multiple ruby environments from interpreters to sets of gems.
  5. Specify your dependencies in a Gemfile in your project's root

    : source 'https://rubygems.org' ruby '2.4.6' gem 'fastlane' gem 'cocoapods', '~>1.7' gem 'bundler', '~> 2.0'
  6. Install all of the required gems from your specified sources:

    $ bundle install $ git add Gemfile Gemfile.lock
  7. Fastlane To build and release mobile apps the easiest way.

    Fastlane handles tedious tasks so you don’t have to. Yes, hmmm.
  8. What do I actually use? • create_keychain/ delete_keychain • match

    • cocoapods • disable_automatic_code_ signing • increment_build_number • gym • read_changelog • testflight • upload_symbols_to_crash lytics • slack
  9. • Assets Catalogs • Colors • Core Data • Fonts

    • Interface Builder files • JSON and YAML files • Plists • Localizable strings
  10. Why? • Avoid any typo you could have when using

    a String • Free auto-completion • Avoid the risk to use an non-existing asset name • All this will be ensured by the compiler.
  11. my-app/ !"" .git !"" .gitignore !"" .ruby-version !"" .swift-version !""

    README.md !"" CHANGELOG.md !"" swiftlint.yml !"" swiftgen.yml !"" Gemfile !"" Gemfile.lock
 !"" Podfile !"" Podfile.lock !"" fastlane/ # !"" Appfile # !"" Fastfile # !"" Gymfile # !"" Matchfile # $"" Pluginfile !"" my-app.xcodeproj/… !"" my-app.xcworkspace/… !"" my-app/ # !"" …
 # $"" main.swift $"" Pods/ !"" … $"" Pods.xcodeproj

  12. • Jenkens • TeamCity • Appcenter • Circle CI •

    GitLab CI • Gitlab • Gitcloud • Travis CI
  13. What is CI? Continuous Integration is the practice of integrating

    code into a shared repository and building/testing each change automatically, as early as possible - usually several times a day.
  14. What is CD? Continuous Delivery adds that the software can

    be released to production at any time, often by automatically pushing changes to a staging system. Continuous Deployment goes further and pushes changes to production automatically.
  15. Continuous Integration • Detects errors as quickly as possible: fix

    problems while fresh in developers mind • Reduces integration problems: smaller problems are easier to digest • Avoid compounding problems: allows teams to develop faster, with more confidence
  16. Continuous Delivery • Ensures every change is releasable: test everything,

    including deployment, before calling it done • Lowers risk of each release: makes releases “boring” • Delivers value more frequently: reliable deployments mean more releases • Tight customer feedback loops: fast and frequent customer feedback on changes