We're hiring!

We're actively seeking developers & designers for our new Detroit location. Learn more

iOS Mirroring and Programmatic Airplay Selection

Currently, Apple limits access to AirPlay and mirroring capabilities in their public APIs. Developers are given a great deal of latitude in terms of what content to display but are limited in how and where that content is displayed. On a recent project we needed more control over how and when content is displayed via...

Read More »
Posted in Languages, Mobile, Prototyping | Tagged , , , | Leave a comment

Node.js and Asynchronous Programming with Promises

Recently Drew Colthorp and I chose Node.js as our platform to build a web service. Node utilizes the V8 JavaScript Runtime and is considered to be a fast and easily scalable solution for network-based applications. In node I/O bound operations — such as networking, databases, or file systems — are non-blocking or asynchronous (for good...

Read More »
Posted in Design & Development, Languages, Web | Tagged , , , , | Leave a comment

Objection is over 1 year old

Objection, the dependency injection library initially written for the iOS application SideReel, is over a year old. Shawn Anderson and I created it when he candidly pointed out how awkward my previous attempts at Dependency Injection were in Objective-C (NIB, manual construction, factory methods). Shawn’s honesty (something we all appreciate here at AO) motivated me...

Read More »
Posted in Culture, Languages, Mobile, Pairing, Uncategorized | Tagged , , , , , | 2 Comments

The Guava EventBus on Guice

Guava’s EventBus provides a publish-subscribe event mechanism which allows objects to communicate with each other via the Observer Pattern. The EventBus shies away from the traditional “Event Listener” pattern seen in Java where an object implements a particular interface and then explicitly subscribes itself with another object. In a recent project we chose to use...

Read More »
Posted in Design & Development, Languages, Tools | Tagged , , , , , | 12 Comments

Building a Universal Framework for iOS

Apple has invested quite a bit of time into making it easy to compile for a number of different architectures in XCode. For instance, compiling a library into its armv6, armv7, and i386 variants is just a matter of specifying the supported architecture types. However, there isn’t a built-in mechanism to take the binaries built...

Read More »
Posted in Design & Development, Mobile, Tools, Unix, Linux, and Bash | Tagged , , , , | 39 Comments

November Software GR: iOS Development

iOS development has become increasingly popular in the past four years since the introduction of the first iPhone. This popularity has created a vibrant developer community that has introduced a number of great third-party libraries. It has pushed Apple to innovate and improve iOS and its development environment. I will be speaking at SoftwareGR on...

Read More »
Posted in Events | Tagged | Leave a comment

GCD Dispatcher: A small Objective-C wrapper around GCD

GCD Dispatcher is a small Objective-C wrapper around Apple’s Grand Central Dispatch. GCD was built to improve and support concurrent code execution using blocks. GCD Dispatcher wraps some of the commonly used functions in GCD in Objective-C.
Posted in Languages, Mobile | Tagged , , , , , , | Leave a comment

iOS Exploratory Testing Techniques

Testing iOS applications presents a unique challenge to both developers and testers. The environment that an iOS application exists in is unpredictable and unforgiving. This means that an iOS application should be robust and tolerant of such an environment—because it doesn’t have any other choice. During my time as the de-facto “iOS guy” at Atomic...

Read More »
Posted in Mobile, Testing | Tagged | 3 Comments

Mobile Monday Detroit: Native vs. Mobile Web

I will be on a panel next week discussing Web-based vs Native applications for Mobile Monday Detroit. The Web-based vs. Native debate has heated up in the last year as companies have begun to weigh whether native applications deliver anymore value than a mobile web application. Next week’s panel should offer some insight and knowledge...

Read More »
Posted in Events | Leave a comment

Objective-C KeyPath Bindings

One of the nicer features surrounding Objective-C are Key Value Observation (KVO) and Key Value Coding. KVO provides a mechanism to observe changes in a property on an object. Key Value Coding is an informal protocol — which NSObject implements — that gives you the ability to query an object and its properties. There are...

Read More »
Posted in Design & Development, Tools | Tagged , , | Leave a comment