Cocoa Quick Tip: Auto-include Open-Source Acknowledgements with CocoaPods Open-source software is so prolific that it's likely nothing written today doesn't include some in one form or another. Keeping track of the licenses and acknowledgements that need to be included when working with multiple dependencies can be tricky. CocoaPods does a great job of managing the dependencies themselves but
Cocoa Hacking macOS Sierra's PIP One of the headline features in macOS Sierra is Picture in Picture. Unfortunately Apple decided to restrict this to Safari and iTunes which means the majority of users will never get to use it. Digging into the Sierra GM PrivateFrameworks directory revealed a very helpfully named framework called PIP.framework.
OS X QBlocker A few months ago I switched from Chrome to Safari as my main browser. I enjoy using Safari to Chrome in almost every way but there was one feature of Chrome that I missed. There's an option you can enable in Chrome that will force you to hold CMD + Q
iOS Fetch 2 Last year I started working on my first iOS app as a way to learn Swift. What I built turned out to be a fairly popular client for Put.io. With the release of the Apple TV, porting the app was a no brainer and with it came additional features
Swift Featured Decoding Dreamweaver STE files with Swift We have a few clients that use Dreamweaver as their editor/FTP client of choice. This unfortunately doesn't fit in with our toolchain and as we often receive STE files [https://helpx.adobe.com/dreamweaver/using/import-export-dreamweaver-site-settings.html] it's a manual process to extract the data from the file. Since
iOS Setting Fetch Free Fetch was the first iOS project I ever made and has been the most successful both on iPhone and on Apple TV. Today, I'm dropping the £2.99 price tag and am pleased to say Fetch is now free for both iOS and tvOS. If you've not used Fetch before,
Apps Fetch for tv Since building Fetch, the thing I wanted most was improved AirPlay support. Apple did even better than that though an enabled developers to natively build apps using TVML or UIKit for the new Apple TV. From iOS → tvOS Fetch was a pre-existing app for both iPhone and iPad so moving
Swift Featured Content blockers are easy. Content blockers are hard. So today, Mr. Crumble [http://getmrcrumble.com] — Cocoon's latest app — is out. It's a content blocker for iOS 9 but unlike other content blockers it's not bothered about ads but instead it targets those annoying EU cookie banners. Building a content blocker is both easy and hard at the same
Swift Make UILabel Copyable in Swift I've been working on an iOS app that called for some text to be copyable but not editable. I wanted to able to long-press and have the contextual menu show the "Copy" action. I'd initially thought about using a UITextField and disabling the edit functionality to achieve this. However that
Swift Easy Form Validation in Swift I come from a very web-centric background and have used frameworks like Laravel in the past extensively. One of the things I really loved about that framework in particular was the way in which it handled validation. If you don't know, Laravel just takes an associative array (think: dictionary) of
Swift Swift "AnyClass" Type TL;DR you're looking for MyClass.self When working with ConnectSDK, I came across something I hadn't before in Swift: the AnyClass type. ConnectSDK [http://connectsdk.com] is an Objective-C based library so I'd imagine this is a rarity when working with native Swift code. Here's what it looks like:
Swift Creating a Delegate in Swift The Delegate pattern is one that's widely used is developing apps for iOS and OS X and it's one that's very simple to implement in Swift. It's primarily used to alert classes of changes or interactions in other instances. For example, UITableView's delegate has a variety of methods of which