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!