Play

Hosts: John Sextro, Chad Etzel and Darryl H. Thomas
Special Guest: Nolan O’Brien
Audio Engineer and Post-Producer: Darryl H. Thomas

Released Friday, January 23, 2015

Tweet Shoutouts

The Discussion

Project Management Triangle

Project Management Triangle

  • Time Estimation and Deadlines for development projects/tasks
    • What are your techniques? Are they effective/accurate?
    • Estimating with a team vs. by yourself
    • If you’re doing UI work (w/ or w/o a designer) vs. non-UI work
    • How often do you reassess your estimation?
    • When do you admit that your estimation is wrong or you won’t make your deadline?
    • How to prioritize tasks when a deadline is looming and not everything will get done?

Open-Source Project of the Week

  • CocoaMarkdown – Markdown parsing and rendering in Objective-C

Picks

Nolan O’Brien

  • SimPholders 2.0
    • A rewrite of simpholders in Swift.  A tool for viewing your iOS Simulator folders, the apps installed and what was recently run.  Great tool now that Simulators are unreadable GUIDs.

Darryl 

  • NSHipster (Nate Cook) – JavaScriptCore
    A deep dive into using JSContext and related classes to evaluate JavaScript on iOS. Among the many use cases for JavaScriptCore is game scripting (although LUA is perhaps a more popular solution), which may come in handy for a future episode of iOhYes.

Chad

John

Alternative show title suggestions

  • Modus Operandi
  • Soto Brothers
  • Coding Soto Brothers
  • Fungibility
  • Wa-gile-fall
  • #vague tweets
  • Its “Super”
  • In and out triangle
  • Marty you’re not thinking 4th dimensionally
  • Gold master
  • Stamping CDs
  • Agreeing Snicker
  • I look up to you Chad
Play

Hosts: John Sextro, Chad Etzel and Darryl H. Thomas
Audio Engineer and Post-Producer: Darryl H. Thomas

Released Friday, January 16, 2015

Tweet Shoutouts

The Discussion

  • The Open-Office Trap published in the New Yorker, by Maria Konnikova
    • 1997 – The University of Calgary study (before, 4 weeks after and 6 months after)
      • Disruptive, stressful, cumbersome, dissatisfied, resentful
      • Productivity fell
    • 2005 Study
      • When workers couldn’t change the way that things looked, adjust the lighting and temperature, or choose how to conduct meetings, spirits plummeted.
    • johnsextro
      This article sounds like a bunch of crying from a pretentious primadonna http://t.co/x3jDzAerwC
    • Types of open floor plans
      • the blank slate – just tables and chairs
      • moveable walls – rolling or sliding walls/whiteboards used to create separation
      • Team Area / Pit / Bullpen – semi-private partitions, not easily reconfigured
  • John’s opinions
    • Cubicles, they suck
      • False sense of privacy
      • They don’t contain nor block noise
      • They get in the way and are a waste of space
    • Offices, slight better but still bad
      • They can contain and block noise
      • But they are a terribly inefficient use of space
      • Stifling to collaboration and fascist
  • Darryl’s opinions (read: facts)
    • Open floor plans, they suck
      • Amusing article (http://verynicewebsite.net/2015/01/be-yourself-as-long-as-its-your-best-self/)
      • Workers are left with no sense of personal space as a company grows
      • The universally proposed “solution” to noise is headphones, read: OTHER NOISE
      • People feel free to interrupt your workflow in person, as if IM and email wasn’t bad enough
      • Note: I think this actually works well for teams up to 10 quiet people (no phone calls, etc), beyond that, it’s untenable
      • My favored compromise solution: Bullpen cubes (cubes that can accommodate teams of 4-5 people)
    • Cubicles, I hated them until I no longer had them
      • I miss my partitions
      • Cubes actually do affect noise levels: they discourage yelling across the room and deflect and diffuse/absorb audio a bit (when built properly)
    • Shared offices, I love ‘em
      • Office with up to 3 occupants
      • Can get cramped, but with good office-mates, it’s pretty harmonious
      • Especially good if your office mate is always going to meetings (and you aren’t)

Open-Source Project of the Week

  • Sleipnir, BDD framework
    • Sleipnir is not dependent of NSObject
    • Sleipnir is not using XCTest

Picks

Darryl 

  • 30th Annual International Technology and Persons with Disabilities Conference (#csun15, San Diego, March 2-6, 2015)
    As the name implies, this is a conference related to technology and how we make it accessible to those with disabilities. I’ll be attending for the first time. Traditionally web-heavy, there are a few iOS-specific sessions this year in addition to several sessions that are universally useful regardless of platform.
    Early-bird registration ($455) ends February 3, 2015

Chad

John

  • Ninjevade – developed by a friend of mine, Matt Burton. He just recently released it to iTunes.

Alternative show title suggestions

  • Rail against the environment
  • Bullpen
  • 5by5
  • Code of Conduct
  • Rage coding
  • Do that thing
  • You and your damn physics
  • There was a ‘B’ somewhere
  • Those germs can move
Play

Hosts: Jason Kozemczak, John Sextro and Chad Etzel
Audio Engineer and Post-Producer: John Sextro

Released Friday, January 9, 2015

Tweet Shoutouts

The Discussion

  • Farewell to Jason
    • Chad’s story
    • John’s story
  • How to get started as an iOS app developer today

Open-Source Project of the Week

  • Design Patterns in Swift
    • Includes behavioral, creational and structural patterns
    • Includes an example implementation of each pattern and then how to use the code implemented via the pattern.

Picks

Jason

Chad Follow

John Sextro 

Alternative show title suggestions

  • Farewell Jason
  • Dubius Introduction
  • Insane in all the right ways – ce
  • That’s Chad
  • Twitter Arguments
  • Calling HR
  • One new thing

 

Play

Hosts: Jason Kozemczak, Darryl H. Thomas and John Sextro
Special Guest: Javier Soto
Audio Engineer and Post-Producer: Darryl H. Thomas

Released Friday, December 12, 2014

Tweet Shoutouts

The Discussion

  • WatchKit / Pebble
    • WatchKit design decisions: code runs in the phone, not on the watch. API is synchronous, but with no getters.
    • The big success of WatchKit is making the API transport-agnostic: no mention of Bluetooth.
      • It may even use Ad-Hoc Wifi to send larger amounts of data.
    • General confusion around the limitations of WatchKit:
      • It’s NOT the API to make watch apps, but a way to extend iOS apps by “projecting” data to the watch.
      • Native apps coming later.
    • A win of making watch apps extensions is that, at least for now, the user doesn’t need to manage which apps you install on the watch, eliminating one of the frictions of the Pebble.
      • Another consequence is it eliminates the need to log into apps separately for the watch, like you have to do with Pebble apps.
      • Apple needs to get App Store discovery right.
    • beta 2 released today (Dec. 10); API changes in 8.2b2
      • [WKInterfaceController +openParentApplication:reply:]
      • [UIApplicationDelegate -application:handleWatchKitExtensionRequest:reply:]
        • From the docs: “A dictionary containing data to return to the WatchKit app. The contents of the dictionary must be serializable to a property list file. The contents of this dictionary are at your discretion and you may specify nil.” (emphasis our own)
      • Default row appearance in WKInterfaceTable, which can be overridden by specifying bg color, margin, corner radius and height in IB
      • Blog post by _DavidSmith
    • Lister example app updated today w/ Watch extension (app and glance)

Open-Source Project of the Week

Picks

Jason

  • Bobler, a micro-podcasts app (Instagram for audio?) follow Jason (@jak_)

Darryl 

  • Build Phase, a weekly technical podcast discussing iOS development and design. Hosted by Thoughtbot developers Mark Adams and Gordon Fontenot. Lots of discussions related to TDD, architectural design and an exploration of functional programming with Swift.

Javier Soto 

  • MMWormhole, a clever cross-process message passing implementation

John Sextro 

Alternative show title suggestions

  • Burrito Soto
  • Thanks Chad
  • “Is that French?”
  • Feed your feed
  • Feed you podcast fever
  • “Underscore? That’s a cool name”
Play

Hosts: Jason Kozemczak, Darryl H. Thomas and Chad
Audio Engineer and Post-Producer: Darryl H. Thomas

Released Friday, December 5, 2014

Tweet Shoutouts

The Discussion

  • Super
    • Implementation
    • UI Design/effects
    • Custom components
    • Tests

Open-Source Project of the Week

ZLSwipeableView – https://github.com/zhxnlai/ZLSwipeableView

  • Interesting example of ui dynamics in action with a good readme and a good delegate protocol

Picks

Jason

Darryl 

  • Tom Harrington – Sharing data between iOS apps and app extensions
    Overview of file-based data sharing. When I originally read this article and marked it as pick-worthy, there was considerably more information about how to use file coordination as a notification mechanism between apps and extensions. It turns out, Apple has specifically warned against using file coordination in extensions (Tech note 2408). The article has been updated accordingly.

Chad Etzel 

Alternative show title suggestions

  • The Floodgate of Nerd Hatred
  • Gesture Privilege
  • Crazy Chess Game
  • Snow iOS
Play

Hosts: Jason Kozemczak, Darryl H. Thomas and John Sextro
Special Guest: Dave Bellano @davidbellona
Audio Engineer and Post-Producer: Darryl H. Thomas

Released Friday, November 21, 2014

Tweet Shoutouts

The Discussion

  • WatchKit has been released: we’ll cover this in-depth in a later episode, but let’s discuss initial reactions briefly.
  • Learning to program in Swift from a designer’s perspective
    • Why learn to program? (12 min)
      • Does learning to program help the designer communicate with engineers?
    • What is recommendation for mockups to other designers (18 min)
    • What approach are you taking?
    • Will this knowledge help you understand the trade offs between out of the box UI and custom? (28 min)
    • How do you deal with MVP demands in UI design? (38 min)
      • Key interactions
        • Base level functionality
        • UX
      • Closed loop system
      • Open loop system
    • What has been the most surprising aspect of learning Swift? (44 min)
    • Difference: learning Obj-C vs. Swift (47 min)
    • What pitfalls have you run into, and how have you overcome them?
    • How can we as engineers better communicate in terms a designer will relate to?

 Open-Source Project of the Week

A great open-source resource was my classmates work on Github. We had to submit work using Github and it quickly became a great resource for looking at other classmates’ code. If you search for “CodePath” and filter for Swift on Github, you’ll find many of the designer and engineering assignments for the Swift classes.

Picks

Jason

John 

Darryl 

  • Dash API Docs for iOS
    The API documentation you know and love from OS X is now available as an iOS app. Personally, I don’t find myself searching API docs on mobile devices all that frequently, but I see this as another way to support Bogdan Popescu’s efforts. I use the Mac app all the time.

Dave Bellona 

  • Matthew Sander’s iOS posts on animations, custom segues, and adaptive layouts in Swift. He’s a designer at Us Two, the firm that developed Monument Valley. Great resource for for beginners and intermediate designers who code.
  • Ivo Mynttinen’s iOS Design Guidelines is a solid breakdown of screen resolutions, design elements, and patterns on iOS 8.

Alternative show title suggestions

  • The why
  • Slow code
  • Modal Segue
  • Hidden behind the longpress
  • Farting out apps / Facebook farting out apps
  • Bourbon guy
  • Fix that redundancy
  • Red dots with white circles
  • Thank you Swift
  • Accent grave
  • Accent aigu
  • Obj-C for 2nd graders
Play

Hosts: Jason Kozemczak, Darryl H. Thomas, Chad Etzel and John Sextro
Audio Engineer and Post-Producer: Darryl H. Thomas

Released Friday, November 14, 2014

Tweet Shoutouts

The Discussion

  • TestFlight Beta Testing
    • Getting started
      • Xcode
      • iTunes Connect
    • Inviting Beta Testers
      • Internal vs. External
    • Does this mean that other beta testing services are “Sherlocked”?
      • HockeyApp, etc.
    • Should people using other beta testing tools migrate?
      • Are there advantages to being part of this ecosystem?
      • Are there advantages to staying away from TestFlight?
      • Does TestFlight give you anything special that you can’t get from another service?

 Open-Source Project of the Week

2048, An open source version of the game “2048”

git clone https://github.com/ik/2048.git

Is this damaging to the original developer of the game or does this follow the old adage, “There’s no such thing as bad publicity”

Darryl’s opinion:

  • Article on the “Threes ripped off by 1024, which is in turn ripped off by 2048” “controversy”: 2048’s Massive Popularity Triggers Cloning Controversy – Kotaku
  • At what point does a game define a new genre, which makes cloning inevitable? If game mechanics vary slightly, is that enough of a distinction? (I think so, but there are many who would consider the game mechanics to be every bit as much of the “art” as the game’s content.)

Jason’s opinion:

  • The market usually doesn’t care about fairness. Being an indie developer means running a business. Businesses must always be evolving to “put themselves out of business” or else your competitors or copycats will.

Picks

Jason

 

  • Dave Verwer’s iOS dev weekly
    • Weekly (obviously) curated iOS development videos / articles / stories
    • Sponsored job postings from great companies
    • Available by email (recommended) and the web

John 

  • Armchair – App Review Manager written in Swift for iOS and OS X
    • Similar to UAAppReviewManager and Appirater but 100% Swift, works on iOS and OS X
    • Prompts the user to rate your app only after passing the rules that you have established.
    • Very configurable

Chad 

Darryl 

Alternative show title suggestions

  • Cordial Cherry
  • Dr. Jak
  • Shut up
  • Break my own rule
  • Recused
  • Piecemeal solutions
  • Defining Genre
  • Autorelease pool
  • Leak out
  • Cascading Pool Draining
Play

 

Hosts: Jason Kozemczak, Darryl H. Thomas, Chad Etzel and a little bit of John Sextro
Audio Engineer and Post-Producer: Darryl H. Thomas (@dh_thomas)

Released Friday, October 31, 2014

Tweet Shoutouts

Send us your shoutouts: @iohyespodcast

John is on “special assignment” this week, so we have decided to play for you a previously unreleased discussion we think you all will enjoy.

The Discussion

  • OO Inheritance vs Composition (w/ iOS related examples)
    • The problems of Inheritance in things like UIViewControllers
      • ViewController vs TableViewController split inheritance tree problem
    • Composition
      • What is it? How is it different than Inheritance?
      • Chad’s Twitter Login Helper example
      • Axiom – Prefer composition over inheritance
    • Dependency injection
    • SOLID
      • Single Responsibility principle (SRp)
      • Open closed principle (OCp)
      • Liskov Substitution principle (LSp)
      • Interface Segregation principle (ISp)
      • Dependency inversion principle (DIp), depend on abstraction, not concretions.
    • Advanced User Interfaces with Collection Views – WWDC 2014 Session 232

 Open-Source Project of the Week

Picks

Jason

Chad 

Darryl 

  • Playgrounds for Objective-C – Kryzsztof Zablocki
    Uses the iOS simulator to provide quick prototyping/parameter tweaking similar to Swift Playgrounds (but faster). Includes a demonstration video. Source available on GitHub and as a CocoaPod, if you’re into that kind of thing.

Alternative show title suggestions

  • OO in the dark ages
  • Is-A vs. Has-A
  • Don’t use this in production
  • Late to the composition train
  • Everything implements Rectangle
  • Throw out the baby with the bath water
  • Let’s talk about biology
  • A dog has legs
  • Overclock with Coffee
  • SOLID
  • You’re fired
  • I don’t want you to use Emoji
Play

Hosts: John Sextro, Jason Kozemczak and Adam Axe
Audio Engineer and Post-Producer: Darryl H. Thomas (@dh_thomas)

Released Friday, October 17, 2014

Tweet Shoutouts

Send us your shoutouts: @iohyespodcast

The Discussion

  • Sextro Apologizes to Lastpass
  • What apps are using size classes with great success?
    • Adam’s experience
      • Story boards/XIBs
      • Scaling/Sizing
      • Death to Paper Prototypes
      • Turning IB over to UI Designers
      • Previews
      • Problems with keeping designs in sync
  • Mobile Payments
    • Who are the big players / competitors?
      • Google Wallet, PayPass, PayWave, ISIS (LOL)
    • Technologies
      • NFC
        • Samsung, Motorola, HTC, Nokia, Blackberry, now Apple w/ Apple Pay
      • Secure Enclave and Secure Element – Apple Security Docs, pp 24-29
        • Secure Enclave – Coprocessor on A7
        • Secure Element – Java on the iPhone!??!
      • EMV/JavaCard – EuroPay, Mastercard, Visa, how most CC transactions are made outside of US. Coming to US 2015.
  • Apple Pay

 Open-Source Project of the Week

Apple Pay Stubs from Stripe

Provides a mock payments ViewController (w/ test credit cards, addresses, etc.) for testing  integration with PassKit / Apple Pay.

git clone https://github.com/stripe/ApplePayStubs.git

Android Ink

Picks

John

Jason

Adam 

Alternative show title suggestions

  • Band back together
  • There are no bugs
  • I’m back. I gotta whole new earring.
  • Soft Crash
  • Right now
  • Big PITA
  • Miscommunication abounds
  • A large team, like an 8-person team ;)
  • Philosophical hump
  • Pixel-perfectness
  • Diff with Diff
  • Special Applesauce
  • Super-dork
Play

Hosts: John Sextro, Jason Kozemczak, Chad Etzel and Darryl H. Thomas
Audio Engineer and Post-Producer: Darryl H. Thomas (@dh_thomas)

Released Friday, October 10, 2014

Tweet Shoutouts

NONE

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 https://github.com/ScrimpyCat/Metal-Examples.git

Picks

John

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

Darryl

  • 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.

Chad

Jason

  • 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