← Back to context

Comment by jonhmchan

12 years ago

I realize that a lot of people will be focusing on the UI redesign for iOS 7, but the standout thing for me was automatic updates from the App Store. I think it's a huge thing for developers.

One of the biggest pains I think we face as developers is software fragmentation. So far Apple has done a very good job of having users update versions of iOS and keeping consistent with hardware specifications - it's probably one of the top three main drivers for why I develop primarily for iOS (sometimes solely for iOS). I'm thinking this reinforces that build-for-iOS-first mentality for developers. If the quality of apps is such a large factor in what's keep users loyal to the platform, this is an important point.

Yeah although a big question is: what will that do to battery life? People who install lots of gimmicky, frequently-updated apps and forget about them after trying them once will suddenly be at a loss as to why their device suddenly doesn't hold a charge as long as it did before.

I fear the auto-update feature combined with multitasking will drastically reduce the typical battery life of an iOS device.

  • Nothing indicated that updates would be instantaneous. It can wait until the phone is plugged in. They also seem to have gone out of their way to minimize battery impact. Apps lifecycles are still controlled by the system, which can presumably decide to suspect those activities if things get dire.

  • That's very true. Though, given the volume of apps and the frequency of updates, I doubt it creates nearly as big of a battery suck than constant background running apps do (I'm looking at you Facebook).

    Another point is that unless updates are being pushed constantly, I don't see why it would suddenly kill battery life more so than if they were pulled - it is just the timing of when to do updates (over time or "update all" as a batch - I doubt people actually distribute their updates according to battery usage).

I couldn't agree with you more. There was huge version fragmentation for my apps, and this is going to totally take care of that. I had been thinking about doing some kind of hybrid web view thing to compensate for the lack of automatic updates. This is a huge win for me personally as well because I have like 24 app updates all the time.

Still, it would be nice to have more composability in apps. I'm working on a UI plugin / framework for apps and I really wish that I could do incremental updates without developers having to redeploy their entire app. If only you could include app dependencies so that when you downloaded an app that used Dropbox, for example, it would download Dropbox too. That way, when Dropbox wanted to update their SDK, they could just push an update to their app instead.

  • I've been using the hybrid native/web approach to circumvent the downloads as well. I didn't go so far as push actual UI a la HTML to load in a webview, but I made dynamic native UIs that changed according to certain responses made on startup (think sending a news update with a picture url loaded into a UILabel/UIImageView)

    The composability point is interesting. I like the idea of dependencies, and I've used url schemes to do it. You can test for whether or not an app is installed (given that it has a scheme) by testing invoking - (BOOL)canOpenURL:(NSURL *)url from UIApplication. Something interesting would be for Apple to require that each app have a custom URL scheme, and possibly generate them from a unique app identifier.

Hand in the air, I don't have an iPhone. Really, they only just introduced auto-updates on iOS? Wow...

> the standout thing for me was automatic updates from the App Store

Also makes a lot of sense from a user's perspective. Click-to-update is so last decade.

  • Except for limited banwidth connections. I don't want my copy of Baldurs gate on my iPad deciding to update itself while connected to a 3G hotspot

Note that the (in the beta at least) the auto-update feature can be turned off in the Settings\General\Background App Refresh page