A voice from our app development team, Ashley, talks about his Xamarin App programming journey and the key takeaways from his training.
When first looking into Xamarin App development I was intrigued on how it differed from native app development. Coming from an Android app development background using Java, it was quite easy to notice the similarities and how much easier it was to develop using a Common Language Infrastructure, without having to learn two sets of languages.
Xamarin seemed the logical choice for the basis of my learning of cross-platform app development as when looking at many cross-platform implementations, none of them had quite the appeal that Xamarin did. The main advantage over the others for Rocktime is the Microsoft .Net aspect, making it very easy to take what I already know and use it on a daily basis and apply this to app development.
Using Xamarin also offers more support turning our cloud software and websites into app versions as it offers us the ability to reuse the same code, and easily pull in the specific DLL config files we use on the cloud software and website versions into Xamarin. Saying that, there is a slight drawback as I have opted to go for the language choice C# over VB for this project, this is due to Xamarin having more support for C#.
Learning C# to begin with seemed like a daunting task. I had never programmed in this language before, but picked it up surprisingly quickly. As it is a part of the .Net infrastructure it seemed almost second nature going from VB.Net to C#.Net. Once I had the syntax and semantics nailed, it was time to develop a few test apps to make sure my level of understanding had been brought up to that to make a fully-fledged Mobile App.
I started off with a list of general requirements such as, storing data locally and externally, biometric authentication, User Profiles, and in the app life cycle to help understand how to structure and maintain the further apps to come. I typically start off creating projects for each specific mini requirement first, I then join all of those projects together to showcase all that I have learned; this helps get tasks out the way in easier bite sized chunks, and gives a bigger focus on how I’m structuring my code, so I am not jumping around in different areas.