Archive for the ‘iPhone’ Category

No new WiFi Checker

September 10, 2009

I had a very pleasant, albeit disappointing, conversation with the folks at Apple about my WiFi application, WiFi Checker. They’re trying to crack down very hard on applications using private APIs – I’m sure the debacle around all of the camera applications moving from 2.0 to 3.0 was quite a mess! To make a long story short, WiFi Checker’s update to run on 3.0 will not be approved.

Though I will miss having a WiFi application that had, at one point, been downloaded by nearly 10% of the sold iPhone/iPod devices, I think this policy is totally the right call for the store. Consistent treatment of your developers is a good thing.

Let this serve as a warning to others thinking about using undocumented / private APIs – don’t waste your time! And diversify soon if private APIs are how you’re planning to put your kids through college…

Or it’s the usual update fun…

August 12, 2009

Well, it’s now been over a month (July 9th) since I last provided Apple with an updated version of WiFi Checker. It’s got the name change, icon, 3.0 compat, and a couple of other small tweaks I made back in Oct ‘08. About three weeks ago I got the, “is requiring unexpected additional time for review” and I’ve sent more mail to the reviewers to nudge them. Hopefully I’ll get an answer soon – or even better the update approved!

Thanks to all of you for your e-mails and offers of support, but I don’t need you to spam the AppStore reviewers, Steve, or beta test it. I’m also not looking to move to Cydia. I’m fine with just continuing to nudge the review squad. I’d prefer to think that they’ve just slipped up rather than that this is malicious or that I need to pass along bribes.

They may be nicer than I thought…

June 25, 2009

So it turns out that Apple, in the 3.0 version of the OS, moved the WiFi APIs from a private framework location into a more public space. I have an update that is sitting in the queue to try and provide a new – and still free! – version of WiFi Checker, along with some changes that have been sitting on my machine since August of last year or so… not the least of which is a very spiffy icon :-)

Here’s hoping they aren’t just leading me along! After all, they did let at least one other WiFi application update for 3.0…

On naming and updates

January 19, 2009

I was recently informed that the name WiFinder is a name still in use by another company. Anybody got great ideas for other names? Most of the obvious cool and fun ones were also used during the dot-com-bubble, and I’m loathe to run into this problem again :-)

BTW, check out the awesome icon work that Serge from LemonMedia did for the program! It’s been in submission for over a month and a half, but hey, that’s Apple for you, and this is Pretty Dangerous Stuff. WiFinderNewIcon

On the Lack of WiFinder Updates

November 3, 2008

Many of you have reported bugs and made requests for updates to WiFinder. I’ve dutifully logged, and already fixed most of them. However, I should let you know why it’s taking so long. But first, some background…

On Private Functions (or APIs – Application Programming Interfaces)

I worked for many years at Microsoft. We generally had a policy with our third-party developers: if it’s public and you use it, we’ll do our best to support that use forever, even if it’s on the fringes of how we intended it to be used. If it’s an undocumented function or something from one of our other binaries, we prefer you don’t use it, but we’re certainly not going to prevent you if you need it. But we reserve the right to break your application. 

Many of these APIs exist, both at the OS layer (as here: http://www.inlumineconsulting.com:8080/website/nt.sekrits.html) and at the application layers. There’s nothing malicious about them – they’re just code that needed to be exposed for others to use that wasn’t at a quality level or a support level that we wished to keep For All Time. Stop with the conspiracy theories!

On WiFinder

OK, I’ll admit it. WiFinder uses APIs from a private framework (Apple80211). So does an application released shortly after WiFinder (WiFiFoFum) and one released in just the last couple of days (WiFiTrak). AFAIK, we all released and got our apps through the review process just fine.

Unfortunately, I have been asked to remove the API usage. Bit of a shock, but I let them know that I’d be happy to if they provided me with a public interface. Until that happens, though, I’m in a bit of limbo, and no updates can go through the process.

The Consolation

At least for now, they haven’t removed my application (or any of the others!). So I’m not really complaining. Well, I’m complaining that another product came out, mimiced all my features, polished them up, and released – when I’ve had a better version than that sitting on my machine for a long time! But certainly, by the terms of their license agreement, I’m in the wrong (as is anyone who uses undocumented APIs on the Microsoft platform). I just wanted to let folks know why there hasn’t – and may well never be – an update to WiFinder or any of the other WiFi applications.

AppStore update review frustrations [relieved!]

September 10, 2008

I know I shouldn’t be complaining – WiFinder has already made me a lot of money. Or, it will have, once we get paid for August!

But I submitted a major update on August 25th, and it’s now been quite a while. Same bug reports from users; same requests for features over and over and over. During that time, I’ve seen a competitor come up and recently announce they’re going to be adding a subset of the features that I finished and submitted long before they even got into the AppStore! Will they get in first? Who knows! There’s no transparency at all in the review process.

To boot, I have a slew of further updates – authentication storage for password-protected access points, auto-handling of web-page style logins on Open networks that redirect, etc. – that I also wrote pre-September. But at this point it feels like it’s really not worth working on anything else. My users have asked for more NetStumbler-esque features, like exporting found networks along with locations to some standard formats. I’ve already got the infrastructure there, but with the prospect of it possibly not going live for Steve-knows-how-long, why bother?

Urgh! The AppStore – I love it, and I hate it. I’m seriously debating just making the app free and removing all the worry about what were my sales yesterday / what’s my UK rank today / how many German users are having problems / what new reviews finally went up…

EDIT: Okay, Ms. Louv rocks! I sent an additional whiny-mail along the lines of this blog post to the dev support alias, and she got back to me and personally did the review. It should be up and ready for everybody in just a few hours. Thanks, Ms. Louv – you’re a total rockstar :-)

US AppStore sales and rank data for WiFinder

September 5, 2008

WiFinder is an application that makes it easy to browse wireless networks. It can detect if Open networks are actually usable, or if they’ll redirect you to a login page instead. It’s also turned out to be widely used by IT professionals just scoping out their turf. Below is some sales data on it.

This chart is an approximation of US AppStore daily sales (count on the left) versus sales rank (on the bottom). Note that the numbers are approximate, as there are daily preview details provided, but when you get the final end of week stats, the numbers don’t always match up. I’ve done the best I could to clean them up, but think of this as approximate. Also, WiFinder went from off-chart when released, rose up to about 34th, and has since fallen back off the top-100.

WiFinder Sales versus Rank

WiFinder Sales versus Rank

US AppStore sales have amounted to between 1/4 and 1/6 of my total sales. I suspect that my foreign store sales would be higher, but there’s a fairly bad bug with network accessibility detection in some countries (fix has been “In Review” since 8/25 – hopefully up soon!).

As a couple of other interesting data points, WiFinder reached 11th in the UK AppStore on a daily sales of roughly 275, and reached 3rd in the German AppStore with daily sales of roughly 750. So I believe that those stores have a lower volume of paid application sales than the US AppStore, but they’re still both pretty large!

The Apple AppStore review process

September 4, 2008

From the side of a developer, there are a lot of unknowns with the AppStore submission process. Basically, you submit your application (or update) and… it sits in review. Here’s the information I’ve been able to gather based on my experience and trolling message boards with other developers.

Please note that when I say ‘work day’ I’m talking about Monday->Friday. Saturday sees some action from the AppStore, but generally there do not appear to be updates on Sundays and holidays.

Duration

Many of us believe that the submission load is substantially larger than Apple had budgeted for. In late July, the reported time from submission to acceptance was approximately 5 work days. By mid-August (when I submitted my applications and updates), it had moved to about 7 work days. People submitting now (late August submissions) are reporting 10 work day times. I currently have an update I submitted 7 days ago and am waiting for a report on. I’ll update this section as I get additional data from my own submissions and other developers.

Note that new applications and updates appear to be subject to idential queue times.

You will hear nothing from submission time until they have done a first review. Then, you may get an email stating that it is Ready For Sale, and within a half a work day it will transition to that state in iTunes Connect and slowly roll out across the various countries’ AppStores. Alternatively, you will get a rejection e-mail and within one to two work days it will be followed up an e-mail detailing why your application was rejected. People who’ve had an application rejected have reported a fairly tight loop on updates and getting more feedback.

Updating your app’s information and price

If you perform an update to screen shots, large icon, price, or text, that will be reflected in approximately a half a work day on the US AppStore (I don’t know if this is different for overseas developers). It then takes about another half work day to propagate to the other countries’ AppStores.

Tips & Warnings

If you make an update, you can update the large application icon and submit that along with the app. However, do not update your screenshots or text! If you do, that information will be reflected into your current posting, and you will end up with irate users (this happened to me with WiFinder).

iPhone is the new indie development platform

September 3, 2008

Almost every developer I talk to these days talks about the same thing. It doesn’t matter if they’re a Windows developer, a UNIX developer, or an IT script writer. They all are looking into writing iPhone applications. Why? Because it’s the new indie platform. It’s filling a long-gone niche: it’s one place you can go as a single developer or a small team of developers, put together an application quickly, and get paid very well for doing it.

Without a huge marketing budget. Without layers of management and release process. And – most importantly – without a huge amount of business infrastructure around sales and installation support.

The Apple App Store has many issues, as does the iPhone SDK. But it solves the problems small development shops have – targeting multiple platforms, easily selling a product, and getting placement in front of users. So it’s okay that that the tool stack feels like it was written in 1997 and that the approval process takes seven to ten days (even for a bugfix!).

This is a huge platform, and it will dominate and accrue developer mindshare until another single platform provider makes it this easy to sell software.

With that in mind, I’m providing some info on making the shift from being a Windows developer. I worked as a developer at Microsoft on Visual Studio for quite a few years (though not as many as this guy!), so I can provide some perspective.

Getting things set up

This is actually trivial. Get a Mac and install XCode. I highly recommend avoiding the hackintosh experience. People are doing it left and right with the popularity of the platform, but I have yet to meet anyone who did it in less than three days of systems administration hacking. It’s giving me flashbacks to early 90s linux configuration.

Then go to to the iPhone Dev Center, register for free access, and download the SDK. It’ll update XCode, install the simulator, and a decent number of samples. It’s a small number of samples by comparison to a Microsoft platform, but the SDK surface area is pretty small and the samples do a decent job of covering most of it.

Learning the tools

There’s a blog with a good number of tutorials – http://icodeblog.com/. I highly recommend you start at the beginning and do even the Hello, World sample. Putting together applications for the iPhone requires a level of work similar to Visual C++ 5-era MFC. All of the UI layout (think resource editor) is separate from the code hookup (think your dialog classes and ::GetDlgItem), and there’s even an additional step you have to do to twiddle all of the hookups and handle creation. Don’t skip any steps or you’ll miss some very basic concepts.

I also recommend the book Cocoa Programming for Mac OS X. It’s a walkthrough of the different technologies, and is a good guide to the tool and the general architectural Zen of Cocoa. Even though it’s develpment focused, the iPhone classes are basically a subset of what’s available on the desktop, with the addition of a few things like the spinner control.

Then just try out the samples and get going! The simulator is reasonably good, though the performance characteristics and a few UIKit controls behave differently (so don’t try to ship without buying a device and trying it on there directly!).

Future posts
From here, I’m going to cover a top-ten style list of things that annoy me and things that I love about the iPhone SDK and tool experience. I’m also planning to post some numbers from my sales and Top-100 rankings for one of my applications, WiFinder just so you can have a better idea why I consider this the premier indie development platform!