This week we've got hold of George Banfill from Linknode, the team behind the likes of AlbumFlow and MegaTile. We met up with George and his colleague Crispin Hoult back at a recent WPUG meetup where we took a look at MegaTile and how the app provides the user with an impressive collection of tools for homescreen tile customisation. Head on past the break for the read through.
Tell us about yourselves and how you got into software development.
I’m George Banfill and I work for a software development company based in Stirling in Scotland. We specialise in mobile geography (bringing geographical information to your mobile device) and also support a lot of the maps the councils use to manage the planning processes. We currently have a range of public apps in the Marketplace that provide stepping stones for The Big Plan! (more on this later).
I’ve been working in .NET since 2005 on every version from 1.1 onwards. Mostly it has been running public websites (using ASP.NET and more recently MVC) and designing the backend systems to support those websites. I worked for an early competitor to Rightmove building and supporting one of the busiest websites in Scotland (back in 2006). I’ve worked in the translation industry automating the complicated translation process using Windows Workflow. I’d say I had a lot of experience of ASP.NET websites, web services and business process analysis and automation and I wanted a new challenge.
My colleague Crispin Hoult comes with 20 years’ experience working in the geospatial industry. He’s been one of the developers and later CTO of a company delivering innovative desktop and web based mapping system. This lead to him supplying many councils in Britain with planning software and working with one of the largest databases in the UK (at the Ordinance Survey).
What do you think of Microsoft's platform (from a user perspective) and how do you compare it to competitors?
I like the Windows Phone platform, it is simple and it feels like it is all designed to work together and is snappy to use (these were my main criticisms of the Android device I had before). My favourite feature has to be the Live tiles: having the information on the home screen without having to load the app is great.
I see a phone as a content consuming platform: reading the news on the way to work, reading emails, casual gaming. I would not like to do any serious content creation on it (other than replying to a few emails on the train). Given this kind of usage, I think apps need to feel snappy and give instant feedback that the device is doing something.
At the moment I think that WP7 is missing a centralized notification area. Yes, you can pin things to the home screen and they can notify you, but I think something like a toast history which would be a summary of all notification in case you missing them.
To get enterprise level acceptance of the devices needs, I think, device level encryption. A mobile device is easily stealable so to be sure that your data is secure whilst on the device I would want to see it encrypted. An interesting addition to WP7 would be full active directory integration. Combined with the ability to plug additional hardware (full sized keyboard), you have something powerful enough to work on and ubiquitous enough to take around with you.
What's the number one feature you love the most in Mango, and what are you looking forward to in Apollo?
As far as the API goes, I am most impressed with using the Motion API to get the devices attitude and rotation. This is a very nice way to get the information without too much work (even if you will have to go back to a maths textbook and work out what a quaternion is and how to use it)!
With the Apollo release I would like to be able to make the launchers better in MegaTile – this would require some API updates to allow us to:
Launch Hubs and items within the hubs - People, Phone, Email, Messaging, Games, Music+Videos, Pictures
Launch First-Party Apps and Settings (these are system things that should be present on all devices): Calendar, Internet Explorer, ringtones+sounds, theme settings
Launch Third-Party Apps
What path(s) led you to develop for Windows Phone?
I come from a .NET background so Windows Phone allows me to reuse many of those skills I already have without having to learn a new programming language or system. We, as a company, wanted to start on a platform where we could try ideas and rapidly prove concepts would actually work successfully. Our .NET background made WP7 a sensible choice.
What's your take on the Windows Phone development process, is it worthwhile?
I like how simple it is for an organization (like ours) to produce and distribute our software. I like the fact that I can go from concept to working v1 very quickly. The flip side of that is that there will become a lot of “me to” apps in the marketplace. What we are trying to do now is to differentiate our apps from the standard black and white “I just used the default styles and templates” apps out there.
The tool set is excellent. VS2010 is well known and after years of using it and its predecessors for years I can set it up the way I like it and can get on quickly with it. Blend is something I have learnt quickly, but it is impressively powerful and allows us to add a high level of finesse and animations quickly.
I think some solid unit testing tools would be a good addition to the development platform. This is mostly because I want to reintroduce my “Cakeable Offence” where if anyone broke the build or test and left the building they had to buy the rest of the team cake. I can’t do this unless there is a visible build server and proper unit testing suite to say when the build is broken.
How does the development process compare to other platforms?
I haven’t developed anything properly for other mobile platforms so can’t really say. We have ported AlbumFlow to Windows RT, to try the process out. I was pleased that WinRT XAML was similar to WP7 XAML (so the XAML was easy to migrate). I did have to rewrite the flow control to compile for WinRT which was a bit harder, but that took less than a week.
Talk to us through MegaTile and what it can provide Windows Phone users?
MegaTile allows the user to customize their home screen. They can use one of their pictures from the Media Library and spread it across multiple secondary tiles (creating a “MegaTile”). Each secondary tile can be assigned an action and pinned to the home screen. The app is limited in the actions that can be assigned to a tile by what actions Microsoft provides in the API. At the moment a user can call a contact, compose an SMS, play a playlist, show a map, take a photo, post a Social Network update, launch a browser, search the web, marketplace or maps.
On the secondary tile you can overlay an icon to say what the action does and you can change the text to make it more meaningful. These are the same icons that are used in the rest of the phone.
The back of the secondary tile can be customized to include your own custom text (use it as a reminder or shopping list) of whatever colour the users wants.
Album Flow is also an interesting concept taking elements from Apple, how did it come to be?
AlbumFlow came out of a brain storming session on what other apps and interfaces could be created to use some of the APIs we had little experience of. We thought it would be good to try to bring the Apple Cover Flow concept to WP7. Initially we tried to use the MetroFlow control from the Coding4Fun toolkit, however mockups did not feel good enough as it does not perform too well with lots of items in the flow. It started as a very simple app that allowed you to play a single track and has progressed from there.
For some reason it has been very popular with the Italians (must be the style!). In the latest version, I like the full screen flow when device is held in landscape mode.
Have you ran into any major issues throughout the development process of published apps?
My major complaints this far have been with the submission process and the AppHub. We have a fair bit of experience with apps that make use of the location services on the phone, yet still it seems a little hit and miss on whether our app meets the testers interpretation of what the certification requirements say. We have had one app that was in the marketplace fine for 6 months and has recently been rejected 4 times saying that the app does not meet the requirements. If you add in it takes 4-5 days to fail submission and a further 4-5 days for the certification team to respond to tickets, it has been about a month we have been trying to get this app republished!
Lack of ability to cancel a submission in progress is frustrating as is being unable to update an app that has been removed from the catalogue. I’d also like to see the ability to create a beta of a later version of an app (e.g. releasing v1.5 as a beta to a few users whilst they are on v1.4).
Not being able to contact reviewers or have a right of reply is also a shame as it isolates us from our marketplace users.
What's planned for the future of your already approved apps?
We aim for a 2 / 3 monthly release cycle for MegaTile and a more frequently monthly cycle for AlbumFlow. The next couple of big features for MegaTile are: showing a picture on the back of the MegaTile (at the moment we only support text) and allowing the image to scaled and panned to fit on to the MegaTile. Users constantly email us with suggestions and they are all logged and reviewed for inclusion in the next release schedules.
AlbumFlow has a whole list of features around allowing playlists and a queuing process. We are thinking about formally porting the app to Windows 8 and allowing the state to be sync’d between devices. There are some improvements to the look and feel we can do around changing the slider sensitivity to make it easier to find the album you are after. More performance enhancements can be made to allow better experience on low spec phones with lots of music.
What other Windows Phone projects are you working on, any that aren't in the Marketplace?
As I mentioned earlier we have some interesting plans incorporating all the cool sounding bits of technology at the moment - we have already demonstrated some key concepts in 3D visualization and using more of the sensors on the device to create immersive augmented reality apps. We also have a separate but connected project looking at the Kinect to capture objects and scenes to feed into the AR environment. Finally we are thinking about other platforms and how to best build an app that does all of the above and works on iOS, Android, WP7, WP8 and Win8. So yes we have grand plans!
What advice would you give to other aspiring developers from your experience?
Ensure you submit the most bug free app you can as the submission process is annoyingly inflexible. Test your app on a proper device to make sure it works in all circumstances: light theme, no network, lock screen during operation etc. Leave the app overnight and retest in the morning before submitting it as you will often find bugs with fresh eyes in the morning.
Stick to the Metro design principals, but start to differentiate your apps: They can still be “metro” without being white text on black background.
If you have state in isolated storage, test the upgrade process for your next release as this consistently causes us problems.
Add small features, implement them well and release often to ensure you keep engaging your users.
Thank you for your time. Any closing words about WP7's future?
I think that Windows Phone is going to stick with us. The tools are excellent, so developers want to use them and create new things. I think that 2012 will be interesting as there will be a lot of people coming off 2-year smartphone contracts and looking around to see what their next phone might be, it’s certainly nice to be seeing Windows Phones “in the wild now” and meeting people who use our apps.
You can find out more about Linknode and their apps on their website.