For my final year project, I decided to make a large-scale mobile application which takes inspiration from Meetup and Eventbrite. The idea itself wasn’t new, an event organisation tool that also acts as a discovery platform. I chose to focus entirely on Android, as I had previous experience with the platforms. The challenge was to create a cloud-based REST back-end service and also to create this Android app from scratch. I received an A grade for this project, I was delighted about the results.Due to this being my final year project, regular meetings, demonstrations and reviews were held. The project reviewers would discuss the direction of the project, any problems that were encountered since the last review, and the current status of what’s been achieved. I found these to be great for project management, they act similar to sprints in an Agile environment.
This project started off with a simple REST API service. Written in C# using the ASP.NET Web API, Microsoft Azure for hosting, and a host of other Azure-based features (Azure SQL DB, NoSQL DB, Notification Hubs, Application Insights) Once the REST service was up and running, I tried to focus on the Android app as much as possible, but changes were always needed as the project went on. Working hand-in-hand with Android (Java) and C# improved my language-agnostic approach to tasks. Arguing about which languages to use is pointless in my mind now. I have zero qualms about switching languages which I believe to be beneficial in my career.
Android development is something that I enjoy immensely. This project wasn’t any different. I really enjoyed adding features to it week by week, seeing the app become what I had imagined. I started off with a bare-bones layout; Everything was an Activity, there were no Fragments, no Dialogs, no settings, no implicit intents. It was rough and ready. Slowly, sometimes very slowly, I built and rebuilt the app piece by piece. Libraries such as Volley, Butterknife, and the Fabric analytics tools added a huge amount of success to the mobile app. I designed the Android app to follow the Material Design guidelines as much as possible.
I added analytics to both the mobile app and the web service, and managed to publish the mobile app to the Google Play Store. I didn’t release it as I didn’t plan to keep it going, it was more of a proof that I had the ability to do so. I also added Facebook, Twitter and Google+ authentication to the app as a means to avoid creating an individual accout instead. In the end, I was very happy with the way it turned out.