Archive for January 31, 2018

Wednesday, January 31, 2018

Scratched iPhone 8 and iPhone X Screens

Stephen Hackett:

Unfortunately, the stainless steel band isn’t the only thing that has picked up scratches on my iPhone X. This phone has picked up scratches across the front and back glass in a way no previous iPhone I have owned has. None of them are particularly long, but they are deep enough that I can catch them with the corner of a finger nail if I try.

I’m not sure what’s going on here, but I’ve heard lots of reports like this over the last month or so.

Marco Arment:

I, too, have a scratched-up phone with bizarre-looking fake portrait-photo modes I never use, but that otherwise I absolutely love and I can’t fully believe is real.

Nick Heer:

I’ve been skeptical of claims that the iPhone X has glass that’s more prone to scratching, but there are noticeable marks building up where my thumb scrolls. Dunno if my nail or pocket lint or something is causing that.

Wojtek Pietrusiewicz:

I have now heard numerous reports about people having scratches on the band, front, and back glass. The strange thing is that I use my iPhone X caseless (white model) and it still looks pristine.

Update (2018-01-31): Christopher Pickslay:

My 3-month-old iPhone X has more scratches on the screen than any previous phone I carried for 2 years

Tony Arnold:

Yep, my $1800AUD phone has scratches all over the screen from being on my wooden desk, and in my pocket.

The quality of the glass on my iPhone X is really disappointing.

dan nolan:

mine is scratched to absolute shit from using it the same way I used my scratchless iPhone 7+ so...

Pat Murray:

Yep. 3 months in and my X has way more scratches than the 10year old original iPhone I have on my desk… the kicker of course, my X is in a case 24/7

Andrew Madsen:

My iPhone X screen has scratches I can feel with my nails too, and had them within the first month. Have never had that with any other iPhone, and I treat this one just as well. No idea where they came from.

Update (2018-02-01): Craig Grannell:

My 8 Plus has a scratch. No idea how it happened. Never had one on an iPhone (3G; 3GS; 4s; 5s; 6s) before. No change in usage.

Update (2018-02-05): Adam Clark Estes:

Apple says that the iPhone X features “the most durable glass ever in a smartphone, front and back.” So did I get a different kind of glass by mistake? Did Apple sacrifice some quality control as it was rushing out the first iPhone X orders? Is it just my fault? Sure, I could’ve avoided some of this grief by using a case. But I’ve never used a case, and I’ve never had a screen develop scratches so quickly or so comprehensively in a decade of using iPhones and Android phones.

The stainless steel edge has a couple of nicks but is otherwise good as new since I’ve never dropped the phone. The first scratch appeared on my iPhone X screen just a few days after I bought it. It was small, shallow, but clearly visible in the center of the screen. In the weeks that followed, more and more micro-abrasions appeared as if through sorcery. Then came a fan of deep scratches on the bottom left on the screen, deep enough that I could feel them with my finger and see them when the display was on. The latest scratch is even deeper and mars that cute little slice of screen next to the notch. It’s not like the phone is hard to use or anything. I just feel annoyed and confused that the thing is so fragile.

I’m not the only one. There are countless threads on Reddit and other forums featuring disgruntled iPhone X owners who are similarly perplexed about how easily their screens scratch.

Update (2018-02-17): Accidental Tech Podcast says that Apple semi-officially announced that it was using different glass that is less likely to crack but more likely to scratch. As someone who has never cracked an iPhone screen, I would prefer they not make that trade-off.

Update (2018-02-20): See also: Nick Heer.

Update (2018-03-15): Bob Burrough:

I see that my $800 iPhone's glass is made out of clay.

A $100 plastic phone is probably more durable than this.

OH BY THE WAY. I actually worked on *plastic* faced iPhones back in 2007. Funny thing, that. Steve Jobs made the decision to replace those with *GLASS* because he found that his keys scratched the plastic. In his absence, Apple has found a way to unsolve that problem.

iOS Top Buttons Under Notifications

Karim (via Hacker News):

A split second before my finger touches the glass, a popup appears in the wild!

I accidentally tap the notification and I’m taken into an entirely different app, away from where I intended to be.


By the time I’ve navigated back to the Notes app and performed the originally intended action, I’ve experienced pure agony for about 2 seconds.

CNN Blames Apple for Repeat Notifications

Juli Clover:

Earlier this afternoon, a bug with the Apple News app caused notifications for a single CNN news story to be sent out to iPhone and iPad users over and over again.

The issue, which lasted for approximately 15 minutes, appears to have impacted all Apple News subscribers who had alerts turned on for CNN based on a slew of complaints that popped up on reddit, Twitter, and the MacRumors forums.

Here’s what it looked like. It apparently affected other news providers such as Fox as well. Push notifications have normally been described as one of the more reliable parts of iCloud. Perhaps the problem was instead with Apple News.

What I Wish the iPad Would Gain From the Mac

Ryan Christoffel:

Sierra's tab expansion is relevant here because the iPad should realistically be able to follow suit. The chance of windowing on iOS may be practically nonexistent, but there's nothing about current iOS paradigms that would prevent tabs from becoming a systemwide feature. If we assume that iOS will eventually allow viewing two instances of the same app at once, then using tabs to power that system would make the most sense due to the groundwork that's already been laid in Safari on iOS.


Whether you would continue calling it an iPad or not, an iOS-powered laptop would be a fascinating product. The laptop form factor is tried and true, providing a more rugged, durable feel than the current iPad Pro and Smart Keyboard combo. The device's keyboard could be backlit and provide larger keys[…] Would the device have a trackpad?


Outside of cloud storage management, background privileges for apps could enable a host of helpful utilities and automation. Clipboard management, for example, should be just as easy on the iPad Pro as it is on a Mac, where an app like Copied can instantly, invisibly log everything you copy across the system. Wouldn't it be great if an app like Workflow could become more Hazel-like, triggering workflows automatically in the background based on pre-set rules?


Despite their lack of proper multi-user support, iPads are often shared devices in a household. If that isn't reason enough, how about this: multi-user support already exists on the iPad, but it's exclusive to education customers. Just bring it to everyone, Apple.

Swift Tip: OpaquePointer vs. UnsafePointer

When a struct person is completely defined in the header file, any pointers to it will be imported by Swift as UnsafePointer<person>. This means we can also dereference the pointers, and look at the contents by calling .pointee on the pointer.


Because account is only in the [implementation] file, it’s called an opaque (or sometimes: incomplete) type: from the outside, we don’t know anything about it.

Swift Imports Fixed-size C Arrays As Tuples

Ole Begemann:

The Swift equivalent of the C type float[4] would be (Float, Float, Float, Float). This has the benefit of incurring no bridging overhead because the Swift compiler can lay out tuples in a C-compatible way.


Swift’s Clang importer sees the char[256] declarations and turns them into 256-tuples(!).


I did a quick test: my version of _FixedArray256 (approximately 1,600 lines of generated Swift code) takes about 8 seconds to compile and adds nearly 750 KB to the compiled binary (with optimizations enabled). The convenience doesn’t come for free.


Instead, let’s just take the idea of obtaining a pointer to the tuple’s storage and using that to initialize a string.