Creating a mobile application is relatively easy these days as we have a huge choice of WYSIWYG editors, templates and other tools. The general mobile-first push has also increased the quantity and quality of documentation for developers which gives so much support to implementing features and fixing any issues. I personally think Google has the best documentation and samples available to developers on the Android platform, and their regular events such as Google I/O (which give out tonnes of sample apps!) and their detailed online courses in Android Development really set them apart from the competition. For my final year project, I’ve chosen to make a modular event organisation/finder application, similar to Eventbrite or Meetup, but with some really cool features and ideas that aren’t out there. (yet!)
My idea behind the project was that I always found Facebook events really boring and generic when I still had an account and I also hold that opinion of Eventbrite too. Meetup is a bit more to my liking, but that’s more community-orientated, I want my app to be used by small groups of friends or by large communities too. I picked the Android platform because I really like developing for the platform, and the majority of the devices I own also run it so it save me approximately all of my life savings for a single iPhone. Azure is like my trusty steed, whenever and wherever I can use it, I do. For mobile apps, there’s a pretty wide choice for picking a backend with Azure; you could go with Mobile Services, or the newest updated version of Mobile Services- Mobile App Service which is a part of the Azure App Service, or an API app which would be mostly HTTP RESTful interactions, or the old reliable Web API – part of the ASP.NET MVC Application. I’ll outline my personal pros and cons of each below, as I’ve had experience with all of them.
- Azure Mobile Services
- Azure App Service – Mobile and API
- Web API
File -> New -> ASP.NET Web Application. I think we’ve all done this at one point in time with Visual Studio. Selecting Web API in the options gives us a great backend for our application, which can be accessed through RESTful calls to controllers / api’s. I’ve found a Web API to be one of the easiest to develop, alongside API App in simplicity. The overall documentation and user questions and answers across the internet are far greater than any other option listed above. Also any solution to a problem in C# from another type of project can generally be applied with very little trouble.
Once you decide on a backend system, most of them have getting started tutorials on Azure and MSDN. I’ve chosen Web API for my project, so the majority of my information to come will be based around this. Databases would be the next logical thing to sort out, if one is to be used. Azure SQL databases are my preference as it makes it easier to work with when both the server logic and database are hosted in the same environment. Plus publishes and updates are super easy with Azure. If you’re using .NET, the Entity Framework is the way to go for database persistence, and is ridiculously easy to work with. I’ll be talking about my general Web API setup next, including custom authentication and authorization with .NET and tokens!