Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
How iOS 15 makes apps launch faster (medium.com/geekculture)
154 points by jshchnz on July 5, 2021 | hide | past | favorite | 59 comments


Things like this make me wish that we could submit multiple builds to the app store with different deployment targets and have it install the highest supported one. They've made a few of these runtime improvements over the last few years that could make apps faster and smaller, but in practice very few of the apps I have installed take advantage of them because they prefer to maintain compatibility with older versions instead.


That's the name of the game with Apple development, unfortunately. Every year, I get excited for all these cool new SwiftUI features at WWDC and wait 2+ years to actually use them.


I actually think that Apple intentionally makes compelling features just so they can drive people to newer versions of the OS (and therefore to newer phones).

But that’s just a theory. An Apple theory.


Well for two years in a row they did not remove support for iPhones. So iOS 15 will support the same devices as iOS 13 did. So it seems they are now less driving people to new phones.

I think the emoji are more driving people updating the OS than any features. And developers will only update their minimum target if people leave behind that version.


The jury is still out on "less driving" (though my intuition agrees with you).

Here are some things that they are doing to "softly drive" people to newer phones:

- Emoji

- iMessage features (like Memoji stickers)

- Non-resource-intensive privacy features (such as choosing individual photos for an app to access)

- Pushing app developers to newer SDKs (which makes them change code and put in more work to support older iOS versions even if they can after making use of a new API)

- Extra RAM usage for the iOS versions due to additional background tasks that cannot be disabled

There are more (as a long-time device user I regularly see examples), but I'm limiting myself to 15min on this reply.


Probably a good idea to wait regardless, gives them time to work out the issues that inevitably come with the fancy new shiny.


Oh, absolutely. I got excited for the SwiftUI .toolbar modifier last year. It was wildly broken during the betas, and they just... didn't fix it for iOS 14's launch.

No idea if it works now, but definitely a lesson in the dangers of the new and shiny.


hey, just like web development.


Except on web, some madness are still using android 4.x or even ie 11. Who on the earth have to support something published 8 years ago...


Isn’t that the idea with “bit code”? Basically, Apple keeps the LLVM IR (of sorts) and optimizes it on their end (and removes unneeded image assets (such as @2x on an @3x device)). So the build your device downloads is highly optimized specifically for your device model.

Or do you mean something else?


There isn't much evidence that Apple has ever used bitcode for anything other than making existing watchOS apps run on the new arm64_32 architecture. It's required for app thinning (where they only install the architecture needed for the actual device rather than all of them), but if that's not just an arbitrary requirement to get people to enable bitcode it's unclear what it's being used for.

I don't know if bitcode could be used to recompile your app with a higher deployment target and have useful effects, but it isn't being done in practice.


This would only support optimizing for different architectures. Your code is already compiled from Swift -> IR and thus these features would not be part of the IR.


Architecture specific («post-compile» time pass) and chained fixups (link time pass) optimisations are orthogonal, and both can take place. Since a) Bitcode IR is, essentially, an object file; b) the destination platform version is known at the post-processing (i.e. download) time, it is possible to also optimise the executable binary format to make us of whatever enhacements are available, too.


Bitcode does not do this, unfortunately.


What about submitting Bitcode when uploading to App Store Connect? Would it take advantage of the change and build an optimized binary for iOS 15 while still supporting the old way on pre-iOS 15 and deliver the appropriate binary upon download?


The mach-o format supports a “fat binary” that contains multiple architectures and then the App Store can only deliver one of those architectures to a particular device. Bitcode lets Apple recompile a different architecture slice using this format. However, since this change is unrelated to the architecture it can’t take advantage of this format.


But only if you make your app incompatible with all older iOS versions? Seems to me like not many people will benefit from this.m for some time to come.


That’s always been true of these sorts of changes. But new apps often target the latest OS, and it’s common for existing apps to target “current minus one”, so it will only take a year or two for existing maintained apps to start benefitting from this.


There’s also a linker flag that lets you use this format on older OS versions. It seems to work (I tested as far back as iOS 13.4.1) but couldn’t find any documentation to guarantee it won’t cause issues https://developer.apple.com/forums/thread/683596


with iOS it's not a problem

85% of all devices at already all on iOS 14

https://developer.apple.com/support/app-store/


15% is most likely too much to ignore. Most web developers have had to support IE11, which is at like, 3-4% tops.


I think the bigger problem is corporate environments, in my company, our B2B application sees IE11 usage at around 20-30%.


This. Hell, most corporate users are still using Windows 7 (I try to avoid working some place I can't have a Mac, but despite Windows 8 having been released in 2012 and 20 in 2015, I have never seen either in a corporate environment).


It is best to make your own decisions there based on some telemetry tbh. It will likely depend on your demographics but also upgrades may depend on your business model. For instance, you may be motivated to upgrade if you realize users who are on older iOS versions don't generate revenue.


As someone with a device locked on iOS 10 this makes me very happy. I have a desktop computer I bought in 2008 which is running Windows 10 and happy as a clam - and yet all my apple devices from before 2018 are essentially now bricks.


What model? iPhone 6S was released in 2015 and will be able to run iOS 15.


Also Intel PCs haven’t changed a fraction as fast as the iPhone did in last decade.


Limited to iOS 10 means an iPhone 5 or 5C. So you're talking about a phone which is eight or nine years old. Tell me, what non-Apple phone from 2012 would have given you better long term support?


My iPhone SE is from 2016 and is getting iOS 15.

What device do you have from 2017 that even shipped with iOS 10?


iOS 15 supports up to iPhone 6s wich was released in 2015

Windows 11 supports PCs with processors up to Intel Gen 8, wich was released in late 2017


I'm currently running Windows 11 preview on an i7 3970, circa 2012... It might not be "supported" at launch, but it works currently.


My iPad Air 2 will run IPadOS 15 and that was released in 2014.


> before 2018 are essentially now bricks

Quit being overly antagonistic, you know this is hyperbole because you are

> someone with a device locked on iOS 10


I feel like you think this means munk-a is merely refusing to update past iOS 10, but there are devices that simply can't. (The ones stuck specifically on iOS 10 forever are the iPhone 5 and 5c.)


Claiming devices from before 2018 are essentially bricks is still hyperbole because the iPhone 5c was released long before that, 2013. The iPhone 6s, released in 2015, will run iOS 15.

I think the original message was poorly worded, I think they were imagining that devices that can't run iOS 15 would essentially be bricks because every app maker would build their apps in this way that only works on iOS 15 devices. Of course, this will not happen. It has long been the case that developers need to balance the advantages of using techniques enabled in newer OS versions against the advantage of supporting a wider range of OS versions.


Well, as someone who stays on slightly old versions of iOS, that I can't even order food off of DoorDash is pretty frustrating. The reality is that people do in fact derelict these old devices under an expectation that everyone is rich enough to throw out perfectly functional equipment and replace it all the time. It is sad that Apple is actually the best at this :/.


I don't care about 3rd party delivery services but it looks like like DoorDash has a website so you can still be their customer.

It looks like their app requires iOS 13 which requires an iPhone 6s or newer (though it can run iOS 14 and will run iOS 15). The iPhone 6 won't run iOS 13, it had five years between its release and the release of an OS it can't run, that still seems like a respectable amount for a phone.

Apple is way better at supporting the longevity of their devices, through build quality and continued OS support, than the Android world is.


Given that my iPhone 6 cost $200 and I break a screen every 1-2 years, 5 years is more than enough. I’d never pay to replace a screen or battery on an old phone. I’d imagine a significant portion of devices have been accidentally smashed or dropped in a lake by that time.


>Well, as someone who stays on slightly old versions of iOS, that I can't even order food off of DoorDash is pretty frustrating.

Well, the idea with iOS/macOS is "Have a recent OS+Device, we change things all the time and demand that everyone moves along in 5-6 years or so".

With Windows it's "We support 20+ years old programs just fine. If you're OK with having to deal with 8+ layers of GUI code and legacy cruft, we're your thing".

It's not like this hasn't been the case for decades, for it to be a suprise...


Calling them 'essentially bricks' is calling them functionless, which they are not.

The iPhone 5/5c was released nine years ago. I'm just not crying for it. If your app dev isn't updating for iOS 15, you're stuck with the old version anyway. Sorry your decade-old device can't use the latest technology.


Well, I'll claim they are potentially worse than bricks, as they are riddled with remotely exploitable security holes (such as the various iMessage ones that come out every year)... like some kind of dangerous land mine in the shape of a brick.


I wouldn’t mind so much if I could have access to older software that still runs on the device.


This is a real problem for my device - I essentially can't download any "new" software since the app store only appears to make versions incompatible with the newest OS available - and my device (a 2012 iPad 4 Retina to be precise) refuses to update past iOS 10.3.3


these devices are nearly 10 years old


iPhone 5 is 9 years old, iPhone 5C is 8.


Oh sorry to clarify 2018 is when my partner got their most recent Apple device which will be able to run this update fine - our previous device is a Retina iPad from 2012. Re-reading my wording yea, I can see how that read as hyperbolic, sorry about that!


>and yet all my apple devices from before 2018 are essentially now bricks.

I doubt many 2017 and 2016 models are "now bricks", though "before 2018" might also mean "2012" or so.

In any case, none of them is a "brick". Even the unreleased Monterey version, post AS reveal, still supports tons of pre-2018 models:

MacBook: Early 2016 and newer MacBook Air: Early 2015 and newer MacBook Pro: Early 2015 and newer Mac Mini: Late 2014 and newer iMac: Late 2015 and newer iMac Pro: Late 2017 Mac Pro: Late 2013 and newer

And of course Big Sur continues to work on even earlier models.

A very similar story is true for iOS devices - which is in fact a much better story than vendor Android support (which usually is 3 years max) or Windows Phone (which was discontinued altogether).


I have an iPhone 6 and while it doesn’t have the new iOS it still has all sorts of useful functionality. Apple does great in this regard compared to say, Samsung. With Android devices you’re also dependent upon the carrier for updates, which is obviously not what anyone sane would desire.


> apple devices from before 2018 are essentially now bricks

That's not correct. My iPhone 6S is getting iOS 15 update too.


My iPad Pro from 2017 works like the first day, I wanted to update but besides a nicer design there is not need to update it’s just super fast at everything


Are you me? Same here, except mine is from 2015. Apart from a small chip on the edge of the screen, as a result of overzealous cabin crew, it works as well as it did on Day 1.


Kind-of related because this article is on medium... Any downside to me blocking `||accounts.google.com/gsi/iframe/select` via ublock origin? Will this break my use of google drive or search engine?

I hope not because I'm doing it anyway. Medium.com makes me barf. Which is sad because it hosts some great content.


It appears to be related to sign-in flow[1], but may not affect signing in via Google.com or other Google-hosted services directly. It's the API for "Sign in with Google", far as I can tell here.

[1]: https://developers.google.com/identity/gsi/web


Thanks


For medium I recommend just blocking Javascript.

No signup popups, fast loads.


If you go to https://myaccount.google.com/permissions, you can turn off "Google Account sign-in prompts" on each of your Google Accounts and then you won't see any more of those prompts.

Don't know if Facebook has a similar option for their accounts though; I've seen a similar sign-in prompt elsewhere for Facebook.


The Sign in with Google dialog even shows for me, a logged in user..


I hope this works in my old iPad… I’ve been noticing quite a bit of slowness these days


Not sure which model you have but it looks like they’re supporting the same models as iPadOS 13 and 14

https://en.m.wikipedia.org/wiki/IPadOS_15#Supported_devices




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: