Roadmap to becoming a Xamarin developer in 2020
Roadmap to becoming an Xamarin developer in 2020:
Below you can find a chart demonstrating the paths that you can take and the libraries that you would want to learn to become a Xamarin developer. I made this chart as a tip for everyone who asks me, "What should I learn next as a Xamarin developer?"
The purpose of this roadmap is to give you an idea about the landscape. The road map will guide you if you are confused about what to learn next, rather than encouraging you to pick what is hip and trendy. You should grow some understanding of why one tool would be better suited for some cases than the other and remember hip and trendy does not always mean best suited for the job
If you like or are using this project to learn or start your solution, please give it a star. Thanks!
-
Prerequisites
-
General Development Skills
- Learn GIT, create a few repositories on GitHub, share your code with other people
- Know HTTP(S) protocol, request methods (GET, POST, PUT, PATCH, DELETE, OPTIONS)
- Don't be afraid of using Google, Power Searching with Google
- Learn the basics of CI
- Application Settings & Configurations
- Read a few books about algorithms and data structures.
-
XAML
-
Fundamentals
- Understanding Xamarin Platform
- Sharing code overview
- Async / Await in Xamarin
- Linking Xamarin.iOS Apps
- Linking on Android
- Cross-Platform File IO for iOS, Android
- Consuming RESTful Services
- App Lifecycle
- Working with layouts
- Android
- Basic of AXML layout
- Understanding the Android Application Manifest
- [Activities and Intents]
- iOS
- [Understanding of iOS Terms: App Delegate, View, ViewController, Protocol]
- Design a UI in iOS: using Storyboards, NIBs, Code
-
MVVM frameworks
- Prism
- MVVMCross
- MVVMLight
- FreshMVVM
- ReactiveUI – is a composable, cross-platform model-view-viewmodel framework for all .NET platforms, that is inspired by functional reactive programming.
- Fabulous MVU F# Functional App Development, using declarative dynamic UI
-
API Clients
- REST
- RestSharp is simple REST and HTTP API Client for .NET.
- ModernHttpClient - Accelerates HTTP requests by using mobile-optimized libs (NSURLSession / OkHttp).
- Refit: The automatic type-safe REST library for Xamarin and .NET.
- Polly: Automatic retry policies. Exception handling policies such as Retry, Retry Forever, Wait and Retry or Circuit Breaker.
- GraphQL
- GraphQL-dotnet is a query language for your API, and a server-side runtime for executing queries by using a type system you define for your data.
- REST
-
Data Access
- Databases
- Plugins
- Settings Plugin provides a consistent, cross platform settings/preferences plugin.
- Akavache is an asynchronous, persistent (i.e. writes to disk) key-value store created for writing desktop and mobile applications in C#, based on SQLite3.
- ORM
- PaaS
- Azure mobile apps Offline sync-enabled Xamarin apps that connect to Azure Mobile App.
- Cloud databases
- Firebase Realtime Database
- Amazon DynamoDB is a fast, highly scalable non-relational database service. DynamoDB removes traditional scalability limitations on data storage while maintaining low latency and predictable performance.
-
Authentication
-
Media
- Lottie is a mobile library for Android and iOS that natively renders vector based animations and art in realtime with minimal code.
- Fast & Furious Image Loading Image loading, caching & transforming library for Xamarin and Windows
- SkiaSharp is a 2D graphics system for .NET and C# powered by the open-source Skia graphics engine that is used extensively in Google products.
- Media Plugin cross platform plugin to take photos and video or pick them from a gallery from shared code.
-
Real-Time Communication
- SignalR allows server code to send asynchronous notifications to client-side applications.
-
Logging
- NLog is a flexible and free logging platform for various .NET platforms, including .NET standard.
- Android Debug Log
-
Testing
- Unit Testing
- Behavior Testing
- Frameworks
- SpecFlow is a pragmatic BDD solution for .NET. It uses the Gherkin specification language.
- Frameworks
- UI Testing
- Xamarin.UITest
- Cloud testing on AWS Device Farm
- Firebase Test Lab is a cloud-based app-testing infrastructure.
- Appium is an open source test automation framework for use with native, hybrid and mobile web apps.
- XCUITest is framework for testing iOS apps.
- Mocking
- Frameworks
- Moq is mocking library for .NET.
-
Crash Reporting and Analytics
-
Payment Gateway
- In-App Purchase iOS
- In-App Billing Android
- Apple Pay in Xamarin.iOS
- Braintree is a simple and modern way to accept payments. Along with its list of flexible features, it provides the ability to merchants to accept payments online or within a mobile application.
- Pay with Credit Cards
- Pay with Apple Pay/Google Pay
- Pay with Paypal
- WePay is an online payment service provider based in the United States that provides an integrated and customizable payment solution through its APIs to platform businesses such as crowdfunding sites, marketplaces, and small business software companies. It offers partners fraud and risk protection
- Stripe online payment processing for internet businesses
-
Push Notifications
-
Artificial Intelligence (AI)
- Machine Learning
- CoreML is a machine learning framework introduced by Apple.
- ML Kit
- Google Cloud APIs
- Augmented Reality
- Android
- ARCore is a software development kit developed by Google that allows for augmented reality applications to be built.
- iOS
- ARKit is Apple's augmented reality (AR) platform for iOS devices. It enables developers to produce apps that interact with the world around you using the device's cameras and sensors.
- Android
- Optical Character Recognition (OCR)
- ML Kit for Firebase
- Amazon Rekognition
- Microsoft Computer Vision
- Google Cloud Vision
- CoreML
- Tesseract is an OCR engine with support for unicode and the ability to recognize more than 100 languages out of the box.
- SwiftOCR is a fast and simple OCR library written in Swift. It uses a neural network for image recognition.
- Speech recognition
- Watson Assistant v2 service combines machine learning, natural language understanding, and an integrated dialog editor to create conversation flows between your apps and your users.
- Microsoft Bot Framework is an open-source, visual authoring canvas for developers to design and build conversational experiences with Language Understanding and QnA Maker, and a sophisticated composition of bot replies (Language Generation).
- Cognitive services are a set of machine learning algorithms that Microsoft has developed to solve problems in the field of Artificial Intelligence.
- Machine Learning
-
Advertising
- AdMob is a mobile advertising platform that you can use to generate revenue from your app.
- Google Admob
- Microsoft Advertising SDK
-
App Distribution
- Android
- Publishing an Application Android
- Publishing to Google Play
- Publishing to the Amazon App Store
- SlideMe a US-based Android mobile app store alternative.
- iOS
- Publishing to the App Store
- GetJar is an independent app store created by app developers for app developers as an app beta testing platform.
- Appland app store alternative if you’re trying to target end-users in international markets including Indonesia, Mexico, Oman, USA, Iran, El Salvador, Malaysia, Iraq, Bangladesh, Panama, Myanmar, Cambodia, Egypt, etc.
- Alternative App Stores
- Android
-
Advanced
- Android
- iOS
- Cross-Platform
- Application Indexing and Deep Linking
- Localization
- Deep Linking allows applications to respond to a search result that contains application data, typically by navigating to a page referenced from a deep link.
- Improve App Performance
-
Tools
- Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables viewing of all the HTTP and SSL / HTTPS traffic between the machine and the Internet.
- TestFlight is Apple’s beta testing service for iOS apps, and is accessible only through iTunes Connect.
- Postman Tool for test web services requests and responses.
-
Expert
- Android
- JobScheduler is an API for scheduling various types of jobs against the framework that will be executed in your application's own process.
- iOS
- Android
-
Game Engine
- MonoGame is a free C# framework used by game developers to make games for multiple platforms and other systems.
- CocosSharp is a C# implementation of the Cocos2D and Cocos3D APIs that runs on any platform where MonoGame runs.
- UrhoSharp is a powerful 3D Game Engine for Xamarin and .NET developers.
-
Good to Know
- Plugin.MediaManager Cross platform Xamarin plugin to play and control Audio and Video.
- Xamarin.Forms.AppLinks Add support for deep linking and indexing app content using Xamarin.Forms on the Android Platform.
- Snppts Xamarin Forms UI Snippets.
-
SOLID
-
Design-Patterns
If you think the roadmap can be improved, please do open a PR with any updates and submit any issues. Also, I will continue to improve this, so you might want to star this repository to revisit.
Idea from : ASP.NET Core Developer Roadmap
Want to contribute? We encourage community feedback and contributions. Please follow our contributing guidelines.