Giter Site home page Giter Site logo

xamarin-developer-roadmap's Introduction

Xamarin-Developer-Roadmap

PRs Welcome

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?"

Disclaimer

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

Give a Star! ⭐

If you like or are using this project to learn or start your solution, please give it a star. Thanks!

Roadmap

Roadmap

Resources

  1. Prerequisites

  2. 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.
  3. XAML

  4. Fundamentals

    1. Android
    2. iOS
  5. MVVM Fundamentals

  6. MVVM frameworks

  7. API Clients

    1. REST
      • RestSharp is simple REST and HTTP API Client for .NET.
      • Flurl: Flurl is a modern, fluent, asynchronous, testable, portable, buzzword-laden URL builder and HTTP client library for .NET.
      • 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.
    2. 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.
  8. Data Access

    1. Databases
      • SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine.
      • Realm is a mobile platform and a replacement for SQLite & Core Data.
      • LiteDB A .NET NoSQL Document Store in a single data file.
    2. 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.
    3. ORM
    4. PaaS
      • Azure mobile apps Offline sync-enabled Xamarin apps that connect to Azure Mobile App.
    5. 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.
  9. Authentication

  10. 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.
  11. Real-Time Communication

    • SignalR allows server code to send asynchronous notifications to client-side applications.
  12. Logging

    • NLog is a flexible and free logging platform for various .NET platforms, including .NET standard.
    • Android Debug Log
  13. Testing

    1. Unit Testing
      1. Frameworks
        • xUnit is a free, open source, community-focused unit testing tool for the .NET Framework.
        • NUnit is a unit-testing framework for all .NET languages.
    2. Behavior Testing
      1. Frameworks
        • SpecFlow is a pragmatic BDD solution for .NET. It uses the Gherkin specification language.
    3. UI Testing
    4. Mocking
      1. Frameworks
      • Moq is mocking library for .NET.
  14. Crash Reporting and Analytics

  15. 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
  16. Push Notifications

    1. Remote
    2. Local
  17. Artificial Intelligence (AI)

    1. Machine Learning
    2. Augmented Reality
      1. Android
        • ARCore is a software development kit developed by Google that allows for augmented reality applications to be built.
      2. 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.
    3. Optical Character Recognition (OCR)
    4. 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).
    5. Cognitive services are a set of machine learning algorithms that Microsoft has developed to solve problems in the field of Artificial Intelligence.
  18. Advertising

  19. App Distribution

    1. Android
    2. 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.
    3. Alternative App Stores
  20. Advanced

    1. Android
    2. iOS
    3. Cross-Platform
  21. 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.
  22. Expert

    1. Android
      • JobScheduler is an API for scheduling various types of jobs against the framework that will be executed in your application's own process.
    2. iOS
  23. 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.
  24. 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.
  25. SOLID

  26. Design-Patterns

Wrap Ups

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

Contribution

Want to contribute? We encourage community feedback and contributions. Please follow our contributing guidelines.

License

License: CC BY-NC-SA 4.0

xamarin-developer-roadmap's People

Contributors

stayrony avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

xamarin-developer-roadmap's Issues

Some outdated libraries in roadmap and broken link

I noticed an outdated link for Fabulous and also the ModernHttpClient is no longer maintained. I will push a pr to correct the link to Fabulous and suggest Flurl as a replacement. I have used it in a production Xamarin Form project and I think by design it is very suitable for Xamarin development.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.