I could have sworn, that I uploaded build 1.0.6 (28) of a client’s app to his iTunes Connect before leaving the keyboard for the night. The next morning it still showed build 15. Turns out TestFlight makes some builds disappear, here’s what I learned, why.
Enhancement: Make NSTextList Public
Whenever I am tasked with adding a rich text editor to an app, I check if Apple has since done something in UIKit to support lists. Since they revamped the text system in iOS 7, unifying large portions with how they are dealing with text on macOS, I am getting my hopes up for every new release of iOS.
macOS is using the NSTextList class to represent lists and the code below is provides proof that this class also exists on iOS. So this Radar requests – probably not for for the first time – for NSTextList to be made public. It is filed as rdar://28254852 and on Open Radar.
Asynchronous NSTextAttachments (2/2)
In the first part of this two-part blog post, you saw how NSAttributedString works with remote images when parsing HTML, namely synchronously downloading them. I teased that I found a way to have NSTextAttachment also work asynchronously. In this second part I will walk you through how this is achieved.
Asynchronous NSTextAttachments (1/2)
In iOS 7, Apple introduced the NSTextAttachment class for embedding images into attributed strings. OS X, pardon macOS, did have this feature much earlier, already as early as 2001 in version 10.0 “Cheetah”. I suspect that they needed 7 years to migrate because the first needed to revamp the inner workings of UITextView and UITextField to natively work with attributed text, as well as modernize CoreText into what is nowadays referred to as TextKit.
With iOS 10 being released, we now have 3 major iOS releases supporting text attachment in standard UIKit views. About time, that we start using text attachments for displaying inline images in rich text.
An Update on Custom Modal Presentations
Customizing a modal presentation of a view controller would be tricky before iOS 7. It got much easier with the addition of the transitioningDelegate protocol. This delegate would be able to vend an animation controller and an interaction controller for presentation and dismissal on the view controller which implemented them.
Without that, if you wanted a “burger menu” then you had to implement a custom container controller like I did with DTSidePanel in DTFoundation 1.4, three years ago. Things have gotten much easier a year ago.
A client of ours liked the way the Linked In app showed related apps in a modal side panel and so I went to research how you would that most reusably nowadays.
Survival of the Swiftest
While preparing for my talk for mDevCamp 2016, I was working on a new project interfacing with a RESTful web service. This allowed me to design the API without having to consider compatibility with Objective-C. As a result I could employ several advanced Swift techniques, and in this talk I am explaining these.
mDevCamp 2016
Conferences in movie theaters seem to be thing these days. A thing we like! This year’s sixth instalment of mDevCamp was the first time with comfortable seats and an unobstructed giant view of the speaker’s slides from every angle.
DTMarkdownParser 0.2.2
DTMarkdownParser is a sequential parser for markdown, with a similar sequential paradigm as NSXMLParser. I started this project in 2013 as a training case for TDD and going for 100% code coverage by unit tests.
Apparently this nifty little project of mine has some fans, so we are publishing a new release today to include all the improvements that were made in that 2.5 years… 😉