This post is a translation from Portuguese, originally written to the equinociOS magazine.

It’s very easy to find developers that have found some kind of bug in third party code. Whether it’s in an external lib, or in Apple’s SDK. Our code, beautiful and sparkly, with undesired behavior caused by people that aren’t even in our company. At the same time, it isn’t hard finding devs that have reported some of these bugs to those responsible by the code, or that have contributed in any way to its resolution. But, it’s not so easy to find developers that have reported some kind of inconsistency to Apple.

The lack of material on bugreport, may it be motivational or guidelines, emphasize this fact. Frequent are the reports without relevant information, with confidential data, or identical copies of previous reports without addition of any new data.

If you found this post, it’s likely that you have already encountered the following compile error:

error: declarations from extensions cannot be overridden yet

P.S. (I love the “yet” part)

It sucks, but it makes sense that you can’t override stuff from extensions. Or can you? It turns out, you can. It’s a bit hacky though. You have been warned.

Proceed with Caution

Code organization is a matter of hygiene

Having a clean, organized code means that anyone can easily maintain it. There will be no hassles when trying to read and understand it. Being able to rapidly find a method based on it’s scope is a gift. So I thought I’d show you my way of organizing properties and methods within a class.

Fork me on GitHub

Recently we had to integrate a chat-like comment feature to our new Winnin App Our backend team decided to build it using websockets, so when it came to the app implementation, my first thought was to search for an opensource swift framework that did confirm to the Websocket Protocol. We decided to go with Starscream since it seemed simple and reliable enough.

Building an Universal Framework
Fork me on GitHub

These days I had to convert the core of an iOS app to a framework that could be shared between projects. It was fairly simple considering the “new” framework products available in Xcode. I managed to build it with the desired public headers, copied it from the “Products” folder to the new project and everything flowed smoothly.