-
Duplicate Plug-in for Adobe Illustrator
About a week ago, the prolific Marc Edwards tweeted: Seems like a simple question, but I can’t find an answer: Is there a single shortcut to duplicate an object in Illustrator? Like ⌘J in Ps. — Marc Edwards (@marcedwards) June 24, 2017 As a frequent Illustrator user, my immediate thought was: “of course there is!” I mean…there has to be, right? What was that key combination again? I better fire up Illustrator and double-check. Hmmm…it really doesn’t exist!? You have to be kidding me. After confirming Marc’s suspicion with a few quick Google searches, I did what any developer would… read more
-
iOS 9 Split View Drag-and-Drop
If you watched Apple’s September 9th Special Event when they introduced the upcoming iPad Pro, you may remember the segment around 35:05 where Microsoft demonstrated Excel and Word side-by-side using the new iOS 9 Split View feature. “So having these two applications side-by-side is a huge productivity boost…and allows us to do things like copy and paste this chart that you see and put it into Microsoft Word.” I don’t know about you, but I was excited to see the first reveal of drag-and-drop across Split Views on an iOS device! But then, like the destruction of Alderaan, I heard… read more
-
Watch OS 1.0.1 Controller Life Cycle Changes
Today, Apple released OS 1.0.1 for Apple Watch. Among a list of other updates, the release notes mention performance improvements for third-party apps. I was curious to see if this OS update fixed the disappearing status bar bug, and indeed, it did. Thank you, Apple! I also noticed that the WatchKit Controller Life Cycle that I detailed in my prior post has changed slightly in OS 1.0.1. Unfortunately, these changes affect the heuristics I was using to work around the status bar bug, and because the fix is associated with an OS version (and not an iOS version), I am left… read more
-
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 developers won’t need, not because they’re difficult to understand or implement. Most of you are probably used to working with UIKit, and at first glance, you might think that WatchKit works along the same lines. Indeed, for both technologies, you can create your interface using… 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, it’s helpful to understand how you can get an image onto the Watch screen. WKInterfaceImage, WKInterfaceGroup, WKInterfaceButton, and WKInterfaceController provide the only elements that accept an image. Of those, WKInterfaceImage (akin to UIImageView in UIKit) is the single control that includes an image as its… 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 WatchKit controller life cycle. The example I’ll use features two interface controllers in a page-based layout. However, the same general principles apply to hierarchical interfaces, Glances, and Notification interfaces. When multiple page-based interface controllers are loaded (whether they’re the root interfaces or they’ve been presented… 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 hope that something here helps you with your Apple Watch development. NSExtensionHostWillEnterForegroundNotificationNSExtensionHostDidEnterBackgroundNotificationNSExtensionHostWillResignActiveNotificationNSExtensionHostDidBecomeActiveNotification Good luck with your Watch app! 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 2012 app. Is it just me, or does it seem insincere for Instagram to release a similar app with the exact same name only differentiated by the inclusion of their company name? Do you think they’d be okay with me releasing an app called “Instagram… 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 it tells me that the plug-in is an integral part of some workflows. I’ve tried to quickly port the code to newer versions of the Illustrator SDK more than a few times. Each time, I’ve walked away disappointed with my progress. It always seemed that… 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 in love with Auto Layout years ago! With over 90,000 lines of original code, I’d have been lost without my NSLayoutConstraints. By the way, if you’re just starting to adapt your apps, your first project-wide search should be for “320”. One of the components that… read more