inspired by an email I wrote to @gadgetman
I used to love Nokia.
Back in the pre symbian days when Motorola and Sony Ericsson (and whoever else was around) would go off and add all kinds of crap to their interfaces…Nokia was the only thing I ever wanted.
Super fast and intuitive – I remember my 8890 was just the bomb. (I think my dad still uses it).
Friends would show me their Ericsson headsets and the interface were just a total mindfuck – four clicks where there should be one etc etc…unusable menu structure, inconsistent button usage.
I even remember a keyguard lock on a motorola phone that required TWO HANDS – what cretin designed that.
But somehow somewhere people pulled in different directions and all these weird handsets started coming out. Sure the phone was an accessory item and so on – I get that – but when I picked up an N95 (first time it came out) and it was sluggish, slow to open screens etc…I couldn’t help but feel a pang of nostalgia for the focussed simplicity and speed of the earlier designs.
I know I know…I’m getting to my point…the ramble is just to set the scene.
When the iphone first came out and I started thinking about new business models (regarding what apple did with the Appstore etc) and Ovi came along of course…and then all you can eat data contracts became more and more pervasive…the wheels started turning.
I know all the GIS were preaching this a long time ago – but suddenly it was true…natch.
Locations would be an extremely interesting space – because it was a serious pain point for most users. They could just about figure out how to use their own location – but there was no easy way of communicating it to other people.
So I start playing with an N78, Blackberry 8820 and 9700, two WinMo phones, an iphone 3G and a G1…I was mostly comparing and contrasting UI experiences because I wanted to feel the user…each platform was a little different – but two things very quickly became obvious (and interesting)
1. Developers can massively enhance your platform – if you make it developer friendly (the iphone is living proof to this) – while we could debate the closed nature of the appstore and its arcane approval process – I’m mostly referring to the SPEED of development here…and the things available to developers in an API
2. There was an odd debranding exercise going on here….for example Google Maps Mobile on both Android phones and Iphones is just called….Maps
This is a very interesting position for a brand to take – on the one hand they might think “oh cool we’re ubiquitous – we don’t even need our brand” but the fact is that also means consumers are not experiencing the brand as much – they’re just experience the functionality.
In other words – when Microsoft brands its experience (on Windows Mobile series 7) Maps – huge amounts of people won’t know or care about the difference
Same thing for Nokia – it no longer matters as much whether it’s Ovi Maps/Nokia Maps or Google Maps – it’s just….Maps
Which brings me to the crux of it…for LBS on Nokia to really take off development-wise there are three key things developers need (I don’t care if they are echoecho, zhiing, wikitude, foursquare or whoever)
(A) Tiling maps as an API callable module
This is a big thing. It’s a waste for every developer to write their own tiling map client (not to mention that they would have to use data from OpenStreetMaps which is great in some places but so great in others)
having this module is (in my opinion) an absolute necessity for the platform because it allows the user experience to be smooth.
if user experience is not smooth – then goodbye users.
(B) Location finding as an API callable module
This one is possibly more important than (A).
Let’s recap for a minute here:
three basic techs for phone location – GPS, Wifi, Cellid (in order of precision)
(there are of course other issues e.g. TTL for cold start GPS, battery usage for continuous polling etc etc (many of which I discuss in some length in other posts on this blog) but in principle that’s it.
This is done on the phone and is accessible to 3rd party developers via API calls (on most platforms – unless of course you happen to be RIM and you create retarded agreements with carriers that allow the carriers to lock out hardware GPS access to developers…but that’s a different story ;))
Both of these require large databases of wifi/cellid data.
These databases are problematic because as a developer you need them to be global, cheap and uptodate.
There are two basic methods of getting this data – you either do it the fast and expensive way (e.g. like google/skyhook and you drive around in vans collecting tons of location data) or the slow way (e.g. like Navizon – where you focus on crowdsourcing to get all the data)
Here’s the current state of play (of smartphone location finding) as I understand it
Iphone – uses skyhook for cellid/wifi (GPS is built into phone) – location accessible via single API call to developers
(user permissions handled in app when app asks to locate your phone…if you answer YES twice – it never asks again for that app)
I’ve heard rumors that Skyhook signed a bad deal with Apple because they wanted the exposure – allowing Apple to cache their data on an ongoing basis. If true this means Skyhook is going to falter if not die entirely in the next 6-9 months.
Android – uses Google databases for cellid/wifi (GPS is built into phone) – location accessible via single API call to developers.
(user permissions handled via two setting entries in control panel -one for GPS, the other for wifi/cellid)
Symbian – has GPS accessible via single API call. In order to use wifi/cellid developers must make separate deal with Skyhook/Navizon or equivalent.
RIM/BlackBerry – GPS sometimes locked out from developers. wifi impossible to access even if present on device due to O/S implementation. Cellid is the only backup option for indoor locating. Skyhook does NOT support cellid only lookups. Navizon does.
Windows Mobile – so far it’s sort of like Symbian – because it has GPS accessible – but for wifi/cellid developers need skyhook/navizon etc…(however with windows mobile series 7 – navizon has an exclusive deal for location provision for all phone winmo devices)
None of these methods require any carrier involvement whatsoever…
Of course one can do cellid triangulation (like is done for E911 stuff – but to do this you do need carrier involvement – for a developer this is a horrible mess…because every carrier does it slightly differently…and they’re also usually a bitch to deal with)
For as long as Symbian remains without an easily addressable location API for finding handsets (that’s easy for users to control – i.e. they pretty much don’t have to control it apart from to turn off GPS if they want) the implementations are very inefficient. Every developer has to include a skyhook library or something like that – and then imagine how much duplication there is on a newer phone.
(C) Push notifications
Last but not least.
You might wonder why we need this. Simple answer – with flat rata data connections to cellphones and App Markets and background running apps – you might think…..nah – we don’t need no stinkin’ push notifications.
It’s nice for an app to make a background check of a connection. Very useful.
It’s NOT NICE for 30 apps to be making a background check of a connection or polling a server all at different times and with different frequencies.
Basically it spells early battery DEATH.
So – this was (as usual) a little longer than intended – but there you go…
I really want Nokia to go back to being as cool in the smartphone space as it is in the feature phone space.
But the old adage of “if you build it they will come” really stands here. Make the phones fast and intuitive…and give us (as developers) these features….your users will thank you in droves.