All Projects → mgj → MvvmCross-Dreams

mgj / MvvmCross-Dreams

Licence: Apache-2.0 license
Xamarin MvvmCross DREAMS is an opinionated take on how to make an MvvmCross app.

Programming Languages

C#
18002 projects
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to MvvmCross-Dreams

Mvvmcross
The .NET MVVM framework for cross-platform solutions, including Xamarin.iOS, Xamarin.Android, Windows and Mac.
Stars: ✭ 3,594 (+11880%)
Mutual labels:  xamarin, mvvmcross, mvx
XamFormsMvxTemplate
A Visual Studio 2017 template for projects based on Xamarin.Forms 3.3 and MvvmCross 6.2
Stars: ✭ 27 (-10%)
Mutual labels:  xamarin, mvvmcross
xamarin-mvvvm-frameworks
A Comparison of MVVM Frameworks for Xamarin Projects
Stars: ✭ 44 (+46.67%)
Mutual labels:  xamarin, mvvmcross
Nethereum.UI.Wallet.Sample
Cross platform wallet example using Nethereum, Xamarin.Forms and MvvmCross
Stars: ✭ 77 (+156.67%)
Mutual labels:  xamarin, mvvmcross
AppRopio.Mobile
AppRopio - mobile apps builder for iOS/Android based on Xamarin
Stars: ✭ 16 (-46.67%)
Mutual labels:  xamarin, mvvmcross
XamSvg-Samples
Samples for Xamarin Svg enterprise cross platform and full featured Svg image control
Stars: ✭ 25 (-16.67%)
Mutual labels:  xamarin, mvvmcross
ably-dotnet
.NET, Xamarin and Mono client library SDK for Ably realtime messaging service
Stars: ✭ 32 (+6.67%)
Mutual labels:  xamarin
php-base-project
A Composer ready package to start a new PHP 7 project
Stars: ✭ 17 (-43.33%)
Mutual labels:  template-project
XamarinIoTWorkshop
A workshop that demonstrates how to collect IoT data from a mobile device using a Xamarin app, aggregating the data to the cloud using Azure IoT Hub
Stars: ✭ 13 (-56.67%)
Mutual labels:  xamarin
Xamarin.AzureCommunicationCalling
Xamarin iOS and Android binding libraries for Microsofts Azure Communication Services
Stars: ✭ 32 (+6.67%)
Mutual labels:  xamarin
vs-material-icons-generator
This plugin will help you to set material design icons to your Xamarin projects In Visual Studio.
Stars: ✭ 50 (+66.67%)
Mutual labels:  xamarin
parquet-dotnet
🐬 Apache Parquet for modern .Net
Stars: ✭ 199 (+563.33%)
Mutual labels:  xamarin
PastelXamarinIos
🌒 Gradient animations on Xamarin-iOS
Stars: ✭ 17 (-43.33%)
Mutual labels:  xamarin
Xamarin.BookReader
Xamarin.Android复刻实现的 📕 "任阅" 网络小说阅读器 https://github.com/JustWayward/BookReader
Stars: ✭ 74 (+146.67%)
Mutual labels:  xamarin
gotemplate
Minimal repository template for well constructed Go libraries.
Stars: ✭ 33 (+10%)
Mutual labels:  template-project
Xamarin.Android.Skobbler
C# bindings for the Skobbler Android SDK
Stars: ✭ 16 (-46.67%)
Mutual labels:  xamarin
aiogram-bot-template
Template for creating scalable bots with aiogram
Stars: ✭ 175 (+483.33%)
Mutual labels:  template-project
XamUI
Xamarin UI Challenges 🏆
Stars: ✭ 57 (+90%)
Mutual labels:  xamarin
FocusOnXamarin
NET Conf: Focus on Xamarin samples
Stars: ✭ 55 (+83.33%)
Mutual labels:  xamarin
auth0-xamarin-oidc-samples
Auth0 OIDC Client with Xamarin applications
Stars: ✭ 26 (-13.33%)
Mutual labels:  xamarin

Xamarin MvvmCross DREAMS

Build status

Xamarin MvvmCross DREAMS is an opinionated take on how to make an MvvmCross app. If you have any comments, concerns, critique or ideas, please create an issue (or pull request :D)

No more worrying about naming conventions, PCL profiles, android support dependencies or which logging framework to use.

Now available as Visual Studio project template!

DREAMS is now available as a project template to make it even easier for you to get up and running as fast as possible. Just follow these steps:

  1. Install the DREAMS project template from visual studio (Tools -> Extensions and Updates... -> Search for "MvvmCross DREAMS" or "artm.Dreams")
  1. Add new project - type MvvmCross DREAMS Core. OBS: Must be postfixed with ".Core" ! For example: "MyProject.Core"
  • It will spam a bunch of errors, you can safely ignore these. They are resolved by restoring nuget packages which happens automatically on build
  1. Add new project - type "MvvmCross DREAMS Droid". OBS: Must be postfixed with ".Droid" ! For example: "MyProject.Droid"
  2. Build and deploy the app!

Features

  • "Normal" full screen navigation
  • Burgermenu navigation
  • Network and background tasks
  • Logging to console/logcat and logfile
  • Threadsafe dialogs

Model-View-ViewModel (MVVM)

The solution in structured around the Model-View-ViewModel (MVVM) pattern. For those unfamiliar with this pattern it basically boils down to this:

  • Model: Data models, database etc.
  • View: UI. On android this often includes xml layout files, and on iOS xib files.
  • ViewModel: A "synthesized" version of the view, in which all the underlying data which must be presented by the view is made readily available in a way that is easily digestible by the view.

In addition to the 3 main layers, there is a collection of classes we should mention as well:

  • Services: In order to keep our ViewModels small, much business logic is made available through services. Ideally, ViewModels should only contain properties that the View can bind to - all heavy lifting and business logic should be handled by a service. In practice, however, there are often exceptions to this rule, and making services for everything business logic related is overkill.

Whats in this thing?

The folder structure aims to have folders separated by their feature rather than their type.

The solution is released with 5 screens:


  • FirstView: Shows simple text binding between input fields and textviews. Shows navigation and passing of data to other viewmodels

  • SecondView: Shows async initialization (fetching data from network to show in view). The fetched data response is cached in a Realm.io database.

  • ThirdView: Shows how to use lists. On android, the example shows how to get the Material Design feeling by collapsing the toolbar (previously known as the actionbar) when the user scrolls the list.

  • FourthView: Shows how to make a burger menu

  • FifthView: Shows how to use dialogs in a threadsafe manner

The solution uses NLog to log to the console and to disk (a logfile).

Thanks to

License

Apache 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].