Wayne's blog
design, development, hobbies

Pre-WWDC Thoughts


The WWDC19 Keynote is just moments away. WWDC has become increasingly important to me the last few years. This is the last opportunity I’ll have to catalog my thoughts before major and minor changes alter the landscape I find myself in daily. Here goes…

  • Drag & Drop - I want to know the implications marzipan migration has on the current D&D APIs. Drag and drop is a major component of several projects I have been working on the last 6 months. Are they going to make the API more accessible, intuitive, or add major functionality?
  • AppKit - I’ve only tried my hand at macOS dev a handful of times, but have many friends who are dyed-in-the-wool mac junkies still cranking out flawless objc code. I’m more curious about the future of mac dev from their perspective. I’m also wondering how past may be prologue; AppKit being the Carbon to Marzipan’s Cocoa and so forth.
  • New Mac Pro - Modular, beefy, professional. Apple’s misfire on the trashcan design was a hard lesson. I’m hoping for either a tower or a large desktop box similar to SGI’s and Sun Sparcstation’s of yester-decade. Modular, rack-mountable, room for massive GPUs, partnerships with NVidia… One can dream.
  • ARKit - Apple seem to be hiring like crazy in the AR department. The current applications are cool, and make for impressive technology demos, but like VR, I just don’t see myself relaxing and blowing off steam in an augmented reality environment. I think if Apple releases the touted AR glasses, it might be more enterprise-driven than consumer. I’m doubtful that the iPhone moment of 2007 will ever be replicated.
  • HIG - I’m always looking for additions and edits to Apple’s Human Interface Guidelines. Last year there were many more design-focused sessions than in years past. I hope that continues, and would like to see more sessions like WWDC18’s ‘Designing Fluid Interfaces’. More designers need to think of interfaces in this way.
  • Dark Mode - This could be a headache for developers. Depending on the amount of refactoring required by app devs, the adoption rate may be slow at first. I think Dark Mode will be so integral into the operating systems of iOS, macOS.
  • Xcode - I think we’ll see new tools available to developers looking to migrate iOS to macOS with minimal effort.
  • APIs - I’ll be looking at the diffs in current vs. beta documentation. Specific areas of interest to me are CollectionViews, TableViews, drag & drop (as mentioned above), haptics, UIViewPropertyAnimator, Codable, any higher-level Metal APIs.
  • The Unknown - I’m always hoping for a ‘One more thing…’ moment, but I’m sure there are things I’m not even thinking about that will totally consume me. (Imagine a total overhaul of the Photos api)

One hour to go. My good friend and coworker, Tom Brinton (@brintown) is there in San Jose. We’re both super excited about how the new capabilities can take both our daily work at Chatbooks, and our personal projects like games & apps — to the next level.

Sundance Offsite

Today was a welcome diversion to staring at screens. The Chatbooks Product Team took a trip to Sundance Resort as part of an offsite activity. It’s so nice to work with amazing people. It was a real treat to hang out, have fun, be creative outside of the daily routine.

Between jewelry and pottery, I chose the former. My wife loves tourquoise, and I’m a sucker for learning new things involving metal, hammers and fire.

We all decided to make rings. It was surprisingly straightforward. The general steps were:

  1. Pick your stone
  2. Measure and cut the side support material
  3. Measure and cut the base plate
  4. Weld the sides to the base plate
  5. Cut and file the rough edges off
  6. Measure and cut the ring portion
  7. Stamp any initials
  8. Weld the ring portion to the back of the base plate
  9. Place in the acid bath
  10. Place the stone in the ring cup created by the side material and base plate
  11. Shape the sides to enclose the stone (using a small hammer or the side of the table)
  12. Polish!

sundance-jewelry sundance-jewelry sundance-jewelry sundance-jewelry sundance-jewelry

Flippin' Cards

The other day I needed to represent a physical 2-sided card in a design. The previous design had the user selecting the front or back of the card, with the new view being presented showing that side of the card. We can do better. Let’s make this more interactive!


The face card was scanned and traced in Illustrator, then exported as SVG into Figma.

Figma Cards


A Single View Application will do fine for this demo. Our card will be a tappable button. Add in an outlet for the card:

@IBOutlet weak var btnCard: UIButton!
var isOpen = false 

In the viewDidLoad() method, further customize the card button:

override func viewDidLoad() {
	btnCard.adjustsImageWhenHighlighted = false
	btnCard.layer.cornerRadius = 11.0
	btnCard.layer.shadowColor = UIColor.gray.cgColor
	btnCard.layer.shadowOffset = CGSize(width: 0.0, height: 10.0)
	btnCard.layer.shadowRadius = 12.0
	btnCard.layer.shadowOpacity = 0.7

And finally, let’s add the action to the button tap, swapping the image, and animating the view’s transform:

  @IBAction func btnFlip(_ sender: Any) {
    if isOpen {
      isOpen = false
      let image = UIImage(named: "cardBack")
      btnCard.setImage(image, for: .normal)
      UIView.transition(with: btnCard, duration: 0.3,
       options: .transitionFlipFromLeft, animations: nil, completion: nil)
    } else {
      isOpen = true
      let image = UIImage(named: "cardFront")
      btnCard.setImage(image, for: .normal)
      UIView.transition(with: btnCard, duration: 0.3, options: .transitionFlipFromRight, animations: nil, completion: nil)

We’re basically using a built-in animation called .transtitionFlipFromRight and .transitionFlipFromLeft to simulate the flipping. The animation duration is set to 0.3 seconds, and swaps the image using the isOpen binary flag. ddd


Card Flip Animation

If you’d like to take a look at some of the other free animation curves, settings and transition presets UIKit provides, take a look at Apple’s documentation.


Today we discussed a simple way to flip a card or any view for that matter. Using nothing but built-in UIKit animation presets.

Feel free to follow me on Twitter and ask your questions related to this post. Thanks for reading and see you next post.