directly from mexico, eduardo shares some knowledge on the xamarin platform. also, he is super into artificial intelligence, so you may also see some posts about that here.

Mobile DevOps for Mobile Developers (4 new courses!)

Mobile DevOps for Mobile Developers (4 new courses!)

mobile DEVOPS.png

Wow, 4 new courses, I had never released so many courses in such a short period of time! But these 4 are actually the same course, only tailored to different mobile developers:

  • Android developers

  • iOS developers

  • React Native developers

  • Xamarin developers

All 4 courses will teach you how to use Microsoft’s Visual Studio App Center to automatically build your code, automatically test it in real devices hosted in the cloud, automatically deploy it to your users both from App Center and to the App Stores, and to get continuous feedback so you can plan the next release!

mobile DEVOPS (1).png

Alright, so if you want the courses you can get them here, where you will always find them at their lowest price:

Now, let’s talk about what you would learn.

What will you learn

Again, each course covers the same topics, but in a platform-specific form. For example, in each course, we build an app, which, of course, is created differently according to the platform. But also, covering a unique platform per course instead of creating a unique course that fits all allowed me to:

  • Make sure that I explain in detail how to connect App Center to the app, instead of generalizing in a platform-agnostic way

  • Cover UI tests per platform, (ex. iOS course covers XCUITest, Android course covers Espresso)

  • Carefully explain the build and distribution processes that are unique per platform.

So you take your pick, depending on the platform you use, and 100% of the lectures in that course apply to your development process, so you learn:

The basics

mobile DEVOPS (2).png

Just so everyone starts the course on a leveled ground, at the beginning of the course, we talk Source Control and GitHub. We will set the baseline that we will use throughout the course when it comes to the branches we will use and the way we will use GitHub. This first section will also be super handy to anyone new to Git and GitHub.

This covers:

  1. Source Control And Branch Structure

  2. Initialize Version Control

  3. Committing Changes

  4. Creating Branches

  5. Working with Branches

  6. Creating a GitHub Repo

  7. Pushing to GitHub

  8. Working in Teams

  9. Making Pull Requests

  10. A Simulated CI/CD Rundown

By the end of this section, then, you will be fully equipped to start implementing some serious Continuous Integration and Continuous Delivery into your development process.

App Center and Product Discovery

mobile DEVOPS (5).png

First, though, as a developer or team, you need to learn what to build and continuously deliver, so we start to use App Center to add analytics and diagnostics to our app. These tools will help us understand how our users are behaving within our app, and if it is crashing at some point. Knowing this is crucial in the product discovery phase because this way, we know if there is some feature that isn’t being used as we intended, or if it isn't being used at all.

This covers:

  1. Creating an App Center Account

  2. Connecting App Center to the App

  3. Source Code and GitHub Repo

  4. Crashing the Application

  5. Tracking Crashes

  6. Check if the App Crashed

  7. Tracking Events

  8. Tracking with Better Context

Already know what features to build next? Excellent, let’s move on.

Continuous Integration

mobile DEVOPS (4).png

Already then, on to the automatic builds for every commit. We will configure our branches to build whenever we commit, push, or merge into them so that we know that our code builds. But something key will happen here as well. App Center will have to let GitHub Pull Requests know about the status of the builds, so we can only really merge once the builds succeed. This is awesome, and with the help of these checks, we can protect our branches more than we can do with GitHub alone.

Picture this flow:

  1. You create a feature branch to work on that new thing that you discovered in the previous step.

  2. You test on your computer and seems to work

  3. You want to avoid the “it works on my computer” excuse, so you add CI

  4. You create a Pull Request to merge into a critical branch; you take a nap

  5. App Center starts to build automatically

  6. App Center updates the GitHub Pull Request about the status of those builds

  7. The builds succeed! The checks pass.

  8. Pull request approved!

  9. You wake up and receive the great news; you are a hero!

I’ll be honest, sometimes builds fail, but hey, at least you won’t merge broken code into that important branch!

Continuous Quality

mobile DEVOPS (7).png

It’s another day and it seems that, once your team took a closer look at your PR, it actually isn’t what they ordered. Apparently some unit and UI tests aren’t passing, why didn’t you check? Well, Eduardo hadn’t taught you that, I’ll take the fall. So now it is time to learn to write some UI tests. I won’t actually spend too much time in here, just some hyper-basic UI test to integrate everything nicely and focus on App Center.

You will learn how to use physical devices hosted in the cloud to test your apps! Any amount of devices, from a wide variety of OEMs (only in the case of Android, of course), OSs (iOS and Android versions) and sizes (like iPhone SEs and iPhone 11 Pro Maxes).

So now your tests happen in the cloud, in real devices, while you take another nap. You add those tests to the CI process, now every time you create a Pull Request:

  1. Builds automatically trigger on App Center

  2. Builds now include unit and UI tests

  3. App Center updates the GitHub PR

  4. The checks pass, PR approved!

  5. You get a huge raise.

Ok, the raise part isn’t covered in the course, but you should get a raise now, shouldn’t you?

Continuous Delivery

mobile DEVOPS (8).png

Oh boy, that huge new feature has been built, tested, approved, it is time to send it to the beta testers group. You know they can be tough. How are you going to share with them a new APK/IPA like a million times a day every time they find the tiniest mistake in your beautiful app?

You don’t, you let App Center do the work because you are gorgeous. Plus you know some Continuous Delivery.

So at a crack of your whip, App Center now distributes the builds that are now happening automatically thanks to CI. It will now share that APK/IPA files directly to your testers’ inbox. They look thrilled at how often you send new versions, while you take yet another nap.

What’s more, once the testers give the green light by telling you how perfect your app is, you can tell App Center to now distribute to the stores! Automatically!

That is a full CI/CD workflow. The whole process would look like this:

  1. You discover some new feature

  2. You code the new feature

  3. You go have a donut

  4. App Center makes sure that your code works

  5. You order a coffee as well

  6. App Center lets GitHub know that everything worked

  7. You check Twitter for the 435437th time

  8. PR approved!

  9. You watch some YouTube videos

  10. Beta testers receive your app on their phones

  11. You binge-watch HIMYM on Netflix UK with a VPN for the 3rd time….this year

  12. Beta testers approve the new feature

  13. You go take yet another nap

  14. App Center distributes everything to the stores

  15. You wake up and realize you have saved the world, you have been named Queen of New Earth in your sleep

All kidding aside, I really think these courses (whichever you select) can make you a better mobile developer, improve your and your team’s workflow and reduce the time that it takes you to deliver new, high-quality features to your users.

Which one will you enroll to?

Enroll in the Mobile DevOps for Xamarin course.

Enroll in the Mobile DevOps for iOS course.

Enroll in the Mobile DevOps for Android course.

Enroll in the Mobile DevOps for React Native course.

See you inside.

How to connect a cloud SQL database to an Azure Web App Service

How to connect a cloud SQL database to an Azure Web App Service