• Getting Started with Visual Studio 2019 Android Navigation Drawer template

    the vanilla app So, I’ve had an idea for another privacy-focused application, this time aimed at mobile devices – Android in particular (I know that Apple are a little touchy about encryption apps – maybe I’ll venture into iOS at a later date).

    Notwithstanding my desire to keep my skills up to date I knew that the project I have in mind would require a lot of platform specific logic. While Xamarin Forms can handle this I prefer to take the hit, roll my sleeves up and I opted for a native Android project instead – and that’s where the trouble/fun started.

    Read more
  • IR35 – Living with a Broken Promise

    hmrc logo Well I guess it’s old news now, although it was quite foreseeable, but despite a pre-election promise the Conservatives have reneged on their commitment to review the IR35 legislation. Instead they will review the process for rolling the changes into the private sector – not the same thing at all.

    Instead of me going over old ground, take a look at my previous IR35 post which was published prior to the election (and it’s broken promises).

    In the weeks that have followed Twitter has been ablaze with tweets tagged with #IR35 – many are mine. There is a lot of anger out there and our worst fears, that end clients would take the ‘easy option’ and just stop using contractors altogether has come to pass (despite HMRC saying it wouldn’t).

    Read more
  • Unit Testing with the Xamarin.Forms MessagingCenter

    While we all know that Test Driven Development (TDD) is a good idea, in practice it’s not always viable. It could be a time constraint, a resource issue or the project just doesn’t warrant it.

    While TDD may sometimes be an option, unit tests themselves should really be considered to be a must. They will save you a lot of time in the long run and while they may not prevent you from going grey, ask me how I know, they will reduce your stress levels when bugs raise their ugly heads.

    So, whether you write your tests before you write the code or vice-versa, if you are developing production code you really should write tests to cover it.

    Read more
  • IR35 2020 – Thoughts from the Coal Face

    hmrc logo I’ve been contracting for over eight years now and in that time I’ve been careful to ensure that, to the best of my abilites, I operate in a manner that places me outside of the IR35 legislation. That is, to provide a service to my clients and not to be seen as an employee.

    Currently it is my responsibility to determine the employment status of a role with regards IR35. I do this by having contracts independantly reviewed to ensure that they comply with the legislation and take steps to ensure that the actual working conditions are in accordance with service provision rather than employment.

    If I get it wrong then it is down to me to justify my determination, in court if need be, and pay any unpaid taxes should I be unable to do so.

    However, in April 2020 that determination could largely be taken out of my hands and placed in those of the fee payer, e.g. the client if I’ve been engaged directly or otherwise a recruitment agency that have facilited the engagement.

    Read more
  • AppSettings in Xamarin.Forms

    If you have used ASP.NET in recent years you will probably be familiar with the appSettings.jsonfile and it’s associated, build-specific transformations, e.g. appSettings.development.json and appSettings.release.json.

    Essentially these allow developers to define multiple configuration settings which will be swapped out based on the build configuration in play. Common settings are stored in the main appSettings.json file while, for instance, API Endpoint Urls for development and production deployments are stored in the development and release files.

    At compile-time any values specified in the deployment version of the file overwrite those in the common version.

    Simple – works well and we use it all the time without thinking about it. But what about Xamarin.Forms – it doesn’t have such a mechanism out of the box so how do we achieve this and prevent accidentally publishing an app to the App/Play Stores which are pointing to your development/staging servers?

    Read more