Developing location-based applications

Drew CrawfordNews

Writing location-based mobile apps is an enormous growth area right now.  As one of Austin’s leading iPhone development companies, we are seeing more proposals for location-based applications than ever before.  From location-aware games and “foursquare-like” social applications to hardcore land surveying, fleet-tracking, applications, to location-aware audio tours or custom traditional tour or routing applications, location technology is here to stay.

If you want to develop software that takes advantage of the iPhone, iPad, or iPod Touch’s location features, there are many factors to consider when designing and planning your application.

Proximity-based searches

Google Maps and Yelp both return local results, allowing you to search a world-wide database returning only local items.  This is a very common requirement for location-based applications: social applications may want to display a list of nearby users, mapping or tracking applications may want to display a few nearby items.  Although Google and Yelp make it look easy, in reality this is an incredibly difficult problem.  It only gets more difficult when you have thousands, millions, or tens of millions of potential search results in a database.

Many contractors who haven’t worked with proximity-based searching before use a naive approach that gets exponentially slower and slower as new users download your app!  But at DrewCrawfordApps, we’re the leading experts in implementing proximity searching on iOS, with algorithms that scale into the millions of users.  Since we believe strongly that location-aware applications are the future, we’ve invested years of development into our proprietary location technology, which can accurately find nearby users or items from databases of millions in milliseconds.

And unlike Google or Yelp’s algorithms, which are designed for fixed points (i.e. brick-and-mortar buildings) that don’t move or are always available, our software stack is built from the ground up to handle fast-moving mobile devices that change position rapidly and lose network connectivity that cause “cache churn” on other systems.

In short, if you need proximity search, you need us working on your project.

Battery life considerations

The GPS chip is one of the most power-hungry components in an iPhone, and can completely drain the battery in less than two hours.  Particularly if you’re using background location services, a method of continuing to collect location information in the background, it’s important to design algorithms that can give you the location information you need while having a minimal impact to users’ battery life.  Background location looks easy to implement, until your iPhone overheats and shuts off after running for an hour.

At DrewCrawfordApps, we’ve developed complex code to dial-up and dial-down power consumption of location hardware to provide acceptable tradeoffs for short-term and long-term location services to meet many particular usage scenarios.  We take advantage of special power-saving modes on newer devices, while falling back gracefully on older ones.  We’ve done extensive battery life testing and we know the limitations of the hardware inside and out.  We are even able to remotely scale up and scale down location hardware in response to external events (turning up accuracy in response to another user in close proximity, for example).

Geoprocessing

For professional mapping applications, accurate geographical calculations are critical.  In addition to the original geographical area calculation algorithms on display in the CrowdSize and uScaleit+ consumer applications, we’ve developed professional-grade 2D and 3D geographical systems for computing area, perimeter, volume, surface area, and many more.  Our extensive experience, not only in iOS software development, but in mathematics and theoretical computer science, gives us a wealth of resources to solve even the most complex engineering problems.

We’ve also developed applications utilizing the ESRI ArcGIS geographic server system for performing even more complex, enterprise-grade, networked calculations.  ArcGIS is an extremely powerful (but extremely complex) geographic information system which can be extended to perform just about any type of computation in the palm of your hand.

Even basic calculations, such as triggering an event when an iPhone is within a certain distance of a landmark, are problematic if performed incorrectly.  Since our ellipsoidal world is a non-euclidian space, most distance approaches will not work.  Even the distance calculations performed by iOS use a spherical underlying model, which can have an error of 10km or more.  Our geospatial distance formulas can return values accurate to the centimeter in milliseconds.  This is the level of technical expertise you need for your location-based mobile app to be successful.

Background Location

Our background location experience lets us process locally, and even remotely, location change events with a minimal impact to battery life.  We can report location changes to your backend servers or even build a system for you that lets you view and track devices as they move across the globe.  Other uses include tour applications, audio tour applications, and other applications designed for museums, theme parks, art exhibits, or amusement parks.

External hardware

When the on-device GPS isn’t accurate enough, we have experience integrating with external GPS units for increased accuracy to perform specialized location tracking.  External hardware can sharply reduce the variance in GPS readings and can help eliminate error and provide for faster location locking.

Location-based app development

If you’re searching for a developer for your location-based application, look no further.  We believe strongly that GPS-powered software is the future for mobile application development, and our huge investment in proprietary location technology reflects our commitment to location-aware applications.  Our advanced technology makes us among the world’s leading experts in iOS location-based software, representing a breadth and depth of experience that cannot be matched by multiplatform or “generalist” development shops.  Contact us today to learn about how we can leverage our extensive experience for your iPhone or iPad app.