Swift Protocol Extension Weirdness

Swift is a protocol oriented language, and I’ve found I can really provide a lot of power as well as flexibility by making good use of protocols.

The other day I was chasing down a confusing bug. For some reason my protocol methods weren’t being called!

It turns out protocol extension methods can be unintuitive sometimes.

read more...

Keeping Swipe Back with UINavigationController Transitions

Pretty much everyone uses the Swipe Back feature that you get for free with UINavigationController. But what happens when you add some awesome animated transitions for your push actions? You can’t swipe back anymore!

I found a way around this! Though, it does feel a bit hacky…

read more...

Write the Right Thing: Iterating on User Tests

There’s a trap that people who write software often fall into. We can’t see our app in the same way a user sees it. This can sometimes lead us to create features that we think are super awesome, but it’s not actually what the users want. Or it’s too hard to use. Or it’s too confusing. Or maybe it’s just plain irrelevant.

One way we’ve found to remedy some of this is by observing people use our app. We call this “User Tests,” and we just wrapped up a round of user tests this week.

read more...

Why We Went With Realm

For years, Core Data has been the go-to persistence library for Mac and iOS apps. Recently, an alternative called Realm has come on to the scene, and is becoming quite popular. We gave it a shot, and ultimately chose to use Realm over Core Data in AmebaOwnd.

read more...

Debugging your iOS App's HTTP(S) Traffic

When debugging, it’s important to know the exact state of your app in order to make sure it’s acting you want it to. If you’re writing an app that makes API requests, then you will most likely want to be able to see what data is coming to and from your app. Let’s take a look at how we can monitor HTTP and encrypted HTTPS traffic using Burp Suite.

read more...