17b73ba934 | ||
---|---|---|
images | ||
README.md |
README.md
#Awesome Xamarin
About
A curated list of awesome Xamarin ports, bindings, tutorials and much more! The list is divided into categories such as Frameworks, Components, Testing and others, open source projects, free and paid services. There is no pre-established order of items in each category, the order is for contribution. If you want to contribute, please read the guide.
How to Use
Awesome-Xamarin is an amazing list for people who need a certain feature on their app, so the best ways to use are:
- Ask for help on our Twitter
- Simply press command + F to search for a keyword
- Go through our Content Menu
Content
- About
- How to Use
- Getting Started
- Library and Frameworks
- Analytics
- Animation
- Architecture
- Authentication
- Cache
- Charts
- Code Quality
- Color
- Database
- Data Structures / Algorithms
- Date & Time
- EventBus
- Files
- Games
- Gesture
- Graphics
- Hardware
- Layout
- Logging
- Localization
- Maps
- Math
- Media
- Messaging
- Networking
- Notifications
- Parsing
- Passbook
- Payments
- Permissions
- Reactive Programming
- Security
- Server
- Testing
- UI
- Activity Indicator
- Alert View
- App Introduction
- Badge
- Button
- Calendar
- Card View
- Form & Settings
- Keyboard
- Label
- Menu
- Modal Transition
- Navigation Bar
- PickerView
- Popup
- Pull to Refresh
- Rating Stars
- ScrollView
- Slider
- Splash View
- Stepper
- Switch
- Tab Bar
- Table View / Collection View
- Tag
- TextField & TextView
- Web View
- URL Scheme
- Utility
- VR
- Walkthrough / Intro / Tutorial
- Websocket
- Project setup
- Dependency / Package Manager
- Tools
- Rapid Development
- Deployment / Distribution
- App Store
- SDK
- Xcode
- Reference
- Style Guides
- Good Websites
- Social Media
- Podcasts
- Books
- Other Awesome Lists
- Contributing
Getting Started
- Start Developing with Xamarin - Official Xamarin. 🔶
Libraries And Frameworks
Analytics
- Google Analytics - Google analytics platform.
- Firebase - Analytics and much more.
- Hockeyapp - Analytics and crash reporting
Animation
- Xamarin.Animations - Libraries tends to make view animation easier for common scenarios like fade or scale entrance animations.
- Facebook Pop - Pop is an open-source animation engine behind the Facebook Paper's smooth animations and transitions. Using dynamic instead of traditional static animations, Pop drives the scrolling, bouncing, and unfolding effects that bring Paper to life.
Architecture
- MvvmCross - Extensive MVVM framework with plugins.
- MVVM Light - Lightweight MVVM framework.
- Prism - Framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Windows 10 UWP, and Xamarin Forms
- Caliburn Micro - A small, yet powerful framework, designed for building applications across all XAML platforms. Full support for Xamarin.Forms and allows for reuse of ViewModels with Xamarin.Android and Xamarin.iOS projects (more support will be added in future releases).
- FreshMvvm - FreshMvvm is a super light Mvvm Framework designed specifically for Xamarin.Forms.
- ReactiveUI - Use the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform. Supports Xamarin.iOS, Xamarin.Android, Xamarin.Mac, Xamarin Forms, WPF, Windows Forms, Windows Phone 8, Windows Store and Universal Windows Platform (UWP).
Authentication
-
Xamarin.Auth - Xamarin.Auth helps you authenticate users via standard authentication mechanisms (e.g. OAuth 1.0 and 2.0), and store user credentials.
-
Auth0 - Add authentication with different sources, either social like Google, Facebook, Twitter, or enterprise like WAAD, Google Apps, AD, ADFS or any SAML Provider.
-
Fingerprint - Authenticate a user using the fingerprint sensor (aka. Touch ID).
Cache
- Akavache - 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. Akavache is great for both storing important data (i.e. user settings) as well as cached local data that expires.
- FFImageLoading - Library to load images quickly & easily on Xamarin.iOS, Xamarin.Android, Xamarin.Forms and Windows (UWP, WinRT).
Charts
- Syncfusion - Chart includes functionality for plotting more than 20 chart types. Each chart type is easily configured with built-in support for creating stunning visual effects.
- Flexchart - Visualize your data in a wide span of Cartesian chart types including bar, column, area, line, spline, scatter, bubble, high-low-open-close (HLOC) and candle.
- Charts - A Xamarin port by Lucas Teixeira for Charts (ios-charts) by Daniel Cohen Gindi, inspired by Philipp Jahoda
- Oxyplot - A cross-platform plotting library for .NET
- Telerik - Feature-rich, intuitive and easy to use data visualization control featuring a large collection of chart series with smooth interaction and zooming.
- SciChart - High performance charts.
- MPAndroidChart - A Xamarin binding for MPAndroidChart by Philipp Jahoda.
Code Quality
- Xamarin profiler - Use it to find memory leaks, resolve performance bottlenecks, and add polish to your apps before getting them out the door.
- Firebase - Analytics and much more.
- Hockeyapp - Analytics and crash reporting
Color
- Splat - Splat aims to fix that, by providing a usable leaky abstraction above platform code. It is leaky, because it always provides an extension method ToNative() and FromNative(), which converts the abstraction to the platform-specific version.
Database
- Akavache - 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. Akavache is great for both storing important data (i.e. user settings) as well as cached local data that expires.
- Realm - The alternative to SQLite: Simple, modern and fast.
- Couchbase Lite - Couchbase document store lite
- sqlite-net - SQLite-net is an open source, minimal library to allow .NET and Mono applications to store data in SQLite 3 databases.
Data Structures / Algorithms
Date & Time
- Noda.Time - A better date and time API for .NET
EventBus
- MessageBus - Cross platform EventBus framework for iOS, Android, Windows Phone and Mac
Files
- PCLStorage - PCL Storage provides a consistent, portable set of local file IO APIs for .NET, Windows Phone, Windows Store, Xamarin.iOS, Xamarin.Android, and Silverlight. This makes it easier to create cross-platform .NET libraries and apps.
- Filepicker-plugin - Simple cross-platform plug-in that allows Pick files, save files and open the archive application standards..
Games
- CocoSharp - CocosSharp is an easy to use library for 2D games using C# and F#. It is a .NET port of the popular Cocos2D engine.
- UrhoSharp - UrhoSharp is a powerful 3D Game Engine for Xamarin and .NET developers.
- MonoGame - MonoGame is an efficient, flexible, cross platform API for developing 2D and 3D games.
Gesture
Graphics
- Splat - Splat aims to fix that, by providing a usable leaky abstraction above platform code. It is leaky, because it always provides an extension method ToNative() and FromNative(), which converts the abstraction to the platform-specific version.
- SkiaSharp - SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library (https://skia.org/).
Hardware
Bluetooth
- Xamarin bluetooth le - Xamarin and MvvMCross plugin for accessing the bluetooth functionality.
Camera
- MediaPlugin - Simple cross platform plugin to take photos and video or pick them from a gallery from shared code.
- Chafu - A photo browser and camera library for Xamarin.iOS. UIImagePickerController alternative, with cropping support, face detection and more.
Beacons
- AltBeacon - Allows developers to create proximity aware applications utilizing iBeacons & geo fences.
- Estimote - Xamarin folks have prepared these components—wrappers around our native SDKs for iOS and Android:
Location
- GeoLocator - Simple cross platform plugin to get GPS location including heading, speed, and more.
Other Hardware
Layout
- FluentLayout - FluentLayout provides an easy, fluent API for creating constraint-based layouts in Xamarin.iOS.
- TZStackView - A back port for iOS 7 & 8 and drop in replacement of UIStackView for Xamarin.iOS.
Localization
- JsonLocalization - MvvmCross - The JsonLocalization plugin provides a number of support classes to help load Json language text files for internationalization (i18n).
Logging
- Xamarin-Logger - Simple plugin for logging events in your Xamarin.Forms applications.
Maps
- ExternalMaps-Plugin - Open external maps application to navigate to a specific geolocation or address.
- Google-Maps-iOS - Add custom markers, styled maps, 3D buildings, indoor floor plans, street view, satellite imagery, and more to your iOS app.
Math
- Math.NET - Math.NET Numerics aims to provide methods and algorithms for numerical computations in science, engineering and every day use.
Media
Audio
- XamarinMediaManager - Cross platform Xamarin plugin to play Media from PCL
GIF
- gifimageviewandroid - Xamarin.Android ImageView that handles Animated GIF images!
Image
- ImageCirclePlugin - Simple but elegant way of display circle images in your Xamarin.Forms projects
Media Processing
- QRchestra - QR Code implementation.
- ZXING.net - ZXing.Net.Mobile is a C#/.NET Barcode Scanning Library
-
Xamarin.Forms.PDFViewer - PDF Viewer custom renderers for Xamarin.Forms using Radaee PDF SDK and android-pdfview
-
ZoomingPdfViewer - PThis is a port of Apple's ZoomingPDFViewer
-
mTouch-PDFReader - mTouch-PDFReader is a Xamarin iOS library to display PDF documents on iPad and iPhone.
-
PDFNet - PDFNet SDK is an industry-leading, high-quality document solution powering mobile, server, desktop, web, and cloud-based apps.
-
XFiniumPDF -Cross platform PDF development. Add PDF capabilites to your iOS, Android or Windows Phone applications.
-
APITron - Universal PDF creation and manipulation library, can be used to read, merge, edit and sign PDFs. Supports PDF content extraction, including text and images.
Streaming
- AndroidStreamingAudio - Series of Samples of streaming audio in background service in Xamarin.Android
Video
- XamarinMediaManager - Cross platform Xamarin plugin to play Media from PCL
Messaging
Also see push notifications
- JSQMessagesViewController - JSQMessagesViewController provides a gorgeous and feature rich iOS view controller that makes adding messaging to your app easy.
- SlackTextViewController - A drop-in UIViewController subclass with a growing text input view and other useful messaging features.
Networking
- Polly - Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner.
- refit - The automatic type-safe REST library for Xamarin and .NET.
- ModernHttpClient - This library brings the latest platform-specific networking libraries to Xamarin applications via a custom HttpClient handler.
- Connectivity - This library brings the latest platform-specific networking libraries to Xamarin applications via a custom HttpClient handler.
- Fusillade - Fusillade helps you to write more efficient code in mobile and desktop applications written in C#. Its design goals and feature set are inspired by Volley as well as Picasso.
- Messaging Plugin - The Messaging plugin makes it possible to make a phone call, send a sms or send an e-mail using the default messaging applications on the different mobile platforms.
- MvvmCross email plugin -The Email plugin provides a cross-platform implementation for sending emails.
Notifications
Push Notifications
- PushNotification -Simple cross platform plugin to handle push notification events such as registering, unregistering and messages arrival on Android, iOS, UWP platforms.
- PushSharp - PushSharp is a server-side library for sending Push Notifications to iOS/OSX (APNS), Android/Chrome (GCM), Windows/Windows Phone, Amazon (ADM) and Blackberry devices!
Push Notification Providers
Most of these are paid services, some have free tiers.
- Urban Airship
- Azure - Microsoft Azure platformr.
- HelpShift - in-app push notification and messaging sdk
Parsing
CSV
- CSVHelper - A library for reading and writing CSV files. Extremely fast, flexible, and easy to use. Supports reading and writing of custom class objects.
- KBCsv - KBCsv is an efficient, easy to use .NET parsing and writing library for the CSV (comma-separated values) format.
JSON
- JSON.net - Popular high-performance JSON framework for .NET
Download
HTML
- HTML Agility pack -This is an agile HTML parser that builds a read/write DOM and supports plain XPATH or XSLT
Passbook
- PassKitSharp - PassKitSharp is a C#/.NET Library for Reading and Writing Apple PassKit files.
Payments
- JudoPay - Payments SDK for Xamarin.Forms.
- Stripe - Mobile Payments built for Developers
- Xamarin.inAppBilling - Component to assist in adding In-App Billing to a Xamarin.Android application via Google Play Services.
- PayPal.Forms - PayPal Plugin for Xamarin.Forms
Permissions
- PermissionsPlugin - Simple cross platform plugin to request and check permissions.
Reactive Programming
- ReactiveUI - A MVVM framework that integrates with the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform.
Security
- Xamarin.Auth - Xamarin.Auth helps you authenticate users via standard authentication mechanisms (e.g. OAuth 1.0 and 2.0), and store user credentials.
Encryption
- PCLCrypto - PCLCrypto provides cryptographic APIs over algorithms implemented by the platform, including exposing them to portable libraries.
Testing
TDD / BDD
- xUnit - xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework. xUnit has test runners available for Android and iOS. Greg Shackles has written a nice tutorial to help you get started.
- NUnitLite - A lightweight testing framework for .NET, based on the ideas in NUnit and providing a subset of its features. NUnitLite is distributed with Xamarin to allow unit-testing of applications build with Xamarin.
A/B Testing
UI Testing
- Xamarin UITest - Introducing Xamarin.UITest, an Automated UI Acceptance Testing framework based on Calabash that allows programmers to write and execute tests in C# and NUnit that validate the functionality of iOS and Android Apps.
Font
UI
- userdialogs - A cross platform library that allows you to call for standard user dialogs from a shared/portable library, Actionsheets, alerts, confirmations, loading, login, progress, prompt, toast... async just for fun.
Activity Indicator
Alerts
App Introduction
Badge
Button
Calendar
Card View
- FoldingCell - FoldingCell is an expanding content cell inspired by folding paper material and created by Ramotion Inc.
Form & Settings
Keyboard
Label
Menu
Modal Transition
Navigation Bar / Toolbar
PickerView
Popup
Pull to Refresh
Rating Stars
ScrollView
Slider
Splash View
Stepper
Switch
Tab Bar
- Tab Badge - Xamarin Forms bindable tab badges. Badges are small numbers/chars that can indicate new items on the tab page.
- SGTabbedPager - A port of SGViewPager for Xamarin.iOS. Provides ViewPagerIndicator like tabs to iOS.
Table View / Collection View
Tag
TextField & TextView
Web View
URL Scheme
Utility
VR
Walkthrough / Intro / Tutorial
WebSocket
GCD
Project setup
Dependency / Package Manager
Tools
Rapid Development
Injection
Deployment / Distribution
App Store
Style Guides
Good Websites
News, Blogs and more
UIKit references
Forums and discuss lists
Tutorials and Keynotes
iOS UI Template
Prototyping
Newsletters
Medium
Social Media
Facebook Groups
Podcasts
Books
- Xamarin In Action - Creating Native Cross-Platform Mobile Apps
- Mastering Xamarin.Forms - Patterns and practices for building mobile apps with Xamarin.Forms
Contributing and License
- See the guide
- Distributed under the MIT license. See LICENSE for more information.