

Building a location based iPhone App: from idea to my first users - ish_ish
http://missionlab.posterous.com/37126809
A blog post discussing my latest app release and some of the technical and design issues I had while building it.
======
dirtyaura
Great article. His observations of location polling strategies and battery
life are spot on, so if you are interested in location-based services, read
them carefully. When developing Jaiku Mobile (always-on rich presence sharing
with location and other data) we learned same things.

There's actually two strategies that you've to manage: polling of the location
(GPS usage) and sending it to the server (network usage). In 3G, there is a
significant energy consumption cost, when you send small amount of data
regularly to server, because the network stack has to be changed to higher-
energy mode each time you send something over TCP/IP.

Even if you stay in a same location and the location data doesn't changed, you
might need to send the data to server. Why? To indicate freshness of the data,
server has to pinged to indicate that location data is still fresh, even if it
hasn't changed. Indicating data's freshness can be important in tracking
situation (e.g. Geoshare).

~~~
asmosoinio
Did you ever consider using CellID to detect whether location has changed,
before checking more precisely from GPS? Haven't tested it in a real product
myself, but found this strategy in an old Symbian app, and it seemed quite
clever -- especially in a 3G (or 3.5/4/whatever) mobile network cell size
should be small enough that if the user is really moving, the CellID will also
change quite quickly. And energy consumption to poll this is almost 0,
assuming the device is a phone that is connected to the mobile network
anyways.

~~~
dirtyaura
Yes we used Cell ID and that was our main source of location data (GPS-enabled
phones were quite rare back in 2006).

But cell id can change quite a lot even if you stay in the same place,
depending on your signal strength.

Btw. did that old Symbian app happened to be called ContextPhone? It was a
precursor of Jaiku Mobile.

~~~
asmosoinio
Thanks for your response. Was this all on Symbian platform? Does that platform
give you access just to the active cell, or also the neighboring ones? I
wonder if using the full list of neighboring cells could help, that's
available at least via Android API.

Nope, it was not ContextPhone. Something for basic phone tracking.

~~~
dirtyaura
Symbian gave access to the active cell only.

I heard a story that back then this was required by operators, because with
good access to neighbouring cells and their signal strengths, people could
easily build tools to compare networks in different areas and "prove" that one
operator is better than the other. I don't know if the story is true.

You can do very accurate locationing with neighbouring cells and cloud-based
database and some simple Bayesian modelling. Google does something similar
with their non-GPS locationing.

------
stcredzero
I think this is a great idea. I would add one feature: send a 2nd text message
when you're within 1 mile. (Or whatever distance you choose.) My girlfriend
wants me to notify her before I actually get to her apartment. Having my
smartphone do this for me automatically would be awesome! (This way I don't
need to use my phone while I'm driving.)

~~~
ryanpetrich
A text message can't be sent without confirmation from the user on iOS.

~~~
stcredzero
Then a message should be sent to a server that forwards the SMS text.

------
middlegeek
That's a great app. I have wanted something similar for android. It combines
the ease of text messaging without the commitment and participation required
for Latitude or the like.

------
nico_h
Hi ! Very nice idea, I like the app. A few comments :

\- Why the heck is it free ? I would have paid for it !

\- Can you make the web page for your follower display nicely on a computer
web browser ?

\- corollary : could you allow direct sending of emails ? (rather than copy +
switch app + paste)

\- on the web site, you could show screens of the app, not just the client.

Otherwise congratulations, it's quite nice and that would have been the next
app I would have developed if I ever finish my current one;-)

~~~
ish_ish
Thanks for the feedback. I debated heavily between paid and free when I
released it. I went with free initially because I felt I wanted to get a
simple version of the product out there. At some point I might go the freemium
root and offer a paid version with some additional features.

\- Emails are coming along with better formatting for desktop browsers

\- Thanks for feedback on the website!

------
akulkarni
Awesome, well-thought post by a clear veteran.

"With GeoShare I was consistently fighting against myself not to add more
features that I knew would be useful. This was a difficult thing for me to
resist since I myself used the product daily and had a sense what I wished it
could do. But they say if you're not embarrased by your first product then you
waited too long."

'nuf said.

------
prakster
Awesome. You should partner with UberCab: www.uber.com

~~~
ish_ish
That's a great idea I'll email them. I've also thought about approaching
delivery-type services like Dominos.

~~~
hopeless
I wonder if you couldn't white-label the technology and sell it to those types
of businesses. That way they could apply their own branding and incorporate it
into their existing sites.

------
BornInTheUSSR
Congratulations on not only 'shipping' but documenting the process. I've been
working on something technically similar, but with a very different
application. Can't wait to share!

------
jmtame
does anyone know why the default location is cupertino in the ios simulator? i
want to think it's because of speed (why take time to find your location
during each run?), but i'm starting to wonder if it's because the difficulty
in getting an accurate location lock on a wifi network for example.

i've found that detecting geolocation on a non-mobile device such as a laptop
(even using the latest w3c navigator.geolocation standard) is pretty
unreliable. it took me some searching to figure out that the function has an
infinite timeout by default, which makes debugging interesting. sometimes just
doesn't get the location at all. a professor had expressed the same sentiments
in more length here: [http://stackoverflow.com/questions/3397585/navigator-
geoloca...](http://stackoverflow.com/questions/3397585/navigator-geolocation-
getcurrentposition-sometimes-works-sometimes-doesnt)

~~~
andrewljohnson
I'm sure the reasons are just a) they wanted to hard-code a location for the
simulator, since it doesn't have a GPS, and b) Apple is located in Cupertino.

For my GPS-app, we have code to simulate fake GPS readings on the simulator.

------
threepointone
The alert has a "Do it!" button.

Reminded me of :
[http://www.folklore.org/StoryView.py?project=Macintosh&s...](http://www.folklore.org/StoryView.py?project=Macintosh&story=Do_It.txt)

------
nico_h
Another point : it's an interesting developer's perspective, but its lacking
in numbers. Maybe too young for that ? There are no ads on the client nor on
the app, and the app is free. Do you have a monetization plan ?

------
GimmeDaAccess
Isn't this basically Glympse minus the timer element?

[http://gigaom.com/2010/12/17/8-apps-for-the-new-
smartphone-o...](http://gigaom.com/2010/12/17/8-apps-for-the-new-smartphone-
owner/)

~~~
ish_ish
I mentioned that in the blog post under "The competitive scare"

------
elvirs
wait a second, so none of the existing apps do this? is it because they have
not thought of a simple thing like texting location url to a contact or they
tried to lock in new users using twitter, facebook, etc. contact list import
thing?

------
dkihanya
awesome app! very useful for letting someone know where you are if you're
running late for a meeting. Also cool to let friends know you are around if
you're in their town travelling. Nice job!

------
T_S_
Been looking for this. Wonder why that doesn't happen more often.

------
ahparikh
Great details on how to be a great mobile location app.

------
asgupta
Great article.

------
geuis
Let this be a lesson to anyone working on a product. I've been building an app
that does exactly the same thing for the last couple of months. You _have_ to
be first to market.

~~~
ish_ish
Hey -- neither of us is first to market on this one. I found out of others
even as I was building it. I almost gave up but then figured I might as well
go for it. I address this in the post -- the market it young and is ripe for
plenty of products.

~~~
lawrence
glympse? Ish, would like to connect with you. we build geo apps, and work out
of the mission (in the us bank building on 22nd and Mission).

~~~
ish_ish
Sure we can meetup you can contact me at my twitter @ishish or email: ishish
(at) gmail

