Have we got a treat for you! Developers of Rando, the experimental photo exchange platform that lets you send images anonymously to somebody completely random, have provided you with an exclusive insight into the thought process behind developing Rando on the Windows Phone platform and how they went about it. Enjoy!
I’ve been working with development for 6 years, starting with game development for PC and console and for the past years focusing on mobile app development. I worked with Symbian, UIQ, Motorola, and Sony Ericsson, then continued with development for iOS and Android. I’m now exploring the new and upcoming Windows Phone.
Rando WP8 – Not just a port
It’s been over three months since we initially launched Rando on iOS. A couple of weeks later we followed up by launching on Android. Since then we’ve seen over 350k downloads on both platforms with over 8.4 million randos shared through the application.
We’ve quite literally been blown away by the success of Rando, so to keep the journey going, the next step was to launch Rando on Windows Phone, which was much more than porting an existing app.
Shift your mindset
We went back to the drawing board and approached the project with fresh eyes in order to give users the best experience possible. Simply porting from one platform to another wouldn’t have been the best way forward, as we really wanted to make the most of the interactions for Windows Phone 8.
An example of this was the pull to refresh feature seen in the first version on iOS 6, and as it was part of the native UIKit framework, it initially made sense to use it. However there’s no native support for Windows Phone 8, so we thought about it differently and made a quick implementation where we forced a newly-received rando to be added straight into your timeline, instead of having to interact directly to get your next rando.
We then produced an internal release and gave handsets to different people in the studio for user testing. The feedback we got was amazing, so much so that in the end, it turned out that the new interaction we tested got implemented both on iOS and Android (in a forthcoming update).
Look around you
In this particular instance we started development on a platform that was pretty much new to us, so we had a good look around before we started.
Top tip is if you’ve already got an app out there on one platform then get access to that code if possible. The aim is to keep native behaviours and not to rewrite the logic. By looking at the code for other platforms it means you don’t need to re-invent the wheel.
Following on from this, is there a library you can use? Is there an open source component you can use? A lot of the time you are free to use what other passionate people have created and released as open source or by using another license. A great place for this type of information is NuGet - it has a lot of different libraries and packages, which are all free to use.
Our thinking was there’s no reason to create something from scratch that someone else has already done and more importantly at already such an impressively high standard. For us, it made sense and made things a whole lot easier.
Define a feature set
Always make sure you define a feature set before starting the development process on another platform. Make sure you keep focused and stick to the feature set – don’t change it. Once you have a feature ready, release it to your team and test it together. Really ask yourselves if there’s anything you can change or anything that would make the whole experience better. Then make those changes.
Try new things together
Try to find new ways to do things and try to learn as you go. For example we decided to use as few assets as possible. It’s too easy to fall into the trap of spending an entire day scaling existing assets, but that’s not a fun experience for anyone. So what we did was to sit down and create our UI components “by hand” in code using Expression Blend.
Expression Blend for Windows Phone is a great tool. It is like pair programming with your designer. You sit at one computer and draw your components and the tools will generate the XML for you. Another benefit is that you only have to create your components once. It will automatically scale with all screen sizes and resolutions. No more scaling assets for 3 or 4 different sizes and resolutions.
Using Expression Blend will also help you get instant feedback on any changes you make. You build and run it on a device straight from the tool for you all to have a look at while developing. It lets you get an immediate feel for the app. Maybe there’s an interaction that needs changing? Maybe there’s a UI component that doesn’t fit with the current design? By catching these issues early and making adaptations you are one step closer to making the whole experience better.
By using the tools provided by Microsoft and following some of the tips we’ve included here, it’s much easier to create an experience that ultimately falls inline with the design principles of Windows Phone:
• Pride in craftmanship
• More with less
• Fast and fluid
• Authentically digital
• Win as one