Archive for April 25, 2025

Friday, April 25, 2025

Virus Protection for Phone

Jeff Johnson:

The app in question is Virus Protection for Phone, which claims to be “Trusted by millions of users worldwide”. I don’t know whether that’s true, but for what it’s worth, the app is currently ranked #88 in the free utilities category of the United States App Store. According to AppFigures, Virus Protection for iPhone is currently the #43 top grossing utility in the US App Store. Not bad for a “free” app, eh? That’s certainly better than my paid app StopTheMadness Pro, also in the utilities category. As you might expect (of scam apps), Virus Protection for Phone has a number of expensive subscription options.

[…]

Given that iOS App Store apps are strictly sandboxed, forbidden from accessing the rest of the system, a virus protection app for iPhone doesn’t seem possible. Specifically, the app claims (ungrammatically) that it can “Scan Device to Remove Virus and Resolve Issues”, which seems to me to be—what’s the term I’m thinking of?—a bald-faced lie.

But it has lots of 5-star reviews, including one that praises the auto-renewing subscription!

I feel that almost everything that could be said about iOS lockdown has already been said, sometimes by me, and all of the arguments have been repeated ad nauseam over the years. I was simply responding to a support email about my own app. Yet the direct line to the App Store from the misleading web advertisement I encountered was too blatant and too apposite to ignore. Apple claims that locking down iOS to the App Store is justified in order to protect consumers from danger. Time and again, however, it’s painfully obvious that Apple’s so-called “curation” of the App Store is terrible, miserable, incompetent, negligent.

Marco Arment:

I don’t think Apple intends to let abusive subscription scams stay in the App Store to make more money.

But this has been a problem for so many years, with no obvious progress being made to fix it, that their inaction speaks volumes, whether it’s their intention or not.

Nate Vack:

I kind of feel like “once a week, go through the top 100 grossing apps and investigate the obvious scams” is maybe a reasonable expectation for a company Apple’s size.

Especially if “our store is closed because it is safe” is their entire brand and legal argument.

Previously:

The Subjective Charms of Objective-C

Gabriel Nicholas:

To argue that Objective-C resembles a metaphysically divine language, or even a good language, is like saying Shakespeare is best appreciated in pig latin. Objective-C is, at best, polarizing. Ridiculed for its unrelenting verbosity and peculiar square brackets, it is used only for building Mac and iPhone apps and would have faded into obscurity in the early 1990s had it not been for an unlikely quirk of history. Nevertheless, in my time working as a software engineer in San Francisco in the early 2010s, I repeatedly found myself at dive bars in SoMa or in the comments of HackerNews defending its most cumbersome design choices.

[…]

I saw how objects and messages take on a sentence-like structure, punctuated by square brackets, like [self.timer increaseByNumberOfSeconds:60]. These were not curt, Hemingwayesque sentences, but long, floral, Proustian ones, syntactically complex and evoking vivid imagery with function names like scrollViewDidEndDragging:willDecelerate.

[…]

But the longer I spent writing Objective-C, the more I felt it hid rather than revealed. Long, sentence-like function names buried the most pertinent information under a fog of dependent clauses. Small features required long-winded pull requests, making it easy for engineers to get distracted during reviews and to miss bugs. Objective-C’s excess words, multiplied across thousands of files and millions of lines of code, made for an exhausting codebase.

I did not find this to be a problem, but neither am I really nostalgic for Objective-C, except when calling lower level C APIs and when recalling the fast compilation and small binaries.

Gus Mueller (Mastodon):

My own experience with Objective-C has been very different. I wonder if that’s because I work as a solo developer, and the architecture of my apps has always been stable?

[…]

To me, Objective-C has always felt expressive and capable, doubly so when I first started using it. After coding in Java for years I felt like I could fly.

Swift is the thing now, and both Acorn and Retrobatch use it for parts. But Swift is a heavy and unsettled language, not to mention extremely slow to compile.

Manton Reece:

After Swift became popular, I felt kind of guilty still using Objective-C so heavily, but I’m over it. Micro.blog for Mac is all Objective-C. I did two new releases this week.

CM Harrington:

For real though, it seemed like ObjC and Apple’s frameworks really caught lightning in a bottle. Swift has gains sure, but they’re trades that place different burdens on the developer… ones personally I wouldn’t take. But also, maybe because my brain is very SmallTalk oriented, I am indeed fighting Swifty ways, and not flowing, like I did back with ObjC.

Previously:

Is Electron Really That Bad?

Federico Viticci (Mastodon):

I’ve been thinking about this video by Theo Browne for the past few days, especially in the aftermath of my story about working on the iPad and realizing its best apps are actually web apps.

I think Theo did a great job contextualizing the history of Electron and how we got to this point where the majority of desktop apps are built with it. There are two sections of the video that stood out to me and I want to highlight here. First, this observation – which I strongly agree with – regarding the desktop apps we ended up having thanks to Electron and why we often consider them “buggy”[…]

[…]

As documented in the thread from late 2023, this is a common issue for the majority of AI clients built with SwiftUI, which is often less efficient than Electron when it comes to rendering real-time chat messages. Ironic.

Isaiah Carew:

i think the weirdest part of this article is hearing that chromium is more efficient than SwiftUI.

is that just for specific things or is it across the board?

Miguel Arroz:

[It] seems they’re talking about text rendering. SwiftUI is really bad at that, this is why I’m using UIKit for the document editor in PaperVault.

It’s not really surprising that Chromium is super optimized for rendering Web text. On the other hand, that’s a common thing that apps need to do, so it would be good to have a better native story.

Christina Warren:

For years, I’ve wanted to write a post called “The web won” which is very similar to what @viticci wrote here -- my aim was desktop more than mobile, but this is also especially true on the iPad and to @isaiah’s point, what makes this worse on mobile/iPad is the state of PWAs in Safari/WebKit.

Peter Steinberger:

Man I’m so happy I am in JavaScript land. Debugging just works and compile times are instant.

When I started writing apps, the availability and quality of developer tools was considered to be an advantage for native development vs. the Web. These days, I still think native APIs usually lead to better apps—though there are some awful Catalyst and SwiftUI apps that would have been better as Electron—but the Web tooling has really improved. I think many would now consider it a strong advantage.

JavaScript got 25+ years of work from many different parties. Mac developers got Swift, which I generally like and much prefer to JavaScript. But, while JavaScript is gaining many of the benefits of other systems, while retaining its dynamism, Apple is forfeiting former strengths. Swift made compilation much slower. Debugging is still slow and arguably worse than before. There are more compiler and linking bugs. There’s no more Fix and Continue. SwiftUI is more opaque than Cocoa.

Web technologies also seem to provide a more stable development target—do you hear about Web developers planning their year around seasonal beta testing and breakage?—and better documentation. An integrated development stack would seem to offer potential advantages, but offsetting that on the Web side are open source, cross-platform, distribution outside the App Store, and legions of developers and companies, now getting multiplied by AI.

Previously: