Archive for December 24, 2020

Thursday, December 24, 2020

SwiftUI Layout Explained

Florian Kugler:

🌲 As a little Christmas present to the community, we’re making our entire SwiftUI Layout Explained video series free to watch until the end of the year. 🌲


We did a lot of research for our book, Thinking in SwiftUI, but even so we kept encountering layout behavior that we couldn’t really make sense of.

We decided to go one step further, and reimplement SwiftUI’s layout system, along with the layout behavior of many built-in views. This forced us to think hard about the algorithms, and helped us understand SwiftUI’s implementation by comparing it to our own.

All of this is documented in our latest Swift Talk collection: SwiftUI Layout Explained. With eleven episodes, five hours of live-coding and discussion, a hand-written transcript and sample code, there’s plenty to enjoy over the winter break.

Apple Removes Unlicensed Games From China App Store

Chance Miller:

Apple is in the process of purging “thousands of video game apps” from the App Store, according to a new report from The Wall Street Journal. This comes as China cracks down on unlicensed games in the country, but the removals extend beyond the gaming category in some cases.


The issue centers around a regulation in China that requires video games to be licensed before being released. App Store developers have actually been able to skirt this requirement for years. For instance, Apple would allow games into the App Store while they were awaiting their license, and it simply wouldn’t enforce the requirement in some cases.

Today’s report from The Wall Street Journal also adds that China has also demanded that Tripadvisor and over 100 other apps be removed from the App Store, without explanation[…]

As far as I can tell, the “unlicensed” games are not using content without permission from the copyright holder. It just means that they are, for whatever reason, not approved for sale by the government.

Of course, Apple needs to comply with government regulations for its App Store, but it’s choosing to prevent customers from installing apps from other sources.


How to Favicon in 2021

Andrey Sitnik (via Hacker News):

Here comes the minimal set of icons that I came up with in my research and practice. It should work with all popular browsers and devices, old and new.


Apple’s “Privacy Nutrition Labels” Are a Blessing and a Curse

Johnny Lin (tweet):

Apple doesn’t verify any of the App Privacy information that app developers submit - because they can’t. There is currently no way for Apple to know what an app does with user data after the data is sent to the app. But by calling it equivalent to “Privacy Nutrition Labels”, Apple irresponsibly implies that this privacy information is vetted, when that is absolutely false.

This results in two unintended consequences: it creates a false sense of security for users, and an incentive for more dishonest and privacy-invasive apps in the App Store.


In this situation, both email apps collect basic analytics. The dishonest app, however, writes in their App Privacy that they don’t collect or sell any data, while the honest app admits that they collect basic analytics. So you read the App Privacy for both apps, and decide that since you want to “maximize privacy”, you download the dishonest app - the one that secretly sells your emails to third parties. It’s not your fault - it’s the fault of a poor incentive structure.

As he notes, Apple is financially incentivized to allow dishonest apps to make lots of money, which they partially pour into App Store Search Ads, and many of these have remained in the store over the long term.


Update (2021-01-22): Dimitri Bouniol:

Seems like Apple is verifying App Privacy information after all — this came in even though we didn’t submit an update or anything, though we clearly forgot that RevenueCat does indeed collect information when we thought our app didn’t collect anything…

Or, rather, Apple is verifying some of the information. As with App Review in general, it’s not possible to determine all the things an app might do.

David Barnard:

By default @RevenueCat doesn’t actually collect any PII (we don’t even store the IP address), but Apple does consider purchase history something that needs to be disclosed even if it’s not tied to a user’s identity.


Austin Mann:

What does 12-bit mean? Well, HEIC is limited to 8-bit color, which gives us 256 different shades of red, green, and blue. 12-bit expands this range to 4,096 shades of red, green, and blue, which basically means ProRAW can render far more nuanced shades of each color than lossy formats like JPEG or HEIC.


As of now, December 2020, you must be using an iPhone 12 Pro or iPhone 12 Pro Max to capture in ProRAW, and you must be running iOS 14.3 or later.


You’ll see the most significant impact in extreme scenarios — ones where the general algorithms can’t do all the work. Shooting scenarios like indoor mixed lighting (cool and warm), extremely low light (like shots of stars), super high dynamic range images (like shadowy foreground with sun-lit red rock in the background).


ProRAW is not simply a magic switch you can flip on to make your photos better. In fact, the non-ProRAW file initially looks much better than the ProRAW file, so shooting ProRAW really only makes sense if you intend to spend the time fine-tuning the image in post.

Ben Sandofsky:

ProRAW images are regular DNG files that take advantage of some little known features in the specification, and introduce a few new ones.


Smart HDR does this in the least destructive way. Apple worked with Adobe to introduce a new type of tag into the DNG standard, called a “Profile Gain Table Map.” This data gives your editor everything it needs to know to tone map your photo image and end up with results identical to the first party camera. Because it’s separate data, you can turn down its strength, or turn it off completely.


Once you get RAW in your hands, the first thing you’ll notice is capture speed. A traditional RAW capture takes as little as 50 milliseconds. ProRAW takes between two and three seconds to finish processing.

The built in iPhone camera does a great job hiding this, apparently processing each photo in the background in a queue. However, we’ve found the shutter stalls after firing three shots in quick succession.

Nick Heer:

One of the cool things about the DNG format is that, because these are tags applied as adjustment to the contained image data, we can edit those tags using exiftool. I was unable to change NoiseReductionApplied, but I modified a few other key tags, and this is the result compared to the base ProRAW:


As I mentioned, I have been trying out ProRAW for about a month now, and I am very pleased. It is another tool in the iPhone photography toolbox that, for me, does not entirely replace third-party camera apps. That is a good thing; I want to see exceptional independent apps like Halide and Obscura succeed on the iPhone. It is, however, a worthwhile addition that underscores how great of a camera this telephone really is.

ProRAW also largely accomplishes the pitch Apple makes for it. I can nitpick the amount of control a photographer has with ProRAW compared to other RAW capturing apps, but one thing I have been consistently impressed by is just how similar the HEIC and ProRAW versions of the same scene appear. It really does seem like Apple has managed to bridge the computational workflow of the standard camera app and the greater flexibility and quality of RAW images. I bet photographers will be pleased.

Om Malik:

When reviewing these images on a big iMac Pro screen, I was gob-smacked by the details that were visible to the naked eye. I was able to get my shades of black and whiter whites from the files. The gradual gradation of grays is part of my editing process, and I didn’t need to do anything much to achieve that. You can feel the fog dancing among the trees. You can feel the sunshine trying to fight its way through the damp.


Update (2021-01-05): Kirk McElhearn:

Unfortunately, Mr. Mann’s misunderstanding stems from two things. First, the fact that Apple uses the term “raw” suggests that these are, indeed, raw files; they are not. Apple’s marketing is deceptive at best, and this example shows that if the type of photographer who uses raw files confuses this, then they’ve managed to confuse the very demographic they’re targeting.

The second mistake Mr. Mann made was importing the ProRAW file into Lightroom, where he was planning to edit it. Alas, Lightroom does not interpret these files correctly.


If ProRAW was really meant for pros, it would include the raw data, along with the information necessary to display photos using Apple’s computational photography features. But this would take up too much space. As it is, ProRAW files are as much as 10 times the size of JPEGs, so they’ll fill up your iPhone – and your iCloud storage – quickly. But real pros would be willing to accept that to have the actual raw files, plus Apple’s special sauce.