Crossplatform Roadmap

Crossplatfom Roadmap. This post is part of the Xamarin Roadmap that you can check if you didn’t. It is good to remember that this guide ban be considered as a complement, it can not be taken as the final guide.

There some things you need to know before to start this Croos platform roadmap as a guide. I really recommend you to check this link.

Note: As I said in the introduction post, what I have done is to take as a base the roadmap proposed by Xamarin University to create a new one. So, If you want to see the original base I really recommend you to go there before they migrate it to Microsoft Learn.

Xamarin Cross-platform Design

Learn concepts and APIs which are usable across the dominant mobile platforms (iOS, Android, and Windows). Most modules in this track use Xamarin.Forms, but the concepts can also be applied to native development.

Getting Started with Xamarin (XAM101)

What is Xamarin? How does Xamarin.Forms differ from Xamarin.Android and Xamarin.iOS? What code can I share across my apps? Can I develop on Windows and macOS? This module answers these questions and more. By the end of the module, you will be able to choose the Xamarin approach that is right for you. You will also set up your development machine and run an app on Windows, the iOS simulator, and an Android emulator.

  • Describe the mobile Software Development Lifecycle (SDLC) with Xamarin
  • Install the Xamarin tools for Visual Studio
  • Keep your development tools up to date
  • Compile mobile applications with Visual Studio on macOS and/or Windows

Useful links

Exploring on your own

Introduction to Cross-Platform Mobile Development (XAM110)

Recommended Prerequisites: Getting Started with Xamarin (XAM101), Introduction to Xamarin.Android, Introduction to Xamarin.iOS

One of the advantages to using Xamarin over the traditional platform-specific approach is the level of code-sharing you can achieve across iOS, Android, and Windows. In this class, we will explore ways to structure your shared code using Portable Class Libraries, .NET Standard libraries, and Shared Asset Projects. We will look at the pros and cons of each approach and see how to access platform-specific features in each model.

  • Work with shared packages from NuGet
  • Use Shared Projects to share code between platforms
  • Use Portable Class Libraries to share code between platforms
  • Share code using .NET Standard libraries

Useful links

Exploring on your own

Consuming REST-based Web Services (XAM150)

Recommended Prerequisites: Introduction to Xamarin.Forms

Users expect to access their information anytime from any location using any device. This leads most app developers to store data in the cloud and retrieve it as needed from client devices. REST-based web services are the dominant strategy for this type of device-to-server communication. In this module, you will see how to consume REST-based web services with HttpClient using both the managed networking stack and the platform-specific handlers that boost performance. You will also learn some common strategies for dealing with the unique challenges that mobile devices face when communicating over the network.

  • Obtain the device's network capabilities
  • Describe the strengths of using REST-based services
  • Consume REST services in Xamarin-based applications
  • Leverage the platform-specific networking stacks

Useful links

Exploring on your own

SQLite and Mobile Data (XAM160)

Recommended Prerequisites: Introduction to Xamarin.Forms

Many apps need to store data locally on the device so it is available even when network access is unreliable. User preferences, data files, and relational data can all fall into this category. This module starts with a survey of the local-storage options available to you in your Xamarin applications. It then concentrates on storing relational data using a SQLite database. By the end of the module, you will have seen how to identify the proper location for your database file and how to insert, update, retrieve, and delete data efficiently using asynchronous I/O calls.

  • Understand the available data storage options
  • Create, Insert, Update, and Delete records with SQLite
  • Work with SQLite asynchronously

Useful links

Preparing to publish your application (XAM220)

Recommended Prerequisites: Getting Started with Xamarin (XAM101)

The goal for most developers is to get their apps into the various stores and then onto customer devices. There are many steps between the time your app is code-complete and when it is ready for submission the stores. This module shows you how to prepare for publishing regardless of which platforms you support or the store you intend to use. It includes advice for making your app look good, instructions on using the linker to reduce the size of your app, and some guidance on selecting a store.

The mechanics of each platform's marketplace/store are not covered in this module. To learn how to package and upload your app to the iOS App Store, Google Play Store, or Windows Marketplace we recommend you watch one of the specific videos related to publishing in those stores.

  • Prepare your app for publishing
  • Use the linker to reduce the size of your final app package
  • Preserve critical code when linking your app
  • Publish your app

Useful links

Exploring on your own

Android

iOS

Patterns for Cross Platform Mobile Development (XAM250)

Recommended Prerequisites: Introduction to Cross-Platform Mobile Development (XAM110)

Sometimes you need to access platform-specific APIs that are not intrinsically available from your shared code. For example, you might want to take a picture, perform file I/O, or play audio. The recommended approach is to code an abstraction layer that will let you invoke the platform-specific API from shared code. This module shows you three techniques for doing this: Factory pattern, Service Locator pattern, and Dependency Injection.

  • Locate dependencies using the Factory Pattern
  • Use a Service Locator to register and retrieve dependencies
  • Use an IoC container to automatically inject dependencies

Useful links

Exploring on your own

Mobile application architecture (XAM301)

Recommended Prerequisites: Introduction to Cross-Platform Mobile Development (XAM110)

You're going to focus on how to properly architect your application to separate the presentation from the business logic and data that drives it. You'll look at three primary patterns which are popular in the mobile world: Model-View-Controller (MVC), Model-View-Presenter (MVP), and Model-View-ViewModel (MVVM).

  • Apply Model-View-Controller to a Xamarin.iOS app
  • Apply Model-View-Presenter to a Xamarin.Android app
  • Apply Model-View-ViewModel to a Xamarin.Forms app

Useful links

Exploring on your own

Diagnosing Memory Management Issues (XAM370)

There are two conceptual areas of memory in a Xamarin app: the managed memory in the Mono runtime and the memory space used for native objects. Standard .NET/Mono objects are allocated on the managed side while types like UI elements have a representation in both areas. This means there are several cases to consider when troubleshooting the memory usage of your app. This module begins by showing you how memory leaks happen in managed memory even with a sophisticated garbage collector and how to discover and fix them. It then shows you several memory issues that are specific to Xamarin.iOS and Xamarin.Android.

  • Identify and fix memory leaks in your code
  • Recognize and fix Xamarin.iOS specific memory problems
  • Recognize and fix Xamarin.Android specific memory problems

Useful links

Exploring on your own

Considerations

This Crossplatform roadmap is on GitHub in a public repository where everyone can support it or give us recommendations (PRs are welcome 😎). In the same way, the content will be updated here.

Of interest…

Resources:

Thank you somuch for reading this post! 
Crossplatform Roadmap
5 (100%) 2 votes

Others

feedback

I invite you to leave me your feedback about this post in the comment box. If you want me to talk about a specific topic or detail a few more topics, let me know. The most interesting topics will be added to my list of future posts.

Do you like posts like this? Then, subscribe  and activate push notifications to receive updates. See you next time!

2018-09-12T10:32:12-04:00

Leave me your comments

avatar
  Subscribe  
Notify of