Apple, ARM, and a hybrid OS

December 4th, 2012

Warning: crazy wild speculation ahead.

There have been rumours recently about Apple using ARM chips in laptops. This would be a baffling move.

Intel has been king of the hill when it comes to x86 performance, and isn't likely to lose that crown any time soon. Power consumption of x86 chips has been coming down, performance has been going up, and x86 has the all-important compatibility with Windows apps that, like it or not, is important to a lot of people.

Apple certainly has some good reasons to consider making an ARM-based laptop. They own the chip design, for one, so the chips are cheaper. And Apple's series of ARM chips (the A5, A6, and A7) have been very well suited to mobile applications, offering great performance and low power consumption. But they're not x86 compatible.

There's only one scenario I can imagine where Apple would be willing to ship a new laptop with performance significantly below that of existing laptops. A new category of machine.

I'm going to make a weird sort of prediction here. I think Apple might be experimenting with a hybrid laptop.

There's a fundamental problem with the transition to mobile. Touchscreens are good for some things, and keyboards for others. You really need both. But it's very difficult to build a single application that's great in both worlds. Microsoft has demonstrated this clearly with the Surface tablet and Windows RT.

Microsoft has tried to make a single OS that works for both touch and keyboard/mouse, and created a sort of frankenstein that nobody really likes.

Apple went the other way, and created two different OS's. OSX and iOS. OSX is great with keyboard/mouse, and doesn't try to handle touch. iOS handles touch beautifully, but isn't very good with a keyboard and doesn't support the mouse at all.

But underneath iOS and OSX is the same OS: Darwin. They're both built on Cocoa, and share a lot of the underlying infrastructure.

What if Apple made a hybrid laptop that could run both AppKit (the Mac UI framework) and UIKit (the iOS framework)?

The OS would actually be the same for the most part. I'm not thinking of a dual-boot scenario, where you have to quit one side to start the other. If Apple devised a new hardware form factor that gave you both the tablet experience and the laptop experience in one device, the OS's presentation could change on the fly. At your desk, you're using what looks like Mac OS, but switch to tablet mode and there's the Springboard.

The Mac and iOS have been moving to a model where your application data lives in a defined location, and iCloud has been syncing that between devices. It's quite feasible that apps like Pages or Numbers, that exist for both iOS and Mac OS, could switch seamlessly from tablet to desktop mode and back.

And if Apple did ship a brand new machine that worked this way, then they could break with x86 compatibility. This would be an iPad Pro, not a new kind of laptop, so it would be okay for it to be slower than a MacBook, and the lack of x86 compatibility wouldn't be so bad.

This is a crazy idea, but I mention it because I think there is some motivation there to solve this problem, and because Apple has the technical underpinnings to make it work.

Plantronics Voyager Legend Review

November 30th, 2012

I like listening to audiobooks and podcasts when I'm out for a walk, doing yard work, or doing chores around the house. An iPhone and a bluetooth headset are great for this, and for years I've been looking for the perfect headset.

Img 2268My criteria for a headset are pretty simple. It's got to fit comfortably, sound good, and have a good control scheme for pausing and resuming playback (for when I need to talk to people, for example).

The ones I've been using are from the Plantronics Voyager series: First the Voyager Pro+ and then the Voyager HD. I've reviewed them here.

I don't feel comfortable with headsets that don't have a loop that hooks over your ear. Maybe it's just psychological and I need to spend more time with them, but I bought a Jawbone Era a year or so ago and just couldn't get used to it and ended up returning it. The bulk of the Voyager goes behind your ear, with a loop that hooks over your ear and an adjustable boom that folds out for phone calls or that you can leave up when just listening. This works well for me.

The previous Voyager headsets had one problem, which is shared by every Bluetooth headset I tried. Sound cuts out when I have the phone in my pocket. I wear the headset in my right ear, and keep my phone in my left pocket. Often the signal would cut out while I was using it this way - audio would cut in and out, sometimes depending on how I moved my head. I often end up having to put the phone in a shirt pocket or on some surface nearby to keep a good connection between the headset and my phone. I've found this to be true with a number of headsets and with various iPhones over the years, so it's not just a bad device.

This is a problem that Bluetooth 3.0 addresses, with a new feature called "Enhanced Power Control":

Updates the power control feature to remove the open loop power control, and also to clarify ambiguities in power control introduced by the new modulation schemes added for EDR. Enhanced power control removes the ambiguities by specifying the behaviour that is expected. The feature also adds closed loop power control, meaning RSSI filtering can start as the response is received. Additionally, a "go straight to maximum power" request has been introduced. This is expected to deal with the headset link loss issue typically observed when a user puts their phone into a pocket on the opposite side to the headset.

Enter the Plantronics Voyager Legend.

The previous Voyager headsets were Bluetooth 2.0 devices; the Voyager Legend is Bluetooth 3.0. The iPhone 5 is Bluetooth 4.0 (meaning it also supports Bluetooth 3 features). And this fixes the signal dropout problem!

The Voyager Legend improves on its predecessors in a couple of other nice ways as well.

It has a dedicated physical power switch. It's easy to click "on" when you put it on your ear and click "off" when you take it off. With the previous devices, you had to hold the power button down for a couple of seconds, and it was easy to forget if the device was on or off, and the only way to tell was to tap the power button and hold it to your ear and listen for the nice lady's spoken voice telling you how many hours of talk time were remaining.

Talk time has increased from 6 hours to 7 hours.

The ability to pause and resume A2DP streaming media is a necessity when using the headset mainly for listening, and it's a feature that not many headsets support. The Voyager series has always supported this, but with a slightly awkward gesture of holding down both volume buttons. The Voyager Legend has a new button on the mic boom arm that serves as the play button. Another nice improvement.

And even the volume up/down switch has been improved, turning into a lever that you push up or down.

In all this makes for much less fumbling for the right button while the thing is on your head. Thumbs up on the new control scheme.

There's one drawback to the Voyager Legend. The proprietary charging scheme.

Previous devices used a Micro USB port to charge, as do most other headsets on the market, but Plantronics went with something custom. To be fair, their custom connector is very nice. It's a Magsafe style magnetic connection that's easy to use, and clicks the phone into it with a solid connection. I like it. But it means I need to have a dedicated spot for charging this device, rather than using any old USB port to charge it. (You can use any old USB port, since the other end of the proprietary charge connector is a USB plug, but you need this custom wire to charge).

This is only really a drawback because it means I need to buy another charging cable if I want to charge the thing in the car.

Some people may find the Voyager headsets bulky. It is a bit bigger and heavier than some headsets, but I don't mind it at all.

The Voyager Legend is the best headset I've found for listening to streaming audio.

Here's an Amazon link: Plantronics Voyager Legend.

Helping the iPhone Sell Itself

November 16th, 2012

On the one hand, Apple is doing exactly the right for their users with their products: Offering consumers a very small number of products that are differentiated in clear ways, to make choosing a product fairly straightforward.

Samsung, HTC, and the other smartphone vendors have been doing the opposite: Releasing new models every few weeks that differ from previous models in seemingly trivial ways, and flooding the market with a plethora of products.

What they're doing seems to be smart marketing when it comes to the uninformed consumer.

I walked into Future Shop last night and their cellular phone section had 6 large tables covered in phones. There were over 60 different phones there, mostly manufactured by the same 3 or 4 companies. But they all looked slightly different and had slightly different features.

My father in law went in to the Rogers store last week and said he needed a new phone. The battery on his current phone is dying and if he renews his contract he can get a new phone for free instead of paying for a new battery, so why not.

After looking at the phones available, he picked a nice red one. He doesn't know anything about the phone other than that it can make presumably make phone calls, but he liked the colour of it.

The phone he got was an HTC Desire, an Android phone that costs $175 no-contract. Probably one of the cheaper phones they have.

He could have gotten an iPhone 4 (still a $500 phone) for the same price, but he didn't go in looking for an iPhone, and there's no way the store staff would steer him towards a phone that would offer them so much less profit. They were happy to give him the phone he chose.

I think this is pretty common. People who have Rogers phones go into Rogers every 3 years and get a new phone, and they get either whatever Rogers recommends, or they get a phone they find attractive from the store display.

The iPhone loses out on both these. It's not a phone that jumps out at you in the store these days, not among all the phone with bigger screens and attractive cases. And there's no incentive for Rogers to push Apple products. Quite the opposite. This is obvious from what phones they typically advertise.

So, what does Apple do about this? Be content to be a high-profit niche player (like they are in the Mac)? Or tailor their product line to the low end of the market?

Apple’s Podcasts App 1.1.2: Much Improved

November 8th, 2012

When Apple first released the Podcasts app for iOS, I was impressed. They did some interesting UI design work and seemed to handle the basic use cases pretty well. It was easy to find, subscribe to, and play podcasts. And really, that's all I want from a podcast app.

But it was horribly broken. The UI would hang, it was slow, and it would randomly mark old episodes as new. It was just frustrating to use, and I eventually abandoned it.

But every new version, they'd promise bug fixes and performance improvements, and I'd try it again, because I liked it.

And I have to say that finally, with the current version (1.1.2), the app is working well for me.

I have yet to see any delay doing anything with the app. The bugs are fixed, and the app is working well for me.

One of the reasons I like using Apple's app instead of the alternatives like Instacast or Downcast, is integration with the rest of iOS.

With Podcasts, when you bring up the media player controls on the lock screen, the fast forward and rewind buttons show -15s and +15s to show that the buttons will actually skip forward or back, and not skip podcasts. Nice.

You can ask Siri to play a particular podcast.

And being an Apple app, Podcasts can initiate background downloads whenever it wants. And they've added the option to not use cellular data to download new podcasts episodes, an omission that in and of itself would make the app unacceptable to many people.

Surface, and the Evolution of iOS

October 30th, 2012

The Surface tablet is going to have a bigger impact than I think we're giving it credit for. It represents a real shift in the computer landscape that will only become apparent in two or three years. And I think iOS needs to respond.

Surface is going to sell well. It will do so because there are a few classes of people for whom it really does make more sense than buying an iPad. Office workers.

It used to be that in big companies, many employees had two computers. A desktop, where they did their real work, and a laptop that they could take to meetings and on the road. Over the years, as laptops have become more powerful, this has shifted to just one computer, a laptop.

Computer evolution didn't stop there. CPU, disk, RAM - every metric that matters has evolved way beyond the needs of your typical spreadsheet jockey. These days, your smartphone has more computer power than most people will ever need.

The distinction between a computer for "office workers" and a computer for home, is that the office computer is not used to play games. It doesn't need the fastest video card and isn't benchmarked in terms of FPS in Crysis.

Office workers still need a computer on their desk and a computer they can travel with, but the laptop that they're using for both these jobs now is usually a "desktop replacement" behemoth. Have you ever seen a huddle of people waiting outside a meeting room for the previous meeting to end, holding their giant laptop in one arms and the power adapter in the other (because the laptop won't make it through another meeting)? It's a bit silly.

So, if you're an employee in a company and you want a mobile device you can easily take your work home with you, take to meetings, or travel with, what do you get?

Up until now, the answer has been an iPad.

Unfortunately, the iPad is a poor citizen in a Windows enterprise.

Let's consider a simple, and very common operation: Bob want to share a spreadsheet with Jane, and they both need to access it from their desktop computers and from their mobile device. What's the best way to do that?

If Bob and Jane have a Windows desktop and an iPad, well, there aren't a lot of options. The spreadsheet on iOS is probably Numbers, and on the desktop it's Excel. Assuming Numbers is good enough for the raw spreadsheet work (and it probably is), all we need is a way to move the spreadsheet from place to place.

In a Windows world, this is easy. On your company's network, your team has a place where it keeps documents, and you can reference any document on the network using a UNC pathname. "Hey Jane, the document is at \\ourteam\share\bongo\revenue.xlsx". Jane can open Excel, copy that path and paste it into the File Dialog, and be done. Or just browse to the file.

What's the iOS scenario?

You could email the document. The recipient would open the email, open the document in Numbers, and edit away. But how would Jane get the document back to the server? I could proabably come up with some convoluted way to do that, but it's just not a simple process. It's a pain in the ass.

Even if you shared the document using something like DropBox, which does have iOS support, you still need to get the document using one app, open it in another app, edit it, and then send it back. You end up with copies of the document in multiple places, and versioning becomes a mess.

Also, on iOS, since there's no way to view a file on a remote server, you have to copy the file to your iPad to view it. If you view a hundred documents over the course of a month, now you've got to remember to clean this up or they're eating up space on your iPad (and in your iCloud backups, etc).

So back to Surface. The fact that it runs Windows, supports SMB networking and runs Office is simply a huge draw in an office where this is the norm (ie, most enterprises).

Even if your office were an all-Mac shop, would the iPad fare any better? Not really. iCloud is awesome for sharing documents with yourself, but doesn't help you share documents with others

Editing a text document on a computing device is easier with a mouse and a keyboard. iOS's tap-wait-tap-drag to select text is less efficient than double-click-drag, and on iOS, since your finger is the pointer, you can't see the text. iOS pops up a little magnifying glass so you can see where you're moving the cursor, but you can't tell me this is more efficient than using a mouse.

iOS organizes documents by application. Employees organize documents by project. Huge difference. iOS does this for some good reasons. Keeping the documents with the application keeps the device clean. If you remove an application, all the data associated with the application goes with it. No one application can mess with the data created by another application.

But no application can collaborate with another application to create a set of files that make up a project larger than you can create with a single application either. For example, if you want to build a text document, a spreadsheet, and a Keynote presentation on a particular topic, you can do it, but there's no place where you can view all the files related to this particular project.

Surface does all this.

So does every other tablet. But where they fail is on the same points I made earlier: No native SMB networking, no mouse support, and in the case of the other tablets, no good Office applications.

I'd estimate that 80% of people buying a Windows laptop would be well served by a Surface. That's a huge number of people. The PC laptop market is hundreds of millions of units.

So I predict that a good number of these people will buy a Surface tablet. These are folks that work with Windows at work, probably work with Windows at home, and may even have an iPad that they use for reading, web surfing, and playing games. But the Surface tablet will be their mobile work device.

What can Apple do here?

iOS needs to evolve. It's done a pretty good job so far, but its restrictions are becoming stifling.

We need something like a Finder. I don't want to give up on the rock solid foundation that siloing all application data has created, but we need a way browse the data that all applications have created, so we can organize it by project. I'm not saying place a Numbers spreadsheet and a Pages document in the same physical location on the file system (since that opens up a big security can of worms) but let me create a "Budget 2013" virtual folder that has aliases to both these documents, and provide an API that applications can use to work with these aliases, and request access to other documents. Mac OS X has application sandboxing but has a mechanism for an application to request access to a file outside the sandbox. This would work in iOS as well.

SMB networking would be great, but I don't think Apple will go that far. Still, if they went with the Finder idea, that would be a good place to put it.

Mouse support. Please. I know iOS isn't designed for mouse based usage, but as a developer, I spend a lot of time working with the iOS simulator, and it is quite workable.

The reason mouse support is important is because the way you use a tablet with a keyboard is by putting it on a stand, like the Smart Cover, and when propped up this way, it's not a solid base for tapping. Tap an iPad while it's on a Smart Cover and it falls over. Plus, moving back and forth between the keyboard and the touchscreen is no good ergonomically. The mouse is on the desk right next to the keyboard, and when I want to select some text or tap a button on the screen, it's just better.

So that's my two cents. I think it's quite possible that many people will end up with both a Surface and an iPad, which is unfortunate. Now that Scott Forstall, the Apple VP who had the vision to base iOS on Mac OS X and brought it this far, is leaving Apple, it's time for some changes. I hope bringing iOS under the same leadership as Mac OS X helps lead iOS in this direction.

Apple, Google, and Mobile Maps

October 21st, 2012

We all love Google Maps. Google pours a lot of effort and money into making their maps the best, but they've gone way beyond what users need and expect from maps. Google Earth, Street View, satellite mapping, 3D mapping, it's all incredibly cool stuff.

But in many ways, it's overkill. If the job to be done is navigation, then all you need are good vector maps and a good routing algorithm, traffic prediction, and an up-to-date POI database. Street View is great for previewing the location you're going, but it's not necessary while you're on the road.

As cool as this stuff is, it's expensive. Taking satellite photos of the planet costs a lot of money. Driving cars down every street costs even more money. It's not just a one-time investment; you need to redo all this work every few years. It's a significant, ongoing investment.

Keeping the POI database and vector maps up to date isn't that expensive, because the data is available from free sources. There is no free source for satellite or street view imagery.

Google has been doing all this work to secure local search advertising. I think. It's not really obvious, but it's the only explanation I think we have for why Google might be pouring all this effort into something that doesn't have a clear monetization strategy.

But for Google to have a shot at making money off these maps, they need users to be using them to make decisions that Google can monetize. If you're away from home and you pull out your mobile device to find a restaurant or a business, that's a key point at which the service you use to find that information has an opportunity to auction the results to advertisers.

Mobile advertising is the fight over who gets to serve the user at this key point.

Unfortunately for Google, the users who are using their phones to make purchase decisions on mobile are mostly iOS users. Android is killing iOS in number of devices, but most metrics show that way more iOS users are using mobile data than Android users. iOS is the best platform for mobile advertising right now.

There are two points I want to make here.

The first is that there's really not much incentive for Apple to make Maps more than good enough. I don't think Apple will try to have current satellite maps or street view to the extent that Google does, because the ROI just isn't there. It's not helping the purchase decision, and Apple doesn't do things just because they're cool.

And the second point is that Google needs to change this.

Amazon did something interesting with the Kindle series. They recognized that making it easy for users to use them to search and buy products meant they needed mobile data access, and so Amazon made an arrangement with the carriers that they would foot the data bill for their devices. Amazon profits from the content sales, and the user doesn't need to pay for the data, just the content.

Could this work for Maps? I think it could.

Android devices already obviously have the hardware to connect to mobile data networks, even if the users haven't signed up for a data plan. If Google were to foot the bill for mobile map access, they'd probably have half a billion more users using their maps on the road.

Kindle Paperwhite Illumination

October 7th, 2012

I had two concerns when I preordered the Kindle Paperwhite, and they were both related to the new built-in screen lighting.

The first was that because the light was actually built into the screen, instead of shining on the screen from externally, that in a dark room, the eye strain would be similar to reading on a backlit LCD screen.

Amazon said this wouldn't happen, because the screen is actually lit from the front by a special layer that's shining the light on the screen from the front. But I don't think this matters. In the end, there's a rectangle of light with sharp edges where the screen ends, and I believe this is what causes the eye strain: The sharp edge where you go from illuminated to dark.

Now that I have the device, so far, I find this is as I expected. The device is definitely more strain-inducing than my old Kindle Touch with the Lighted Cover, and I believe it's because of exactly this factor.

Here's a photo of what my old Kindle looked like in a dark room:

201210070708

Here's what the Paperwhite looks like in the same setting, with the same camera settings:

201210070709

Notice the, um, contrast?

My second fear with the new device was uneven lighting, and as you can see from the bottom of the second photo, that fear has been realised as well. It's not bad, but personally I find it a bit distracting that I can see these three spots at the bottom of the page that are glowing slightly differently than the rest of the screen. I don't think this is just a flaw with mine, as I've seen this mentioned by other people as well.

As a device for reading in very low light, it's not much better than a backlit tablet.

Here's another facet of the new display: How does it look when the backlight is off? Here are the Kindle Touch and the Kindle Paperwhite side by side, in average room lighting.

201210071207

Not very different are they? The pictures you usually see of the Paperwhite have the backlight on. The backlight is subtle when room isn't dark. It makes the screen look better, without obviously glowing. Here's the same picture with the backlight on the Kindle Paperwhite at about 50%:

201210071211-1
The darker bezel combined with the backlight makes it look like the screen has a ton of contrast, without actually appearing to glow. But it's the backlight that's the story here, not the contrast of the screen itself.

Buying an Unlocked iPhone in Canada

September 21st, 2012

I just got home from waiting in line at the Apple Store to purchase an iPhone 5. Unfortunately, I didn't come home with one.

It's not because they didn't have any. I don't think there's any shortage at retail; you can walk into the store right now and buy one. But you can't buy it unlocked.

Last year, I waited in the same line at the same store, and bought an unlocked iPhone 4S. I wanted an unlocked one because of the freedom it gives me to pass the phone on to my wife, who uses a prepaid phone plan with no data. It's cheaper to do it this way than to have both of us on contract.

This year, Apple changed the rules. You can't get unlocked phone at retail. Only through the website.

I guess I was supposed to pick up on this from the wording, which is subtle. Here's what the site says:

"Buy iPhone 5 at your favourite Apple Retail Store beginning at 8:00 a.m. on September 21. We can help you choose the right rate plan and get you up and running."

Note that it says choose a rate plan. This means you'll have to choose a rate plan, and choosing a rate plan means you have to buy it locked. Clear, right?

"We offer rate plans from Bell, Fido, Rogers, Telus and Virgin"

They forgot "... and you must take one of these rate plans".

"The Apple Retail Store is the best place to buy an iPhone"

It used to be. The nice guy in the blue shirt asked me which carrier I wanted, and I said "unlocked". He said he was sorry, but they only sold them locked. It's a business decision that Apple has made, he said.

I waited about 2 hours at a store only to find that Apple has changed the rules and I can't buy a phone at the store. I have to buy it through the website.

I find this really disappointing for a number of reasons.

The iPhone is an Apple product, and an unlocked iPhone is a pure Apple product. Why wouldn't I be able to buy this at the Apple Store?

Apple gets residual revenue from carrier contracts, and speculation is that's the reason for the change. Apple simply makes more money selling you a locked phone than an unlocked one.

I wasn't the only person caught by this. There were other people in line planning to buy an unlocked phone, who were surprised at the change. The Apple staff at the store suggested buying a locked phone on a month to month plan, and then paying for a carrier unlock. This is a ridiculous suggestion coming from Apple.

This change in policy comes at the expense of customer service and satisfaction. This is a bad direction and I'm disappointed that Apple chose it.

Avoid dispatch_sync.

September 20th, 2012

Working on a Mac app recently, I ran into a situation where the app was hitting a deadlock. It was difficult to diagnose, and involved an Apple support incident (which resulted in a great answer from an Apple engineer) so I wanted to share it here.

The scenario is that at application startup there was a flurry of activity that was performing many operations simultaneously on background threads, using Grand Central Dispatch to dispatch the operations, and when the operations were done, they needed to update some UI.

Here's a simple example that boils the problem down to its essentials:

[cc lang="objc"]
for (int i=0; i<400; i++) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ dispatch_sync(dispatch_get_main_queue(), ^{ NSLog(@"Hello"); }); } [/cc] This dispatches 400 asynchronous operations that will each perform a synchronous operation on the main thread. This will instantly deadlock. So what's the problem? Two things conspire against us here. The first is that there's a limited pool of threads that Grand Central Dispatch uses; once there are a certain number of threads created, it just won't create any more until some of the operations complete. And the second is that the OS itself uses dispatch_sync on the main thread. What happens is that all of these background threads start queueing up operations and saturate the thread pool. Meanwhile, the OS, on the main thread, in the process of doing some of its own work, calls dispatch_sync, which blocks waiting for a spot to open up in the thread pool. Deadlock. This is easy to avoid: Don't use dispatch_sync to dispatch operations on the main queue. You can use it sparingly, but use dispatch_async where possible. In the program where I originally ran into this problem, the way the app ran into this problem was more real-world than this contrived example. Here's how we actually ran into this problem. The app, at startup, queried the server for some data. Once received, the app updated or created the corresponding Core Data objects that the app was managing, which triggered KVO observers. The KVO observer was accessing a property on the model objects which was implemented using NSManagedObjectContext's performBlockAndWait: which is implemented using dispatch_sync. This is a bit more awkward to avoid. It either means your Core Data access needs to be asynchronous (doable, but a bit awkward), all done on its own thread (meaning you must never forget one of those performBlockAndWait: calls, and now you're on the hook for making sure the app doesn't terminate during an asynchronous save), or simply all on the main thread. Most Core Data applications I've seen do all the database work on the main thread; it's only when you start moving work of the main thread that you have these considerations. So, once bitten twice shy, my advice is simply to avoid dispatch_sync. You can't know the state of the thread pool and if it's full, you risk a deadlock.

App Store vs Release Early / Release Often

September 5th, 2012

Agile development makes it possible to build an app starting with a simple working core and then building out features over time. Each sprint, you're starting with a working, shippable product, and over the course of the sprint, adding some amount of shippable functionality. The theory is your product is always "shippable".

When I add a new feature to an app, the first thing I want to do (okay, the second thing - the first thing is testing it) is get it in the hands of users. I like apps that are updated frequently with occasional new features, bug fixes, and responses to feedback.

This seems to fit well with the App Store's model where you can post updates whenever you like. But just because something is shippable doesn't mean you should ship it.

The App Store punishes this release model in a very significant way.

Reviews.

When you release an app that has "minimum viable product" level functionality, there are features that you haven't implemented yet. The plan will be to implement these over the following weeks and months, but users will be buying and paying for the product as it is today, and writing reviews of it. Reviewers will call out any feature that they think should be there, and give you a one-star rating noting its absence. Fair or not, that's the way it is.

Look at Resume Designer, for example. I released this app without support for user-selectable fonts. I knew I'd add it later, and I felt the app was useful and created a good looking resume with the fonts that I'd coded into the template. But what I ended up with was some one-star reviews from users who expected to be able to change the font.

Now, almost a year later, I've had that functionality in the app for months, but those reviews still haunt me. They bring down the overall average, but more importantly, they show up when users click to see reviews of "All Versions", and there's no way for me to point out that "this review is no longer correct or relevant".

The reason a user would click to see "All Versions" is because whenever you release a new version, the current version now has no reviews, and the only way to see any reviews at all is to click "All Versions".

Most users do not come back and revise old reviews.

Let this be a cautionary tale: Release Early is a bad idea in the App Store.