Introducing EmojiTextView

I'm happy to announce the release of my newest open source project: EmojiTextView. iOS 10 came up with a bag of great features. One that I really liked was an easy way to replace text with emojis in Messages.app. That's what I tried to recreate with EmojiTextView.

Read more →

Popping into UIViewPropertyAnimator

I spent some time today tinkering with UIViewPropertyAnimator. It's a new class for performing animations in UIKit, just introduced in iOS 10. I've noticed a few things not covered in the WWDC session that I think are quite interesting.

Read more →

Concurrent Core Data, Now Easier Than Ever

Core Data has a popular opinion of being hard to use, especially in concurrent environments. Why is that the case? First, it truly is complex because it solves a hard problem. Second, until WWDC16 Apple haven't really said how to best set up the Core Data stack. There were many options, each with its own issues, that we had to choose from.

That's why I'm super happy that things get clearer in iOS 10 with the introduction of NSPersistentContainer.

Read more →

Remote Data State as an Enum

Last night I came across How Elm Slays a UI Antipattern article written by Kris Jenkins. In it the author notices that a common list-based UI can be in one of four separate states: notAsked, loading, failure and success and proceeds to model those states explicitly as a sum type.

According to Kris, this approach works well in Elm giving compile-type safety to this common source of UI confusion. Let's see if this approach will fit the stateful world of UIKit by using it for a view based on UITableView.

Read more →

Fetching and Observing a Single Object in Core Data

I know what you're thinking after reading the title. Is Core Data really THAT complicated to need a whole article about working with a single managed object? Well, it sure looks so if you want to do it well.

Read more →