Workflow Controller in Xamarin.Forms

One of the main issues I am seeing with large projects, is controlling the workflow of pages. The complexity continues to increase as more pages can link to and from it. It also occurred to me that keeping navigation inside the ViewModel, only seems to tie the ViewModel to other pages, rather than keeping it […]

Read More >

Should I Use A Xamarin.Forms MVVM Framework?

Xamarin.Forms is designed with MVVM in mind, and you don’t need a framework to develop a Xamarin.Forms application, with the MVVM pattern. As your application becomes, MVVM Frameworks do contain a lot of things to help you, and are certainly worth a look. What Xamarin.Forms Includes In relation to MVVM, Xamarin.Forms includes the following two […]

Read More >

Feature Grouping Code

There are many ways you can structure your application in terms of projects, however something I usually don’t discuss, but is quite handy, is grouping code via Feature, instead of Function. This method has been around for a long while, and I am not the first to use this, but I want to highlight this […]

Read More >

Mobile Database Bi-Directional Synchronization with a REST API

Mobile device’s don’t always have persistent connections to the internet, or local networks. Because of this, some apps will need to provide offline access, so that users or employees, can continue to work uninterrupted. To do this, we need local data storage, commonly SQLite, and a way to update the server with changes and receive […]

Read More >

Architecting a Large Xamarin Forms App

Following on from my LinkedIn article of Adapting to Enterprise and B2E Xamarin Forms App Development, this post will go into how I structure and architect an app, that will have a large code base, and multiple developers. When we are dealing with a large code base, across multiple developers, it’s wise to start favoring […]

Read More >

Patterns for Referencing Dependencies in Cross Platform Development

There are many ways to obtain a reference to a dependency in programming. You may have heard of patterns called Service Locator, Constructor Injection, Static Instances or even PubSub. All of these are valid patterns and have their uses, but there are also many incorrect ways to use them. Service Locator Service Locator is a […]

Read More >

Operation Separation

Operation Separation is my term for separating commands, think ICommand, that are called in a ViewModel, into a separate Operation class and then having a common service handling the result. This means the operation in a ViewModel does not actually cause the navigation or display of a dialog but merely processes user input and state into […]

Read More >

Misuses Of MessagingCenter

MessagingCenter is a global event messaging system designed to allow two separate entities communicate without knowing anything about each other, besides a simple messaging contract. This architectural style of system works well for larger systems such as Amazon who use a similar event-sourced approach of micro services to implement a recommendation system, payment system, shipping system […]

Read More >

Static Initialization

Constructor injection is a great way to keep all class dependencies easily visible in a constructor parameter list and makes unit testing easier. There are times when this isn’t possible such as another class initializes your class and you don’t have control of its construction. This presents a challenge. Normally this results in relenting to using a service […]

Read More >

Layered Dependency Injection

Introduction In a tiered architecture with Dependency Injection we have the problem that the bootstrapper or initialization section of your main project doesn’t have a reference to every project we need to inject into our container.  Therefore we end up referencing projects for the sole purpose of injecting them into the container. While there is technically no harm in doing […]

Read More >