We may earn an affiliate commission when you visit our partners.
Course image
Tim Buchalka's Learn Programming Academy and Eduardo Rosas

What you will learn in this course?

Read more

What you will learn in this course?

In this course, you will learn the fundamentals of CI/CD which is short for Continuous Integration/Continuous Delivery and be able to apply these fundamentals in your Android app development process.The word Deployment is often used in place of Delivery but effectively means the same thing.These skills are essential to maximize your career potential in 2019 and beyond, because more and more companies are adopting these development practices requiring new employees or freelancers to be well versed in these concepts.

What is Continuous Integration (CI) ?

CI is the practice of merging all programmers current working copies to a shared mainline on a regular basis (usually several times a day).

A developer checks out a working copy of the code base prior to making a change.  Over time as other developers check out and make changes, this checked out working copy of the source code base gets out of date, potentially requiring more and more work by developers to actually  check their completed changes back in to the main repository.

Without using CI it can become really difficult to merge all these changes and can lead to it taking more time to  merge changes back into the main source code base than it took to make the the change itself.

CI seeks to eliminate this problem by making sure all developers integrate early and often with the goal to reduce rework and ultimately save cost and time.  This involves all developers merging their code back into the main repository multiple times a day.

An added bonus is that each programmer who is merging changes needs to build and run (and pass) all unit tests which usually run automatically meaning the code base is easier to work with and merge changes into and is potentially more stable as a result.

What is Continuous Delivery or Deployment (CD) ?

This extends CI to ensure that new changes to software can be released to clients quicker, but in a more sustainable way.  It takes the advantages of CI from a development perspective (automated testing, on code check-in, etc) allowing the actual code base to be built and new releases to be automatically released to the client, effectively meaning a new version can be deployed to the client by a click of a button.

CI/CD concepts.

By adhering to a CI/CD development process, the code base can be built and released more quickly, and is in a more stable state overall.  These are some of the reasons why more and more companies are adopting a CI/CD development process in 2019 and beyond.

Key topics in this course.

1. Continuous Integration

2. Continuous Delivery

3. App Center

4. GitHub Pull Requests

5. Branch protection

6. UI Tests

7. App Diagnostics

8. App Analytics

What will you learn?

• Learn how to track errors and crashes in your apps.

• Learn how to track any event triggered within your apps.

• Apply complete CI/CD flows in your app development process.

• Use GitHub to trigger code checks and app distribution to users.

• Use App Center to automate checks and protect important branches.

• Leverage App Center to automatically create builds on every merge.

• Automate the distribution of a new build to beta testers.

• Automate the distribution of new releases to the Google app store.

• Focus on the development of features, leave the build and distribution to App Center.

• Improve teamwork with automatic builds and checks that improve the quality of your merges.

• Enable product discovery with the help of Analytics in the App Center.

• Test your app in a wide array of cloud-hosted physical devices.

Differences with other CI/CD courses.

While there are other CI/CD courses out there, most of them are too general. This course is completely tailored to Android developers, this way you can immediately start applying what you learn in your app development process. Because of this, the course also covers topics not normally found on other CI/CD courses, such as UI Testing for Android app development.

Who is the course aimed at?The course does not require any previous CI/CD or DevOps experience, although some basic Git & GitHub experience is desirable.While this is a CI/CD course, it is oriented to Android app developers, so some basic Android app development experience is required.

Getting started

If you are ready to get started, click on the Enroll or Add to Cart button on this page and start taking your CI/CD skills with Android to the next level.

Enroll now

What's inside

Learning objectives

  • Apply complete ci/cd flows in their app development process.
  • Use github to trigger code checks and app distribution to users.
  • Use app center to automate checks and protect important branches.
  • Leverage app center to automatically create builds on every merge.
  • Automate the distribution of a new build to beta testers.
  • A full list of other features are on this page.

Syllabus

In this section we will learn about DevOps and its advantages, how there is a relationship between GitHub and CI/CD, and what you will accomplish by the end of this course.
Read more

In this lecture I talk about the topics that this course covers, and describe a bit about what you will learn in each section, just so you get the overall idea about what you will learn, and what you may already know aout the course topics.

In this lecture I briefly describe the three steps that conform DevOps and the CI/CD process that we will implement with the help of App Center.

In this lecture I talk about the advantages of implementing a DevOps strategy that includes Continuous Integration, Continuous Quality and Continupus Delivery not only from the developer point of view, but from the user and business POV.

In this lecture I will give you a sneak peak at the entire CI/CD flow entirely integrated with our version control's remote repository on GitHub so that builds and new releases are automatically triggered from App Center.

In this section we will begin by learning about the ideal branch structure that we should have inside of our git version control so that CI/CD works perfectly.

Here at the beginning of the section, I talk about why source control is important, and how you should structure your branches so that CI/CD can be easily implemented once we have everything in GitHub.

In this lecture you will create a new Android project and initialize the repository in the correct directory, so that the project is ready to commit changes to it and eventually push them to the GitHub remote.

In this lecture you will learn how to commit the changes that you make to your code to your repository, so the changes are tracked and versions of the same file can be identified in the source control system through those git commits.

In this lecture you will learn to create new branches directly from the terminal, as well as learn how to switch between them with the checkout command. This step is very important, because it helps set the foundation of the CI/CD process as we will eventually have it in App Center.

In this lecture I explain how you can commit different changes to different branches, how the IDE is aware of the current working branch, and displays what the branch contains, and how you can merge branches together, setting one important piece of the CI/CD puzzle

In this lecture you will create a new GitHub repository and explore the tabs that it contains, with the purpose of identifying the interface a bit better and starting to understand how Github will relate to the CI/CD process that we want to implement.

In this lecture you will push everything from your local repository to your new GitHub remote repository. You will push all the branches that contain all commits, and set upstreams so future push commands are easier to execute.

In this lecture I will cover two very important things that GitHub allows us to do inside of a remote repository, and that are going to be the backbone of the CI/CD structure: branch protection and collaboration. One will protect the master branch from unchecked merges, the other will allow other accounts to work in the same repository.

In this lecture you will create your first pull requests inside of the GitHub repository that we have created as the remote for our local repo. These pull requests will merge changes from dev to test, and eventually to master, which is protected so we will need to add an approving review.

In this lecture we are going to simulate a CI/CD rundown with the GitHub repository that we already have. We are going to be deploying some part of our code with the help of GitHub Pages, and we will use pull requests to simulate how eventually a Continuous Deployment process can work.

Now that you are more familiarized with the process that we will follow in GitHub, it is time to start using App Center. In this section we'll explore its features, connect it to a new Android app.

In this lecture we will start to talk about App Center, what services it provides, which we are going to be using, and how it will help us not only implement a CI/CD process, but identify what features we must add to our apps.

In this lecture you will create your new App Center account and explore what features you have inside. Create an organization that will hold distribution groups (important for the CD process) and add the app that you will use throughout the course.

In this lecture you will prepare a new Android application to connect to App Center through some NuGet packages that we have to add. This will be done through the App class and the initialization will prepare the projects to communicate with the App Center Apps we have ready in the portal.

In this lecture I will push all of our code over to GitHub and explain the two ways in which you can get the source code for each lecture of the course in which we work with code.

In this lecture we will setup the basic navigation of the application and set it to crash from two different places, so that we have something that is being tracked by App Center from the beginning

In this lecture you will code the functionality that tracks events, which can be added anywhere you want, and is done very similarly to how errors are tracked. Then, you will explore how this information gets added to App Center.

In this lecture you will learn how to track more context when the events are reported to app center, so as developers we understand better how are users behave inside the application and know what to improve.

In this section you will start to work with a CI process that is enabled by GitHub and App Center.

In this lecture we cover the benefits of using Continuous Integration, and the reasons why you should consider always using it when you create new mobile app projects.

In this lecture you will first make sure that the remote repository contains all the main branches that we have mentioned that we need. You will then fetch all those branches to some new local branches, and finally work with a new feature branch that has to be merged into dev.

In this lecture you will setup Continuous Integration for one of your branches for the Android app that you have on App Center. This CI process will then be triggered when we merge into the dev branch from one of our feature branches.

After we had to create an additional App Center app, we created a big mess within our GitHub and App Center accounts, in this lecture, we will clean that mess up by identifying what happened on GitHub and App Center, and making sure that everything is clean and ready to keep working with Continuous Integration.

In this lecture we will use the checks that have been added to our GitHub repository from App Center to protect our branches, so that merges can only happen once the checks (builds) have succeeded.

In this lecture you will enable checks in your pull requests by making App Center send information to your GitHub repository, just like the GitHub repo was already sending info to App Center.

In this lecture we will execute a complete CI flow by coding a new feature into a new feature branch. This new feature, coded from Android Studio, will eventually be pushed to the remote, where a new pull request will start, which will itself trigger checks and builds in App Center.

In this section we will create some unit tests for our Android application with NUnit and Android.UITests so we can later get themm all on App Center and make them execute over on the cloud.

In this lecture we will discuss what Continuous Quality means in the context of App Center, and how th power of App Center will allow us to automate the tests of our app (that we will create with Espresso) in thousands of physical devices with what once was Test Cloud.

In this lecture you will add a new project to the solution, which will contain the tests that we will have to run. After that, you will prepare the Android project to execute those tests, which will mean adding some Test cloud information and disabling some mono runtime features here and there.

In this lecture you will install the App Center CLI tools that will be necessary for the tests to be uploaded from our local machine to the Continuous Quality service that we will use throughout this section.

In this lecture we will prepare the Android project to create the APK file everytime it builds, and use the App Center CLI (Command Line Interface) to upload this APK file with the debug UI test configuration to App Center, where our test will run on as many physical devices as we want. We will also improve the test that Espresso is performing so that it waits for an element to be on the screen before making assertions.

In this lecture we will take a sneak peak at what automatic tests behave on App Center. Some automatic tests will be performed when the Continuous Integration process is triggered and be part of the CI process itself.

In this section we will configure a continuous delivery of new versions of our apps from two of our branches: the test and the master branch.

In this lecture I will discuss what Continuous Delivery means in the context of our mobile applications, and walk you through the actions that App Center will have to perform to get our apps to our users, through distribution groups, and through the App Stora and Play Store.

In this lecture you will be creating a distribution group for the Android application, which will be used by our continuous delivery process to distribute a new release of our application from the test branch everytime a pull request happens.

In this lecture we will configure our Android test branch to create a new release everytime a new build is triggered with Continuous Integration. For this we will need the help of JAVA to create a keystore file that we will upload to App Center

In this lecture you will learn how your beta testers will be able to install the application's releases that we have generated directly on their phones with the help of App Center, and start to use those new versions that we have prepared through Continuous Delivery.

App Center requires that we create an initial release of our Android Application in the Google Play Console, so that new releases can later be automated through a continuous integration and continuous delivery process triggered in our master branches.

In this lecture you will connect the Google Play Store to App Center so that Continuous Delivery is ready from the master branch. This will happen with a JSON file generated directly from the API console.

In this lecture we will trigger an entire CI/CD flow directly from GitHub and into the master branch, so that the CI process builds a new version of the app, and the CD process distributes it to the corresponding App stores.

Environment Variables
Extra Information - Source code, and other stuff
Source Codes
Bonus Lecture and Information

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores industry-standard app development processes and tools used in the mobile industry
Tailored specifically to Android development, making it highly relevant to the target audience
Taught by Eduardo Rosas, who has extensive experience in mobile app development, ensuring the credibility of the content
Covers a comprehensive range of topics in CI/CD for Android development, providing a thorough understanding
Hands-on labs and interactive materials enhance the learning experience, making it more engaging and practical
Prerequisites are minimal, making it accessible to developers with a foundational understanding of Android app development

Save this course

Save Master CI/CD for Android Developers to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Master CI/CD for Android Developers with these activities:
Review Continuous Integration and Continuous Delivery (CI/CD) Fundamentals
Refresh your understanding of CI/CD fundamentals to strengthen your foundation for this course.
Browse courses on Continuous Integration
Show steps
  • Read through course materials on CI/CD concepts.
  • Review online articles and tutorials on CI/CD.
Organize Course Materials
Organize your course materials, including notes, assignments, and quizzes, for easy reference and review.
Show steps
  • Create a folder or digital workspace for course materials.
  • Sort and label materials by topic or section.
  • Review and highlight important concepts and keywords.
Create an Android App with CI/CD Integration
Apply the CI/CD concepts learned in the course by setting up a project with CI/CD integration.
Show steps
  • Create a new Android project and set up a GitHub repository.
  • Integrate App Center into your project for CI/CD.
  • Configure CI/CD workflows and pipelines.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Solve CI/CD-Related Coding Challenges
Sharpen your coding skills by solving CI/CD-related coding challenges.
Show steps
  • Search online for CI/CD coding challenges.
  • Participate in online coding competitions focusing on CI/CD.
Follow Tutorials on CI/CD Best Practices
Enhance your knowledge by following tutorials that showcase best practices in CI/CD.
Show steps
  • Identify reputable sources for CI/CD tutorials.
  • Follow step-by-step instructions and implement best practices in your projects.
Participate in CI/CD Hackathons
Test your skills and collaborate with others by participating in CI/CD hackathons.
Show steps
  • Find and register for relevant CI/CD hackathons.
  • Team up with other participants and work on a CI/CD-related project.
  • Submit your project and present it to a panel of judges.
Read 'Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation'
Gain insights from industry experts by reading this comprehensive book on Continuous Delivery.
View Melania on Amazon
Show steps
  • Purchase or borrow the book.
  • Read and take notes on key concepts.

Career center

Learners who complete Master CI/CD for Android Developers will develop knowledge and skills that may be useful to these careers:
Mobile Application Developer
Mobile Application Developers are responsible for designing, developing, and testing mobile applications. This course will help you build a strong foundation in the fundamentals of mobile app development, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to create and deploy high-quality mobile apps.
Software Engineer
Software Engineers design, develop, and test software systems. This course will help you build a strong foundation in the fundamentals of software engineering, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to create and deploy high-quality software systems.
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams. This course will help you build a strong foundation in the fundamentals of DevOps, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to create and deploy high-quality software systems.
Quality Assurance Analyst
Quality Assurance Analysts are responsible for testing and ensuring the quality of software systems. This course will help you build a strong foundation in the fundamentals of quality assurance, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to test and improve the quality of software systems.
Technical Project Manager
Technical Project Managers are responsible for planning, managing, and executing software development projects. This course will help you build a strong foundation in the fundamentals of project management, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to plan, manage, and execute successful software development projects.
Product Manager
Product Managers are responsible for defining and managing the product vision. This course will help you build a strong foundation in the fundamentals of product management, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to define and manage successful products.
Systems Analyst
Systems Analysts are responsible for analyzing and designing business systems. This course will help you build a strong foundation in the fundamentals of systems analysis, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to analyze and design successful business systems.
Data Analyst
Data Analysts are responsible for collecting, analyzing, and interpreting data. This course will help you build a strong foundation in the fundamentals of data analysis, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to collect, analyze, and interpret data.
Business Analyst
Business Analysts are responsible for analyzing and understanding business needs. This course will help you build a strong foundation in the fundamentals of business analysis, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to analyze and understand business needs.
Project Coordinator
Project Coordinators are responsible for coordinating and managing projects. This course will help you build a strong foundation in the fundamentals of project coordination, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to coordinate and manage successful projects.
Technical Writer
Technical Writers are responsible for writing and maintaining technical documentation. This course will help you build a strong foundation in the fundamentals of technical writing, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to write and maintain successful technical documentation.
IT Support Specialist
IT Support Specialists are responsible for providing technical support to users. This course will help you build a strong foundation in the fundamentals of IT support, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to provide technical support to users.
IT Administrator
IT Administrators are responsible for managing and maintaining IT systems. This course will help you build a strong foundation in the fundamentals of IT administration, including CI/CD, GitHub, and App Center. You will also learn how to use these tools to manage and maintain successful IT systems.
Computer Programmer
Computer Programmers are responsible for writing and maintaining computer programs. This course may help you build a foundation in the fundamentals of computer programming. You will also learn how to use some tools to write and maintain computer programs.
Web Developer
Web Developers are responsible for designing and developing websites. This course may help you build a foundation in the fundamentals of web development. You will also learn how to use some tools to design and develop websites.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Master CI/CD for Android Developers.
Provides a comprehensive guide to site reliability engineering (SRE). It covers everything from incident response to capacity planning.
Provides a comprehensive guide to DevOps, from the basics to advanced techniques. It valuable resource for anyone looking to implement DevOps in their organization.
Provides a research-based guide to improving software development performance. It covers everything from team culture to technical practices.
Provides a practical guide to building cloud-native Java applications. It covers everything from microservices to Kubernetes.
Provides a comprehensive guide to Jenkins, the leading open-source CI/CD tool. It covers everything from installation to configuration.
Provides a comprehensive guide to domain-driven design (DDD). DDD software design approach that focuses on the business domain rather than the technology.
Provides a practical guide to implementing continuous integration in software development projects. It covers everything from setting up a CI server to writing automated tests.
Provides a practical guide to design patterns. Design patterns are reusable solutions to common software design problems.
Provides a fictionalized account of a DevOps transformation. It valuable resource for anyone looking to understand the benefits of DevOps.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Master CI/CD for Android Developers.
Master CI/CD for React Native
Most relevant
Master CI/CD for Xamarin
Most relevant
Continuous Integration and Delivery (CI/CD)
Most relevant
Continuous Integration and Continuous Delivery (CI/CD)
Most relevant
Learn Azure DevOps CI/CD pipelines
Most relevant
DevOps, CI/CD(Continuous Integration/Delivery) for...
Most relevant
Introduction to Cloud Native, DevOps, Agile, and NoSQL
Most relevant
CI/CD with TeamCity From Beginner to Advanced
Most relevant
Scaling up SharePoint Framework Development for...
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser