Mobile Application Development
We use Xamarin as a way of maximizing code reuse and ensuring software extensibility. The ability to extend your code base is key for apps that are easier to maintain and thus more cost-effective.
Developing for mobile platforms becomes expensive when you need to maintain two versions of the same application for different platforms. We can provide alternatives using Xamarin software libraries that will ensure the least amount of duplicate software development work.
With Xamarin software development libraries and experience, we provide mobile application development using the predominant language of .NET today, C#. This not only speeds the development process, but ensures the source is understandable and compilable during subsequent application updates or changes.
Example Mobile Application
We currently have an Open Source project underway. It’s called EasyBudget and it’s a Xamarin Forms cross-platform app.
Sometimes we need to do something that is only available in one platform. We can develop applications for the Android platform directly in Visual Studio using the Xamarin.Android libraries.
Using Xamarin, we provide native Android applications, or can integrate a mixture of Xamarin Forms customization specific to Android applications to solve your app development needs.
We can develop your app using the platform-specific libraries of Xamarin.iOS and develop the application directly in Visual Studio, on a Mac.
We can provide development services for a wide variety of software devices directly through Visual Studio templates, reducing development costs by having boiler plate templates to begin projects or add project items to development solutions specific to iPads, Mac OS, Apple TV or Apple Watch.
Xamarin.Forms provides a different approach to mobile application development. In Xamarin.Android and Xamarin.iOS, the User Interface code is all located in those platform-specific projects.
With Xamarin.Forms, developers can create the User Interface in a shared project, Portable Class Library (PCL) or in a .NET Standard library, and use XAML to create the views and pages. When the compiler builds the application, it converts the XAML and code into a native application using platform-specific controls and interfaces.
When Xamarin Forms doesn’t provide exactly what your application needs on each platform, we use dependency injection to abstract the functionality needed so we can operate and extend the User Interface when needed.
Data Driven Applications
Entity Framework and Entity Framework Core offer great software integration with existing company databases. Almost every application we develop is connected to a database representing objects within the application. While Entity Framework provides the ability to shift some work off to the database in the form of stored procedures, it’s really better, and easier to follow in code, when all logic is in once place.
For mobile applications, it is common to use a mixture of server based data and locally stored data (local to the device). This can involve a mixture of Web API or REST service calls to access remote data on a server with access to relational databases such as MS SQL Server, Oracle or DB/2, or document type databases such as Google Firebase or MongoDB. It can also involve local connections to local (stored on device) databases such as Sqlite.
Since the applications are usually data driven, we can do useful things such as generate graphs depicting the data or export PDF documents.
We write code that is testable, mostly. Not all code lends itself to great unit testing due to several factors, but more often than not, the restrictions are based on one or more dependencies directly referenced or even hard-coded into a class.
We use Inversion of Control and other methods of abstraction to isolate code as much as possible and increase the testable footprint of new and existing code. You can read more about our Unit Tests here.
Need more information about why Xamarin is a worthy development paradigm? Our Lead Engineer is a Xamarin Certified Mobile Developer and we look forward to learning how we can improve your mobile development platform.