• Advanced WatchKit Interface Controller Techniques

    Fueled by your interest and encouragement from developers like Brian Gilham (curator of the very useful WatchKit Resources site), and the fact that I’ve already shipped my Apple Watch app, I’ve decided to share some interface controller techniques that I’ve used in my own app. I call them “advanced,” only because they’re techniques that most […] read more

  • WatchKit Image Tips

    I heard from many of you that my WatchKit Development Tips post was helpful. So, in the same vein, I’ve assembled a set of tips that pertain specifically to the use of images in a WatchKit app. I hope you can find at least one item that helps with your own design and development. First, […] read more

  • WatchKit Controller Life Cycle

    Update on 5/19/2015: Be sure to read about the Watch OS 1.0.1 Controller Life Cycle Changes There seem to be a lot of questions about the order of WKInterfaceController events and how those events relate to the NSExtensionContext notifications I referenced in my WatchKit Development Tips. Hopefully, this post will bring some clarity to the […] read more

  • WatchKit Development Tips

    I’ve been working full-time on the Apple Watch component of my new WhereNotes app since mid-January. I was also fortunate to be invited to (and attend) an Apple Watch Lab in Cupertino. Over the past three-and-a-half months, I’ve assembled a lot of little tips and tricks, and I’ve included many of them in this post. I […] read more

  • Introducing Instagram from Juicy Bits

    Today, Instagram announced an app called Layout from Instagram. It’s described as “a new app that lets you easily combine multiple photos into a single image.” In 2012, I released an Apple Editors’ Choice app called Layout that lets you combine multiple photos into a single image. It was even named an App Store Best of […] read more

  • Ai->XAML Plug-In Updated for Illustrator CC

    Many users have switched to using Blend for Visual Studio, because you can import .ai files directly. However, I often hear that users prefer the “clean output” of the plug-in. Others have resorted to running old versions of Illustrator inside a VM. That seems like a lot of work to continue running a plug-in, but […] read more

  • Making Grids Great in iOS 8

    I’ve spent the past few months updating all of my apps to be compatible with iOS 8. In the case of Halftone 2, I wanted to make sure that it took full advantage of the new iPhone 6 and iPhone 6 Plus screen dimensions at launch. All I can say is: thank goodness I fell […] read more

  • Ai->Canvas Plug-In Source Code Released

    As I mentioned almost exactly one year ago, Adobe approved a request to open source my Ai->Canvas Illustrator plug-in. Since the initial release of the plug-in in 2010, it has always been my intent to release the source code, but the Illustrator SDK EULA (and my time commitments at Juicy Bits) prevented me from doing […] read more

  • JBNSLayoutConstraint Helper Categories

    Recently, I’ve spent a lot of time updating my apps for iOS 7, and along the way, I’ve added Auto Layout to my older apps. During this process, I found myself writing verbose Auto Layout code over and over. For example, to center a view both horizontally and vertically in its superview, you do something […] read more

  • Unleashing Genetic Algorithms on the iOS 7 Icon

    Last week, I released a Photoshop script that I’ve been using to make icons and rounded rectangles for my iOS 7 app updates. The script generates shapes using values that I reverse-engineered from Apple’s UIBezierPath class. If you’re creating rounded rects for user interface elements, the shapes it produces are a near-exact match. If you’re […] read more