Archive for March 22, 2019

Friday, March 22, 2019

iOS 12: Changes in Memory Accounting

Apple:

iOS 12 and tvOS 12 require apps to use memory far more efficiently than before. If you have difficulty reducing your app’s memory requirements, contact us to request an entitlement for your app to use iOS 11-style memory accounting.

Steve Troughton-Smith:

An example of Apple providing private entitlements on request so that iOS apps can do things they could not otherwise; there are so many ways in which Apple could use these w/ trusted partners to build categories of apps that would otherwise break rules

Pádraig:

This memory requirement is news to me. So great to hear about a change like this 6 months after it shipped. Also there’s no details I can find on what the rules are it’s just “use less memory”. Really hate this platform sometimes. 😥

Orion Edwards:

The problem with extra entitlements like this is that apple is useless. We asked for the “don’t show Apple Pay pop up when you see NFC” entitlement as it interferes with our app’s behaviour over a month ago. No response from apple whatsoever

We found a similar thing online, except their story was “apple ignored me for over a month, but then I asked my friend who works at apple to have a look and then it got dealt with.” It’s hard to have a handy friend who works at apple when you live in New Zealand 😞👎

Andrew Grant:

To be fair, this is them grandfathering in existing apps after they made significant changes to available memory in iOS 12. There are a lot of apps that are still submitting with the old SDK due to this change

Previously: Transmit 5 on the Mac App Store.

Late Responders

Paulo Andrade:

To summarize what was said above, some features that rely on the responder chain should be available even when the relevant responder isn’t on the the chain’s path.

With that in mind I propose a solution I’m calling “Late Responders”. The way it works is that you setup a late responder registry further up the chain, such as the window. Then, the responders further down the chain can register a late responder with the registry and let it handle any features that should be always available.

This way even if the responder itself isn’t in the chain’s path, its late responder surely will be.

See also: Swift Diary #8: forwardInvocation.

Previously: