Continuous Integration & Delivery with Xamarin - What we are going to build

This is the second post on the series Continuous Integration & Delivery with Xamarin. Our first post outlined what the series was going to be about.

In this post we are going to
  • Define what we want to get out of the process
  • Describe the app we are going to automate
  • Provide the source to the app so you can download it on your machine
First things first

So before we dive into automating our build - lets take a few minutes to define what we want out of this build process.

Note: Your needs/wants/goals will vary but make sure you go through this exercise as it will help you in making decisions as you build out your build process.

In our case, we are a consulting company working with multiple clients at any given moment; and to support our needs we want the following:

  • We want to see the very latest version of the apps we are building as they are being built - if one of our developers pushes some code we want to know and see it instantly
  • We want see all the different app environments on our devices at the same time - this means we can see the dev version, the test version and the prod version all on the same device
  • We want to be able to send updates to a limited set of users (mostly our clients/testers) in an automated manner
  • We would like the app to notify testers/clients when there is a new version of the app and allow for easy updates
  • We want to make sure the app is stable be exercising the app through some UI Tests
  • We also want to get notified if there is a problem building the app or or from the app running (eg crash)
  • ~~ We also want world peace - but this last one does not seem to have anything to do with Xamarin so we will skip this one for now~~
The app

The goal of this exercise is not to teach you how to build a Xamarin app. We assume that you already have this covered.

So we have decided to automate the Todo app - one of the existing sample apps provided by the Xamarin Forms team. The app is a simple task manager that allows you to enter items you need "to do" and mark them complete once you have done them.

You can get the source code from the following url:

So go ahead and fork the repo now - what are you waiting for. We will see you on the next post where we build the app.