A hands-on workshop to learn how to maximize the quality of your application, reduce your release cycles with a systematic and comprehensive approach. Make your development process become the reliable and trustable pipeline that your business needs.

Overview

Tired of taking care of all the release process of your iOS application (building, testing, signing, distributing to beta testers…)? Do you want your computers to take care of it or do you prefer to continue working like a caveman?

Learn the fundamentals of Continuous Integration using a codebase (one per platform) that you will have to put in CI and improve. If you already have automated tests, get the most out of them. And if you don't see the value for yourself of adding at least some. Practice all the aspects of these best practices in a real environment.

Transform your applications from the work of caring aficionados to the result of professional work with consistent quality and frequent releases.

Learn how to

  • Understand the concept of continuous integration (CI) and its requirements

  • Introduce automated tests and sharpen your testing strategy

  • Automate your build adding all the bells and whistles that you need

  • Smooth your workflow for a CI environment

  • Stop fighting and enjoy your version control system for CI

  • Use feature flags for complex changes (like those that are UI or backend related)

  • Set up and use a self-hosted and a cloud-based CI server

  • Implement a real CI for your application

Audience

This course is intended for iOS mobile app developers who would like to improve the way they build their products. Attendees should have at the very least 6 months of experience developing iOS applications (1 year preferred) and should be familiar with Swift development, know object-oriented programming and what a design pattern is.

An Objective-C version is also available.

Syllabus

Day 1

Continuous Integration For Real

  • Introduction to Continuous Integration

  • CI is not about having a CI Server

  • Advantages and challenges of CI

Continuous Integration Requirements

  • Version Control

  • Automated Build

  • Agreement of the Team

Automated testing

  • Concept and implementation

  • Testing Pyramid

  • Testing Strategy

  • Speeding up Tests

Automating the Build

  • Fastlane concepts

  • Basic automation

  • Automate testing

  • Linters / Static Analyzers

  • Enhanced coverage measures

  • Other tools

  • Artifact Repository

Automated Build Workflow

  • Making progress

  • The importance of time

  • Fixing the build

Version Control System (VCS)

  • Basics: Merge & Rebase

  • Contents of the Repository

  • Branches and Commits

  • Git Flow vs GitHub Flow

Day 2

Advanced VCS

  • Hooks

  • Version number

  • Branching strategies

Managing the Backlog

  • Defects and features

Feature flags

  • Concept

  • Alternative implementations

  • Make Flags Different for QA & production (and others)

Evolving your UI without spoiling what you have

  • Coexist different versions of the user interface

  • Implementation with a real-world example

Working with different versions of the backend API

  • Consume different versions of an API

  • Implementation in a real app

Day 3

Self-Hosted CI Server

  • Set-Up

  • Installation of the Jenkins continuous integration system - Configuration and start-up

  • Creating jobs

  • Some plugins

  • Use of the system in real scenarios

GitHub Actions & CI

  • Capabilities and limitations

  • Implementation with the repository

Suggested Additional Contents

  • Beta testing with Testflight

  • Implementing continuous delivery

  • Using feature flags to refactor the architecture

  • Amplifying your power with analytics

  • A/B Testing with advanced navigation

  • Metrics to monitor the repository

  • Using Xcode Server

  • Other Cloud-based CI servers

Extras

A git code repository with all the code of the course is available on demand.

Requirements

Maximize the outcome of this course by bringing your laptop with the most recent version of Xcode ready and write the code with us!

Related Courses

Overview

Tired of taking care of all the release process of your application (building, testing, signing, distributing to beta testers…)? Do you want your computers to take care of it or do you prefer to continue working like a caveman?

Learn the fundamentals of Continuous Integration using a codebase (one per platform) that you will have to put in CI and improve. If you already have automated tests, get the most out of them. And if you don't see the value for yourself of adding at least some. Practice all the aspects of these best practices in a real environment.

Transform your applications from the work of caring aficionados to the result of professional work with consistent quality and frequent releases.

Learn how to

  • Understand the concept of continuous integration (CI) and its requirements

  • Introduce automated tests and sharpen your testing strategy

  • Automate your build adding all the bells and whistles that you need

  • Smooth your workflow for a CI environment

  • Stop fighting and enjoy your version control system for CI

  • Use feature flags for complex changes (like those that are UI or backend related)

  • Set up and use a self-hosted and a cloud-based CI server

  • Implement a real CI for your application

Audience

This course is intended for Android and iOS mobile app developers who would like to improve the way they build their products. Attendees should have at the very least 6 months of experience developing Android or iOS applications (1 year preferred) and should be familiar with Kotlin or Swift development, know object-oriented programming and what a design pattern is.

Syllabus

Day 1

Continuous Integration For Real

  • Introduction to Continuous Integration

  • CI is not about having a CI Server

  • Advantages and challenges of CI

Continuous Integration Requirements

  • Version Control

  • Automated Build

  • Agreement of the Team

Automated testing

  • Concept and implementation

  • Testing Pyramid

  • Testing Strategy

  • Speeding up Tests

Automating the Build

  • Gradle and Fastlane concepts

  • Basic automation

  • Automate testing

  • Linters / Static Analyzers

  • Enhanced coverage measures

  • Other tools

  • Artifact Repository

Automated Build Workflow

  • Making progress

  • The importance of time

  • Fixing the build

Version Control System (VCS)

  • Basics: Merge & Rebase

  • Contents of the Repository

  • Branches and Commits

  • Git Flow vs GitHub Flow

Day 2

Advanced VCS

  • Hooks

  • Version number

  • Branching strategies

Managing the Backlog

  • Defects and features

Feature flags

  • Concept

  • Alternative implementations

  • Make Flags Different for QA & production (and others)

Evolving your UI without spoiling what you have

  • Coexist different versions of the user interface

  • Implementation with a real-world example

Working with different versions of the backend API

  • Consume different versions of an API

  • Implementation in a real app

Day 3

Self-Hosted CI Server

  • Set-Up

  • Installation of the Jenkins continuous integration system - Configuration and start-up

  • Creating jobs

  • Some plugins

  • Use of the system in real scenarios

GitHub Actions & CI

  • Capabilities and limitations

  • Implementation with the repository

Suggested Additional Contents

  • Gradle Kotlin DSL

  • Beta testing with Firebase & Testflight

  • Implementing continuous delivery

  • Using feature flags to refactor the architecture

  • Amplifying your power with analytics

  • A/B Testing with advanced navigation

  • Metrics to monitor the repository

  • Using Xcode Server

  • Other Cloud-based CI servers

Extras

A git code repository with all the code of the course is available on demand.

Requirements

Maximize the outcome of this course by bringing your laptop with the most recent version of Android Studio or Xcode ready and write the code with us!

Related Courses

Overview

Tired of taking care of all the release process of your Android application (building, testing, signing, distributing to beta testers…)? Do you want your computers to take care of it or do you prefer to continue working like a caveman?

Learn the fundamentals of Continuous Integration using a codebase that you will have to put in CI and improve. If you already have automated tests, get the most out of them. And if you don't see the value for yourself of adding at least some. Practice all the aspects of these best practices in a real environment.

Transform your applications from the work of caring aficionados to the result of professional work with consistent quality and frequent releases.

Learn how to

  • Understand the concept of continuous integration (CI) and its requirements

  • Introduce automated tests and sharpen your testing strategy

  • Automate your build adding all the bells and whistles that you need

  • Smooth your workflow for a CI environment

  • Stop fighting and enjoy your version control system for CI

  • Use feature flags for complex changes (like those that are UI or backend related)

  • Set up and use a self-hosted and a cloud-based CI server

  • Implement a real CI for your application

Audience

This course is intended for Android mobile app developers who would like to improve the way they build their products. Attendees should have at the very least 6 months of experience developing Android applications (1 year preferred) and should be familiar with Kotlin development, know object-oriented programming and what a design pattern is.

A Java version is also available.

Syllabus

Day 1

Continuous Integration For Real

  • Introduction to Continuous Integration

  • CI is not about having a CI Server

  • Advantages and challenges of CI

Continuous Integration Requirements

  • Version Control

  • Automated Build

  • Agreement of the Team

Automated testing

  • Concept and implementation

  • Testing Pyramid

  • Testing Strategy

  • Speeding up Tests

Automating the Build

  • Gradle concepts

  • Basic automation

  • Automate testing

  • Linters / Static Analyzers

  • Enhanced coverage measures

  • Other tools

  • Artifact Repository

Automated Build Workflow

  • Making progress

  • The importance of time

  • Fixing the build

Version Control System (VCS)

  • Basics: Merge & Rebase

  • Contents of the Repository

  • Branches and Commits

  • Git Flow vs GitHub Flow

Day 2

Advanced VCS

  • Hooks

  • Version number

  • Branching strategies

Managing the Backlog

  • Defects and features

Feature flags

  • Concept

  • Alternative implementations

  • Make Flags Different for QA & production (and others)

Evolving your UI without spoiling what you have

  • Coexist different versions of the user interface

  • Implementation with a real-world example

Working with different versions of the backend API

  • Consume different versions of an API

  • Implementation in a real app

Day 3

Self-Hosted CI Server

  • Set-Up

  • Installation of the Jenkins continuous integration system - Configuration and start-up

  • Creating jobs

  • Some plugins

  • Use of the system in real scenarios

GitHub Actions & CI

  • Capabilities and limitations

  • Implementation with the repository

Suggested Additional Contents

  • Gradle Kotlin DSL

  • Beta testing with Firebase

  • Implementing continuous delivery

  • Using feature flags to refactor the architecture

  • Amplifying your power with analytics

  • A/B Testing with advanced navigation

  • Metrics to monitor the repository

  • Other Cloud-based CI servers

Extras

A git code repository with all the code of the course is available on demand.

Requirements

Maximize the outcome of this course by bringing your laptop with the most recent version of Xcode ready and write the code with us!

Related Courses