Introduction to Xamarin
If you have all the time and money in the world, you can build an Android app and an iOS app and a Windows app in
their native environment. But what if you don't have all the time in the world?
How can you write an app that works everywhere without having to re-write code multiple times? This is where Xamarin
comes in. In this module you'll learn how to use C# to conquer all platforms.
- Mobile development
- Deployment Environments
- Cross-Platform Development
- Core and Platform-Specific Projects
- Sharing Code across projects
- LAB: Festival - Setting up the Project
Android in a Nutshell
This module covers the fundamental building blocks for Android, independent of Xamarin. We'll talk about the
apps and what it means to be an Android developer.
- The Android Platform
- Building Blocks of an Android Application
- Activities, Services, Content Providers, Broadcast Receivers, Intents
- Views and ViewGroups
- Android Package
Xamarin for Android
In this module you'll apply what you learned in the previous module with C# and Xamarin. You will build your first
and run it in an emulator.
- Xamarin.Android Architecture
- Xamarin.Android Project
- Working with Emulators
- Designing a View
- Deploy Android applications
In this module you will build an Android-specific view with all normal Android constructs like layout XML and
while still using C#. This approach however does not allow you to re-use your view for iOS and Windows.
- Views and ViewGroups
- Common Views
- Adapters and ListViews
- LAB: Festival - Android Views
iOS in a nutshell
In this module, you will get acquainted with iOS. You'll learn about the building blocks of an app and
the OS itself. This is independent of C# and Xamarin.
- The iOS Platform
- Version Management
- Building Blocks of an iOS Application
- Protocols and Delegates
- iOS Package
Xamarin for iOS
You will learn how to apply the knowledge acquired in the previous module here. You will use Xamarin, C#, a Mac,
Studio, Xcode and Windows all together.
- Xamarin.iOS Architecture
- Xamarin.iOS Project
- Designing a View with Interface Builder
- Building iOS applications
- Working with the Simulator
- Debugging iOS applications
- Deploy iOS applications
In this module you will build an iOS-specific view with all normal iOS constructs like Storyboards and Constraints
still using C#. This approach however does not allow you to re-use your view for Android and Windows.
- Interface Builder
- Outlets and Actions
- LAB: Festival - iOS Views
Windows in a nutshell
In this module you will learn about the fundamental building blocks to build Windows Apps. You'll immediately apply
newly acquired skills with C#. Xamarin is hardly involved at this stage since C# and Windows naturally love each
- The Windows Platform
- Windows Project
- Process Life Cycle
- Creating a view with XAML
- The Windows Package
- Build and Deploy
In this module you will build a Windows-specific view with all normal Windows constructs like XAML. This approach
does not allow you to re-use your view for Android and iOS.
- XAML Basics
- Common Controls
- Styles and Templates
- Data Binding
- LAB: Festival - Windows Views
Cross-Domain Code Patterns
Xamarin is all about writing code once instead of three times. But how do you maximize code re-use? In this module
see some of the most powerful techniques to keep platform-specific code to a minimum.
- Dependency Injection
- Using Shared Projects
Xamarin.Forms attempts to overcome the final frontier when it comes to sharing code: the views. Instead of writing
platform-specific views, you'll write just one for all. How all of that is supposed to work is the topic of this
- Hello Forms
- Controls Overview
- Data Binding
- Dependency Service
- Platform Tweaks
- Custom Renderers and Effects
- App Life Cycle
- LAB: Xamarin.Forms Weather App
This module is all about storing data on the device itself. By using SQLite, you can easily store structured data
of the three platforms. Best part is that you only have to write it once.
- Platform-specific storage options
- SQLite database
- Entity Framework Core
- LAB: Festival - Storing Data
Consuming web services is indispensable in modern web development. This module will show you how you can retrieve
in a platform-independent way.
- Consuming a REST Service
- Serialization and Deserialization
- Consuming a SOAP Service
- Using proxies for WCF
- LAB: Festival - Saving Favorites using REST
Running in the background
Often one of the more challenging parts of writing an app, is how to run things in the background. Unfortunately,
impossible to have a completely uniform approach for this. We'll take a look at how the three platforms behave, and
to deal with that.
- Application Lifecycle
- Platform-specific considerations
- Android's activity life cycle and Services
- iOS backgrounding techniques
- Backgrounding in Windows
"You can do anything with C# that you can do with Java". But what if the code is already written in Java can I
it in my Xamarin.Android app? Yes, you can. And you can do the same for iOS and Objective-C/Swift by using library
- Integrating with third-party native libraries
- Java Library Binding
- Objective-C/Swift Library Binding
Everybody hates those constant on-screen notifications. Learn how to be annoying in this module!
- Platform-specific notification mechanisms
- Local notifications
- Push notifications
Azure Notification Hub
Sending push messages to a device that is constantly moving is not a trivial task. Fortunately, Google, Apple and
provide their own solution for that. Once again you want to avoid doing things three times. That's where
Hubs come in.
- Setting Up Platform Agnostic Push Notifications
- Setting Up the App
- Setting Up the Backend
- Templates and Tags
Visual Studio App Center
Building an app is more than writing code. You want to test, deploy and distribute, ...
Visual Studio App Center is the central place to arrange all of that.
- Build and Test your App
- Collection Diagnostics and Usage Analysis
- Send Push Notifications
- Distribute to the Store or within your Enterprise