Archive for October 26, 2015

Monday, October 26, 2015

The Best Underutilized and Poorly Implemented Accessibility Feature

Scott Gruby:

iOS 7 brought a feature called dynamic type which moves away from developers specifying exact point sizes for text and instead uses a number of descriptions for fonts.

[…]

The next example is in Calendar. This one is worse than the first because the row is a fixed height and it looks like each row of text is also a fixed height so that when a larger font is used, it looks awful.

For a company that pays so much attention to accessibility, these examples show that individual teams making the apps aren’t doing enough to look at their apps. Maybe all the engineers have great eyes and can see the text, but this does need to get fixed.

Dynamic Frameworks and App Launch Times

Peter Steinberger links to this discussion started by Eloy Durán. This gist of it is that dynamic linking can really slow down launches, especially before the cache is filled.

Apple DTS:

Beyond that, there is nothing more I can do for you at this time to make framework loading go faster. You can follow up on your bug report on bugreport.apple.com if you wish to know its status.

Javier Soto:

An app I’m working on has no more than 10 frameworks, and I’m also seeing >3s launch time slow-downs caused by this, and I hoped that the DTS would result in some workaround.

Eloy Durán:

So it seems that static linkage is going to be the only pragmatic solution for the foreseeable future (dyld optimisations, if any, would probably take a while to make its way to us) and has been proven to work/allowed.

Sam Marshall:

Due to having no guaranteed stable ABI, it seems extremely unwise to even think of using static libraries for swift.

Perviously: iOS Needs Frameworks.

BookmarkData Exposed

Michael Lynn:

To wit: What are the .sfl files that are appearing in OS X 10.11 El Capitan? There sure are a lot of them!

[…]

But suddenly - more horrible implementation details: You can’t get the list of available keys!

Everywhere you search, everyone just recommends “try all the keys” or “try the keys you want values for”.

… But none of the keys Apple has documented return just the simple share URL. They apparently want you to only use URLByResolvingBookmarkData for that.

[…]

With the information this undocumented debug output provides, I was able to determine the entire structure of the BookmarkData format, which I’ll now document here.

Swift’s @noescape Attribute

Mateusz Matoszko:

While digging into release notes we can see a bunch of clever words:

A new @noescape attribute may be used on closure parameters to functions. This indicates that the parameter is only ever called (or passed as an @noescape parameter in a call), which means that it cannot outlive the lifetime of the call. This enables some minor performance optimizations, but more importantly disables the self. requirement in closure arguments.

Lets analyze those smart statements and put it into code so everyone can enjoy it[…]

The Story of NetNewsWire

Rebekah Wolf:

Still feeling that iCloud would be the best fit once it was fully functional, the product team shifted their focus to developing Kaleidoscope 2 while they waited for Apple to work out the issues.

“By the time we shipped Kaleidoscope 2, we had internal discord around whether or not it was worth working on NetNewsWire anymore,” says Pasco, detailing the ill-fated turn of events. “Bil [Moorehead, CTO], George [Dick, COO], and I were for it, and most of the business management team was strongly against it. This, with some major internal problems, resulted in us focusing on client work and shelving product for a while.”

It’s a shame that the whole product was put on hold for a feature that some of us don’t care that much about.

Previously: NetNewsWire 4.0.