BuySellAds.com

Read the chapters in my new book Barcodes with iOS 7 as I hand them in. Great new app opportunities await!
Our DNA is written in Objective-C
Jump

Category Archive for ‘Updates’ rss

iWoman 2.0

It’s been a long long time since I last updated iWoman, more than a year to be precise. I have to admit the success of iWoman made me lazy. Why would you want to change something that is selling so well? In fact iWoman topped the Healthcare charts in several countries for a long time. Other projects seemed be be more important.

I have to credit my wife who kept bugging me about how I obviously did not care about we women on Earth. She is using iWoman for about years now and I kept updating her iPhone with the latest builds. For a long time iWoman was stuck right between versions, but suddenly – about a month ago – motivation returned. I wanted to polish iWoman into the jewel that is was so long ago and add all these features that customers kept requesting.

iWoman 2.0 is now (finally!) available on the app store.

Read more

GeoCorder 1.2.1

The 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.

GeoCorder and GeoCorder [FREE] are available on the app store.

GeoCorder 1.2.0

On 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.

MyAppSales 1.0.17

With Apple totally revamping the “Sales & Trends” and “Financial Reports” they gave a shiny and wonderful AJAX Interface. But at the same time, because of the lack of a public API, this meant that we tool vendors had to burn some midnight oil to get our downloaders fixed up again.

This version of MyAppSales is a maintenance release with these goals:

  • navigate the AJAX pages to retrieve Daily, Weekly and Financial reports
  • adapt to the changes in the financial reports format (reports would be empty)
  • Minor tweaks, like use the smaller financial report description when displaying report sums

I am still working on migrating the database into CoreData to be able to make it 4.x compatible. Currently there are lots of caching mechanism that cannot handle when the app is being killed, like when you remove it from the recent apps list. Another problem is that settings will not be saved. So until further notice you have to keep building it against SDK 3.2, it will still run fine on your iPhone with iOS 4.x.

The update is in the trunk of the subversion repository.

MyAppSales for Partners

A user of MyAppSales approached me and asked for the possibility to pre-configure the app such that he could give it to a partner of his. The goal was twofold:

  1. Pre-configure the account for iTunes Connect such that you don’t have to give your credentials to your partner
  2. Filter sales reports such that only the apps come through that the partner is receiving a share of sales for

… and all of this without impacting the other features like review downloading.

Since I have such a partner myself for which I’m now publishing 3 apps, I sat down and – after fighting with Xcode over a second target – added a couple of lines to the MyAppSales trunk to enable the “Partner Version”.

In the PCH file you enable and configure this special version by removing the // in front of the first define. Then you need to specifying your ITC credentials and an NSSet of Apple App Identifiers.

// to enable the partner version, re-enable the following define and fill in the three values below
//#define PARTNERVERSION
 
#define PARTNERVERSION_ITC_LOGIN @"account@server.com"
#define PARTNERVERSION_ITC_PASSWORD @"SECRETPASSWORD"
#define PARTNERVERSION_FILTER_APPS_SET [NSSet setWithObjects:@"335519920", @"329678407", @"374457741", nil]

I’ve added a filter for the specified PARTNERVERSION_FILTER_APPS_SET in two places to ignore all lines on sales report where neither the Apple Identifier nor the Parent ID is in this list. Since the app never sees any apps outside of this filter those also won’t pop up on the apps page.

For the preconfigured account, the app adds this ITC account if there are no accounts defined. So if your partner were to remove this account accidentally it would be configured once more on next app start.

All you need to do after configuring and building a release version is to zip and ship the app and provisioning profile to your partner. Easy enough?

GeoCorder 1.1.0

Some 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.

MyAppSales 1.0.16

Apple changed two column headings on the financial reports because apparently the June reports are the first ones which will also show eBook publishers their revenues.

  • “Artist/Show/Developer” became “Artist/Show/Developer/Author”
  • “Label/Studio/Network/Developer” became “Label/Studio/Network/Developer/Publisher”

There where quite a few hot fixes that I had to put into MyAppSales and also if you look at the code you’ll see that it’s in the middle of being migrated to CoreData. The latter is necessary because the current method of caching everything is really ugly code whereas CoreData will permit me to make the app perform way better and it only fetches data I truly need.

Unfortunately (or fortunately depending on how you look at it) I’m very busy with a major project for the last few months, so I cannot really muster the time right now to carry through this migration. But because this is a point of stability in MyAppSale’s live that I can publish it as a new version. Lots of people where continuing to use the previous “released” version because for some reason they feared that the “2.0 BETA” in the Subversion trunk might be unstable. When in reality it aways was the code I’ve been using on my iPhone.

Speaking of iPhone 4, you still need to build it with SDK 3.2 until further notice for exactly the reason I mentioned above: ugly caching. It works fine on my iPhone 4.

Here are some goodies that I also hacked into 1.0.16:

  • Ability to remove individual reports. For example if something goes wrong during download.
  • You can opt to show a report sum on the overview pages. This is slower because for it the app needs to fetch the sales data, so it will impact scrolling. But if you don’t scroll much then its a useful number to see at a glance.
  • I’m now using the standard currency formatter for all amounts

Please update your copy from the repository as usual.

How to make your Hybrid-App crash for sure

I was quite happy finally getting the new polished 1.1 version of SpeakerClock approved. But there was one problem: people who tried to run it on iPhones with iOS 3.1.3 started tweeting me that it crashes. I was astonished, I was not aware of using anything from 4.0, I just had to set the base SDK to 3.2 to support hybrid mode.

Then I tried out the update on my wife’s iPhone which I kept at the latest released iOS version, 3.1.3. And it crashed. So I hooked it up and had a look at the crash report. There’s something about “doesNotRecognizeSelector”. This means I am calling a method that the receiving object does not recognize. Uh Oh.

Read more

Newly published: iOdometer

Previously I explained how I am approaching iPhone development in a broad spectrum. The vehicle for my business is a company called Drobnik KG, or as I refer to it in IT context: drobnik.com.

We have a publishing contract with young Laurens whose apps are already making up a major portion of our daily sales. The agreement works like this: I’m taking care of the stresses with dealing with Apple, submitting the app and maintaining the SVN-server where the apps are being developed. For this convenience Laurens is sharing part of the profits with us.

And profits they are! Over the last half year this arrangement netted Laurens sufficient funds to buy a Mac. Thus invigorated he sat down and developed a distance measuring app: iOdometer. This, too, is selling far better than I might have guessed. So I refrain from making any future predictions concerning Laurens’ success. For some strange reason he seems to exactly hit the nerve of what people are willing to pay for.

Maybe that’s because of the high quality components from Dr. Touch’s Parts Store he implemented: DTLEDNumberView and DTMenuController. Being able to rely on their sturdiness and ease of implementation he was able to focus on the app’s main feature set and bring it to market in record time.

iOdometer is available on the app store. Version 1.1 has been submitted to Apple, it features better accuracy and a new icon. Other successful apps by Laurens are Frequency Annoyer and Full Screen Browser.

SpeakerClock 1.1

My previous article covering an iPhone-to-Universal migration inspired me so much that I spent two days on getting the HD-upgrade for SpeakerClock ready to ship.

Changes

  • Universal app, runs on iPhone and on iPad in native resolution
  • Portrait Mode, now all orientations are supported
  • Now screen flashes in the appropriate color when threshold to yellow or red is passed
  • In-App Purchase for 5 presets instead of one
  • Lot’s of minor usability improvements

I didn’t know if Apple would approve an iPad-ready app if it did not support all orientations. So I implemented a mode for portrait orientations for iPad and retrofitted it for iPhone as well.

A big thank you goes to Erica Sadun who inspired me to take on these changes. When I met her on the Voices That Matter Conference in Seattle she played around with SpeakerClock as if it where the coolest of all toys, making me really proud of it. But I cringed seeing the iPhone-app on her iPad so I definitely had to make a HD-version. I dedicate this one to Erica.

I also added the information on how to start and stop the timer to the instructions. Some people did not understand that you can do so by simply tapping the screen.

Also this version marks the end of the “free trial” for SpeakerClock 1.0. As soon as it goes live I will raise the price. So if you want to get it for free, then better get it now. If you liked 1.0 then the new + button is your chance to show your appreciation, it will give you 5 instead of 1 preset. A preset saves the timer starting value, the yellow and the red threshold values.

Personally I use SpeakerClock whenever I’m recording YouTube videos. A couple of times I went over the maximum of 10 minutes and my handy timer prevents this for good. Here’s a demo of the old and new features.

SpeakerClock 1.1. has been submitted to Apple for approval.

UPDATE: … has been approved.

UPDATE 2: … has a nasty bug where it would crash on all iPhones with an OS Version less than 4.0. So I already submitted an 1.1.1 update.

UPDATE 3: The 1.1.1 hotfix is now available on the app store.