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
- Xamarin Components
Android in a nutshell
This module covers the fundamental building blocks for Android, independent of Xamarin. We'll talk about the platform, 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 project
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 resources
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
iOS in a nutshell
In this module, you will get acquainted with iOS. You'll learn about the building blocks of an app and characteristics of
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, Visual
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 while
still using C#. This approach however does not allow you to re-use your view for Android and Windows.
- Interface Builder
- Outlets and Actions
Windows in a nutshell
In this module you will learn about the fundamental building blocks to build Windows Apps. You'll immediately apply our
newly acquired skills with C#. Xamarin is hardly involved at this stage since C# and Windows naturally love each other.
- 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 however
does not allow you to re-use your view for Android and iOS.
- XAML Basics
- Common Controls
- Styles and Templates
- Data Binding
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 we'll
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 three
platform-specific views, you'll write just one for all. How all of that is supposed to work is the topic of this module.
- Hello Forms
- Controls Overview
- Data Binding
- Dependency Service
- Platform Tweaks
- App Life Cycle
This module is all about storing data on the device itself. By using SQLite, you can easily store structured data on any
of the three platforms. Best part is that you only have to write it once.
- Platform-specific storage options
- SQLite database
Consuming web services is indispensable in modern web development. This module will show you how you can retrieve your data
in a platform-independent way.
- Consuming a REST Service
- Serialization and Deserialization
- Consuming a SOAP Service
- Using proxies for WCF
Running in the background
Often one of the more challenging parts of writing an app, is how to run things in the background. Unfortunately it's currently
impossible to have a completely uniform approach for this. We'll take a look at how the three platforms behave, and how
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 still use
it in my Xamarin.Android app? Yes you can. And you can do the same for iOS and Objective-C by using library bindings.
- Integrating with third-party native libraries
- Java Library Binding
- Objective-C Library Binding
Azure Mobile Apps
An app is more than the thing you see on your phone. It should come with a proper backend. There are quite a few things your
backend should take care of like storing data and making it accessible. Azure Mobile Apps provides the basics for your
backend and adds cool stuff like offline sync.
- Create Mobile services for Windows, Android and iOS
- Configuring your Azure Mobile App
- Configure user authentication for your mobile apps, using Microsoft Account, Facebook or Twitter
- Sending Notifications to your Mobile apps
- Auto-scaling your Mobile App
- Creating custom API's
- Setting up Scheduled Jobs
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 Microsoft
provide their own solution for that. Once again you want to avoid doing things three times. That's where Notifications
Hubs come in.
- Setting Up Platform Agnostic Push Notifications
- Setting Up the App
- Setting Up the Backend
- Templates and Tags