welcome to the lastminute.com labs blog

news and views from the lastminute.com labs.

The Design of topsee: from treemaps to casinos to balloons

November 23rd, 2009 by lastminutelabs

The experience of using our topsee app starts with a view of photos appearing over a black textured background, each one showing a nearby thing to eat or drink, see, do or buy.  The photos can be rearranged with touch gestures, and they’ll gradually resize, move and adapt to their new configuration as they’re moved.  But this wasn’t the design we started out with.  How did we get there?

1. Treemaps

newsmap

newsmap

Map of the Market

Map of the Market

Voronoi Treemaps (Michael Balzer)

Voronoi Treemaps (Michael Balzer)

jinni search results for "spy thriller"

jinni search results for "spy thriller"

State of Play poster

State of Play poster

The initial concept was inspired by a great article on squared rectangles by Chris Noessel in the Cooper Journal, showing the increasingly common technique of packing rectangles of content into a larger rectangle (the browser window or mobile screen), usually known as treemap visualisations (originating in Ben Shneiderman’s group at the University of Maryland Human-Computer Interaction Lab in 1991).  Some of the better known real-world examples of this technique are the SmartMoney Map of the Market and Marcos Weskamp’s newsmap Google News visualisation.  There’s a beautiful diversion here for those with a bit of time to kill into the world of Voronoi treemaps, where you end up with polygons rather than rectangles.  And for those of a theoretical persuasion there’s also the underlying mathematics of  doing this when you have a number of squares of differing sizes .  We’ve also noticed treemaps as a graphical style cropping up – for instance the results from the jinni movie and TV search where each photo has the same aspect ratio but they leave white space around so they don’t end up fully packing a rectangle – or the State of Play movie poster.  So our plan was to show photos of your nearby top items in this sort of grid, with larger photos for the closer items.

2. Casinos

The nearby options are on different sides of a shakeable dice

The nearby options are on different sides of a shakeable dice

Spin the wheel to see what comes up!

Spin the wheel to see what comes up!

See nearby things floating down from the top of the screen, snowglobe-style

See nearby things floating down from the top of the screen, snowglobe-style

Having got this initial concept, we then embarked on a creative spree to see what else we could come up with.  The inherent randomness of the process, not knowing what kinds of things could be nearby, the fun of discovering the unknown drove some of the ideas, and many of them included an interactive element.  I’ve titled this section “casinos” as there was a definite inspiration from games of chance as you’ll see from the pictures.  But in the end, although we loved the idea of the dice you can shake to decide what to do, the resulting display would have the photos too tiny to see any meaningful detail.  Incidentally if you want to see shakeable dice in action on an iPhone – there’s an app for that.

3. Balloons

Nearby things as floating images that can be rearranged

Nearby things as floating images that can be rearranged

The concept we finally chose was the idea of floating photos, combining elements of the dynamic and random nature of the casino-inspired ideas, with a more space-filling layout as used by the treemaps, so that each photo would be larger.  So the next question was, was it actually possible to implement a pleasing interface on an iPhone where photos could be moved around the screen, and would form themselves into nice tessellations?

Internally, we’ve modeled each photo as if it were a rectangular balloon; it’s always trying to get bigger but contact with another balloon causes it to get pushed out of the way. Holding your finger down on a photo is like blowing the balloon up a bit more and you can drag the balloons about to rearrange them.

topsee is the most user tested app the labs team have done; each stage through the UI design process has been tested and tweaked based on the responses our testers gave. We noticed that as the testers were giving us their feedback, instead of looking at us they were staring at the app and just trying to move the pictures around; they weren’t trying to do anything specific, they were just playing! This instantly changed our focus from making the app as functional as possible to making it as fun as we could. Interestingly, there were two main games that they played; they would either move all the pictures as fast as possible to the bottom of the screen so it looked empty or they would try to get all the photos in the very center of the screen. Either way, they managed to turn the UI into a game!

We spent a good few weeks just tweaking the system, adding slight refinements and adding extra features, each one adding a tiny amount to the finished look and feel. For example we have added very slight accelerometer forces to the photos; if you tilt the phone, the photos fall down very slowly. Another example is multi-touch support, it adds nothing to the functionality but makes the app ever so much more pleasing to just play with!

We also played with the number of photos that we could display at any one time. We wanted the most photos that we could to keep the app interesting while also making them look large enough to be enticing and have them settle down into a pleasing layout; after a day of testing, we found that the optimal number was 9.

With keeping the user entertained in mind, we decided that we didn’t want any buttons on the main screen at all; we wanted it the user to have to start playing with the photos to see what happened; unfortunately buttons are really useful and we have to do a bit of thinking to get the functionality we would need using gestures alone! The most difficult problem to solve was how to get the user to look at more than the first 9 photos – there are three ways that we have solved this. Firstly, if the user wants to remove a single photo, it can be dragged to the edge of the screen and it gets replaced with a new one. Secondly, a vigorous shake of the app will replace all 9 of the photos. Finally, the most subtle of all. Instead of just showing the 9 nearest items each time, we very slightly shuffle the order of the photos to display; you won’t get the nearest 9, you will get a random 9 from the nearest 11 or 12. This adds a slight bit of variety to the UI that helps to influence the user into trying to find more photos to see.

In a later post we’ll explain some more about the rest of our design process, particularly working with our partners ustwo, the many variations of the subsequent screens, and the work involved getting our social networking integrations working nicely.

top 3 from the CaT Creativity and Technology conference

November 20th, 2009 by Marko Balabanovic

Yesterday the Saatchi Gallery in London hosted the Creativity and Technology (CaT) conference, with a variety of folks across creative and technical fields but concentrated very much on the world advertising agencies.  For those of us in the world of internet companies it is very jarring to hear about the class of people these agencies call “the creatives”.  To have a debate about whether people versed in technology can also be involved in creative processes seems positively archaic. Nevertheless, luckily, the consensus was that the successful agencies had managed to merge these two departments or at least get them to talk occasionally.  All very alien to those of us who assume each team member has a range of skills across creative disciplines and areas of technology!

Speaking of agencies, one of the interesting trends emerging is agencies releasing their own products.  Who needs a client when you have the wherewithal within your own four walls to create a successful internet property or mobile game?  Either for profit or self-promotion, it could be that as the skillsets required to create a killer mobile app start to merge into game design and video production, these agencies will be hotspots of the required talent.  Framestore showed their zombification iPhone app at the conference, and some more great examples are ustwo, with their range of entertaining iPhone apps such as MouthOff, and Ribot with LittleSpender.  Of course the flipside of this is – if agencies are used to dealing with fixed-term campaigns, how do they deal with the reality of ongoing sites and communities, and do they want to?

Apart from my presentation of the thinking behind our new topsee app (download it to your iPhone now if you haven’t already!), a lot of the day was spent seeing a succession of showreels and examples of work from the last year, and here are my own top three:

The video for DJ Hero from Framestore was staggering for an in-game intro – a cool $½M reportedly spent on this beast – check it out if only for the scale of the undertaking.

The lastminute.com London office in Monopoly City Streets

The lastminute.com London office in Monopoly City Streets

Monopoly City Streets.  Now I’d vaguely heard of this but hadn’t really tried it out.  This seemingly straightforward idea – buy virtual skyscrapers and houses on real streets using a Google Maps overlay – obviously hit a nerve and took off in a huge way.  My top stat – 5 billion page views a month.  The virtual world is full of buildings.  And the most staggering part of the presentation?  They’re planning to turn it off, as the campaign is drawing to a close.

Natural Fuse plants

Natural Fuse plants

My final pick is Natural Fuse, from Usman Haque, who presented a thought-provoking session looking at the architecture of extreme connectivity.  The genius idea here is to make visible the normally invisible and distant notion of carbon offsetting.  Each plant in the scheme has an associated power point, from which you can draw only as much power as can be offset by that very plant.  However, given that this is not enough power for even the most undemanding low-energy light, the plants are networked together so that you can draw upon the resources of your neighbouring plants when their owner isn’t.  Of course we’re talking about neighbours in the network here, not geographically.  You’re then faced with a choice – your plug can either be Off, Selfless or Selfish.  In the Selfless case you use only as much power as the plant is offsetting.  However in the Selfish case you take as much power as you need, but a neighbouring plant dies (they get three lives), and your neighbours are informed who was responsible.  So in case of dire emergency, you can draw more than your fair share, but you’ll soon find yourself disconnected from the network if you keep up that selfish behaviour, thus avoiding that well known economic pitfall the tragedy of the networked carbon-offsetting houseplants.

Look for further commentary on the conference by searching for the #crcat tag.

topsee london launches today – download it on the iPhone app store

November 17th, 2009 by lastminutelabs
Central London's finest churros and hot chocolate from tikichris - at Oliver Peyton's Espresso on Euston Road - just the thing for a sunny cold winter's day

Central London's finest churros and hot chocolate from tikichris - at Oliver Peyton's Espresso Bar on Euston Road - just the thing for a sunny cold winter's day

A quick newsflash – the topsee london app is now live and available for free on the iPhone app store, worldwide.  Please search for “topsee” and download it from your iPhone or iPod Touch, or click below.  There are more top things in there every day, so check out some of our newest ones: central London’s top snuff shop, ice climbing wall (yes there is one!), indoor golf, mens undies, cocktail shakers, cinammon buns and calamari.

Hopping platforms: A response to the MEX manifesto

November 16th, 2009 by Marko Balabanovic
Marek Pawlowski at MEX 2009

Marek Pawlowski at MEX 2009

Every year Marek Pawlowski, organiser of the excellent MEX conference, sets out a manifesto as a theme for the event.  The 2009 manifesto is a discussion of the multiple channels (or platforms as he’s started to call them) in people’s lives.  Marek has invited comment on the following question:

“During the course of an average day, users consume digital bitstreams through a wide range of channels, from television and in-car music to mobile phones and desktop PCs. What factors cause them to transition between the various platforms and what opportunities exist to enrich the actual experience of transition?”

Here’s some thoughts on that question.

Let’s consider three examples.  The first is communication.  I am communicating with a friend.  The closer the friend, it has been shown, the more channels I’ll have available.  So a distant friend or colleague may be purely email or just face to face.  A close friend you contact via email and text and facebook and in person and by phone and mobile and everything.  The choice of channels is a choice of social etiquette – how urgent is it, should I disturb them, do I need to contact several people at once, and so on.  The transitions between channels are similarly based on social movements and awareness of context.  We started arranging our evening via facebook, but now it is an hour to go we’re texting.  In this case the major effort of the transition is the availability of contact information – do I have the right mobile number stored in the right phone – can I remember your twitter ID?

The second example is media – for instance listening to music.  Here I am going to hark back to some of the original thinking about what was once called ubiquitous computing.  One of the pioneers of this field, Mark Weiser of Xerox PARC, declared his vision of invisibility: “A good tool is an invisible tool. By invisible, I mean that the tool does not intrude on your consciousness; you focus on the task, not the tool.”  (from The World is not a Desktop, 1994).  This has often been equated with the idea of seamlessness – many technologies working together for a seamless whole system. However, as Chalmers and McColl argue, Weiser was actually a proponent of seamfulness, maintaining the unique characteristics of each tool while making the transitions work well (beautiful seams).  What do these ideas of seamlessness and seamfulness mean in our music example?

At one extreme I dislike the seams between channels and want everything available from everywhere, all my music from every device, powered by a complex and impenetrable system of synchronisations, networks and magic.  It is all beautiful until it breaks.  Once it breaks, like any complex piece of machinery, you need to call out an expert.  Unfortunately for this domain the experts are not in the Yellow Pages as yet!  At the other extreme I am happy with the seams, and happy to transport my media around and deal with the transitions.  I burn a CD to play in the car.  My kid’s MP3 player has different songs on it than mine (thank God), and my phone has none.  It’s not perfect but it is perfectly understandable.

The first two examples deal with peoples’ personal data, their own stuff.  It is my job to work out how to synchronise my contacts between my devices, or play my music in different places.  You can try to sell me something to make it easier, but it had better be good!  The third example I will give, however, is different.  The third example is ecommerce services, such as our own site lastminute.com.  In this case it isn’t personal data, it is offers and deals and inventory and recommendations.  In this case it is lastminute.com’s responsibility to work out how and what to make available across platforms, not the customer’s.  And because we’re not dealing with personal data you own and want to move between devices in your world, we don’t really have quite the same problems of synchronisation.

At the moment you’re used to accessing us via a web browser from your laptop or deskop.  We’ve been doing that for over 10 years so we have a pretty good idea of the kind of experience people expect from us.  There’s a stable “dominant design” for a travel web site; the market is fairly mature.  But what kind of experience do you want from an iPhone, or a car satnav, or when you exchange tweets with @lastminute_com?  The needs of today’s mobile customers are the focus of our innovation group at the moment.  We mean mobile physically as you move between different places or rooms as well as mobile virtually as you go from Facebook to email to a web site to Youtube on the internet.

Our finding so far is that people expect a mobile device to be very aware of context – where am I, what time of day or day of the week is it, who are my friends, what do I like.  This expectation of a qualitatively more relevant and personalised experience, as soon as people become used to it, will immediately reflect back on today’s one-size-fits-all web sites, that will in turn need to adapt more radically.  So our theory is that not only will the experience of one service (such as lastminute.com) need to adapt to your context in the mobile channels, but that it will have to adapt to information from your other services (your last.fm profile, your twitter feed, and so on).  As we all start getting used to piping our activity streams around between applications, this will naturally begin to blur the seams between what today are very separate channels – they’ll all have access to the same data and the same services.  There will always be a choice of which device a customer wants to use at any given time – the small one, the bigger screen, the one with the longer battery life, the one with the speakers, the closest one – but each will be its own window onto a central set of information and services, with its own unique interaction and capabilities and sensors.  It will be a seamful world of devices with specific capabilities, acting as a window onto a seamless world of services and information.

You can read further discussion on this and related topics at the MEX blog.

some great examples of mobile travel technology

November 13th, 2009 by Marko Balabanovic
Entering the World Travel Market by SoMaFusion

Entering the World Travel Market by SoMaFusion

This week the vast World Travel Market has been on at the ExCeL centre: a fascinating gathering of the travel business from around the world, with every country and major city represented as a tourist destination.  Right at the back of one of the cavernous halls, up the back stairs, there is a long anonymous corridor, and off there is a room used for the much smaller but more interesting Travel Technology Summit, organised by EyeForTravel.  As they used our lastminute.com mobile services as a case study recently, we were there to explain what we were up to.

My presentation followed the ideas in the case study, namely the 4 reasons we chose to reinvest in mobile in 2008:

  1. Availability of unlimited data rates
  2. Better browsers, now perfectly capable when necessary of dealing with desktop web pages
  3. Better screens, allowing a richer experience, particularly with the release this year of phones such as the Droid with its 854×480 resolution
  4. Easier location-sensing, with the availability of APIs via the iPhone or from Google or Skyhook, allowing a combination of GPS, cell or wifi positioning to allow reasonably fast and accurate location-sensing indoors and out, roaming or not.

When we looked at the market we decided to focus on 3 areas:

  1. Helpful services for travellers once they’ve made a booking, such as flight gate or delay information.  Within the Sabre group there’s a team in Dallas working on this area and I’d urge you to try out their TripCase application.
  2. Bookings of lastminute.com products, that work on the go.  Here we’ve started with restaurant bookings, as the simplest to book product from our portfolio, and one that is very useful when you’re out and about.  Our fonefood mobile restaurant deals and booking service launched in 2008.
  3. Recommendations of great things to do in cities.  This thread started with our exploration of augmented reality interfaces with our nru application, that launched in January this year.  Since then we’ve been researching how to give people great deals nearby and great ideas of things to do, hence our upcoming launches of snaffle and topsee.
Lufthansa mobile site

Lufthansa mobile site

Our two mobile co-presenters, Stefanie Heucke from Lufthansa and Chris LaRose from Hilton, both had fascinating presentations, and I would recommend their services as great examples of mobile travel technology.  Lufthansa have been pushing the ideas of mobile check-in and mobile boarding passes for many years, and in the last couple of years these services have really taken off, with a growth of 11% per month (they’re now issuing 120000 mobile boarding passes a month, and get 2M mobile page views a month).  Their online check-in is now up to 40% mobile vs. 60% desktop web.  An interesting discovery they made around the sales side is that their mobile customers are not just after the last minute deals; they are looking for great prices primarily, and allowing a sort by price option on their mobile site doubled their sales a week after it launched.  Reflecting our own experience, they’ve seen the majority of their traffic from iPhones, followed in their case by Blackberry (presumably the business travellers), whereas for us the number 2 spot is Nokia’s.  Hilton have also seen massive growth recently, with a year on year improvement of 200-400%.  For every $1 invested they have seen a $44 return in 2009.  Great numbers for anyone thinking of investing in mobile travel technology!

The voices of pronto are now live

November 10th, 2009 by Christophe Bruchansky

pronto-winners

Congratulations to Karen and Julie who won the Galaxy radio competition to become the voices of pronto. Karen is representing Birmingham and Julie speaks for Manchester, you can hear both their voices on pronto.lastminute.com. We hope they will enjoy their luxury retreat at the Crewe Hall hotel in Cheshire and at the Belfry in Sutton Coldfield!

So, do you agree with Matthew Connaughton who describes on his blog the Manc, Brummie, Geordie, Glaswegian, Scouse and Bristolian accents on pronto as “gimmicky, yet useful”? Is there a difference between saying “Howay man! Aa’d leik te gan bi plane te Barcelona” and “I’d like a flight to Barcelona”? Let us know!

Last time I visited Birmingham was in 2005. Here was my picture of the very nice Ikon gallery.
Last time I visited Birmingham was in 2005. Here was my picture of the very nice Ikon gallery.

How we built topsee – the technical details – an intro movie

November 5th, 2009 by Sam Dean

This is the second post in our technical series about topsee. If you’re not interested in iPhone development, feel free to skip this post, I promise we won’t be offended!

One of the interesting things in working with ustwo™ is they are far more design oriented than we are; it’s one of the reasons we chose to work with them! This also means that they will give us designs that take us out of our comfort zone, which can only be a good thing.

The design for topsee includes a rather snazzy intro movie – it’s going to play while we are loading the views and finding your location. Easy peasy we thought, the iPhone plays movies, we have a movie, what can possibly go wrong?

OK, first things first, lets do a bit of research about playing a movie on the iPhone. A little bit of Googling tells me that I’m going to be working with the MPMoviePlayerController which looks pretty simple, there’s just three interesting methods, init, play and stop.

I take my movie and I create a simple test application (you can get this from github if you’re interested). I use the least amount of code possible just to make sure that it all works.

1
2
3
4
5
6
7
8
9
- (void)applicationDidFinishLaunching:(UIApplication *)application {    
 
    // Override point for customization after application launch
    [window makeKeyAndVisible];
 
    // Play the intro movie
    MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"intro_animation" ofType:@"mov"]]];
    [moviePlayer play];
}

Well, it does technically work but the status bar is visible, the movie plays sideways, the controls appear if it’s touched, it doesn’t loop, it’s got an ugly blank flicker at the start and I’m pretty sure that I’m going to be leaking memory as I’m not releasing the moviePlayer object. Wow, six bugs in two lines of code – not a personal record but it’s getting close!

OK, taking these bugs one at a time, lets fix the sideways problem. It turns out that the iPhone can only play movies in landscape mode. However, you can rotate the ui back to portrait as soon as you start playing the movie and if you make your movie rotated 90° the other way, the user will never notice! If that sounds ridiculous, I agree – why we can’t we just play a movie in portrait to begin with? You’ll have to ask apple!

While I’m here, we can fix the status bar problem as well. My app delegate now looks like this :

1
2
3
4
5
6
7
8
9
10
11
12
13
- (void)applicationDidFinishLaunching:(UIApplication *)application {    
 
    // Override point for customization after application launch
    [window makeKeyAndVisible];
 
    // Play the intro movie
    MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"intro_animation" ofType:@"mov"]]];
    [moviePlayer play];
 
    // Keep the ui rotated correctly
    [[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];
    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait animated:NO];
}

It turns out that removing the controls is fairly trivial as well, we just add the following line just before we play the movie.

1
    moviePlayer.movieControlMode = MPMovieControlModeHidden;

The remaining three bugs are going to require a bit more work to fix so I’ve tagged where we are so far in our github project.

In the documentation, our moviePlayer object is going to fire off some notifications that will help us understand what’s going on. Reading up on these sheds some light on the flicker that we get before the movie starts to play. When our moviePlayer starts, it loads and prepares the movie before starting to play. It’s this pause that’s causing our flicker – the Default.png has vanished because the app has started but the movie is still pre-loading so can’t display anything yet.

Luckily, we can fix this with a bit of trickery. Before we start to play the movie, we can load Default.png as a background image for our window. As long as we make sure that Default.png is the same as the first frame of the movie, the user will never notice the difference! This is very simply done by changing our app delegate slightly so it looks like:

1
2
3
4
    // Override point for customization after application launch
    movieFirstFrame = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]];
    [window addSubview:movieFirstFrame];
    [window makeKeyAndVisible];

and setting the background color of our movie player to clear like so:

    moviePlayer.backgroundColor = [UIColor clearColor];

So, the final bug is to make the movie loop properly. We can use the MPMoviePlayerPlaybackDidFinishNotification and restart the movie each time that it finishes in this method:

1
2
3
4
5
6
7
8
// When the playback finishes, loop the movie
- (void) moviePlayBackDidFinish:(NSNotification*)notification {
    MPMoviePlayerController *moviePlayer = (MPMoviePlayerController *)notification.object;
    moviePlayer.initialPlaybackTime = 0.0f;
    [moviePlayer play];
    [[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];
    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait animated:NO];
}

and listening for notifications in the applicationDidFinishLaunching: method like so:

1
2
3
4
5
    // Listen to the movie's notifications
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayBackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:moviePlayer];

You know what, we’re almost almost there, only the memory leak to fix. Luckily, I think that the memory leak will fix itself in the future – as I know that I don’t want to be releasing the moviePlayer until I have finished with it, I’m going to release it when I have finished setting up my app and want to stop the movie. As this is an example, instead of actually doing any setup work, I’m just going to start a timer to pretend that it’s doing something; I’m going to pretend that in 15 seconds time I have finished:

1
    [NSTimer scheduledTimerWithTimeInterval:15.0 target:self selector:@selector(startupComplete:) userInfo:nil repeats:NO];

This will schedule a call to startupComplete: after 15 seconds so we’d better have a method in place. This method has to stop the moviePlayer, release it and remove the first frame image:

1
2
3
4
5
6
7
8
9
10
11
12
13
- (void) startupComplete:(NSTimer *)timer {
 
    // Stop listening to the movie player
    [[NSNotificationCenter defaultCenter] removeObserver:self
    name:MPMoviePlayerPlaybackDidFinishNotification
    object:moviePlayer];
    [moviePlayer stop];
    [moviePlayer release];
    moviePlayer = nil;
 
    // Remove the first frame image and reveal the ui
    [movieFirstFrame removeFromSuperview];
}

That’s it! We now have a startup movie that will play and loop until the app has finished doing whatever it needs to startup. In the case of topsee, this was using CLLocationManager to find our location and get the top things nearby but it could be anything at all. User tests that we’ve done show that before we added the startup movie, users were bored with the startup time; after we added the movie, users were more than happy with the time the app took to start as long as they could watch a pretty picture!

You can get the finished project from github – please download it and try it out for yourselves; throw breakpoints in, play with the code etc. If you have any feedback, it’s more than welcome; just add a comment below.

Next time, we’ll look at getting the app to work in the underground with no internet connection – that means CoreData and NSThread.

Sam

How we built topsee – the technical details

November 4th, 2009 by Sam Dean

Hello everyone,

Here in the labs team we’ve just finished our biggest iPhone app to date; topsee. If you’ve not heard about this yet, you can read all about it on our topsee page.

topsee has taken us three months to write and has involved every member of our team at some point, along with some help from our friends at ustwo™.It’s been a very steep learning curve for us in the world of iPhone development and we’ve come away with a few new tips and tricks up our sleeves.

Something that we’ve not done before on this blog is talked about how our apps actually work behind the scenes. I’m a big believer in sharing knowledge (for example, I’m a member of stack overflow) and so I’m planning a few blog posts that will fix this. Watch out though, they’re going to be technical (I am, after all, a massive geek). I’m going to delve into objective-c, cocoa touch and multi-threading amongst other things so these posts are definitely not going to be for everyone. (I’m going to put a warning at the top of each post so if you’re not interested, I won’t be offended if you just skip by!)

The topics that I’m going to cover are all issues that we’ve had to overcome while developing topsee; here are the first topics that I can think of but more might get added to this list as we go on :

  • Playing an intro movie while your app starts up
  • The sliding photos – how we decided on that ui and what makes them slide
  • How we get data into the app in the background and how we made it work without an internet connection

I’ve created a public github project for these posts. I’m going to use this so you can see how we’ve done things and have a play around yourselves. The labs team uses git and github exclusively for all of our projects. We’ve found it to be invaluable (and awesome)!

See you soon for the next post – how we did the intro movie.

Sam

EDIT : Added github project link

Bottle-rock-ing all over the world!

November 2nd, 2009 by Richard Lewis Jones
LJ Rich tries out Bottle-Rock-It.

LJ Rich tries out Bottle-Rock-It.

A month or so back, the labs team visited Over The Air, where we came up with an almost-successful iPhone hack which we called Bottle-Rock-it (it’s a kind of multi-player rhythm-action game with bottles rather than the more usual guitars). The BBC Click team were at the event, and we were collared by roving reporter LJ Rich to explain how our little app worked. LJ has perfect pitch, apparently, so listening to the racket coming out of our collection of iPhones must have been particularly painful.

If you’re in the UK, you can see the whole show on iPlayer until November 9th, otherwise, clips are available on the  Click website. BBC News also has a story.

A top gathering

October 30th, 2009 by Russ Anderson

Wednesday night we got together with the bloggers who have been writing for our upcoming app topsee and a couple of guys from ustwo™

Victor plays with topsee

Victor plays with topsee

Although we’ve collectively been writing articles and putting the app together for quite some time, it was the first time we’ve all got together as a group. It was a relief for us in the development team to see that the app, which the rest of the guys had never seen in its current state, went down very well. As developers we were always hoping to create a platform on which contributors would be pleased to see their creations, and I’d like to think that we’ve done a pretty good job on that front.

London's top olives

London's top olives

We met up in the Prince Regent as it was one of the first featured locations in the early versions of topsee, due to the fact that it serves the most outstanding gordal olives. Sweet and meaty, they’re definitely worth a detour to try.

There are a few photos of the evening up in my picasa gallery