Mobile DevOps for Mobile Developers (4 new courses!)
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:
React Native 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!
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:
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.
Source Control And Branch Structure
Initialize Version Control
Working with Branches
Creating a GitHub Repo
Pushing to GitHub
Working in Teams
Making Pull Requests
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
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.
Creating an App Center Account
Connecting App Center to the App
Source Code and GitHub Repo
Crashing the Application
Check if the App Crashed
Tracking with Better Context
Already know what features to build next? Excellent, let’s move on.
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:
You create a feature branch to work on that new thing that you discovered in the previous step.
You test on your computer and seems to work
You want to avoid the “it works on my computer” excuse, so you add CI
You create a Pull Request to merge into a critical branch; you take a nap
App Center starts to build automatically
App Center updates the GitHub Pull Request about the status of those builds
The builds succeed! The checks pass.
Pull request approved!
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!
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:
Builds automatically trigger on App Center
Builds now include unit and UI tests
App Center updates the GitHub PR
The checks pass, PR approved!
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?
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:
You discover some new feature
You code the new feature
You go have a donut
App Center makes sure that your code works
You order a coffee as well
App Center lets GitHub know that everything worked
You check Twitter for the 435437th time
You watch some YouTube videos
Beta testers receive your app on their phones
You binge-watch HIMYM on Netflix UK with a VPN for the 3rd time….this year
Beta testers approve the new feature
You go take yet another nap
App Center distributes everything to the stores
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?
See you inside.