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.
Projects Restoring an Apple Extended Keyboard II I've been looking to foray into the realm of mechanical keyboards for well over a year but never took the plunge. I'd been looking at either a modern keyboard such as a Pok3r or something vintage like an IBM Model M. Something I didn't realise was Apple also used to
Projects What's going on with Fetch? Last Wednesday evening we received a notification from Apple that Fetch had been removed from the App Store. They cited the following rule and sent some screenshots accompanying the notice of the transfers screen. 22.4 Your app falls into a category of apps that are often used for illegal
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
tvOS Mixing TVML and UIKit without a server When building for tvOS Apple gave us two approaches. A fully native app could be built using UIKit, storyboards and everything developers have been familiar with when building apps for iOS. However, Apple also opened up their TVML and TVJS platform that has been used on Apple TV 2 and
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
Programming Peach.cool — API, PeachKit & Peach for Mac So Peach [http://peach.cool] stumbled onto the scene Friday. If you haven't heard of it, it's this cool new social network that lets you post cool stuff using "magic" words. Currently it's only available on iOS which, while great means that I can't really check it while I'm in
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,
Parallax Posters For Everyone One of the coolest UI elements of tvOS and the new Apple TV are the parallax images. They're used for a lot of things on the interface: app icons, featured items on the App Store, and posters. The problem is, these posters are restricted to Apple's apps (iTunes Movies and
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
JavaScript Deeplinking (how to force out of Facebook's in-app browser and fallback on desktop) So it turns out these in-app web views can't die quick enough (hello, SafariViewController!). Marty [http://twitter/marty] tweeted he was trying to get YouTube videos to open in the native iOS app rather than on the website but was finding it impossible. By default, the iOS app adds a
Swift Featured Poolside FM I fucking love Poolside FM [http://poolside.fm]. It's like the perfect playlist for summer. The only problem is I always had to keep it open in a tab on my browser. I was constantly accidentally closing the thing and because it's a website, it's not controllable through the media
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
tvOS OAuth Authentication on tvOS I've seen a few people comment on how OAuth is impossible on the new Apple TV due to the lack of any form of web view. In building Fetch [http://getfetchapp.com] for the Apple TV we needed to interact with an OAuth provider (Put.io) in order to authenticate.
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
Quick Tip Quick Tip: Globally Changing iOS Tint Colour In Swift One of the ways an app can be customised easily in iOS is to change its tint colour. This can be done for specific elements such as your navigation bar in your storyboard. However, this can also be changed globally for your entire application — here's how. From Storyboard Open up
Development Featured Customising Xcode I've been using Xcode more and more lately after picking up a couple of iOS and OS X apps. For some reason though, it took me until yesterday to finally get around to customising the thing. 1. Alcatraz - Xcode's missing package manager Every decent text editor I've used (read:
Development Featured Replicating Beme's Proximity-Record in Swift If you haven't seen Beme [http://beme.com] yet, you've probably been living under a rock. It's Casey Neistat's [https://twitter.com/caseyneistat] new video creation application that uses doesn't show you what you're recording. I've loved the concept from day one. You cover the proximity sensor on the iPhone
Development Creating a sharedInstance in Swift Or, "How the fuck to I make a singleton?" One of the patterns that seems to be very common in Cocoa is the sharedInstance pattern. You can see it in a few of the native classes to UIKit and Cocoa. For example: * In UIApplication you havesharedApplication which returns the current
Development WordPress Social Stream About 3 years ago now, we were working on a site for a client and came up with the idea to merge their Facebook and Twitter feeds with the news posts on their site to keep things feeling fresher for longer. Since then I've rebuilt the bloody thing 4 or
Development Featured Swift, iOS & OS X Programming For years I put off learning how to make iOS apps. Ever since their introduction, back when iOS was called iPhone OS, I wanted to craft something but Objective-C and its obscurity put me off. The syntax was ugly and the naming conventions weren't what I was used to. For