In last post I described how to cope, in some extent, with different pace of delivering mobile app versus it’s supporting backend. The article also provided a simple hint for speeding up the mobile app development by introducing mocks instead of the external network services.

In this one I’m gonna give you some advice on managing the dependencies as your app gets more of them in time.

→ Read more

Modern mobile apps are rarely developed as offline-only. They typically communicate with backend services that feed them with data, keeps in sync with their web equivalents or allows for various external integrations. The backend part is most often developed by different teams in their own pace. The mobile part can be often developed faster thus it waits for the full integration.

Even if the backend service is ready to consume it’s not always most convenient to develop being connected to it. Sometimes you just make a small UI change and want to see the result immediately. Even the fastest Internet connection would not give you the speed of loading the mocked data from memory. It’s also easier to use the same approach in automated UI tests instead of depending on data changing in backend (if you don’t test the integration itself).

Those are only two of many various scenarios where the proper design of application-level configuration can help in the development and testing process. Proper use of dependency injection, conditional compilation and few other techniques can make this design clean and maintainable. This spans from the local development to Continuous Integration and Deployment process. In this and next articles I will show you how to do this in Xamarin app.

→ Read more

XAML compilation is (or at least should be) one of the default optimisation steps in Xamarin.Forms app development. It really speeds up the app especially on Android. Sometimes however it can cause some nasty errors like this one:

/path/to/project/Views/MyContentPage.xaml : error : Object reference not set to an instance of an object
→ Read more

3rd party libraries never seems to be documented enough. It’s the old truth that every software developer learns sooner or later. In most cases after dozens of hours spent on trying to figure out “what the hell is wrong with my/that code!?”. This post is about one of such “hidden features” in Microsoft oData client - Simple.OData.

→ Read more

Standard Xamarin.Forms Xamarin.Forms.Editor control offers edit capabilities similar to Entry but for multiline text. Unfortunately unlike Entry it doesn’t support displaying placeholder text out of the box. Implementing this functionality with custom renderers can be tricky. Let’s see how to do this on Android and iOS.

→ Read more