Archive for February 27, 2025

Thursday, February 27, 2025

Xcode Spell Checking

Jesse Squires:

Did you know that Xcode can spell check your code and comments? Based on my experience working on large teams and large Xcode projects, this is a little-known feature. I routinely find spelling errors, not only in code comments but in symbol names. For the latter, this is particularly frustrating when a misspelled symbol is widely used because correcting that error — a rename that affects a substantial portion of the codebase — produces a large diff.

[…]

In Xcode, you can enable spelling from the Edit menu, Edit > Format > Spelling and Grammar > Check Spelling While Typing. Just like a typical word processor, Xcode will helpfully underline misspelled words and offer to apply corrections.

Even better, Xcode understands variable names and will correctly identify errors in camelCase, snake_case, and other common identifier formats.

A good reminder. I think I used to have this enabled, and then it got turned off, and then I forgot Xcode could check spelling because the option isn’t in the contextual menu like in most apps.

It seems to ignore single-letter prefixes and some multi-letter ones like rw, but it doesn’t like ns or most Hungarian notation.

nRootTag

Nathan Kahl (post, Hacker News, MacRumors):

George Mason University researchers recently uncovered a way for hackers to track the location of nearly any computer or mobile device. Named “nRootTag” by the team, the attack uses a device’s Bluetooth address combined with Apple’s Find My network to essentially turn target devices into unwitting homing beacons.

“It’s like transforming any laptop, phone, or even gaming console into an Apple AirTag - without the owner ever realizing it,” said Junming Chen, lead author of the study. “And the hacker can do it all remotely, from thousands of miles away, with just a few dollars.”

The team of Qiang Zeng and Lannan Luo—both associate professors in the Department of Computer Science—and PhD students Chen and Xiaoyue Ma found the attack works by tricking Apple’s Find My network into thinking the target device is a lost AirTag. AirTag sends Bluetooth messages to nearby Apple devices, which then anonymously relay its location via Apple Cloud to the owner for tracking. Their attack method can turn a device—whether it’s a desktop, smartphone, or IoT device—into an “AirTag” without Apple’s permission, at which point the network begins tracking.

Via Filipe Espósito:

The researchers informed Apple about the exploit in July 2024 and recommended that the company update its Find My network to better verify Bluetooth devices. Although the company has publicly acknowledged the support of the George Mason team in discovering the exploit, Apple is yet to fix it (and hasn’t provided details of how it will do so).

The researchers warn that a true fix “may take years to roll out,” since even after Apple releases a new software update that fixes the exploit, not everyone will update their devices immediately. For now, they advise users to never allow unnecessary access to the device’s Bluetooth when requested by apps, and of course, always keep their device’s software updated.

Previously:

Update (2025-03-03): Dan Goodin:

But it isn’t until page 5 of the research paper that we learn the attack requires the successful infection of one device if it’s running Linux and two devices when running Android or Windows.

So unless I’m missing something, this attack is only an iterative development. An attacker could already track infected devices connected to the Internet pretty accurately if they had location services turned on, and even if not, an IP address could give a rough approximation. All that’s new here is the abuse of Apple Find My to make tracking more accurate and allow it to occur even when the infected device isn’t connected to the Internet.

That last part still seems like a big deal to me.

The Tyranny of Apps

Rupert Jones (Hacker News):

Apps have burrowed their way into seemingly every aspect of our lives and there are lots of reasons why companies are pushing us to use them. With an app, it is often “one click and you’re in”, rather than having to faff around online finding the website and remembering passwords. It is also for the “push notifications” that mobile apps send to grab our attention and get us to buy stuff. Many tech experts also argue that apps are generally more secure than websites and allow banks and others to carry out sophisticated ID verification using face, voice and fingerprint biometrics.

But millions of people who cannot afford a smartphone or have an older device that does not support some services are increasingly being locked out of deals, discounts and even some vital services, say digital exclusion and pro-cash campaigners.

They are missing out on everything from savings on their weekly shop, to some of the best interest rates for their cash. And not signing up to the app revolution is making activities including paying for parking and going to concerts increasingly challenging.

I do have a smartphone, so I can run the apps, but I don’t like it when they could have just been Web sites. Having a large number of these limited-use apps takes up a lot of space: in phone storage, on the home screen, and in the App Store’s list of updated apps. Sometimes an app will have lower quality images/maps than the Web site or will refuse to function, right when you need it, unless you install an update. They’re often less reliable, worse at remembering logins, or require an e-mail magic link dance.

Apple:

Coming with iOS 18.4 and iPadOS 18.4 in April, Apple News+ subscribers will have access to Apple News+ Food, a new section that will feature tens of thousands of recipes — as well as stories about restaurants, healthy eating, kitchen essentials, and more — from the world’s top food publishers, including Allrecipes, Bon Appétit, Food & Wine, Good Food, and Serious Eats.

With the new Food feature, users will be able to find stories curated by Apple News editors, as well as browse, search, and filter tens of thousands of recipes in the Recipe Catalog — with new recipes added every day.

I think Apple News would have a better user experience with a Web site and an RSS feed than as an app.

Previously:

Update (2025-02-28): Nick Heer:

If you do not have enough money for a smartphone, you might be locked out of discounts for basic goods. My local supermarket is currently offering a dollar off eggs if I use my personalized coupon — but it is only available in the app.

Even for those of us with smartphones — a majority of people in Canada in all under-75 age groups, for example — we might not want to install software to get grocery coupons or park their car. These apps are often clunky experience, and seem to usually be a website in an app wrapper. Web apps are not treated as mainstream citizens on iOS, in particular, so these bad apps are all we get.

Nick Heer:

Apple News is not only a mediocre app experience, but its existence also causes regressions on the open web.

Stories in Apple News have a permalink, like anything else on the web. However, unlike just about any link you have seen from a mainstream publication for the past, say, twenty years, these links are inscrutable. Instead of being in a format containing the source of an article and its title, all Apple News permalinks are something like https://apple.news/Ayls8UZCzQnWfFNRugL3tPA.

[…]

In MacOS browsers, I am prompted to open Apple News to view the article; if I decline, I have no next steps.

Update (2025-03-04): P. Martin Ortiz:

The smartphone boom changed everything. Suddenly, apps were everywhere, connecting people, solving problems, and entertaining us. But for a while now, they’ve started to feel more like a burden than a blessing. In today’s web-first world, most native apps feel redundant, cluttering our phones unnecessarily. With how far modern web technologies have come, it’s time to rethink if we really need them.

Jeremy Keith:

This is all true. But this post from John Gruber is equally true: One Bit of Anecdata That the Web Is Languishing Vis-à-Vis Native Mobile Apps[…]

[…]

Ten or fifteen years ago, the gap between the web and native apps on mobile was entirely technical. There were certain things that you just couldn’t do in web browsers. That’s no longer the case now. The web caught up quite a while back.

But the experience of using websites on a mobile device is awful. Never mind the terrible performance penalties incurred by unnecessary frameworks and libraries like React and its ilk, there’s the constant game of whack-a-mole with banners and overlays. What’s just about bearable in a large desktop viewport becomes intolerable on a small screen.

This is not a technical problem. This doesn’t get solved by web standards. This is a cultural problem.

Via John Gruber (Mastodon):

There are mobile web proponents who are in denial about this state of affairs, who seek to place the blame at Apple’s feet for the fact that WebKit is the only rendering engine available on iOS. But WebKit’s limitations have nothing to do with the reasons so many websites suck when experienced on mobile devices. The mobile web sucks just as bad on Android.

[…]

And the app experiences from the same companies (whose websites suck on mobile) are much better.

We must be using different apps. The apps-that-should-have-been-web-sites that I see are mostly just wrappers over the same Web-based content. So we end up with the bloat of the app plus the bloat of the JavaScript libraries, and the end result is slower and less reliable than just going to Safari.

Update (2025-03-05): Marc Kalmes:

I’m starting to notice worse eyesight and increased the font-size on the iPhone. There are not many apps adhering to this change and websites-inside-container-apps are definitely not among them.

Our Changing Relationship With Apple

Brent Simmons (2024):

Apple’s positive effect on my life should not be underestimated. […] But I need to remember, now and again, that Apple is a corporation, and corporations aren’t people, and they can’t love you back. You wouldn’t love GE or Exxon or Comcast — and you shouldn’t love Apple. It’s not an exception to the rule: there are no exceptions.

Apple doesn’t care about you personally in the least tiny bit, and if you were in their way somehow, they would do whatever their might — effectively infinite compared to your own — enables them to deal with you.

Marco Arment:

This week’s Under The Radar is significant, therapeutic, and my favorite episode in recent memory:

Our Changing Relationship with Apple

How our values have diverged and our perceived relationship has changed with Apple, forcing our motivations for iOS development to evolve.

Jeff Johnson (2023):

I’m organizing a boycott of Apple’s Feedback Assistant, starting immediately, and I encourage all Apple developers to join me.

Matt Massicotte (Mastodon):

To put it mildly, I have been struggling with this. I have been trying to find ways to respond. Something that could give me some kind of leverage.

Apple relies heavily on feedback from third-party developers to find bugs in new APIs and OSes. Because of their development cycle, this is especially critical during a beta period.

So I’m just no longer going to use Feedback Assistant. I will not use beta OSes. I will not share crash reports for Apple software. Because of Swift’s exclusive use of X, I will no longer participate in the Swift forums or evolution process. I will also actively discourage others from doing these things.

Drew McCormack:

For him to swear off participating in the Swift Forums is immense, knowing how active he has been. I feel the same way.

Swift has since joined Mastodon.

Francisco Tolmasky:

People haven’t put 2 and 2 together that Apple doesn’t give a shit about developers or their feedback. You’d think after years of being notoriously known for never acknowledging or responding to feedback people might take the hint, but instead they construct a fantasy where it’s some prized asset they don’t want you to know about. Look at the new Settings. You think Apple cares about software quality? Apples ideal state is you making them 30% and never bugging them.

To be clear, I’m not saying “file feedback” to get back at them! I’m saying “he’s just not that into you”. You’re not gonna fix him babe. You wouldn’t work this hard to reform Google or Facebook, right? Apple just sent their army of lawyers to defend Google’s web monopoly. Time to wake up, they’re not on your team. There is no version of participating in their closed ecosystem that somehow “fixes the problem from the inside” or whatever you think might happen aside from a revenue relationship.

Craig Hockenberry:

Empires crumble. This is how Apple’s begins.

I think peak Apple was somewhere around 2010. But the innovations and progress since are underrated, and I don’t think it’s crumbling in any sort of business sense. Even if you think they’ve lost their quality or design or moral authorities—which I think are all true to varying degrees, but these are not binaries—what would the effect of that actually be? What alternative do people have?

Boycotting seems futile to me, but I support Johnson and Massicotte participating or not participating however is best for them. It’s healthy to reevaluate your goals, how you spend your time, and how your actions play into the bigger picture. To me, the main point is that there isn’t really a relationship with Apple and never was. It’s in our heads, which actually means it’s under our control. Not Apple, but how we think about Apple.

I think Arment and Tolmasky have it right, which is that Apple’s going to do what it’s going to do. Mostly, all we get to decide is whether or not we want to play in their sandbox. If you do, make it about the satisfaction of what you’re building and about serving your customers and a community that shares your values. Apple should be seen as a tool to those ends, not as a parent or partner or religion. Such expectations will only lead to disappointment.

Previously:

Update (2025-03-03): See also: Hacker News.

Update (2025-03-12): See also this thread and reporting bugs to Apple.

Update (2025-03-17): ATP 630 discusses Thoughts on Feedback.