Native Cross Platform Mobile Application Development for Android and iOS with Xamarin using C# Training Course

Develop native Android, iOS and Windows mobile app with C# using Xamarin.

Upcoming Course Schedule

About this course

Learn more on how to develop apps for Android and iPhone in this combined training course covering both Xamarin Android, Xamarin iOS and Xamarin Forms training courses.

What is the course about

Learn to build native Cross Platform Mobile Apps for Android, iOS and Windows with C# and the .NET platform using Visual Studio and Xamarin Platform on Windows and Mac OS.

This course is developed for seasoned C# developers who would like to develop mobile apps for the Android, iOS and Windows platform using C# and the .NET platform. By the end of the course, you’ll have the skills to tackle small to intermediate cross platform mobile app development projects.


The course is full time 10 days. The course is run over a period of 2 weeks, with week 1 covering Android, Week 2 covering iOS and Xamarin Forms.

Programming Experience

Strong programming experience in .NET is a requirement in order to succeed in this course. A minimum of 2 years working experience is recommended or a strong background in computer science.

Technical Skill

You will need to be proficient in working in Visual Studio. A Windows or a Mac environment is used. On a Mac we will use bootcamp if you prefer to use the Visual Studio IDE otherwise we will primarily use Xamarin Studio.

Private Training

The course is primarily offered privately to a group, team or company. The training will be run on your premises or you can come to us. We have offices in Johannesburg and Cape Town and can also conduct the training in Durban at Regus Business Centre. We can train anywhere in South Africa and the rest of the African continent if we are coming to you. Private training is R17 500 per delegate if training is conducted on your premises and we require a minimum of 4 delegates to schedule the course. The same training is R22 500 when coming to us and a minimum of 4 delegates is required to schedule the course. The course can be scheduled at a time that best suits your team.

Public Training

We also conduct the training publicly. This is suitable for individuals or delegates that cannot book the private training. The class will be comprised of delegates and individuals from different companies.The training content and duration is the same and training will run at our premises in Johannesburg or Cape Town, South Africa. The course price is R22 500 per delegate. A minimum of 4 delegates is required to run the course. A preliminary date is scheduled and will be confirmed once we have 4 delegates to run the course.

What you will learn

Learn to build native Cross Platform Mobile Apps for Android, iOS and Windows with C# and the .NET platform using Visual Studio and Xamarin Platform on Windows and Mac OS.

This course is developed for seasoned C# developers who would like to develop mobile apps for the Android, iOS and Windows platform using C# and the .NET platform. By the end of the course, you’ll have the skills to tackle small to intermediate cross platform mobile app development projects.

  • Understand Cross Platform Mobile App Development
  • Overview of Xamarin Offering
  • Xamarin Android Overview
  • Xamarin iOS Overview
  • Xamarin Forms Overview
  • Create Windows, Android, and iOS Mobile Apps
  • Accessing Contacts, Camera, GPS and Photos
  • Handling Events
  • Publishing to Google Playstore, Windows Store and Apple App Store
Course Schedule

Download the full course schedule below

Introduction to Xamarin.Android

Introduction to Xamarin.Android
An overview of the Xamarin Android Platform
Native Libraries
Android Runtime
Application Framework
Android Version

Understanding Activities
An Overview Android Service
What are Content Providers?
An Overview of Broadcast Receivers

Lifecycle of Activities
Android Events
Intents and Message Passing
Working with Multiple Activities
Android Fragements and LifeCycle

Elements and attribute names
Using the ID attriubte
Accessing XML Views from code
Understanding how XML Layouts tie to code

Using Drawable Resouces
Creating Layout Resources
Creating and Using Menu Resources
Using String Resources
Understanding the generated file

Using Button View
Using EditText
Using a Spinner
Using DatePicker
Using TimePickers
Using SeekBar
Using Checkbox
Using a Switch
Using RadioButton and RadioGrou

Approaches to adding a camera integration
Camera permissions
Capturing and displaying a photo
Accessing Photos from Gallery
Accessing Remote Photos
Using Third-Party Libraries to Download Photos

Laying out with LinearLayout
Using a RelativeLayout for Complex Layouts
Capturing and displaying a photo
Grid Layout with a GridLayout
Understanding FrameLayout

Using a ListView
Using a ListActivity
ListView ViewHolder Pattern
Better ListViews with RecylerView
Working with Custom List

Using and Accessing System Services
Permissions for Accessing System Services
Backgrounding with Android Service
Using IntentService
Using the Location Services
Using the Vibrator Service
Using Notification Service

Understanding Maps and Google Play Services
Getting Your Current Location
Subscribing to Location Updates
Displaying Current Locatin on a Map
Adding Pins to Map
Custom Map Renders

Supporting Older Devices using Support Library
Adding Support Library
Android Support v4 Library
Android Support v7 Library

OverView of Material Design
Creating List and Cards with Recycler View and CardView
Using Theme.AppCompat Styles
Customizing views with Drawables

Xamarin for IOS

Introduction to Xamarin.iOS
Working with the Storyboard
Understanding MVC

Introducing Auto Layout
Auto Layout Concepts
Working with Constraints in Interface Builder
Resolving Auto Layout Issues
Supporting Multiple Devices
Previewing the App on Multiple Devices

Text Entry with UITextField
Displaying Text with UILabel
Using UIButton
Using DatePicker
Using UIStepper
Using UISlider
Introducing UITableView

Introduction to table views
Creating a basic table view and a data source
Loading a property list into a table view
Reusing table view cells
Customizing table views
Customizing table view cells

Hierarchical navigation using UINavigationController
Using Segues for Navigation
Using PushViewController
Modal Segues with PresentationViewController and UIAlertViewController
Drill-down using UINavigationController
Navigation drawer using components
Tabs using UITabBarController

Getting the User’s Location
Region Monitoring and iBeacon
Geocoding Location Data
Displaying Maps
Annotating Maps
Plotting Directions
MapKit Overview
Enabling MapKit
Using CoreLocation
Getting the Current Location and Location Updates
Customizing Maps

Using the Camera
Accesing Photos in the Gallery
Accessing Contacts
Adding and Editing Contacts

Accessing a REST API
iOS App Transport Security
Parsing JSOn with NewtonSoft JSON.Net Library
Using the HttpClient

Introduction to multiple-view applications
Using Segues
Passing Data between Screens
Using navigation controllers
Deconstructing a master/detail app

Basic Animations Using UIView
Transform Animations
Spring Animations
UIKit Dynamics

Xamarin Forms For Cross Platform Development

Understanding Xamarin.Forms
What is Xamarin.Forms Suited For?
Introduction to Xamarin.Forms
Hello Xamarin.Forms
Xamarin.Forms MultiScreen
Exploring Xamarin Forms Project

Adding Page navigation
Creating a Master-detail relationship
Adding data binding to Master-detail
Displaying Tabbed screens
Adding a Swipe navigation with a Carousel

Hierarchical navigation using Toolbar or ActionBar
Modal using DialogFragment, AlertDialog, and PopupMenu
Drill-down using ListView
Navigation drawer using DrawerLayout
Tabs using ActionBar

Introduction to layouts
Kinds and purposes of layouts
Creating a StackLayout
Using a ScrollView
RelativeLayout using Parent
AbsoluteLayout Proportional Sizing
AbsoluteLayout Proportional Positioning

Hierarchical Navigation with NavigationPage
Modal Navigation with NavigationPage, alerts, ActionSheets
Drill-down lists using NavigationPage, ListView and TableView
Navigation drawer using MasterDetailPage
Tabs using TabbedPage
Springboard using images with gesture recognizers
Carousel using CarouselPage

Binding basics
Code and XAML
Source and BindingContext
Binding value converters
Binding to a Data Model
Binding and custom views
Understanding ViewModels and MVVM
Binding to a ListView

What is SQLite?
What is SQLite.NET
Installing SQLite. on Windows Phone
Creating a Database
Creating a Table
Executing SQL Statements

Setting up your Azure Account
Exploring Azure Mobile Services
Adding Azure Mobile Services Xamarin Component
Consuming an Azure Mobile Service Instance
Querying Data
Using the Push Notification service
Offline data sync

Introduction to XAML
Events and handlers
Data binding
XAML styles
Platform specificity in XAML file
The x:Name attribute
Tap gestures
Resource dictionaries
XAML markup extensions

The Xamarin Component Store
Common components
Porting existing C# libraries
Objective-C bindings
Java bindings

Creating a simple ListView
Custom Class in ListView
Data binding with a ListView
Customizing a ListView appearance

Basic style
Style in code
Style inheritance
Dynamic styles
Device styles

The role of the Device class
Using the DependencyService
Modeling platform specific implementation as an Interface
Implementing photo capture on iOS
Exposing and accessing platform specific implementations
Loosely coupled behavior with MessagingCenter
Sending a notification
Subscribing to a notification

Download Course Outline
Course Pricing

Choose your training options. Attend a public or private training.

Public Training
  • Training at our center
  • Small class size
  • 5 days instructor led
  • Access to Slack channel
  • Access to materials website
  • 6 months after training support
  • Teamviewer, email and telephone support
  • Personalized feedback
  • Light lunches
Reserve Seat
Private Training - Onsite
  • Training on your site
  • Choose as many delegates as you want
  • 5 days instructor led
  • Access to Slack channel
  • Access to materials website
  • 6 months after training support
  • Teamviewer, email and telephone support
  • Personalized feedback
  • Customized course content
  • You provide the lunches
Enquire Now

Newsletter Sign Up

No Spam - Only latest news, price and activity updates
What people say about our courses

This is what our clients have to say

After attending the Xamarin training from Peruzal on our site, we were able to drastically accelerate our internal mobile app development efforts. Peruzal was a phone call away each time we needed support.
Jonathan Winnaar Scientist @ Institute for Maritime Technology
Came across your courses on Google search, after searching for Ruby training around South Africa. We were completely blown away with how much your trainers know stuff.
Divan Santan Infrastrucutre Engineer @ First National Bank
After our DBA left, we were left with noone with the skills to manage the research and scientific database Infrastrucutre. With Peruzal, we were able to get our team running in a matter of a week.
Encarni Colmenero Astronomer @ Southern African Large Telescope
Our team had different backgrounds, application programmers and astronomers with varied database interactions, we did not have formal training in the MySQL database. Peruzal delivered the training onsite and we were comfortable working with MySQL.
Lucian Botha Astronomy Information System Specialist @ South African Astronomical Observatory
“Coming from an academic background, with no prior exposure to programming, I had to develop an Android mobile app for tuition and research purposes. Peruzal helped me to build and implement the app in record time!”
Thuli Shandu Lecturer @ Univeristy of South Africa
Having years of experience in automation and embedded systems, we wanted our team to have experience in developing for Android. Peruzal did send a trainer onsite and we were blown away with the amount of information we had learnt in just 5 days
Cobus Smith Automation Manager @ ArcelorMittal

Answers to some of the most frequently asked questions.

Public Training
What is public training

With public training you attend the course with other delegates from other companies at our premises. If you would like private training we can arrange that the training be done at your premises, however, we require a minimum of 4 delegates for a private course.

What is private training

The training runs at your premises or you can come to us. We require a minimum of 4 delegates for a private training.

Refund Policy

Should you not be happy with the training, this should be raised within the first hour of training. We will try to resolve the issue and if we can't we refund 100% your money.

Cancelling Training

You can not cancel the course once you have booked. Please make sure that you have resolved your dates before making a booking. It takes a long time to organise the training, so we will not be able to refund once you book, however we can try to re-schedule the course at a later date for you.

Course Pricing
How much does the course cost?

The course price depends on whether the course will be on your site(private training) or at our offices(public). For a private course we require a minimum of 4 delegates in order to schedule the course.

How long does it take to complete the course

Most of our coruses are offered over 5 days full time, except for the Xamarin Cross Platform Mobile App Development course which is offered over 2 weeks. No part-time courses are offered at the moment.


We don't provide accomodation but we can help you find accomodation close to the center. We can also help you with arranging transport to pick you up from the airport.

Our preferred accomodation provider is AirBnb. We recommmend if its your first time, only book from a Super Host on AirBnB.

Certificate of Completetion

Our mobile app development courses are hands on, for you to receive a certificate of completion, you will need to demonstrate that you have master the concepts during the course by developing a production mobile application and deploying it to the Google Play or Apple store. No certificates of completion will be awarded without proof that you have developed and deployed your app to the relevant store.