Cocoanetics » GeoCorderhttp://www.cocoanetics.com
Our DNA is written in Objective-CTue, 03 Mar 2015 16:50:42 +0000en-UShourly1http://wordpress.org/?v=4.1.1GeoCorder 1.3.3http://www.cocoanetics.com/2012/08/geocorder-1-3-3/
http://www.cocoanetics.com/2012/08/geocorder-1-3-3/#commentsTue, 07 Aug 2012 09:13:42 +0000http://www.cocoanetics.com/?p=6781GeoCorder was having a problem that only became apparent if used over longer durations. Also it was quite elusive so we needed to open a technical support ticket with Apple to get help in finding it. And so we did, or more precisely: they found it and we fixed it.

Changes

FIXED: Crash when recording for a long duration

FIXED: Various stability improvements

Updates for both the free and the paid versions have been submitted to Apple.

Changes

This update, like the one before it, goes out for the paid version of GeoCorder first. If the issues are resolved once this comes into the store then we’ll update the ad-sponsored version, too.

Update Feb 11th: The update has been approved.

]]>http://www.cocoanetics.com/2012/02/geocorder-1-3-2/feed/0GeoCorder 1.3http://www.cocoanetics.com/2011/01/geocorder-1-3/
http://www.cocoanetics.com/2011/01/geocorder-1-3/#commentsFri, 07 Jan 2011 05:53:37 +0000http://www.cocoanetics.com/?p=4577GeoCorder started out as a pure track recorder but since version 1.2 it also became a great position tracker, provided that you had your own server to receive the position updates.

Changes

Update Jan 7th: The update is now available for download from the app store.

These changes made it necessary to completely revamp the tracking screen. Each individual service is now shown with a traffic light indicating the last update status. Red means error, Yellow in progress and Green ok.

The Update Interval is now set globally for all enabled service. You can switch services on and off on the “Configure Tracking Services” screen. Additionally you can configure an arbitrary number of custom servers to receive your updates via HTTP GET.

In addition to these changes on the tracking screen there is a new section in settings where you can link the Crossingways and Latitude accounts.

Generally a word of caution: Crossingways insists on mentioning that they are BETA, Latitude keeps telling us that it is a Google Labs service that might change when becoming a released product. Generally my tests have shown them to work without issues.

]]>http://www.cocoanetics.com/2011/01/geocorder-1-3/feed/2GeoCorder 1.2.1http://www.cocoanetics.com/2010/11/geocorder-1-2-1/
http://www.cocoanetics.com/2010/11/geocorder-1-2-1/#commentsFri, 12 Nov 2010 15:57:26 +0000http://www.drobnik.com/touch/?p=3135The last major update/polish of GeoCorder just got approved only for me to find that I had forgotten to update the iTunes icon as well. Unfortunately you cannot do so any more once the app is published.

Oh well, I also still had my old twitter name dr_touch in the about dialog. So I submitted a quick update to fix these two things. Just maybe users will notice that I update my apps as often as I can and download more copies.

]]>http://www.cocoanetics.com/2010/11/geocorder-1-2-1/feed/0GeoCorder 1.2.0http://www.cocoanetics.com/2010/11/geocorder-1-2-0/
http://www.cocoanetics.com/2010/11/geocorder-1-2-0/#commentsWed, 03 Nov 2010 16:23:25 +0000http://www.drobnik.com/touch/?p=3123On my recent trip to the USA I put the finishing touches on the next big update to GeoCorder. And today (while recuperating from a bit of a cold) I finished up with some 3.x compatibility issues and integration with the latest versions of DTShop and DTBannerManager.

This version became necessary because I wanted to fix a slight problem one special customer was having with the new tracking function. The tracker would disable if you didn’t have internet connectivity, say during a phone call. Another user who is into ballooning asked for a method to better filter the path to prevent the jumping around that occurs when CoreLocation switches to cell-tower locating due to signal degradation.

Updates

NEW: Fully redesigned artwork for Retina display

NEW: Map View now displays path of currently recording track

NEW: KML supported for exporting

NEW: new filter option to eliminiate implausible track points

NEW in free version: Option to remove ads via In-App purchase

FIXED: Default Recording Settings not showing on Settings View

FIXED: speed would not be inserted in called tracking URL

FIXED: tracking ping would be disabled if Internet connection was lost

While at it, I needed a testbed for the new option of DTBannerManager to allow the user to purchase removal of the Ads, which can now come from iAd, MobFox or AdMob.

Finally, I added KML as export option because this can be readily used by FTLocationSimulator to simulate movement in iPhone simulator.

KML uses so-called line strings which contain way less information than GPX tracks. They only have coordinates and altitude, no timestamps. KML was designed to represent a recorded movement through space but rather static three-dimensional lines in Google Earth.

There IS a way to represent movement through time in KML as well, but it is extremely verbose as you can see from the whale example in Google’s KML documentation. It works by creating a place mark for each track point which is very ugly. I’m only going to implement that if it turns out to be “absolutely necessary” for a specific use case.

Therefore this version of GeoCorder has one “known issue”: KML cannot be used for GeoTagging because of the missing time information. For geotagging you have to stick with the GPX format.

The update is now with Apple and should be approved in a week or so.

]]>http://www.cocoanetics.com/2010/11/geocorder-1-2-0/feed/1GeoCorder 1.1.0http://www.cocoanetics.com/2010/07/geocorder-1-1-0/
http://www.cocoanetics.com/2010/07/geocorder-1-1-0/#commentsThu, 29 Jul 2010 18:55:06 +0000http://www.drobnik.com/touch/?p=2908Some time ago I got approached by a corporate customer who was looking for a solution to have his vehicles report their location to his server. Previously he had been using Nokia phones and now he was looking to switch to iPhones. So I built a quick app for him, but due to lack of multitasking in iOS 3 it had limited use. But then Apple surprised us with backgrounding for location apps and suddenly make apps like GeoCorder all the more useful.

But I did not think that this mini tracking app by itself would make a good addition to the app store, so I insisted of merging this functionality into GeoCorder. So now GeoCorder can record GPX tracks for photo tagging or viewing in Google Earth and can also ping your server with a customizable HTTP GET.

Background Recording on iOS 4

UI improvements

Completely rewritten backend with CoreData engine

FREE Version: iAds on iOS 4 Devices with AdMob fallback

User Guide and Support

Map View centering on current Location

Tracker Mode to ping corporate server with location updates

For the UI you might notice that I moved the recording controls into the navigation bar. Also this is now using a tab bar controller to switch between multiple views with differing functionality. I switched the tracks view and the recording view because for a recording app the recording screen obviously is the more important view.

Once I started to think about the functionality of this app I suddenly had my head fill will lots of additional things, most of which did not make the cut for what is supposed to be a minor upgrade that turned into a 4 day project. For example I had considered adding Google Latitude updating as a Tracking choice. But 1.1.0 is meant to give my customer (and other people with similar logistics use cases) a tool which he can easily install through the app store.

The problem with those many ideas is that nobody is paying for their implementation. On both the full and the free version (ads) I’m making like 10 Dollars a week. Only if I see a dramatic uptake in downloads I will be able to afford implementing more features. But I’m still interested to hear your thoughts should you be amongst those few people who have a use for this uncomplicated app.

Maybe it helps a bit that I am also targeting iOS 3.x which still is the OS of choice for iPhone 3G. Where I previously had only AdMob ads, I have now also iAds on iOS 4 devices with AdMob being the fallback. I’ll report on how that goes.

I just submitted the app to Apple for approval. I tested orders of magnitude more than before and eliminated all bugs that I could find to make this a really high quality release.

Update Aug 6th: The update has been approved. What’s a first is that the review team approved the update first and later wrote a mail to me asking to add a battery disclaimer to the iTunes description. Apparently all apps using background GPS are required to have this in the description:

“Continued use of GPS running in the background can dramatically decrease battery life.”

So I added it. Much obliged!

Update: I found two bugs in the free version for which I just submitted update 1.1.1: Ads could not be tapped on and I had forgotten to include background location support.

]]>http://www.cocoanetics.com/2010/07/geocorder-1-1-0/feed/3GeoCorder 1.0.5http://www.cocoanetics.com/2010/04/geocorder-1-0-5/
http://www.cocoanetics.com/2010/04/geocorder-1-0-5/#commentsThu, 15 Apr 2010 13:09:17 +0000http://www.drobnik.com/touch/?p=2463Seems there is an ever-growing community about my little tool GeoCorder which I originally made to get GPS data for testing. It evolved into a light-weight utility many people use for geotagging DSLR photos.

A user informed me that I messed up with the 1.0.4 version of the free variant. Seems both versions got out of sync. The only difference should be that the regular version costs $1 and the free versions has a banner ad. So I went in and fixed a couple of things.

CHANGES

Fixed some memory leaks

Updated AdMob framework in free version

replaced a deprecated function

fixed the free/paid inconsistency

Now all the new features from 1.0.4 are also in the free version as it was intended.

UPDATE April 16th: I had to self-reject my binary because it appears that there was a bug in the ZIP routine. I also added an extra switch to not record events when you are not moving. I removed the 1 Meter setting for the distance Filter because it looks like CLLocationManager ignores that. This gets replaced by the switch.

UPDATE April 17th: Self-Rejected another time. User asked me to change the XML Version to 1.0 for compatibility.

]]>http://www.cocoanetics.com/2010/04/geocorder-1-0-5/feed/0GeoCorder 1.0.4http://www.cocoanetics.com/2010/02/geocorder-1-0-4/
http://www.cocoanetics.com/2010/02/geocorder-1-0-4/#commentsThu, 11 Feb 2010 17:17:24 +0000http://www.drobnik.com/touch/?p=2032It’s been almost a year since my last update to GeoCorder, which is a handy little tool to quickly record GPS tracks and mail them to yourself for viewing in Google Earth or geotagging photos. It’s a very simple tool which I wrote to get GPX tracks for my own testing. If you believe the reviewers it serves it’s purpose very well

Since then SDK 3.0 was released and with it the possibility of sending attachments in E-Mails. Before that time I had to resort to sending the files via my own web server, but with this update this is now no longer necessary. And lately some reviewers started to complain about this old mode so I finally found a day to sit down and polish it up, fulfilling all the reviewer’s requests.

UPDATE: 29 hours later the update(s) are through the review process. That’s new record for me.

]]>http://www.cocoanetics.com/2010/02/geocorder-1-0-4/feed/0GeoCorder 1.0.3http://www.cocoanetics.com/2009/05/geocorder-103/
http://www.cocoanetics.com/2009/05/geocorder-103/#commentsSat, 23 May 2009 19:23:05 +0000http://www.drobnik.com/touch/?p=710The customer crash reports that Apple now makes available showed me a problem with GeoCorder that I had missed.

Removed redundant code that would load and save tracks in a seperate file in addition to the trackpoints written directly to a SQLite database while recording. This could cause timouts on program exit and long loading times at program start for people with lots of recorded trackpoints.

Thus program start and exit are now much faster for people with lots of recorded tracks.

It’s embarrassing I know, but how can you spot such a thing? When you test your app you don’t think to record so many tracks that applicationWillTerminate will time out and be aborted by the iPhone OS. But thanks to the crash reports I was immediately steered in the right direction of what to fix.

I’ve submitted this quick fix release to Apple, more usability enhancements are in the works.

UPDATE May 16th:

Apple rejected the update claiming that without network connectivity the screen stays black. That’s not possible because GeoCorder has a Default.png image and there is no network activity unless the user sends a track via e-mail. I tested the app on my iPhone 3G on 2.2.1 and iTouch 3.0b5, with and without network. No black screen.

But to be safe I ran Clang Static Analyzer over the code for 2.0 and even 3.0 and found a couple of unused variables, a mismatch between unsigned and signed and one code file that was not even used. So I cleaned those up and resubmitted.

UPDATE May 21st:

Apple rejected it again this time with an even more annoying message. But this time is the first time that they actually provide some information how I can fix it.

Your application, GeoCorder, cannot be posted to the App Store at this time because it does not adhere to the iPhone Human Interface Guidelines as outlined in iPhone SDK Agreement section 3.3.5.

When the device is not connected to a network, GeoCorder does not load its contents. When the user is on the “Record GPS Tack” screen the App fails to load location (please refer to screen shot). This behavior might lead to user confusion. It would be appropriate to display either a notification or an alert stating that internet connectivity is required.

Please take a look at the Reachability iPhone program sample which demonstrates the use of the System Configuration Reachability API to detect the absence of WiFi and Wireless Wide Area Network (WWAN) services. Your application can then take appropriate action at the first point where network services are required.

Translation from convoluted to plain English: In Airplane Mode the iPhone does not get Core Location updates. Now why do they think of this NOW on the THIRD version I submitted to them for review?!

SECOND UPDATE MAY 21st:

I finished the app (once again) and submitted it to Apple with these enhancements:

I revamped the inner workings of the blip graph so that it can show recieving of Core Location updates independently from whether the user chooses to record them or not. Non-recorded blips are grey, recorded ones are red.

Position updates are now active as soon as the recording modal screen is opened and are deactivated as soon as the screen is exited.

Implemented connectivity sensing according to Apple’s suggestion. If you enter the recording screen without internet connectivity you get an alert to that effect.

I made a nicer splash screen, because having it look like the final recording table view would anger users because it would look like for the time of loading that the app does not react to user input.

Also I submitted a new free version of GeoCorder which will be sponsored by AdMob. It’s technologically identical to original GeoCorder.

I’ll update as soon as they get through.

UPDATE May 24th:

I received a crashing bug rejection (for a change *G*) for GeoCorder [FREE].

Thanks to the attached crash report and detailed instructions on how to reproduce the crash I quickly found the problem and fixed it. I had a dangling object reference to previously released memory. This would show if you recorded a track, removed it and tried to record another. Since both GeoCorders share the same code I had to replace the binary for regular GeoCorder as well.

Apple is getting faster, at least with newly submitted apps. I’m glad Apple Reviewers are working on Saturdays as well to work through new apps. That can only mean that they have multiple shifts, because Saturday is not a regular work day in the USA.

UPDATE June 16th

Apple had approved the free version rather quickly but the regular version was stuck “in review” even though it contains exactle the same code and functionality minus the ads. I wrote to Apple two days again and now finally the regular version became available as well.