Today we’re introducing twelve families of Office Fonts, all of them available for purchase and download. Some coordinate with our best-known typefaces (which serve the world’s best-known brands), Office Fonts for Gotham, Archer, Whitney and Sentinel. We’re also introducing Office Fonts for some of our newest releases, including this year’s Whitney Narrow and Operator.
I own Whitney Pro and Operator Mono. It’s mildly irritating that there are now Office versions of them.
Xcode 8 introduces new Editor Extension functionality that allows you to customise your coding experience. Given that Xcode 8 is still in beta I haven’t seen or tested any third party extensions just yet. However, in amongst all the new feature blurb something caught my attention:
Auto-generate Quick Help documentation
For the last few years I’ve been using the excellent VVDocumenter to assist in generating the Quick Help text, but as of Xcode 8, it’s been sherlocked.
How do you use the new in-built Quick Help text generation functionality? Simply click on the function you wish to add documentation to and then use the following key combination option + command + /, as seen in the below example.
iOS 10 implements a 3D Touch Share option on the home screen for all applications.
The problem with the Share option is that the intent is not clear: what are you actually sharing? A link to the app? The app itself? Some app content? This seems like a way to shoehorn 3D Touch onto all apps on the home screen.
Xcode 8 promises to bring many improvements to Core Data, however, it seems to be having an issue in that it stops working pretty quickly even after several reinstalls.
My issue is that Xcode generates new NSManagedObject’s and then can’t find them in the build process. Instead, I see the following error:
<unknown>:0: error: no such file or directory: '~/Library/Developer/Xcode/DerivedData/Project-ehewnupfwfyaezbdvoohlbtmspad/Build/
Interestingly, the file the error is referring to — .Country+CoreDataClass.swift — exists in the folder above without the leading .. I’ve filed Radar 27151410.
Yesterday I released v1.1 of The FFI List and with it, I’m trying a new business model. The app is now free and from July onwards new FFI List downloads will be accessible through an auto-renewing subscription.1
I intend to keep this going for six months and then review the uptake.
We’re introducing exciting new capabilities and tools designed to help grow your app’s business and engage with new and existing customers on the App Store.
Search Ads is an efficient and easy way for you to promote your app directly within the U.S. App Store search results, helping customers discover or reengage with your app, while respecting their privacy. Starting this summer, you’ll be able to participate in the Search Ads beta and see the ads in action.
We’re opening auto-renewable subscriptions to all app tags including games, increasing developer revenue for eligible subscriptions after one year, providing greater pricing flexibility, and more.
Search Ads has been rumoured for a while and their implementation seems to be a fair to users from a privacy standpoint and to developers—both large and indie—from an ad pricing standpoint. Subscription changes open up the possibility of free trials—something developers have been demanding for a long, long time!
In addition, App Store review times have been cut to 48 hours in 90% of cases. I can vouch for this, one my apps was submitted on Saturday and was approved within a day.
In a scenario where your UIAlertController alerts only have .Default actions, how do you add emphasis to what should be considered the preferred action of the user? Prior to iOS 9, this wasn’t possible without using a .Cancel action type, or creating your UIAlertController-like class from scratch. Enter preferredAction.
Let’s look at an example:
letalert=UIAlertController(title:"Send Error",message:"Your email failed to send.",preferredStyle:.Alert)alert.addAction(UIAlertAction(title:"Try Again",style:.Default,handler:nil))alert.addAction(UIAlertAction(title:"Remind Me Later",style:.Default,handler:nil))alert.addAction(UIAlertAction(title:"Delete Draft",style:.Destructive,handler:nil))presentViewController(alert,animated:true,completion:nil)
The above code will present a UIAlertController as follows:
There is no obvious default action being highlighted to the user. To set a preferredAction, you just add this piece of code prior to presentViewController...:
alert.preferredAction=alert.actions// Remind Me Later is at index 1 in the actions array.
Voila! Emphasis has been added to what should be considered as the preferred action.
Update: SLComposable is available on Cocoapods: pod "SLComposable"
I’m in the process of rebuilding an old demo app I created three years ago for the Social framework. In that demo app I created individual instance methods for creating an SLComposeViewController with initial text, with initial text and an image, for each social network, and so on.
With the rebuild, I’ve gone about it a different way. I’ve created a protocol, SLComposable, which defines one method: