Archive for May 10, 2024

Friday, May 10, 2024

Black Camera.app Screen and Broken Shutter Button

YoungCraxy:

This is about to drive me crazy, whenever I capture a snapshot, when I press the camera, sometimes a black screen pops up and this doesn’t go away, I can’t shoot anything, I have to go in and out of the camera again.

There are two really annoying iOS camera bugs, which I’ve been meaning to write about for years:

Update (2024-05-20): Mike Rockwell:

Imagine this happening when you’re trying to capture a moment that is absolutely impossible to recreate. Like the birth of your child.

This did indeed happen yesterday with my son—not his birth, but a really cute moment that I missed capturing. And this was far from the first time.

Update (2024-05-28): I’m not sure what’s changed, but I had a lot more problems with the shutter button this last weekend, with it failing to respond around half the time. The buttons to change lenses often didn’t respond, either. The problem recurred soon after restarting the phone.

Swift Proposal: Objective-C Implementations in Swift

SE-0436 (via Becca Royal-Gordon):

Swift has always had a mechanism that allows Objective-C code to use Swift types: the @objc attribute. When a class is marked with @objc (or, more typically, inherits from an @objc or imported Objective-C class), Swift generates sufficient Objective-C metadata to allow it to be used through the Objective-C runtime, and prints a translated Objective-C declaration into a generated header file that can be imported into Objective-C code. The same goes for members of the class.

This feature works really well for mixed-language apps and project-internal frameworks, but it’s poorly suited to exposing private and especially public APIs to Objective-C.

[…]

We propose adding a new attribute, @implementation, which, when paired with an interop attribute like @objc, tells Swift that it is to implement a declaration it has imported from another language, rather than creating a new declaration and exporting it to that language.

Specifically, in this proposal, @objc @implementation allows a Swift extension to replace an Objective-C @implementation block. You write headers as normal for an Objective-C class, but instead of writing an @implementation in an Objective-C file, you write an @objc @implementation extension in a Swift file. You can even port an existing class’s implementation to Swift one category at a time without breaking backwards compatibility.

This has been a long time coming, and it seems like a great idea. This also makes it possible to implement a base class in Swift and then subclass it in Objective-C.

Steve Troughton-Smith:

No joke, @_objcImplementation has immediately become my favorite way to port ObjC classes to Swift bit by bit. I’m now using it in Pastel to push the last remaining bits of ObjC out of the codebase. It’s basically header-driven-Swift, which is kinda neat.

Previously:

Update (2024-05-30): Paul Samuels:

I had a case recently where I wanted to migrate an Objective-C class to Swift but as it was a large class. I wanted to go one method at a time to allow easier reviewing and to keep my sanity, whilst having each step still pass all unit tests. I quickly hit issues where it seemed like I would have to bite the bullet and just do it as a single large commit. Helpfully I saw a proposal to allow you to provide Objective-C implementations in Swift, which lead me to finding the _ version of the feature spelt @_objcImplementation that is perfect for my quick migration until the full implementation lands.

FDA Recalls Defective Insulin Pump App

Jess Weatherbed (Hacker News):

At least 224 people with diabetes have reported injuries linked to a defective iOS app that caused their insulin pumps to shut down prematurely, according to the US Food and Drug Administration (FDA).

On Wednesday, the agency announced that California-based medical device manufacturer Tandem Diabetes Care has issued a recall for version 2.7 of the iOS t:connect mobile app, which is used in conjunction with the company’s t:slim X2 insulin pump. Specifically, the recall relates to a software issue that can cause the app to repeatedly crash and relaunch, resulting in the pump’s battery being drained by excessive Bluetooth communication.

This is an interesting failure mode that was probably not contemplated when designing and testing the app. I also wonder to what extent quality control decreases as more and more products become subsumed by smartphones. When everything is an app that’s in theory easy to update, how carefully does anyone check that a given version is solid?

I’m also fascinated by the idea of FDA recalling an app. What does that even mean when the bug was already fixed back in March? They can’t remove the bad version of the app from the store shelves. Yet it took until May to essentially issue a government press release telling customers to update the app?

I wonder what effect that will have given that most iOS users probably already had automatic updates enabled or heard from the company itself more than a month ago.

Lastly, if ever there were a time that the release notes should accurately describe the benefits of an update, this was it. Yet all the App Store says for version 2.7.1 of the t:connect app is “Overall app performance updates.”

Mariella Moon:

If a pump shuts down without warning and before the user expects it to, it could lead to the under-delivery of insulin. As the FDA explained in its recall, that could result in hyperglycemia and even diabetic ketoacidosis, a life-threatening complication caused by the inability of the body to turn sugar into energy due to the lack of insulin. Tandem Diabetes Care, the company behind the app and the pump, sent all affected customers an emergency notice back in March. It advised them to update their app, to monitor their pump battery level closely and to carry backup insulin supplies.

Via Corentin Cras-Méneur:

We’ve been hit by the issue. The pump was draining really fast. It’s supposed to have been addressed in an update since but lately, the battery drain has been a bit faster than I would have expected…

Previously:

Apple Apologizes for iPad “Crush” Ad

Emma Roth (Hacker News):

Apple has apologized after a commercial meant to showcase its brand-new iPad Pro drew widespread criticism among the creative community. In a statement provided to Ad Age, Tor Myhren, Apple’s vice president of marketing, said the company “missed the mark.”

“Creativity is in our DNA at Apple, and it’s incredibly important to us to design products that empower creatives all over the world,” Myhren told Ad Age. “Our goal is to always celebrate the myriad of ways users express themselves and bring their ideas to life through iPad. We missed the mark with this video, and we’re sorry.”

[…]

The ad rubbed some creatives the wrong way. Hugh Grant called it a “destruction of human experience,” while Handmaid’s Tale director Reed Morano told Apple CEO Tim Cook to “read the room” in a post on X.

As I said, I didn’t care for the ad, and the replies to Tim Cook on Twitter were almost entirely negative, but I’m still surprised that Apple thought it necessary to apologize. I would have preferred an acknowledgment of the widespread Apple ID issue.

John Gruber (Mastodon):

Would this exact same commercial have evoked the same collective response in 2010? I’m going to say no, it would not have. What about in 2018? I’m going to say ... probably not? Something has changed. Part of it is that our culture has changed. I don’t think many people 10 or 15 years ago would have seen dissonance between Apple’s oft-professed sustainability ideals and a commercial celebrating the destruction of artistic tools and objects. And the bigger change is the recognition that computers are eating the world. In 2010 it was seen only as cool that computers were doing more and more stuff. Today there’s widespread uncomfortableness, perhaps outright concern, that the digital world is consuming the analog one. It plays differently today than a decade ago to emphasize that an iPad can replace a veritable truck-full of artistic tools and toys.

But part too is that Apple’s position in our culture has changed. They’re no longer, and never again will be, the upstart. They’re The Man now. They’re part of the firmament of our entire society, not just the tech world.

Andy Allen:

LG phone ad from 2008 (BBH London)

Uli Kusterer:

You’re telling me that not only did Apple decided to run this stupid “crushing it” commercial, they ripped off an old LG ad ???

See also:

Previously:

Update (2024-05-16): Ken Segall:

Apple has a long and illustrious history of great advertising. Only twice in the past forty years has it received a public shaming for an ad or campaign.

In the 1985 Super Bowl, the Lemmings ad insulted the very audience it was trying to win. During the 2012 Summer Olympics, the Genius campaign was savaged for being embarrassingly unfunny. (Even I couldn’t resist joining the attack on that one.)

[…]

When the 2012 Genius campaign was maligned far and wide, it was yanked off the air in a matter of days and simultaneously deleted from Apple’s website and YouTube Channel. Instead of an apology, there was a whitewash. Apple PR said that the campaign was scheduled to run for only a few days all along. Uh, right.

Crush is getting a different treatment. It was the beneficiary of a quick apology (good) and Apple has removed it from broadcast TV (good). However, the ad remains visible in all other media (not so good).

Elizabeth Lopatto:

The message many of us received was this: Apple, a trillion-dollar behemoth, will crush everything beautiful and human, everything that’s a pleasure to look at and touch, and all that will be left is a skinny glass and metal slab.

[…]

Apple has a habit of suggesting its older devices are obsolete by releasing new versions that change their shells and styling without altering what they do in any meaningful way. The point of this ad is not about the iPad’s creative uses — it’s that it’s skinny. That’s the big selling point: the skinniest ever. Apple was so focused on its exciting new marketing feature that it lost sight of what’s really important: the tools that make the things we love. 

Glenn Fleishman:

It just struck me what Apple got wrong with its “crushing ad.”

They thought we would identify with the iPad, not the creative instruments and materials.

Ben Thompson:

This is what I mean when I say that Apple’s iPad ad hit the mark: the reason why I think the ad resonated so deeply is that it captured something deep in the gestalt that actually has very little to do with trumpets or guitars or bottles of paint; rather, thanks to the Internet — particularly the smartphone-denominated Internet — everything is an app.

[…]

One thing I do credit Apple for is not trying to erase the ad from the Internet — it’s still posted on CEO Tim Cook’s X account — because I think it’s important not just as a marker of what has happened over the last several years, but also the choices facing us in the years ahead.

[…]

What is increasingly clear, though, is that Jobs’ prediction that future changes would be even more profound raise questions about the “bicycle for the mind” analogy itself: specifically, will AI be a bicycle that we control, or an unstoppable train to destinations unknown? To put it in the same terms as the ad, will human will and initiative be flattened, or expanded?

See also:

Samsung:

We would never crush creativity. #UnCrush