iOhYes Retired


A podcast by iOS developers for iOS developers, delivering news, tips, and rants for professional iOS/Mac developers, with something for enterprise and indie developers alike.

Hosted by Darryl Thomas and John Sextro.

← Previous Episode   |   Next Episode →

44: Episode 44 - Sudo OCD

October 10, 2014 at 11:30AM • 1 hour 3 minutes • Wiki Entry

Tweet Shoutouts


Send us your shoutouts: @iohyespodcast

The Discussion

  • Quick revisit of Widgets and Extensions
    • What “Today view” widgets are you using?
      • Darryl - Transit, Pedometer++. I wish I could move the Tomorrow Summary above 3rd party widgets
      • John - Paste+
      • Jason - Omnifocus, Yahoo News Digest, Duolingo
      • Chad - e*trade
    • What extensions are you using?
      • Darryl - ¯\_(?)_/¯
      • Jason - Camera+ photo editing, 1Password Safari extension
      • Chad - 1Password, Transmit
    • What do you still want to see exist?
      • Jason - VSCO CAM photo editing, more 3rd-party 1Password integration
      • Chad - Better YouTube support
  • Metal - Low-overhead GPU access for iOS 8
    • What is Metal?
      • Modern, Thin API for GPU programming (graphics and simd compute)
      • Designed for A7 and newer SoCs (iPhone 5S and newer)
      • Shader/kernel language based on C++11
    • Who should/will use Metal?
      • In-house/roll-your-own 3D engines/frameworks
        • For most folks, using Metal or OpenGL directly is overkill (but fun!)
        • Alternative, higher-level APIs include SceneKit (3D) and SpriteKit (2D), which provide much more than just graphics rendering support, including graph management
      • Third-party 3D engines/frameworks
      • Compute-heavy applications and filters with highly parallelizable work
        • DSP
        • Image filters
        • Protein folding?
        • Note: Swift currently doesn’t support importing C unions or SIMD vector types. Chris Lattner acknowledged this, citing feature prioritization (so it’s reasonable to be hopeful it’s coming in the not-so-distant future). In the meantime, if you need to work with SIMD, you may want to stick with Objective-C when using Metal.
    • Practical differences between Metal and OpenGL ES
      • In Metal, command buffers are exposed, giving control over when the commands are sent to the GPU to the application and putting the onus of asynchronous framing on the application
      • Most state is stored in immutable state objects that are created at setup, not in each draw cycle, allowing for quick state change that doesn’t require expensive recompilation of shaders/validation
      • Streamlined API. OpenGL provides many ways to do (effectively) the same task largely due to its evolution. Metal sheds many of the legacy techniques.
      • Metal provides direct access to the A7’s shared memory. Thread safety/synchronization is the responsibility of the app.
    • Additional resources

Open-Source Project of the Week

ScrimpyCat's Metal Examples

There are surprisingly few open source projects using Metal so far, but here’s a repo with some sample code illustrating the use of basic Metal APIs and shaders.

git clone



  • Razer Tartarus a game controller repurposed (note: I’m actually using an older version called the Nostromo N52)


  • Mike Ash: Swift and C Swift provides rich facilities for OO and functional programming, but it also allows extensive bridging to C APIs. Learn all about how to call C functions, work with "unsafe" pointers, manage memory, and more.



  • UX Companion iOS app A glossary of user experience terms, with links on how to apply and learn more about each topic. Basically, a phrase book for speaking to designers that you work with.

Alternative show title suggestions

  • You are ruining his segue
  • The patron saint of brown-nosers
  • Sudo OCD
  • Drunk Darryl
  • Are you learning English?
  • Emoticon for shrugging shoulders
  • Too old a man
  • Long story short
  • Boy have they
  • Sure
  • Are you using the knob at all?
  • That’s a lot of letters