Call Us: +32 2 466 00 16
Email: info@u2u.be
Follow Us:

Building apps for iOS, Android and Windows with Xamarin

5days
Training code
UXAMAR
Book this course

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
  • Architecture
  • Deployment Environments
  • Cross-Platform Development
  • Core and Platform-Specific Projects
  • Sharing Code across projects

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
  • Resources
  • 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
  • Resources
  • Navigation
  • Deploy Android applications

Android Views

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
  • Layouts
  • Adapters and ListViews
  • Styles

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

iOS Views

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
  • Layouts
  • Storyboards
  • Styles

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
  • Navigation
  • The Windows Package
  • Build and Deploy

Windows Views

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
  • Layout
  • Resources
  • 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.

  • MVVM
  • Dependency Injection
  • Using Shared Projects

Xamarin.Forms

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
  • Navigation
  • Dependency Service
  • Platform Tweaks
  • App Life Cycle

Local Data

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
  • ADO.NET
  • Entity Framework Core

Web Services

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

Library Bindings

"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/Swift by using library bindings.

  • Integrating with third-party native libraries
  • Java Library Binding
  • Objective-C/Swift 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

Notifications

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

Building a mobile app is never building one app. It's building an app for Android, one for Windows and one for iOS. Learning three platforms is time consuming, but the real problem is having to write the same code three times. Xamarin allows us to do this in a much more efficient way. One language to rule them all: C#, while staying true to the platform. Xamarin is based upon Mono, the open source implementation of the .NET runtime. By combining reusable C# code and platform-specific views, Xamarin is able to create cross-platform native apps with all features and the power the native platform has to offer.

Participants of this course need to have a good understanding of C# and a notion of mobile app development.

© 2018 U2U All rights reserved.