It’s hard for me to believe, but it’s already time again for me to set some personal goals for the upcoming year. This is something that I have been doing since high school and it has always been a way for me to challenge myself to learn some new skills I desire to have each year. For 2016, my goal is to learn to develop mobile apps. Now if you have read some earlier posts on my blog, you’ll know that this was a goal of mine back in 2014. A business opportunity came up early that year that had me spending a good chunk of my free time in 2014 and 2015 working on a large ASP.Net MVC website. For 2016 I am turning my attention back to teaching myself cross platform mobile development and, in particular, Xamarin development.
Why Should You Care?
Why am I telling you this? Why would you care? I am telling you this because I plan to post and share my experiences learning Xamarin all along the way. So if you are learning Xamarin development yourself, be sure to check back here regularly as I plan to pass along the learning materials that I found to be the most useful. I will also be posting the source code to my “learning” projects to Github so you can load them up and try them on your own. I also plan to create some tutorial videos that will walk you through and explain how I built my test projects. I’ve also kicked around the idea of even recording some live coding session videos to share.
Full disclosure, I’m not heading into this with zero knowledge of mobile development or the Xamarin platform. I was Xamarin certified back in early 2014 after completing Xamarin University and passing the certification exam (Read my blog post on the “Xamarin University experience” here). Unfortunately I have not done any mobile or Xamarin development since like I had planned to do after passing the test. So, I’m sure there is quite a bit that has changed and quite a bit that I will need to re-learn.
Why Xamarin Development?
Why am I focusing on learning to create apps using Xamarin instead of using something like Phonegap or Cordova? In a perfect world I’d have the time to sit down and learn to write native apps for iOS and Android using Swift and Java. Since I know I won’t have that kind of time, I think that Xamarin gives me the best alternative by allowing me to at least create the user interfaces for each platform in their native development environment but then write shareable business logic code using my favorite language, C#. I have nothing against the hybrid mobile app approach (and I may end up trying it out eventually), but it just isn’t the route I want to go at this time.
I read or heard somewhere that a good way to learn mobile development is to pick an existing app and then try to build out some of the functionality of that app as a learning project. This approach is recommended because you can focus on building the app and you do not have to worry about the design, features, business logic, etc. since this is already done in the reference app. This is the approach I plan to take with my first app. I looked through the apps installed on my phone and thought a good one to try would be the redbox app. I don’t intend to implement all of the functionality in this app but rather just enough of the features and style of the app to get a taste of doing cross platform development for iOS and Android using Xamarin.
Before I jump into building this redbox like app using Xamarin, I do plan to first build the app for Windows Phone using Visual Studio. Why not just jump in and build it using Xamarin right out of the gate? Since I am most familiar with WPF / MVVM style development, I want to think through building the app for just the Windows Phone first before bringing in the additional cross platform complexities of using Xamarin for iOS and Android. I definitely won’t be developing for Windows Phone first for all my apps in the future, I just want to do it with this first app so I have the experience of converting an existing Windows Phone app over to iOS and Android using Xamarin.
Below are a few screenshots of how the redbox app looks on my Windows Phone. This should give you an idea of what I will be building for the upcoming blog posts.
Conclusion – My Goal
Obviously my goal in doing this is to learn to develop cross platform mobile apps with Xamarin. Just as importantly though, I hope to give back and share the knowledge that I acquire with the development community that has taught me so much over the years.