With consumer uptake of smartphone platforms growing exponentially on a global scale in recent years, particularly for accessing social media, news, streaming media and games through the lens of ‘mobile apps’, we felt it was time to overhaul our existing final year ‘Mobile and Distributed Computing’ module in the Lincoln School of Computer Science. Task-driven computing on mobile devices such as smartphones and tablet PCs is beginning to edge out the traditional desktop space, for example social media use on mobile devices has now surpassed the desktop; as the processing power of mobile devices increases they are likely to run more desktop application tasks. We took a close look at the development tools for the major mobile OS’s currently available with a view to selecting a suitable platform for inclusion in delivering content for teaching. Mobile development for a contemporary mobile platform was seen as an important skillset and significant boost for students’ CV’s and better equipping them for a mobile-geared job market. Computing students at Lincoln are taught in state-of-the-art labs with high-spec machines ensuring the best development experience possible. Students are largely empowered in their development needs by being able to select, suggest and install development software of their choice in the labs; for example choice of IDE’s, source control and other tools.
In previous years we taught Java ME and realised the shelf life of the platform as a viable mobile OS had come to an end, indeed a roll call for mobile devices owned by our students revealed very low ownership for Java/Symbian based phones. Firstly, we had to consider our students current development skillsets and the main Computing degree streams they were enrolled on – this was to ensure we set the teaching style, pace and content at the right level. Secondly, consideration was given to the role of cloud computing in the development of mobile applications. Lastly, as a large part of the context of mobile use is social; for example social media, check-in services, recommender apps and photo sharing, we decided to include a significant amount of Human Computer Interaction and design methods in the updated module. This was bolstered by the expertise of the researchers delivering the module’s content who are active HCI researchers across multiple disciplines. By embracing a ‘designing for real users’ approach, the inclusion of HCI provides students with a strong focus on who they are developing for and the type of tasks their target end-users want to carry out. This approach was carried out well in advance of thinking about the development space; a design first:develop second approach.
By the time students progress to their 3rd year at Lincoln they’ve had experience using various programming languages and IDE’s, including Visual Studio, which is used to teach C# programming, ASP.NET/MS-SQL, and XNA for games development. With the use of VS widespread in Lincoln’s computing degree programmes, it was a logical step to look at including it for mobile phone development. The question was ‘How good are Microsoft’s mobile development tools for Windows Phone when stacked up against the competition?’ The answer to this was straight forward after a few days experimenting with the tools and Windows Phone SDK. We were impressed by the integration of the Windows Phone SDK in Visual Studio, and further impressed by the emulator tools, easily edging out the competition in features for sensor emulation, debugging and ease of use through VS GUI building elements. The stage was pretty much set with the updated module aptly named ‘Social Applications Development’ and planned to run over the full academic year with 35 students in its first iteration.
The structure of the module’s development content was inspired by a combination of resources available from the Windows Phone Developer website as well as our own research interests. To involve students in aspects of our current research we built 5 WCF services (themed on our research interests) and deployed them to Azure, the services were designed to enable students to easily create cloud-connected mobile apps; service details are listed below. The first half of the module was largely delving into development supported by a user-centric design ethos and included delivery of the following lectures and workshops structure:
1. Intro to module. Development environment and installation. for WP (VS2010)
a. Workshop – Hello world app
2. Windows Phone – Hardware and Software (Silverlight, XAML)
a. Workshop – UI and navigation app (Panorama & Pivot Interfaces)
3. Windows Phone Sensors / Client-Server vs. Cloud
a. Workshop – Launchers and choosers app (location, photos, maps)
4. Windows Azure – Cloud Connected Mobile Applications
a. Workshop – Saving data to isolated storage (text files, photos)
5. Overview of REST API’s
a. Workshop – Basic Twitter client using Twitter REST API and sentiment analysis WCF service
6. API mashups and breakout session – generating novel mobile app concepts around multiple and diverse datasets
a. Workshop – Photo app that saves photos to Azure using WCF service
b. Workshop – Top 40’s music chart app using WCF service
c. Workshop – Lincoln Campus hourly energy usage app using WCF service
d. Workshop – Crime by location app using Bing Maps, UK Crime API and WCF service
The development part of the module was well received by students, some of whom had basic coding experience and yet where able to produce novel cloud-connected mobile apps after a few months of attending lectures and workshops. Screenshots of the student apps with their comments are below.
AT: “The module Social Applications and Development was an introduction for me into the world of mobile applications; learning and implementing the following application based technologies, such as: Cloud Services, APIs, SDKs I was able to create a mobile application that allows a user to find out the crime statistics of given area.”
MW: “I found the module very interesting and expertly delivered. I even enjoyed it so much I have already contributed my own content for use in future years. (a dll for converting a UK postcode to long and lat cords)”
The second part of the module focussed on the user-centred design approach, mobile context-of-use, global mobile demographics, and ethics. We believe a blend of development skills, design theory and an understanding of end-users’ needs and desires when interacting with mobile devices equipped the students with requisite knowledge to carry out the design, implementation and evaluation of mobile apps on a cutting edge platform. We were also fortunate enough to arrange a Windows PhoneCamp which took place during the second part of the module and was a great success. Over 50 students attended and attempted the task of hacking together Windows Phone apps in the space of an afternoon; a blog post on Lincoln’s PhoneCamp is here.
With the start of the new academic year fast approaching we are working on new Azure Cloud additions to the module and the potential inclusion of the Gadgeteer platform. With Gadgeteer being particularly suited to rapid prototyping, the possibility of using the platform for sensor stations and interactive prototypes that support our practical research would enable the creation of novel and engaging mobile apps.
Upon reflection of a successful first year teaching Windows Phone development, we came to realise the importance of the cloud and its implications for building mobile apps and services. Further to this, we were successful in an application for an Azure Educators grant and plan to use the grant’s free academic accounts for our students to introduce more cloud computing development by allowing hands on experience of creating their own web services hosted in the cloud.
Huge thanks to Derek.