The director’s commentary track for Daring Fireball. Long digressions on Apple, technology, design, movies, and more.
…
continue reading
Player FM - Internet Radio Done Right
Checked 2y ago
تمت الإضافة منذ قبل eleven عام
Content provided by 5by5 Broadcasting. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by 5by5 Broadcasting or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://player.fm/legal.
Player FM - Podcast App
Go offline with the Player FM app!
Go offline with the Player FM app!
Podcasts Worth a Listen
SPONSORED
T
The Final Flight of Captain Forrester


1 The Final Flight of Captain Forrester | 1. The Mystery of Tiny 05 38:05
38:05
Play Later
Play Later
Lists
Like
Liked38:05
In late 1972, U.S. Marine Captain Ron Forrester disappeared on a bombing run into North Vietnam. Back home in Texas, his family could only wait and hope. Audio subscribers to Texas Monthly can get early access to episodes of the series, plus exclusive interviews and audio. Visit texasmonthly.com/audio to join. Go to HelloFresh.com/FLIGHT10FM to get 10 Free Meals with a Free Item For Life.…
iOhYes
Mark all (un)played …
Manage series 27172
Content provided by 5by5 Broadcasting. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by 5by5 Broadcasting or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://player.fm/legal.
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 & John Sextro.
…
continue reading
100 episodes
Mark all (un)played …
Manage series 27172
Content provided by 5by5 Broadcasting. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by 5by5 Broadcasting or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://player.fm/legal.
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 & John Sextro.
…
continue reading
100 episodes
كل الحلقات
×Thanks to all of our listeners, sponsors, former guests and hosts and to Dan and Haddie and the rest of the 5by5 network. This will be our last episode. We hope you've enjoyed the series as much as we've enjoyed producing it.
Discussion: tvOS Development with special guest Mark Sands Recreating the Parallax effect 3D transform Sheen (Glossy effect) Shadow Wobble Top Shelf Extension on tvOS Open Source project Re:Lax on GitHub CAR Files Compiled asset catalog Theme Engine from Alex CAR file inspector Bill of Materials Tree graph structure Folklore.org Stories from Andy Hertzfeld about his life on the original Macitosh project tvML Blog post - tvOS App Development Changes by Jared Sinclair Special Shoutout to Mark’s collaborated on this project James Rantanen…
Discussion: Your App Build Pipeline Dependency management Carthage Punic - Clean room implementation of Carthage CocoaPods SPM Build systems CircleCI Travis XCTool from Facebook Xcode Server Are you using it? Let us know @iohyespodcast Darryl's Pick Punic , Clean room implementation of Carthage Brought to you by: Braintree (Visit Braintree.com/yes to learn more). Hired (Visit Hired.com/iohyes to learn more and to DOUBLE the normal $1,000 hiring bonus.) ZENVA (Visit Zenva.com/15-games and use the coupon code awesomepodcast at checkout.)…
Discussion: Energy Profiler For more info see Ep. 104, Power Struggles Apple really wants us to be good citizens of the battery. Apps that quickly drain the battery will be shunned by users Remember the Facebook background audio “bug” (some say ploy to allow the fb app to stay alive in background) “App as patient” metaphor iOS Energy Gauge / Energy Report provides a high-level overview of energy usage as you test your app Energy logging on phone Good for long periods of data collection Energy Instrument for best results, target an iOS device wirelessly (I wasn’t able to get this working because you need Bonjour and multicast enabled on your wireless network access point) 20 / 20 is bad, 1 / 20 is good Energy experts at Apple recommend Do it never (Do it less) Do it later Use the background activity scheduler APIs Do it more efficiently Picks John This Week in Swift from Natasha the Robot This episode sponsored by Hired…
Discussion: Time Profiler But first: a brief rundown of the Instruments UI Toolbar Record/Stop Pause Target Selection Status display Strategy Selection CPU data Instrument data Thread data Detail/inspector toggles Timeline Plots data along the time your app was sampled Can be filtered and zoomed Disclosure arrow can toggle display of just the current run or of all runs in the trace document Detail Contents vary by Instrument, but this will generally be a table with some representation of the sampled data Inspectors Record Settings Display Settings Extended detail (often the heaviest stack trace) What is Time Profiler? An Instrument providing sample-based analysis of an application’s activity Periodically samples the call stack to determine where an app is spending its time These are instantaneous samples. They don’t track the duration of a function call, but rather how many times when sampled was the application currently in said function call. No distinction between a fast function called many times and a slow function called few times Extremely fast functions may not get sampled at all, if they happen to occur in between samples Provides a detail view listing call trees, optionally separated by thread and/or state, allowing the developer to drive down into calls to identify areas that may need to be optimized Weight - Percentage of samples in which a function appeared and an aggregate summary of samples (count * sample interval) Self Weight - Aggregate summary of samples in which the function was at the top of the call stack Symbol Name - The thing represented in the current row (may be a function, method, closure/block, thread, or app) Category Additional columns available: Count Self Count Library Picks John SelfControl Darryl WWDC 2016 Session 418 - Using Time Profiler in Instruments Alternative show title suggestions Try harder n squared complexity my code, vs not my code expected or unexpected notion of runs This episode sponsored by Braintree…
Discussion - Allocations and Leaks instruments Extraordinarily hard to spot Tough to find offending code without help from tools Unbounded Memory Growth (memory growth without a chance to collect (deallocate) memory True Leaks (retain cycles) Allocations Generation Analysis Tracks allocations still resident when the generation is marked - As you do multiple generations you will see only the new allocations since the last generations Simulate Memory Warning (did it help, do you have anything observing for this?) I have unbounded memory growth, now what? - Look for the biggest offenders (sorting) - Drill into the code and look for ways to release unnecessary allocations Good ‘ol fashion memory management If you’re intentionally holding onto objects, consider implementing an observer for UIApplicationDidReceiveMemoryWarningNotification to release them Leaks / Retain Cycles aka. Strong Reference Cycles Persistent vs. Transient Static Code Analyis Narrow list to your code Use / Observe (detective work) “You’re in the ballpark” now what? Reference counting Weak and Unowned Closure example with capture list; weak and unowned Apple says, “Use a weak reference whenever it is valid for that reference to become nil at some point during its lifetime. Use an unowned reference when you know that the reference will never be nil once it has been set during initialization.” Picks Darryl Visual Debugging with Xcode WWDC 2016 Session 410 demonstrates the use of the new Memory Graph Debugger starting at about 24 minutes in John "Weak, Strong, Unowned, Oh My!" - a Guide to References in Swift by Hector Matos…
Discussion - Notifications in iOS 10 Brief breakdown of WWDC sessions related to notifications What’s New in the Apple Push Notification Service Introduction to Notifications Advanced Notifications New stuff APNS Token-based authentication UserNotifications (and UserNotificationsUI) Framework (Unifies Remote and Local Notifications) Access to user-defined notification settings Expanded content Titles Subtitles Media attachments Scheduling and handling within Extensions In-app presentation Removal/update of pending notifications Dismissal actions Service Extensions APNS Token-based authentication Uses JSON Web Tokens (libraries widely available to assist with token generation) For server-side solutions where using a certificate isn’t practical/feasible Addresses issue of certificate expiration (though tokens also expire, new ones can be generated on the fly) UserNotifications Framework Provides a single notifications API across iOS, watchOS and tvOS iOS: Full support for scheduling and management of notifications watchOS: Support for forwarded notifications and local notifications on the watch tvOS: Support for badging app icons Key components/concepts: UNUserNotificationCenter Authorization requests Scheduling via requests (by providing content and triggers) UNNotificationRequest Identifier Content Trigger UNMutableNotificationContent UNNotificationAttachment Audio Images Video Triggers Push (UNPushNotificationTrigger is not instantiated by apps) UNTimeIntervalNotificationTrigger UNCalendarNotificationTrigger UNLocationNotificationTrigger UNUserNotificationCenterDelegate Protocol userNotificationCenter:willPresentNotification:withCompletionHandler: userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler UNNotificationCategory - defines a type of notification, allows actionable notifications and content extensions UNNotificationAction - represents a task you can perform in response to a notification UNNotificationServiceExtension - Entry point for service extensions. Allows you to process the payload of a push notification before it is presented (eg: end-to-end encryption or notification attachments). Use in conjunction with “mutable-content: 1” in the aps portion of an APNS payload. UserNotificationsUI Framework Provides the UNNotificationContentExtension protocol View controllers adopt this protocol, using the VC’s view to display the notification contents Custom content is sandwiched between a header with the application icon and title and the default notification payload (default payload can be hidden using an attribute in the Info.plist) No user interaction Actions are displayed and extensions can respond to them by intercepting action responses Protocol provides a didRecieveNotification: method you can use to set up UI in response to the notification Picks Darryl New Swift, Core Data and Cocoa Books - Use Your Loaf John List of Public Slack Groups Mr Robot returns to USA Network July 13 This episode sponsored by Braintree…
John and Darryl recap and grade their WWDC wish-lists and discuss changes to the Human Interface Guidelines for iOS. WWDC Wishlist Scorecard John Get serious about home automation, maybe make Apple TV an automation hub (Half Credit) Siri as a Service (3rd party integration) (Yes) Refactoring for Swift (in Xcode) (No) Announce date to sunset Obj-C (No) Xcode for iPad Pro (Half Credit) Darryl More voice command vocabulary. Something like AppleScript (Half Credit) Make Buttons Great Again (Quarter Credit) Better accessibility hierarchy visualization tools built into Xcode (Three Quarters Credit) Additional accessibility tools for checking things like color contrast. (TBD) Improved dynamic font API (Yes, but not what I’d hoped for) Upgrade pricing/trials (No: but we got clarification on subscriptions on The Talk Show) Faster watch app loading. A way of deferring the most expensive parts? (Yes!) Simulators and Xcode bots for Linux? (Lol) iOS 10 HIG Changes Widgets Available on “Search” and above “Quick Action List” when you 3D touch an icon on Home screen Panning/Scrolling not supported Avoid backgrounds / no background images Allow jump to app, but no “Open App” button. Allow interaction via content Messages Can now integrate with Message by providing a messaging extension Content with Focus and Value Constrained space Simple/Intuitive interface Integration with Siri Don’t Advertise Impersonate Siri Do Minimize visual/touch interactions Respond quickly Take people directly to content Improve accuracy via custom vocabulary Provide example requests Expanded Notifications Detail view Actions that make sense There be dragons, destructive actions Picks Darryl Auto Adjusting Fonts for Dynamic Type Build Phase John Audio-Technica ATH-ANC7B QuietPoint Active Noise-Cancelling Closed-Back Headphones - Wired Alternative show title suggestions Stuck in my craw Return of bezels Cocoa-isims I hate you I’m not a fun person…
i
iOhYes

1 112: Wonderful Whisky Drinking Chat 2016 3:18:00
3:18:00
Play Later
Play Later
Lists
Like
Liked3:18:00
Darryl and Nolan are joined by Amro Mousa and Matt Massicotte to discuss the WWDC 2016 Keynote and Developer State of the Union. Also, Whisky. The Whiskies Mars Iwai Tradition Japanese Whisky Amrut Fusion Single Malt Whisky Laphroaig Single Malt Whisky - 10 Year Keynote Pre-keynote observation Hated the music Apple TV Events app worked fine Tim takes the stage Talks about Orlando, offering sypathies. Called it an act of terrorism and hate. Talks about Apple's diversity Stream restarted Moment of silence where there would normally be an energizing video Bill Graham Auditorium 27th WWDC 13 Million Registered devs, growth of 2M y-t-y 72% first-time attendies 2 Million Apps on App Store $50 Billion paid to developers watchOS (Kevin Lynch) Optimizations to App Launch time!!! Instant response in watchOS 3 Apps stay in memory, support background updates App dock replaces contacts! Swipe up is now Control Center Streamlined notification response workflow Scribble! Handwriting (grafitti?) recognition Improved watch faces Minnie Mouse watch face Activity watch face in 3 variants. Acts kinda like a full-screen complication Numerals Improved face switching with edge to edge swipe Demo Time to first woman on stage: approx. 15 minutes Timer improvements Reminders improvements Find my Friends SOS Press and hold side button, and 911 is called after a countdown, notifies emergency contacts withlocation Watch shows Medical ID info Works internationally (calls the right emergency number) Jay (Blahnic?) Activity sharing: allows you to view friends' activity and send messages Support for Wheelchair users Changes algorithms used to detect movement "Time to roll" notification Wheelchair-specific workouts Breath App Simple deep breathing sessions to calm and reduce stress Supports reminder notifications 1 to 5 minute sessions Supports haptic feedback Summary with time and heart rate New APIs In-app Apple Pay Background workout info SpriteKit & SceneKit Native Events Speaker Audio Inline video Game Center Preview available today, release in Fall tvOS (Eddy Cue) 1300 Video Channels 6000 Apps New Remote App! w/ all the features of the physical remote Siri Search Movies by topic Search YouTube! Live Tune-In ("Watch ESPN 2") iPad and AppleTV Better authentication with Single sign-on Also available on iOS Dark Mode ReplayKit PhotoKit HomeKit Multiplayer Game sessions and more controller support OS X (now macOS) (Craig) Sierra Continuity AutoUnlock - proximity-based unlock of Mac Universal Clipboard iCloud Drive 10 Billion documents today Desktop syncing (and available on iOS) Storage optimization (purges recoverable/unneeded files) Apple Pay on the web Authenticates using TouchID on iPhone Tabs System-wide support for tabs for all multi-windowed apps Picture in Picture Siri Siri button/icon on dock File search with filterable results 200% more snark Result pinning Craig doesn't blink at paying $140 for movie tickets Developer preview today, public beta in July, Release Fall iOS Biggest iOS release ever Experience Redesigned lock screen Raise to wake a la watchOS Notification redesign 3d touch on notifications Rich notification content Clear all Quicker access to camera, widgets and control center 3d touch now supports display of widgets from app icons Siri 2 Billion requests a week Developer API!!! Messaging Slack WhatsApp WeChat Photosearch Workouts Payments VoIP calling Sounds like it's not a complete opening QuickType Intelligent keyboard Deep learning (LSTMs) for completion suggestions Example: "Where are you?" provides option to send location Contextual event creation Photos Places map view Face recognition Object and scene recognition Memories clusters photos into collections that may be relevant Automatically creates a slideshow movie of photos and videos Provides length and mood controls to change editing and music of movie Also on macOS Maps Proactive destinations Destination filtering Continued use of carosel (like the Memories stuff) Accessibility impact? Destinations along your route Alternative routes with time-saving estimations CarPlay gets instrument panel turn-by-turn Map Extensions!! Book Reservations Request a ride Music 15 Million paid subscribers All new design Clarity and simplicity Improved library UI Lyrics Don't make developers participate!!! News 2000 publications, 60 million readers Redesigned For you is categorized, with smart topics Subscriptions Breaking news notifications HomeKit Home app Access to scenes and individual accessory control Integrated into control center Interactive notifications iPhone, iPad, Watch Phone Voicemail Transcription (Kinda like Google Voice) Extension API (detect spam, etc) VoIP API! Side note: https://twitter.com/chockenberry/status/742422670046683137 (Buttons look more like buttons) Messages Most-frequently used app on iOS Rich links Different camera and photo picker. Big emoji (shit) Emojifier Bubble effects Tap-back quick responses Handwriting Digital touch Fullscreen effects Annoying demo https://twitter.com/_DavidSmith/status/742425105809039360 iMessage Apps Stickers Annoying photo manipulation Payment Can I block Jibjab? Differential privacy One more thing: a video :( Developer preview Today, public beta July, release Fall Developers (Tim) Swift playgrounds on iPad (get insight from Amro re: hour of code with his 6 yr old) Developer keyboard Released today with the beta Free First "emotional" Apple video in a while to actually make me emotional Developer State of the Union iMessage Apps Extensions App Store iMessage App Store "Get app" link Sticker art, UIKit Display in the same space as the keyboard would, but can be expanded to fullscreen MSSession, MSConversation, MSMessage Privacy measures Simulator support for viewing both sides of a conversation Siri SiriKit (first version) Speech, Intent, Action, Response Vocabulary Plist for app vocabulary, code for user vocab AppLogic, User Interface Extension, NSUserActivity Example: Hologram Domain, Intent, Recipent, Content Swift 3 Swift on iPad File Format Docs Lesson materials Record sessions Compatible with Xcode playgrounds Xcode 8 Source Editor Active line highlighting Swift color literals Swift image literals Markup generation App Extensions Selection Transforms Pasteboard modification Unified API Reference Fully available offline Interface Builder Design-time effects Device size configuration bar Improved size-class support Canvas operations at any zoom level!! Captured crash logs Test without building Runtime issues UI Threads Thread sanitizer Identify race conditions and more Memory Display object graph Identifies leaks with backtraces to where captures happen Reference Cycle graph Provisioning New signing actions Configuration and issue details Actionable messages Provisioning report Automatic code signing with a dedicated profile Customized code signing per build configuration Platform Compression Open-sourcing lczse Traffic prioritization Logging Unified Levels In memory trace Privacy New console application File Systems HFS+ 18+ years old Apple File System Scalable Modern Flash/SSD Resilient 64-bit Encryption Cloning (copy on write) Fast Zero space File and directories Snapshots Full volume Mountable Supports reverting Coming "Soon". Not specified Differential Privacy Adds noise to individual responses so that individual responses can't be identified Privacy budget limits submissions per period iOS Share app from homescreen via 3D touch Activity based integration Extensions Notifications Service Extension Modifies push payload before notification surfaces. Allows encryption or additional content downloads. Content extensions Widgits New vibrant look Additional compact size iCloud available to all signed apps on macOS Sierra, not just App Store CloudKit Sharing Allows control over who can access data CKShare class governs permissions watchOS Glanceable Actionable Responsive Glances are no longer "necessary" Workout apps run continuously during a workout even with screen off or when in another app Raw access to crown events Gesture recornizers Gyroscope Complications gallery SceneKit/SpritKit tvOS Talking about stuff we already knew, but which wasn't discussed in WWDC2015 Focusable elements TVMLKit Handoff Multipeer connectivity 4 simultaneous game controllers Updated controller policy: can require game controllers Graphics Color Wide Color (P3) gamut APIs Sharing PDF/print System apps Cameras capture deep color API to access DNGs API to capture LivePhotos Metal Games ReplayKit streaming GameCenter invitations via sharing GameCenter sessions GameplayKit Picks Matt: Human Resource Machine Amro: Provenance This episode of iOhYes is brought to you by BraintreePayments. Accept everything from Pounds to PayPal to that next big innovation - from any device, with just one integration. And when that new payment method comes out, all you’ll have to do is update a few lines of code. Learn more at Braintreepayments.com/yes .…
Discussion - WWDC Wish List John Get serious about home automation, maybe make Apple TV an automation hub Siri as a Service (3rd party integration) Refactoring for Swift (in Xcode) Announce date to sunset Obj-C Xcode for iPad Pro Darryl More voice command vocabulary. Something like AppleScript dictionaries? Make Buttons Great Again Better accessibility hierarchy visualization tools built into Xcode Additional accessibility tools for checking things like color contrast. Improved dynamic font API, better support for font replacement in IB Upgrade pricing/trials Faster watch app loading. A way of deferring the most expensive parts? Simulators and Xcode bots for Linux? Past Wish Lists WWDC 2015 New Year’s 2016 Picks Darryl Samuel Ford’s Blog - Discovered as a part of the Swift dynamism conversation. Pretty good stuff. John Multi-Client monitor from Dell…
Discussion Swift 3.0 To be available later this year * [Winding Down the Swift 3 release - Chris Lattner](http://thread.gmane.org/gmane.comp.lang.swift.evolution/17276) * New “blue sky” proposals will be considered for post-3.0 development (~August) * Generics features (among other dependencies) are preventing the previously-planned ABI stability * ABI stability will come in a later release and is considered of “highest priority” CareKit Why use it? enable people to actively manage their own medical conditions through app-based care plans, and symptom and medication monitoring, while sharing insights with care teams and others you trust Examples: Surgery recovery app Depression treatment app High blood pressure treatment app What is it? open source framework can integrate with ResearchKit able to access HealthKit data, when granted permission ((Opinion)) Why the focus from Apple on Health Apps? Is this a legacy from Steve Jobs? Components of CareKit Care Card Symptom and Measurement Tracker Care Plan Store Insights Documents Connect Privacy concerns Downloader beware. Make sure you understand the privacy policy for the app. Make sure the app is from a reputable source Picks Darryl Writing good code: how to reduce the cognitive load of your code John Start CareKit app for tracking the effectiveness of depression medication Thanks to Braintree for sponsoring this episode of iOhYes. If you're building a mobile app and searching for a simple payments solution, check out Braintree. For your first $50,000 in transactions fee-free, go to braintreepayments.com/yes…
Discussion Buglife Buglife.com What is it? What was the motivation? How do we incorporate it into our apps? Pricing Core product is free Planned introduction of paid plans for enterprise teams How did you arrive at this strategy? Who did the voiceover for your demo video? Fiverr.com Creating a 3rd-party service and framework for iOS apps You’re not only the primary engineer but also a PM. What is your process for user research and determining a roadmap? Are there any key (and perhaps unexpected) differences from developing first-party applications? How do you obtain information about framework stability as a third-party? (crashes, logging, etc) Picks Dave Making your own Passbook business card - just in time for WWDC! Darryl X-rite Color Munki - Display/monitor calbration (including iOS devices) Testing IBOutlets and IBActions With Curried Functions in Swift Nolan SwiftyBeaver - Swift based logging framework and service John Word Flow Keyboard New keyboard with single handed typing via swipe capabilities…
i
iOhYes

Discussion Testing normal networks (aka, not the US) 62.5% of the world’s 3.2 Billion internet users have 2G connections (or worse). That number is growing. LTE speeds aren’t going to catch up for at least a decade if not much longer. When building robust networking between your client apps and your services, the common case should be the default case. AKA: not WiFi and not LTE. Things that help a great deal: Test on 2G and flaky networks Helps to do real world testing in parking garages, elevators and in transit. Simulation will be the highest reproducible ROI way to test Fail fast and accurately. Timeouts play a part in this. Be dynamic with how you handle the network. Slower speeds should have less networking Use modern tech, like HTTP/2 Defer, defer, defer (and prioritize) Robustly handle errors If at first you don’t succeed, try again! And again and again. Retry policies can get you from one-9 of success to three-9s very simply. Design your network API in a robust manner! Simulating bad connections: Using Network Link Conditioner - iOS and Mac Simulation over WiFi with router firmware Simulation by throttling via your network services with custom headers Simulation in your app by controlling the flow of data being received Expert mode: drop down to the TCP level! Timeouts List of timeouts: TCP: connection timeout (TLS connection timeout too), SYN timeout, keepalive/idle timeout, retransmission timeout NSURL: request timeout (max time between data being received in response - default is 60 seconds), resource timeout (time for entire transfer to complete - default is 7 days) Custom timeouts: transaction timeouts (time from initiation to completion including redirects and retries), queue timeout (how long can the request be queued without starting before it times), idle timeout (how long can a request do nothing regarding upload or download before timeout) NSURLSession has a problem with scale. Every different configuration setting requires another NSURLSession to be maintained and managed. Timeouts, different default headers, different TLS settings, different cookie settings, different NSURLCache, cellular vs non-cellular Robust API design Transactional APIs Robust error codes (not just HTTP status codes!) Retry policies to the rescue Picks Darryl Pain Free Constraints with Layout Anchors - A bit of follow-up from last week’s episode. I felt like John and I were having trouble explaining anchors, and I remembered this article from a few weeks back. Nolan Performance Culture Alternative show title suggestions Just remember: You’re wrong Not all requests are made equal Item potency…
Discussion Auto Layout Stack Views, FTW (Auto Layout without constraints) (New in iOS 9, similar to what’s available in watchOS and NSStackView, which is available from OS X 10.9) UILayoutGuide New in iOS 9 Defines a rectangular geometry that can interact with Auto Layout Eliminates the need (in many cases, at least) for views that are included solely for layout purposes (container views, spacing views, etc) Views can still provide a greater degree of encapsulation Provide anchors that can be used to generate constraints Anatomy of constraints The layout of your view hierarchy is defined as a series of linear equations. Each constraint represents a single equation. Your goal is to declare a series of equations that has one and only one possible solution. Two basic types of attributes Size attributes (for example, Height and Width) Location attributes (for example, Leading, Left, and Top) The following rules apply: You cannot constrain a size attribute to a location attribute. You cannot assign constant values to location attributes. You cannot use a nonidentity multiplier (a value other than 1.0) with location attributes. For location attributes, you cannot constrain vertical attributes to horizontal attributes. For location attributes, you cannot constrain Leading or Trailing attributes to Left or Right attributes. Rule of Thumb for clarity Whole number multipliers are favored over fractional multipliers. Positive constants are favored over negative constants. Wherever possible, views should appear in layout order: leading to trailing, top to bottom. Constraint Priorities 1000 is required < 1000 is optional Intrinsic Content Size Content Compression Resistance Content Hugging Debugging Auto Layout Error Types Unsatisfiable Layouts. Your layout has no valid solution. Usually 2 or more required constraints conflict Ambiguous Layouts. Your layout has two or more possible solutions. * Need additional constraints conflicting optional constraints Logical Errors. There is a bug in your layout logic. Tips and Tricks take advantage of the logs use meaning identifiers on views and constraints Debug > View Debugging > Show Alignment Rectangles Picks Darryl App Cooker & App Taster - Prototyping tool for Watch, iPhone and iPad apps Nolan We Haven’t Forgotten How To Program Enough John Mysteries of Auto Layout Part 1 and Part 2 from WWDC 2015 My choice for a smart watch, Fitbit Blaze…
Discussion Push Notification Overview Notifications Intended for user Certificate required Can be disabled Remote vs. Local Local - schedule by the app on device Best example is Reminders app Schedule by elapsed time or exact time location based Remote - come from your server Actions Interactive Notifications Categories Text Input New type of “Action” Behavior is “.textInput” APNS (Apple Push Notification Service) Device token created by APNS, need to store on server, associated with particular client app Payload must include aps, but can also include custom values, as well Payload “aps dictionary”: alert (string or dictionary), badge, sound, content-available, category Payload alert dictionary: title, body, title-loc-key, title-loc-args, action-loc-key, loc-key, loc-args, launch-image Silent notifications (content-available == 1) wakes your app in the background so that you can fetch data, etc. Feedback service, how to discover tokens that are no longer active Device tokens are 32 bytes, may be increasing to 100 bytes soon New provider API released in 2015 HTTP/2 notification requests to APNS get a response multiplexed binary Notification requests POST json Notification responses 200 OK 400 BAD REQUEST with json payload and reason Instant Feedback Allows you to learn about inactive tokens in the notification response via 410 status code in the response Simplified Certificate Handling Now one certificate for all push actions Push notifications payload size increased from 2KB to 4KB Thanks to Braintree for sponsoring this episode of iOhYes. If you're building a mobile app and searching for a simple payments solution, check out Braintree. For your first $50,000 in transactions fee-free, go to braintreepayments.com/yes…
Motivation / Staying Productive Flow Mihaly Csikszentmihalyi Flow theory postulates three conditions that have to be met to achieve a flow state: One must be involved in an activity with a clear set of goals and progress. This adds direction and structure to the task. The task at hand must have clear and immediate feedback. This helps the person negotiate any changing demands and allows them to adjust their performance to maintain the flow state. One must have a good balance between the perceived challenges of the task at hand and their own perceived skills. One must have confidence in one's ability to complete the task at hand. Clear Distractions What things easily distract you when you need to get work done Make a list of these things Twitter, imgur, reddit, tv, music Clear these distractions Use a distraction free setting Get comfortable Change your setting Pairing Workout metaphor Hard to slack Intensity Don't have to do it every day Just 5 minutes I use this technique with my kids for studying 5 minutes doesn't really work for me Instead I say write 5 lines Sunk cost fallacy works in our favor I'm already here. I have something started. I might as well keep going. Push the peanut forward You don't have to love it You recognize that you just need to make some progress Commit to sit down and get started Free Writing Used by writer Set a timer, at least 5 minutes Don't use the IDE Don't write actual code, just pseudo code Don't think just let the pseudo code flow Pomodoro Method Sit down in front of your computer Set a 20 minute timer You must take a 5 minute break The importance of the break, related to exercise David Burns MD Write down, on a scale of 1 to 10, how satisfied do you think that you will feel by completing the work that you need to do Write down, on a scale of 1 to 10, how painful will it be to do the work Do this before as an estimate and then after recording the actual Keep a running list and refer to it often…
Discussion - Energy Efficiency for iOS Apps Apple’s Energy Efficiency Guide Are you telling me I have to worry about my app’s power consumption? This is iOS. I thought Apple was taking care of that for me...right?? What is Energy? Power is an instantaneous measurement of energy at any given point in time Energy is power used over time (Joules measured over watt-hours) Low power used over a long(er) period of time can amount to the same energy expenditure as short bursts of high power (more on this later) Major sources of energy consumption/power draw Device wake Aside from being powered off, a device in its sleep state is consuming the lowest amount of energy possible Whenever possible, avoid preventing the device from sleeping or forcing it to awaken Use technologies like push and background tasks judiciously CPU Usage An idle CPU uses ~10x the power of a sleeping CPU Just 1% CPU use costs 10% more than idle 10% CPU use costs 200% that of an idle CPU 100% CPU can result in 1000% (10x) power draw compared to idle Networking / Bluetooth Graphics/animation/video Sensors Location (Wi-Fi/GPS) Accelerometer Gyroscope Magnetometer Disk IO. Use batch operation whenever possible Mitigating energy costs Batching, Batching, Batching Operations have a dynamic and fixed energy cost Fixed cost represents the energy used while the device is waiting to enter an idle state The same amount of work, performed across multiple threads, can have a significantly lower total energy cost compared against single-threaded work requiring a longer time to execute Network and other inter-device (BT, for example) operations require radios to be powered up. Avoid continuous communications and state polling, batching operations whenever possible Defer any operations that aren’t time-sensitive to time that the app will be otherwise active (take advantage of fixed cost you’re already having to pay) Prioritize operations using Quality of Service Classes (iOS 8+) Classes User-interactive User-initiated Utility Background Can be set on both NSOperationQueue and individual NSOperation objects GCD queues can be created with QOS class attributes Use timers efficiently, or better yet, avoid them GCD provides mechanisms you can use instead of timers, for example dispatch_block_wait() If you must use timers (not just NSTimer: basically anything that takes a time interval as a deadline), take advantage of APIs that allow for timer coalescing using tolerances. Minimize I/O React to Low Power Mode (iOS 9) NSProcessInfoPowerStateDidChangeNotification [[NSProcessInfo processInfo] isLowPowerModeEnabled] Instruments to the Rescue Energy Diagnostics Logging Other Resources Performance Tips from Apple Picks John ‘Operator’ font created by Hoefler & Co., a font design company Darryl Achieving All-day Battery Life Alternative show title suggestions Power Draw Contribute to Sleep Don’t write an app (You should) Get off of the main thread They DID bone it I ripped them off…
Discussion Pushing info to clients Long Polling Client sends request to server, waits for response or timeouts (Loop) Can send and receive information, but not full-duplex iOS Implementation NSURLConnection sendSynchronousRequest Common uses Fallback from Websockets and SSE when streams are unreliable or impractical HTTP Streams Can only push information to your client If you need to send info back to server use standard rest approach Transported over simple HTTP Built in support for re-connection and event-id iOS Implementation Server Sent Events (SSE) NSURLSession, NSInputStream, NSSteamEvent Setup the connection Implement code to handleEvents from the input stream Common uses Stock ticker streaming “Status” feed updating Push Notifications Websockets Designed to overcome many of the pitfalls/shortcomings described in RFC 6202 Standardized by IETF (Internet Engineering Task Force) in 2011 Can send and receive information (full-duplex pipe) Protocol based on TCP Uses HTTP only for initial handshake, while leveraging existing HTTP infrastructure iOS Implementation CFStreamCreatePairWithSocketToHost takes url, read and write stream Cast read and write stream to NSInputStream and NSOutputStream, respectively Set delegate for input and output streams Schedule both in a run loop (Can do without but will block the execution of other code) Open connection Write code to handleEvents from the input stream Implement message sending via the output stream Server considerations Not as easy to get started with as a generic web server Buy one, borrow one or build one Common uses Chat Player vs. Player games Real time interactions Popular Abstractions/Frameworks TRVSEventSource from Travis Jeffery SignalR from Microsoft At-a-glance Comparison Websockets SSE Long Polling Client Performance Best Best Worst Server Performance Best Worst Worst Complexity Highest Lowest Mid When to Use 2-way messaging Push to Client Just getting started Picks Darryl Proportional Spacing with Auto Layout John Google Cloud Vision API Detects types of images, landmarks, recognizes text, does image sentiment analysis and can even detect “inappropriate content” Agile and Beyond 2016 May 5-6 in Ypsilanti, MI Alternative show title suggestions Uncanny valley The cooker's always on Canonical Framing Technique Thanks to Braintree for sponsoring this episode of iOhYes. If you're building a mobile app and searching for a simple payments solution, check out Braintree. For your first $50,000 in transactions fee-free, go to braintreepayments.com/yes .…
John and Darryl compliment each other and congratulate Nolan and Chad. Discussion Congratulations to the O'Brien family on the birth of Evelyn Jane! Evelyn Jane O'Brien joined her parents and 2 sisters at 3:32am, Feb 20th 2016 Baby and Mama are healthy and doing well ???????????????????????????????????????? — Nolan O'Brien (@NolanOBrien) February 20, 2016 Congratulations to Chad and Kim Etzel, who are expecting in August! ...and in case that tweet was too obtuse, hopefully this will clear things up ????????? pic.twitter.com/f5qSlcjlqW — Chad Etzel (@jazzychad) February 21, 2016…
Discussion HTTP/1.1 review Widespread adoption in 1996 with full standard in 1997 RFC 2068 and later replaced with one in 1999 RFC 2616 Request (URL, method, headers, body) & Response (status code, headers, body) Inherently async Built for HyperText, makes it have problems Head of line blocking combining payloads to 1 response multiple connections (Connection: Keep-Alive vs Close) HTTP Pipelining No cancellation, have to tear down connection No prioritization, round robin over connections iOS/Mac NSURLRequest (NSHTTPURLRequest) and NSURLResponse (NSHTTPURLResponse) NSURLConnection and NSURLSession HTTP/2 Started by Google with SPDY (2012 - 2016), latest is SPDY/3.1 HTTP/2 is a binary protocol, where 1 and 1.1 are text Previous episode on SPDY with M Schore Reached standard in 2015 with RFC 7540 and adopted by Apple with iOS 9, Mac OS X 10.11 Resolves many issues with new features: multiplexing (helps with head of line problem in HTTP/1.1) cancellation header compression Always there plain text, optimal for compression dynamic prioritization be responsible, set lower priority when possible not guaranteed that the server will prioritize because it is optional in HTTP/2 spec push responses (Nolan’s not a fan) not supported by Apple Upgrade to HTTP/2 dynamically with Upgrade Header or ALPN Application Layer Protocol Negotiation , ALPN is during TLS and far more efficient than Upgrade header NPN (Next Protocol Negotiation) Picks Nolan Akamai HTTP/2 Demo - Good info at https://http2.akamai.com HTTP/2 Test - Test supported domains Darryl What Every iOS Developer Should Be Doing With Instruments - Great introduction to Instruments by Kevin Kazmeirczak John ClockKit Tutorial: Add Complication to an Already Existing Watch Project from Kristina Thai Jason RescueTime - Time management software Thanks to Braintree for sponsoring this episode of iOhYes. If you're building a mobile app and searching for a simple payments solution, check out Braintree. For your first $50,000 in transactions fee-free, go to braintreepayments.com/yes .…
Thanks for sticking with us through 100 episodes! Discussion: Complications with ClockKit Extension running on the Watch Provides text and images for the complication, watchOS draws it Data is collected in the form of a timeline You determine how dense the timeline is Works with Time Travel feature Complication Families - CLKComplicationFamily Modular Small Modular Large Utilitarian Small Utilitarian Large Circular Small Complication Layout CLKComplicationTemplate Header image Header text Body 1 text Body 2 text CLKImageProvider CLKText Provider Timelines CLKComplicationTimelineEntry Contains NSDate and CLKComplicationTemplate CLKComplicationDataSource protocol CLKComplicationServer Used to obtain active complications and to request refresh/update of timelines Picks Nolan iOS 9.3 Beta 2 - Release Notes - Apple reserves two-letter prefixes for use in framework classes. When naming your own classes, please use a three-letter prefix. The guidelines can be reviewed here: (https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Conventions/Conventions.html) Darryl Cook Watcher - An extremely simple cooker simulator demonstrating the implementation of Complications John PipSpin A new game from my friend Matt Burton. Developed with Unity. Available on iOS and Android. Alternative show title suggestions Epic Episode 100 Complication Families Temporal in nature Overly complicated complications Geoduck Digging It’s Complicated…
i
iOhYes

With Special Guest Dov Frankel Discussion UIKit Dynamics with Dov Frankel Dov’s Blog Post UIKit Dynamics - a brief intro “Afterglo” app updated with UIKit Dynamics Why Dov decided to go with UIKit Dynamics Technical overview of UIKit Dynamics Pros/Cons/Gotchas Designer resources Catalog app WWDC videos Helpful resources Getting Started with UIKit Dynamics (WWDC 2013) Advanced Techniques with UIKit Dynamics (WWDC 2013) What's New in UIKit Dynamics and Visual Effects (WWDC 2015) UIKit Dynamics Catalog , Apple's sample code that shows a bunch of behaviors in action UICollectionView + UIKit Dynamics (objc.io's October 2013 issue) UIKit Dynamics Tutorial: Getting Started , a Ray Wenderlich tutorial, updated for Swift and iOS 8 Picks John A simple tip to reduce app store rejections from Brenden Mulligan at LaunchKit Nolan Star Wars: The Ultimate Vinyl Collection Darryl Paw - OS X HTTP & REST Client Dov Frankel Swift API Design Guidelines Alternative show title suggestions gravity and collisions parallax effect Delightful!! spring field just turn off autolayout!…
Nolan suffers Darryl's tirades regarding what he feels are some disturbing modern software development practices. Discussion - Darryl’s Rants Design Patterns that fly in the face of Apple’s established practices and tooling Lulling oneself into a false sense of security through dogmatic test writing CocoaPods, Fastlane and the like (Unscrutinized code-borrowing and massive dependency chains) Picks John Angel’s Envy Rye Nolan Argumentum Ad Ignotas Extraneus - AKA: Chad’s logical fallacy of Appealing to Rando Darryl Kangaroo Mobile Desktop - Very cool $99 portable PC with ~4hrs of battery and docking for expanded i/o. Comes with Windows 10 Home, runs Ubuntu well. Alternative show title suggestions Darryl’s Make-up Rants Thanks to Braintree for sponsoring this episode of iOhYes. If you're building a mobile app and searching for a simple payments solution, check out Braintree. For your first $50,000 in transactions fee-free, go to braintreepayments.com/yes .…
(Special Note: Tweet Shoutouts section will now appear at the bottom of the show notes. We hope this improves your show notes browsing experience.) Discussion - iOS App Developers’ Apple New Year’s Wish List All I want for 2016 is… The ability to develop apps on the iPad Pro Maybe just offer a Swift REPL or Swift Playground Better Tools MSDN offers symbols to subscribers for debugging into Windows OS with Visual Studio, Apple should do the same for iOS and Mac OS X debugging. Let us step through the OS code in Xcode so identifying internal bugs can happen faster. Microsoft Symbol Server Info .aspx#using_the_microsoft_symbol_server) More communication and outreach with the app developer community Step 1, Open up the Radar system Newsletter / Community Group / Etc. App camps for girls Groups support and sponsorships Improve on the App Stores Nolan rants about technical underpinning of App Stores and why it will take a top down approach to fix it Monetary split Indie devs are struggling. How about giving the devs a larger percentage of the cut, 10/90 (currently 30/70) How about a sliding scale 1 to 10000 (10/90) 10001 to 100000 (20/80) 100001+ (30/70) Permit subscriptions and trials Trials a far more effective than “Demos” or Free versions. Permit the customer to become attached to a product that when the trial ends they realize they want to pay for it. Permit upgrade pricing Devs can’t just support the same version forever, permit them to discount the cost of upgrading from a previous version so they maintain brand loyalty Example: Version 1 was $10, Version 2 comes out and is $10. Having Version 2 be an upgrade from Version 1 for $5 would really be a value to loyal customers. Permit devs to address their customers’ concerns/reviews Example 1: Customer: Hey! The app doesn’t install when I download it, what a junk app! Dev: I’m sorry that you aren’t able to install! All installs are managed by Apple and a failure to install usually means there is an issue with the new version of the app propagating through Apple’s CDNs and it will take some time for the CDNs to hydrate properly for the install to work. Here’s an Apple support email address for you to share your concern! Example 2: Customer: Hey! I can’t log in anymore! I hate this app! Dev: I’m sorry to hear that, can you provide me your login name or email and I’ll be happy to look into this for you. Good suggestion. The Google Play Store lets you do this. Picks Nolan Why 2015 Was a Great Year for Humity The developing world is the future of the internet Network Link Conditioner John Videos from Function Swift conference BrowserTV…
i
iOhYes

Darryl and Nolan take a journey of exploration through the world of Bluetooth and Core Bluetooth. Tweet Shoutouts @iOhYesPodcast ep.94 you guys talked about the struggle to make income as an indie dev. Is it possible for a newb dev to go indie in 2016? — Kyle Lee (@Kilo_Loco) December 9, 2015 iOhYes: 95 - Great non technical episode of @iOhYesPodcast with @jaimeejaimee I'll start my #tinychallenges in Jan https://t.co/rR2W5udvGb — You can call me Joe (@mokagio) December 10, 2015 . @iOhYesPodcast Got to listen to the podcast on my way to the tvOS tech talk. Love the tiny challenges concept. @jaimeejaimee — Jeremiah Jessel (@JCubedApps) December 10, 2015 @iOhYesPodcast Sorry to keep you gentlemen in suspense. Ep #93 was great — motivation, conference philosophy, and plenty of tips! — Greg Heo (@gregheo) December 11, 2015 @iOhYesPodcast @dh_thomas Thanks for the ep #95 pick! I enjoyed the non-tech talk — like refactoring your life rather than your code ;) — Greg Heo (@gregheo) December 11, 2015 @jaimeejaimee @iOhYesPodcast great interview! Thank you Jaimee for being so open about your life, I know I learned from #tinychallenges — Dale Fairclough (@faircoder) December 12, 2015 Discussion - News we missed Swift is Open Source! Apple starting to accept pull requests (notably the removal of C-style for loops) Docs are also open, and a call has been made for translations Apple to remove headphone jacks?? Audio over Lightning? Bluetooth Discussion - Core Bluetooth Bluetooth’s Background Invented by Ericsson in 1994 as a wireless alternative to RS-232 serial interfaces IEEE 802.15.1 (Bluetooth) part of IEEE 802.15 (Personal Area Network: PAN) within IEEE 802 (Local and Metropolitan Area Networking, LAN & MAN) Wikipedia Link The name is a nod to King Harald "Blåtand" Gormsson (Bluetooth is an anglicanized version of "Blåtand"). King Bluetooth is said to have united the Danish tribes into a single kingdom. The logo is a bind rune forming the initials H. B. (sort-of) Versions 1.2 1 Mbps data rate, > 80 kbps application throughput Probably the first version considered “viable.” 2.0 + EDR 3 Mbps data rate, > 80 kbps application throughput 3.0 + HS 24 Mbps data rate, but not really: The connection is negotiated over a BT link, but 802.11 is used for data transfer 4.0 (Classic and HS) & 4.0 LE (Branded as Bluetooth Smart) 24 Mbps data rate, but not really: See 3.0 + HS and LE has extremely low throughput by design (like less than 100 kbps) Bluetooth LE Totally new protocol specifically designed for low energy consumption and simplified communications Peripheral devices can implement just LE, just Classic or both Bluetooth LE and Core Bluetooth Core Bluetooth provides a layer of abstraction over the GATT profile (Generic Attribute Profile) Peripherals are “servers” Centrals are “clients” Peripherals serve one or more Service(s) Services have Characteristics (can be thought of as attributes or properties) Characteristics have a value, which may be readable, writable or notifiable Using CBCentralManager Instantiate the manager and then check for availability (implement the -centralManagerDidUpdateState: delegate method and check for PoweredOn state Scan for services with service UUIDs you provide using -scanForPeripheralsWithServices:options: When peripherals are discovered, the -centralManager:didDiscoverPeripheral:advertisementData:RSSI: delegate method will be called Connect to a peripheral using -connectPeripheral:options:, which in turn will call the delegate’s -centralManager:didConnectPeripheral: method. At this point, you can start using the peripheral directly. (And get responses through the CBPeripheralDelegate protocol) Discover services with -discoverServices:, which will result in the delegate’s -peripheral:didDiscoverServices: method being called Similarly, discover characteristics of a service using -discoverCharacteristics:forService:, from which you can expect a -peripheral:didDiscoverCharacteristicsForService:error: message Depending on the peripheral’s configuration, values for a characteristic can be read, written to or monitored for changes (notified) Characteristic values are expected to be small. (Like 20 bytes or smaller.) If you need to send larger payloads, it’s possible to roll-your-own streaming protocol atop characteristics. I don’t really recommend this, but it’s a fairly common approach I suspect some of this comes from the legacy of BT being treated as a dumb serial link Apple has recognized this trend and in recent versions of iOS/OS X, they have tried to accommodate higher throughput by negotiating higher MTUs when possible. They even demonstrate how this can be done in one of their WWDC sessions. Picks Nolan Star Wars Trilogy: Despecialized Edition Star Wars Machete Order Darryl WWDC 2012 Session 703 - Core Bluetooth 101 WWDC 2012 Session 705 - Advanced Core Bluetooth WWDC 2012 Session 701 - iOS Accessories WWDC 2013 Session 703 - Core Bluetooth WWDC 2013 Session 307 - What's New in Core Location WWDC 2014 Session 708 - Taking Core Location Indoors WWDC 2014 Session 713 - What's New in iOS Notifications…
i
iOhYes

1 95: It’s Not About What’s Next; It’s About What’s Important 52:06
52:06
Play Later
Play Later
Lists
Like
Liked52:06
Nolan and Darryl speak with special guest Jaimee Newberry about how she redesigned her life through tiny challenges. Tweet Shoutouts @iOhYesPodcast hey I'm from Belgium and I ca confirm you guys are first string here ;) — Erol (@RealBAYKAL) December 5, 2015 Hey @iOhYesPodcast I'm probably not the first to write in but the first gen iPad mini gets no flavor of multitasking love. — Vic Hudson (@vichudson1) December 3, 2015 Discussion - An Interview with Jaimee Newberry No Excuses - tiny steps toward huge life changes After a 15-year, award-winning design career (web & iOS), Jaimee successfully shifted focus from hands-on product creation to coaching and inspiring world-renowned product teams. Through actionable examples, relatable stories, and constant experimentation she helps companies create more compassionate teams and vastly improved digital products. She also coaches individuals experiencing career stagnance or burnout, she writes, speaks, podcasts, YouTubes, and is an independent mom. Jaimee made this career shift by applying her typical process for designing a product (website or app) to her life, as if her life were the product. (Sometimes she tried Agile methodologies, UX methods, etc.) She started out with smaller objectives and working through side projects to clear obstacles (aka: excuses) from her path. Jaimee continues doing that through her monthly challenges, which have become playful and exploratory things that grow different skill sets and push her own boundaries of fear and comfort. Picks Nolan Mailbox Shuts Down - Daring Fireball - Despite acclaim and an early acquisition, Mailbox was just not built to last. Jaimee’s Website - Jaimee’s personal site with link and video’s to talks (and monthly challenges!) Darryl Open-source Swift: Booleans - With the recent open-sourcing of Swift, Greg Heo dives into the details of Swift’s Bool implementation. Jaimee \o/ Tiny Challenges - On Twitter @tinychallenges Tiny Habits - Dr BJ Fogg NaNoWriMo - National Novel Writing Month…
Darryl and John sit down with Jason Kozemczak to discuss multitasking on the iPad and Jason's experience enabling an app for multitasking. Tweet Shoutouts @iOhYesPodcast also great final speech by @johnsextro pushing the community to present new ideas at conferences, in order to validate them — You can call me Joe (@mokagio) November 18, 2015 I ?? conferences, which means I have high expectations for this @iOhYesPodcast episode! https://t.co/eM017RTJkK — Greg Heo (@gregheo) November 19, 2015 @iOhYesPodcast I’ll have to see about putting you up. But iOhYes #australia is a great idea — Ashton Williams (@AshtonDev) November 20, 2015 @AshtonDev @iOhYesPodcast pic.twitter.com/EmZ6uahAKg — You can call me Joe (@mokagio) November 23, 2015 Here you go @iOhYesPodcast . Brand new icon for you with flat design w/ san fransico font. #ui #design #icon #ios pic.twitter.com/Eyk0sGBtHr — Rizwan (@rizzu26) November 23, 2015 Discussion - iPad Multitasking First introduced with iOS 9 Variants Slide-Over supported by ALL iPads on iOS 9 Split View Slide-Over on steroids iPad Mini 4, iPad Air 2, iPad Pro Picture in Picture All iPad apps opted-in Apps with no Launch storyboard are opted out UIRequiresFullScreen in Info.plist Even “opted-out” apps are still running in a multitasking environment Supporting multi-tasking in Instacart for iOS Are we concerned about other apps impacting the perceived performance of your own app? A push from Apple toward Universal apps? Has multi-tasking effectively killed separate iPad / iPhone apps? Is this a further “squeeze” of indie developers? Another “platform” that needs to be supported by a single purchase (iPhone / iPad / Apple Watch / whatever comes next) Split Views and Unexpected Keyboards - Use Your Loaf Picks Jason The Effective Engineer John Apptimize Darryl Gooey Apple Pie Easy Pie Dough This episode of iOhYes is brought to you by Braintree. Thanks to Braintree for supporting iOhYes and 5by5. Check them out at braintreepayments.com/yes…
John, Nolan and Darryl talk about how to get the most out of attending a conference. Tweet Shoutouts @vichudson1 @iOhYesPodcast haha. Nope, you can’t get rid of me that easily. — Darryl H. Thomas (@dh_thomas) November 10, 2015 @mix1009g @iOhYesPodcast it’s cool stuff! Pull requests welcomed. ;) — Darryl H. Thomas (@dh_thomas) November 11, 2015 @iOhYesPodcast Just listened to the episode with @AshtonDev got home and immediately am more productive with the breakpoint tricks. Thanks!! — Brock Taylor (@brockstaylor) November 17, 2015 Discussion: The Hitchhiker’s Guide to Attending Conferences What conferences do we attend? Are we attending any upcoming conferences? Choosing a conference Sure WWDC or AltConf, but what else Top 10 confs of 2015 from RayWenderlich.com Why should I go to a conference? Inspiration Networking Jobs Emerging technologies Training What type of conference should I attend? Structured Unconference (Open spaces) Vendor controlled How to get the most from a conference Be unique Be polite, well mannered and inclusive Prepare and practice an elevator pitch (self / project / company / app) Be outgoing, but not annoying Get outside of your comfort zone (get away from the people you already know) Participate Identify your ‘must see’ sessions If a session isn’t working for you, get out, checkout the “hallway sessions” Sometimes the best of the conference happens in the hallways Make arrangements to stay late Some of the best networking happens after the conference Everything in moderation; don’t let one night of overindulgence ruin your conference experience When possible, get a room at the venue Do you have something to promote? People love free giveaways. Stickers, buttons, pens, etc. Find out who else is attending and attempt to make plans with people that you want to meet Picks John Logitech MX Master Wireless Mouse Nolan @Scale Conference Flight 2015 How do I write block syntax again? Darryl The Sin in Singleton - Ben Sandofsky Alternative show title suggestions Hallway sessions Vote with your feet…
Nolan and Darryl discuss background operations on iOS, including some of the less-obvious pitfalls you can avoid. Tweet Shoutouts @iOhYesPodcast I didn’t get an Apple TV dev kit, nor will buy it. As long as @netflix & co will support rev 3 I’ll stick with it — You can call me Joe (@mokagio) November 5, 2015 @iOhYesPodcast overscan on the ?TV is killing me. Fairly old but 1080p60 tv has no adjustments! Consoles have own controls, ?TV has none ???? — Ashton Williams (@AshtonDev) November 5, 2015 @AshtonDev @iOhYesPodcast and imho, the margin guides ought to be set to the content-safe borders. — Darryl H. Thomas (@dh_thomas) November 5, 2015 @dh_thomas @iOhYesPodcast yeah surprised you have to add the safe zone guides yourself https://t.co/HyW9m028Qx @jim_rutherford — Ashton Williams (@AshtonDev) November 5, 2015 @iOhYesPodcast @Plex for the new #AppleTV is fantastic. Good design and excellent PQ when running movies from my NAS. Plus, it’s #free ! — BaraLabs, LLC (@BaraLabs) November 5, 2015 How do you get the WWDC videos on the new Apple TV? And the apple events? — ????? (@scottaw) November 6, 2015 @scottaw @RonnieLutes1 I do have this github link from @dh_thomas on this weeks @iOhYesPodcast to roll your own. https://t.co/v8liidTHDZ — Vic Hudson (@vichudson1) November 6, 2015 Discussion: Background work Getting the User’s Attention Local Notification Background Data Callbacks Bluetooth Location Updates Newsstand Downloads Accessory callbacks WWDC 2014 Session 701 - Designing Accessories for iOS and OS X Elevated Multitasking Background Work VoIP Audio / Airplay This is what Facebook has been scrutinized for Background Processing Work [UIApplication backgroundTimeRemaining] - (10 seconds with no background tasks/fetches running) Background work is often paired with greatly diminished CPU priority and can often end up with as little as 4% of the CPU Background Tasks *[UIApplication beginBackgroundTaskWithName:expirationHandler:] [UIApplication endBackgroundTask:] [UIApplication backgroundTimeRemaining] - (600 secs pre-iOS 7, otherwise 180 secs) Background Fetch Project checkbox “Background Fetch” to enable Specify [UIApplication setMinimumBackgroundFetchInterval:] Minimum == as frequently as the OS will permit Never == disable BG fetch callbacks [UIApplication backgroundTimeRemaining] - (~45 secs) Push Fetch Effectively the same behavior as background fetch Background URL Sessions Download to file or Upload from file Performed out of process Calls back either on completion or when authentication is needed Remember to clean up when going into the background No OpenGL Suspend timers Expect Network Failures Clean up Bonjour and other shared resources (Address Book, Calendar, etc) Clear sensitive info from screen Clean up alerts (if needed) Stop updating UI Save the app state Clear unneeded resources Clean up Audio Sessions (Facebook Bug) Opt out Set UIApplicationExitsOnSuspend to YES Picks Nolan Background Modes in Swift Darryl Anova Precision Cooker Wi-Fi…
i
iOhYes

With the recent release of the new Apple TV, John, Nolan and Darryl discuss their home media setups. Tweet Shoutouts Congrats @jazzychad on the new job! Your contributions to @iOhYesPodcast will be missed! — Vic Hudson (@vichudson1) October 29, 2015 @iOhYesPodcast is becoming like Game of Thrones, never know when a host you like is going to get killed. Best of luck @jazzychad — Doug Whitmore (@gooddoug) November 1, 2015 Discussion The new Apple TV Our media setups John Rev 3 Apple TV Chromecast for kids FireStick for Dad Nolan Rev 3 Apple TV Mac Mini (Media Server) Plex server Don Melton Scripts 400 titles Darryl Panasonic TV Rev 4 (New) Apple TV Sound Bar PS4 Dropped optical out on the Apple TV Misses the Front-row app Picks Nolan LifeSpan Desk Treadmill - TR1200-DT3 Building Mobile Applications for Unreliable Networks - Coworker Jie Jin gives talk at Twitter Flight conference Plex HandBrake - Transcode your movies into streamable h.264 Don Melton Scripts - Scripts for transcoding video Darryl wwimp - worldwide instructional media player - The missing [popular developer conference] session player for AppleTV John Can I Stream It Alternative show title suggestions Get more Boos Do you listen to this show? We Have A lot of Disney DVDs Wanna rip it myself 128 game systems I think you might have a problem The most unique video game consoles Hockey puck style If it’s nerdy, I buy it This episode of iOhYes is brought to you by Braintree. Thanks to Braintree for supporting iOhYes and 5by5. Check them out at braintreepayments.com/yes This epsiode of iOhYes is also brought to you by Younity . Stream and share all the media on your computer from your iPhone or iPad for free at GetYounity.com/iOhYes .…
Darryl and Nolan welcome Chad back to the show and discuss iOS apps he’d like to see built. Tweet Shoutouts @iOhYesPodcast You are ace! Love to hear your thoughts about my videos on Swift 2 and Protocol Oriented Programming https://t.co/fp1jbMTZzi — Paul Napier MadApper (@MadApperApps) October 20, 2015 @iOhYesPodcast Hey guys! I'm a newer listener and I like the podcast. I am learning Core Data and write about it at https://t.co/ylidFm0KOo — Jeremiah Jessel (@JCubedApps) October 22, 2015 @iOhYesPodcast Thanks for the detailed response on the show! Great advice, and I'm getting out there. Heading to @SwiftSummit next week. 1/2 — Sean Allen (@SeanA0400) October 21, 2015 @iOhYesPodcast I've had 3 phone and 1 tech interview out of 45 companies. Hearing your story about 14/200 companies helped a lot. Thanks! — Sean Allen (@SeanA0400) October 21, 2015 @iOhYesPodcast @johnsextro of course I have my Xcode snippets on github https://t.co/lN2zkWuUYp I think they are pretty good — Ashton Williams (@AshtonDev) October 22, 2015 Discussion - Chad’s App Ideas A or B (push notif polls) Photo sorting (ELO ranking) Emoji social network Daily Trophy TV Water Cooler Good day/Bad day Movie/trailer rating Podcasting creation Gifs creation app Step counter (w/ watch app) - not possible yet Picks Nolan Unravel, a Chrome Extension for Crashlytics Tweet from James Reggio Darryl tvOS Apprentice Pre-orders Chad Please, Don’t Touch Anything - goofy civilization destruction indie game MVVM in Swift Alternative show title suggestions Steal These Ideas Black Book of Ideas Darryl Steals Chad’s Ideas This episode of iOhYes is brought to you by Braintree. Thanks to Braintree for supporting iOhYes and 5by5. Check them out at braintreepayments.com/yes This epsiode of iOhYes is also brought to you by Younity . Stream and share all the media on your computer from your iPhone or iPad for free at GetYounity.com/iOhYes .…
John, Nolan and Darryl discuss Xcode 7’s new support for UI tests. Tweet Shoutouts @iOhYesPodcast keyboard cursor on 6S, 6S+ requires a force touch, rather than two fingers — Dov Frankel (@DovFrankel) October 14, 2015 @iOhYesPodcast 3D Touch on the6S keyboard will move the cursor like iPad. 9 beta 2 had it. Removed in 3. — Shared Instance (@sharedinst) October 16, 2015 @AshtonDev @iOhYesPodcast Enjoyed Ashton's appearance on the latest epidode of iOhYes talking about hidden power features of XCode — Adam Campbell (@AnAdamInAus) October 15, 2015 @AshtonDev finally guest on @iOhYesPodcast sharing great tips to level up your Xcode skills https://t.co/CUAFA0HcPx — You can call me Joe (@mokagio) October 15, 2015 @AshtonDev @iOhYesPodcast setting default values through schemes is useful when running acceptance tests suites too — You can call me Joe (@mokagio) October 15, 2015 @iOhYesPodcast Just finished an iOS bootcamp, no CS degree, minimal developer experience. Job hunt as Jr. Dev has been rough. Any advice? — Sean Allen (@SeanA0400) October 16, 2015 @iOhYesPodcast Just finished an iOS bootcamp, no CS degree, minimal developer experience. Job hunt as Jr. Dev has been rough. Any advice? — Sean Allen (@SeanA0400) October 16, 2015 Discussion: App Testing with Xcode 7 Are you (hosts) testing your apps? John’s philosophy on testing Why should I test? When should I test? Automated vs. Manual Problems with the old, Instruments-based UI testing solution JavaScript JavaScript JavaScript Alternatives prior to Xcode 7 KIF Subliminal Quick Slepnir Apple’s new UI testing in Xcode * Requires iOS 9/Mac OS X 10.11 Test Recording Leverages “Accessibility” UI Testing Targets API components Assertions, XCTAssert Elements, XCUIElement Proxy for UI things, exposes object type and accessibility label Queries, XCUIElementQuery Tree navigation, similar to XPath Relationships and Filtering “app.tables” is actually a convenience method for app.descendantsMatchingType(‘table’) Application, XCUIApplication Proxy for the application under test, separate and new process Dealing with Gotchas Simulating events No long press, roll your own with pressForDuration No 3d touch press (AFAIK) Wait for… using waitForExpectationsWithTimeout without an explicit wait, a total of 3 attempts will be made to resolve a query before failing Race conditions Item not visible to accessibility Note: “isAccessibilityElement” does NOT need to be true in order to be “visible to accessibility” Resources WWDC Session UI Testing in Xcode Joe Masilotti’s UI Testing in Xcode Big Nerd Ranch’s UI Testing in Xcode 7, Part 1 Giovani Lodi’s Xcode 7 UI Testing, a first look Picks John Quick BDD Framework for iOS (Swift and Obj-C) Use code snippets Apple Doc on Snippets Nolan Star Wars: Episode VII Got nothing for iOS, but here’s the latest Star Wars trailer Darryl iOS Security Guide (iOS 9 and later) Alternative Show Title Suggestions Javascript, Javascript, Javascript! Get the hell out of non-profits Jump on the band wagon Gotcha I Love Star Wars This episode of iOhYes is brought to you by Braintree. Thanks to Braintree for supporting iOhYes and 5by5. Check them out at braintreepayments.com/yes…
Tweet Shoutouts @iOhYesPodcast One thing I forgot to mention: taxes. Self-employment tax is shocker. As I rule I just stash 50% of every check for the gov't — Sommer Panage (@Sommer) October 7, 2015 Stumble Into Aerial Work - Inspiring episode of @iOhYesPodcast with @Sommer and with actionable tips too! https://t.co/4LWUdf0vhj — You can call me Joe (@mokagio) October 7, 2015 @dh_thomas @iOhYesPodcast glad you enjoyed my post on map and for loops ???? — You can call me Joe (@mokagio) October 7, 2015 @iOhYesPodcast @sommer !!! Ok, let's work on rollercoasters together in our next career segments. I've wanted to code coaster CAD software — Chad Etzel (@jazzychad) October 9, 2015 @iOhYesPodcast LOVED the episode this week about @sommer leaving #iosdev to follow her passion. Such a unique take on a interesting topic. — Andy Obusek (@obusek) October 12, 2015 Discussion - Tips for Increasing Productivity in Xcode About Ashton Developer at Odecee Enterprise application development based in Melbourne and Sydney How long have you been there? What types of projects have you worked on? Frequent? Melbourne Cocoaheads speaker Devoted iOhYes listener and quite possibly the most prolific author of Tweet Shoutouts Darryl and Ashton first met at WWDC’13 Social Links @AshtonDev on Twitter Ashton-W on GitHub Blog: Ashton-W.net Breakpoints Beyond line-based breakpoints: categorical breakpoints Types of Breakpoints All Exception breakpoint Stop on any and all Exceptions. Objective-C Exception breakpoint Stop on Objective-C Exceptions, eg: NSException . Swift Error breakpoint Stop on Swift Errors, e.g.: types conforming to ErrorType . New in Xcode 7.1 beta 3 . Test Failure breakpoint Stop when a Test fails. XCTest and compatible frameworks only. Symbolic Breakpoints Stop on a Symbol. A symbol is a selector or method name, or a function name. Methods can be scoped to a class. eg: pathsMatchingExtensions: eg: [SKTLine drawHandlesInView] eg: people::Person::name() eg: _objc_msgForward OpenGL/ES error breakpoints Symbolic breakpoints Particularly useful for breaking in private API Also handy for performing debugger setup in UIApplicationMain import UIKit Load/init Reveal library (or chisel, or whatever) Breakpoint actions Play sound Execute LLDB command AppleScript or Shell Script Log Message - %B %H @expr@ Conditions Options: Continue User breakpoints Shared breakpoints - The only breakpoints feature Ashton doesn’t like Ashton’s User Breakpoints Ashton’s Cocoaheads talk on breakpoints Ashton’s Blog Post on Xcode Breakpoints Reveal Scheming Defaults Defaults domains Apple’s NSUserDefaults Domains reference NSUserDefaults Configuring defaults in schemes Ashton’s Cocoaheads talk on scheming defaults Designable and Inspectable Views in Interface Builder We’ll cover this topic on another show Ashton’s slides and sample code from /dev/world Picks Darryl Automated Xcode version and build numbering via Git - Another pick from our friend @mokagio . Since we’re talking about Xcode productivity, I figured this one fit in well. John 2 finger swipe on keyboard to move cursor xCode Keyboard Shortcut Ashton GammaThingy - iOS app you have to build yourself - uses private APIs to implement changing display color temperature. no jailbreak required. Flux Alternative show title suggestions Another Attack Vector Feature toggle Scheming Default Pro Tips You’re holding it wrong Undocumented features…
Tweet Shoutouts @iOhYesPodcast Hard 2 believe the guy who’s upset @ lower-case keyboard baseline would be able to feel micro-chgs in 6S vibration motor…???? — BaraLabs, LLC (@BaraLabs) September 28, 2015 @iOhYesPodcast kudos on explaining image formats. It's good for devs to know - you don't always get a designer that knows the technical side — Ashton Williams (@AshtonDev) September 30, 2015 @iOhYesPodcast @NolanOBrien this series on JFIF/JPEG technical details from Numberphile is amazingly good https://t.co/X8YfxWWxsS — Chad Etzel (@jazzychad) September 30, 2015 Very informative episode of @iOhYesPodcast on image formats. Recommended for #iosdev https://t.co/vzLhORtFnu — You can call me Joe (@mokagio) September 30, 2015 @iOhYesPodcast Re JPEG2000 legalities: isn't en/decode *supposed* to be patent-free? Many open-source and proprietary implementations. — Greg Fiumara (@gfiumara) October 4, 2015 Homework Follow-up Live Photos are indeed stored as separate .jpg and .mov files on the device, with no packaging convention. The Core Data model establishes a linkage. (Dug around using iBrowse ) Discussion A talk with Sommer Panage - Pursuing one’s dreams while paying the bills http://www.sommerpanage.com/ Formerly worked at Apple and Twitter as a software engineer Ran off to join the circus Vertical Rope Artist Watch Sommer’s Demo on Vimeo Taking the plunge How did you decide? How did you prepare? Supplementing income Teaching Codepath Dave Bellona episode: iOhYes Episode 48 - Unicorn Designer Contracting Would you do anything differently, given your experience? Picks Nolan Search WWDC Videos by term - Very cool, search the transcript and get the timestamp in the search results Darryl When to use map, flatMap or for loops in Swift - Giovanni Lodi ( @mokagio ) Momentum Habit Tracker John Don’t break the chain Jerry Seinfled’s Productivity Secret Sommer Blade Habit List Alternative show title suggestions Bag of Stars Vertical Rope Artist Stumble into aerial work She tripped on a rope Don’t forget the incidentals They’re getting accessibility whether they like it or not Doing my dream – or – living my dream A little nuts My heart has always been in the theme park Do what you love…
i
iOhYes

Tweet Shoutouts @iOhYesPodcast Sorry, I lied last week. As a dev & listener I like longer podcasts & rants b/c I learn so much! btw, first name -> Frank — BaraLabs, LLC (@BaraLabs) September 23, 2015 @jazzychad @iOhYesPodcast sounds like you wanted to embed a tableViewController in your tvOS storyboard, give that a try — Ashton Williams (@AshtonDev) September 23, 2015 @jazzychad @iOhYesPodcast it’s the road to awesome! Let’s you adjust the frame (of the whole tvc) and still use static cells — Ashton Williams (@AshtonDev) September 23, 2015 @jazzychad @iOhYesPodcast about overscan, you still want an edge to edge UI just make sure content in within. Insets and custom views/cells — Ashton Williams (@AshtonDev) September 23, 2015 @iOhYesPodcast my handle is pronounced “mo+ka+jo” ?? That’s due to the italian way of say “gio” that sounds like “jo” — You can call me Joe (@mokagio) September 23, 2015 Yeah, you can disable lowercase letters on iOS 9 keyboard. Thanks for the tip @iOhYesPodcast — Marián ?erný (@mariancerny) September 24, 2015 @iOhYesPodcast Late listener but about extensions: they are only syntactic sugar for external functions operating on a type, so it's ok :) — PorstUndGargel (@PorstUndGargel) September 27, 2015 Discussion Live Photos - Combo of JPEG and MOV JPEG around 2.5 MB 12 MP 95% quality MOV around 2 MB 720p 12 FPS (up to 15 FPS?) 1.5 secs before and after JPG h.264 encoded Formats Bitmap Decoded in memory representation 4 bytes per pixel (even when no alpha) - on iOS at least 1920x1080 - 8,294,400 bytes (~8MB) Lossless vs Lossy PNG (Portable Network Graphics) lossless (can have alpha) Will be ~3.5MB (naive compression can be poor but tools like PNG Crush can help) JPEG (Joint Photographic Experts Group) lossy (no alpha) ~1.1MB at 95% quality and ~650KB at 85% quality Hardware decoding support How Apple quality vs ImageMagick interpreted quality 0.830 == 95% 0.575 == 85% 0.465 == 75% 0.400 == 65% WebP lossy (no alpha) or lossless (alpha) ~850KB at 95% quality and ~500KB at 85% quality ~2.6MB lossless limited support JPEG–2000 lossy (no alpha) or lossless (alpha) over engineered (one format for all use cases) - complex ~800KB at 95% quality and ~650KB at 85% quality limited support Progressive JPEG ~10% smaller than JPEG (~1MB at 95% and ~550KB at 85%) Using ImageIO you can get things to load progressively (iOS 8+ only) Hardware decoding support ~25% to first scan Progressive JPEG–2000 Same size as non-progressive 5 different “progressive modes” - again complex Only RPCL and RLCP modes will work with ImageIO on Apple OSes, super fragile too (but it works) ~25% to first full frame PVRTC Other texture graphics SVG (scalable vector graphics) Resolution independent GIF (Graphics Interchange Format) Uses a palette of 256 predefined colors, limiting quality APNG (Animated PNG) Can get very large very fast Picks Darryl Building Push-Triggered Sync - OmniGroup Dev Blog Part 1 - Building Push-Triggered Sync, Part One: Choosing a Language Part 2 - Building Push-Triggered Sync, Part Two: First Steps Part 3 - Building Push-Triggered Sync, Part III: Connecting to APNs John LiveCoding.tv Nolan LivePhotoDemo APNGKit SwiftSVG ImageMagick iOS 9 Adoption Rate Twitter Dealing with Unreliable Networks - fixed URL from last week Shackleton Shackleton Whisky Pappy Van Winkle - $1000+ per bottle Alternative show title suggestions Heft of images No silver bullets I’m lazy A billion people on the Internet 0 to 255 of transparency J-FIF Make informed defaults (When you) do do WebP lawyers, no thank you brother’s babies The GOVERNMENT! This episode of iOhYes is brought to you by Braintree. Thanks to Braintree for supporting iOhYes and 5by5. Check them out at braintreepayments.com/yes…
Tweet Shoutouts Hey @iOhYesPodcast ! I'm about a month into having an ?Watch. So far the health aspects really work for me. https://t.co/DiaJy2XrRM — Vic Hudson (@vichudson1) September 20, 2015 @iOhYesPodcast there is an open source lib to simulate 3D touch on the Simulator’s SpringBoard https://t.co/3rBZO5dM2S via @_theiostimes — You can call me Joe (@mokagio) September 20, 2015 . @iOhYesPodcast Can you guys push aside the @tim_cook development team and fix their podcast App; They broke it, AGAIN!, with IOS 9 — Rob Jago (@aWork_Rob) September 21, 2015 @iOhYesPodcast @fbOpenSource KVOController is the best way to use KVO imo. They have handled so many edge cases and bugs for you. Nicer API — Ashton Williams (@AshtonDev) September 21, 2015 @iOhYesPodcast you know ... @mokagio runs a regular blog, newsletter, and has done multiple awesome SWIFT conference talks :) get him on ???? — Ashton Williams (@AshtonDev) September 21, 2015 Discussion Apple TV NextMuni Not universal app, separate binary Overscan Can’t set left and right padding on table view 3D Touch Twitter Bookmarks Home icon shortcut menus Dynamic shortcuts are possible Will iPads support 3D touch in the future?? How to test, not supported in simulator (currently) Homework: Long press as 3D touch press Conrad Kramer hack on home screen for 3D DLib talks to simulator to trigger 3D touch menu SBShortcutMenuSimulator Impressions of iOS9 Left swipe for spotlight search and proactive Siri Proactive app suggestions Upper case / lower case letters on the keyboard itself “Back to” button 40% adoption KVOController Malware version of xCode (incident from this week) XcodeGhost iOS malware Picks Chad SBShortcutMenuSimulator John Refactor Mega Controller Alternative show title suggestions Apple Ninjas Good??? Hate interface builder all over again The view is the table view Calibration Image Monitor Snob This is gonna bite a lot of people Deep Press Inception Tuba Beat the clock Internal 3D touch Any code is a security hole Kinda meh Tinee Tiny This episode of iOhYes is brought to you by Casper. Thanks to Casper for supporting iOhYes and 5by5. Check them out at Casper.com/iOhYes…
Tweet Shoutouts @iOhYesPodcast awesome discussion on indie development! #nailonthehead — MadApper (@MadApperApps) September 9, 2015 I want @AshtonDev on @iOhYesPodcast ! His talk was brilliant ???? And he’s also the one who introduced me to the podcast — Call me Joe (@mokagio) September 10, 2015 @iOhYesPodcast after that last episode I guess I have to come on the show ???? — Ashton Williams (@AshtonDev) September 14, 2015 @iOhYesPodcast Good intro to KVO options in swift: http://t.co/IacWR1FsYV Curious on your preferred approach. — Ding0 Bytes (@ding0bytes) September 11, 2015 . @iOhYesPodcast Tiebreaker: shorter podcast with rant at the end. Best of both worlds! (does this tweet make me a show host now? ????) — BaraLabs, LLC (@BaraLabs) September 14, 2015 Discussion - Apple Event Apple Watch New designer bands New colors iPad Pro Pencil… $99 Keyboard $169 iPhone 6S, 6S+ Force Touch.. I mean, 3D Touch AppleTV Native apps TVML 10/100 ethernet (slight diversion to how crappy this is) Picks Nolan @scale conference - great talks and sessions with leaders in engineering including Twitter, Facebook, Pinterest, Google, LinkedIn and more Dealing with Unreliable Networks - Jess Garms [NOTE: the video has no audio at the moment…hopefully will be fixed soon] - Practical advice coming from how the Twitter apps interact with the network. Chad Fastlane - tools for automating iOS development tasks Darryl Piwik iOS SDK - Self-hosted analytics service. Primarily for web, but has an iOS SDK. This isn’t so much a pick as a request for comment. Has anyone used this? What are your thoughts? John GitUp - The Git interface you’ve been missing Alternative show title suggestions More things…to deal with Tears of blood A Thousand Bucks Is A Lot Of Money Question Mark??? On the S-Train Don’t kill me Woe be unto thee It’s too late Licensing Dongle Gigger-bit This episode of iOhYes is brought to you by Braintree. Thanks to Braintree for supporting iOhYes and 5by5. Check them out at braintreepayments.com/yes…
i
iOhYes

Tweet Shoutouts @iOhYesPodcast Length is fine! More rants! — Rauli Rikama (@raulirikama) September 3, 2015 @iOhYesPodcast I actually have a zip library too (UnzipKit). Don’t let the name fool you, it zips also https://t.co/nDppHOge6Y — Dov Frankel (@DovFrankel) September 4, 2015 @AshtonDev Thanks for the quick PRs to add Mac OS X support to ZipUtilities. // cc @iOhYesPodcast — Nolan O'Brien (@NolanOBrien) September 5, 2015 Note: He actually added Mac OS X Framework, iOS Dynamic Framework, Carthage and CocoaPods support! Note: The conference Ashton spoke at that Darryl mentioned is DevWorld. He spoke about designable and inspectable views. Ashton’s slides/code can be found here: https://github.com/Ashton-W/devworld-designables Discussion What are some nice patterns or not-so-nice anti-patterns/bugs you notice in iOS apps? How can devs go about fixing those problems? Nolan notices Requiring login/signup to use the app My wife’s personal pet-peeve Old Fab.com app vs Zappos app Suboptimal table views Stuttering Get off the main thread: includes networking and UIImage rendering Content flashing in once it scrolls into view Prefetch content before it comes on screen: can be easy with table view buffering Requesting all permissions on first app launch with no context! On demand prompting Interstitial Even better: don’t indicate they will be prompted, rather outline the feature and why it needs the permissions and have the user explicitly ask to grant permissions (Periscope does something like this ) Example: (User selects post a photo) Prompt says something like: “A picture is worth a thousand words. We’d like for you to be able to share any of you iPhone’s photos. By enabling us to access your photo library, you can choose from photos you already have to share with friends and family.” Below is a empty checkmark with text “Enable access to photo library” and below that is a “Close” button. Hitting the checkmark will ask for access and user knows exactly why they were prompted. Hitting close will save the setting as “on” or “off” based on if the checkmark was successfully checked. Chad notices Social login (FB/Twitter) only to ask for username/password/email afterward anyway Bad pull-to-refresh implementations (Apple, Twitter) Darryl notices Lack of accessibility Not conforming to the design language of the platform (Note that I didn’t say HIG) Re-inventing system-provided controls/mechanisms for the provider’s gain, not the user’s Facebook/Twitter/SocialMediaX sign-in as the only option Crappy validation. Example: + is perfectly legal in email addresses Collecting address book information to build a social graph Picks Chad Reverse-Engineering iOS Apps: Hacking on Lyft Recall - new iOS Game by Chad Darryl Protocol Oriented Programming in the Real World - Matthew Palmer talks about his experience rewriting Locksmith to be Protocol-oriented. Nolan GitHub - nixzhu/Proposer - Proposer - Swift 1.2 project for asking for permission Racing the Beam - By Nick Montfort and Ian Bogost Platform Studies - MIT Press Alternative show title suggestions Chad’s Right My Two Favorite Words I agree with Chad Stop Crapping Up Your Apps This episode of iOhYes is brought to you by Braintree. Thanks to Braintree for supporting iOhYes and 5by5. Check them out at braintreepayments.com/yes…
Tweet Shoutouts @iOhYesPodcast platitude: 1/3 of our 'productive years' are spent working -> If we make someones job easier we improve .33 of their life :) — Ding0 Bytes (@ding0bytes) August 17, 2015 @iOhYesPodcast my vote would be shorter, more focused episodes. Then just let loose on the new @jazzychad rants podcast ;) — Mark DeLaVergne (@markdelavergne) August 19, 2015 @iOhYesPodcast Longer episodes, more rants!!! — Andy Obusek (@obusek) August 20, 2015 @iOhYesPodcast ep. 81. Result type is useful for async calls. Cannot use throw there. — Kedar Vaidya (@kedarv) August 22, 2015 Note: The keyword Darryl was having trouble recalling is indirect . @iOhYesPodcast Do you have any suggestions for tools like Uncrustify, but for swift? — Amanda (@_ukebox) August 24, 2015 Discussion So you want to develop an app… So you want to be an indie app developer? Why? Are you crazy??? Similarities to Indie music Examples Fully independent Indies Daniel Jalkut Red Sweater Gus Mueller Flying Meat Tapbots Former Indies that have grown into larger companies Omnigroup Panic What motivates a person to develop an app independently? Hobby Scratch own itch Can anyone really make a living? Get a foot in the door with another company Win the lottery (a la Flappy Bird) Have all of the really good ideas for apps been taken? Picks Chad ZipUtilities Open Source Zip library for iOS (and OS X eventually) by Nolan Twitter Bookmarks Recall Darryl $44 iVapo Stainless Steel Apple Watch Band Is your app iOS 9 ready? - a last-minute survival guide for stressed mobile PMs written by Harry Fuecks John Swift Interview Questions from RayWenderlich.com Nolan what if? - Randall Munroe Both hilarious and fascinating Appbot App reviews into insights. For iOS, Mac, Android, Amazon and Windows apps. This episode of iOhYes is brought to you by Braintree. Thanks to Braintree for supporting iOhYes and 5by5. Check them out at braintreepayments.com/yes…
Tweet Shoutouts " @mtjc_podcast is just a bunch of Canadians being happy and friendly and taking about IOS" LOL @iOhYesPodcast — Jack Wu (@JackTripleU) August 12, 2015 @JackTripleU @iOhYesPodcast we're actually 50/50 US/CDN. The yanks were absent on Canada Day, eh? — MTJC Podcast (@mtjc_podcast) August 12, 2015 @JackTripleU @iOhYesPodcast Oh and thanks for the mention. A case of maple syrup is on the way. BTW how do you say OS X? Asking for a friend — MTJC Podcast (@mtjc_podcast) August 12, 2015 @iOhYesPodcast inspiring story about how accessibility enabled someone to grocery shops themselves for the first time — Andy Obusek (@obusek) August 13, 2015 Discussion - UIStackView Referred to by Apple as “your first stop for interfaces built with Auto Layout” in the description of WWDC15 Session 218 Manages the constraints of a vertical or horizontal linear layout Easy migration of IB-based layouts using the new “Embed in Stack View” button Subviews that are to be managed by the stack view are added to the arrangedSubviews property. This allows decorative views to be added directly to subviews without affecting the arrangement. Potential pitfall: Removing a view from the arrangedSubviews array does not remove it as a subview. The stack view no longer manages the view’s size and position, but the view is still part of the view hierarchy, and will be rendered on screen if it is visible. Multiple distribution styles UIStackViewDistributionFill - A layout where the stack view resizes its arranged views so that they fill the available space along the stack view’s axis. When the arranged views do not fit within the stack view, it shrinks the views according to their compression resistance priority. If the arranged views do not fill the stack view, it stretches the views according to their hugging priority. UIStackViewDistributionFillEqually - A layout where the stack view resizes its arranged views so that they fill the available space along the stack view’s axis. The views are resized so that they are all the same size along the stack view’s axis. UIStackViewDistributionFillProportionally - A layout where the stack view resizes its arranged views so that they fill the available space along the stack view’s axis. Views are resized proportionally based on their intrinsic content size along the stack view’s axis. UIStackViewDistributionEqualSpacing - A layout where the stack view positions its arranged views so that they fill the available space along the stack view’s axis. When the arranged views do not fill the stack view, it pads the spacing between the views evenly. If the arranged views do not fit within the stack view, it shrinks the views according to their compression resistance priority. UIStackViewDistributionEqualCentering - A layout that attempts to position the arranged views so that they have an equal center-to-center spacing along the stack view’s axis, while maintaining the spacing property’s distance between views. If the arranged views do not fit within the stack view, it shrinks the spacing until it reaches the minimum spacing defined by its spacing property. If the views still do not fit, the stack view shrinks the arranged views according to their compression resistance priority. Picks Chad Thoughts on Swift 2 Errors Darryl WWDC15 Session 218 WWDC15 Session 219 The Genius of Protocols - Wooji Juice Alternative show title suggestions Your first stop Not your final destination Beefing it up Microphone Hungry This episode of iOhYes is brought to you by Braintree. Thanks to Braintree for supporting iOhYes and 5by5. Check them out at braintreepayments.com/yes…
Tweet Shoutouts @iOhYesPodcast A sample of my Swift JSON code. Every field is optional, though. Took trial and error on some types http://t.co/SqYehQXhpo — Dov Frankel (@DovFrankel) August 6, 2015 @dh_thomas @iOhYesPodcast I can’t believe you read it all out... ???? Did you use kCFStringTransformToUnicodeName ? — Ashton (@AshtonDev) August 6, 2015 @iOhYesPodcast Really enjoyed the discussion on developer / programmer / hacker / software engineer / keyboard-head-banger in episode 78 — Mark DeLaVergne (@markdelavergne) August 6, 2015 Discussion What has Jason been up to? Sharing economy + Mobile (is there anything else on this topic? Chad, if so could you tee up with Jason - ok will do) * What’s different today as opposed to the days of Cosmo.com and Webvan? Why does Instacart work now? Picks Chad A Eulogy for Objective-C John Question to ask yourself before including a third-party library Nolan Announce baby O’Brien #3 CODE: The Hidden Language of Computer Hardware and Software - by Charles Petzhold Jak The Death and Life of Great American Cities Jobs @ Instacart Alternative show title suggestions I’ll never admit to that Maybe we’ve already talked about this 7 months and 1 day later Those were not the steaks I dressed up as a shark Close to many, many years We’re all like stooges Some things really matter to people, and other things don’t Picking produce is hard Those goldfish I’m not some kind of grocery expert Admittedly, I’m an engineer The tables have turned! We don’t share that much code We have broken windows N minus 1 Buy all THE things! Bananas and Whisky Searching for Bananas You can’t do all the things I do all the things Comfortable My door is plenty secure This episode of iOhYes is brought to you by Braintree. Thanks to Braintree for supporting iOhYes and 5by5. Check them out at braintreepayments.com/yes…
i
iOhYes

Tweet Shoutouts @iOhYesPodcast +1 for Code Poet ???? — Sabes™ (@GarySabo) July 29, 2015 @iOhYesPodcast re Hacker vs Engineer- Nice article from @jaredsinclair on "Judicious Use of Shitty Code." http://t.co/tS1YknL05e — Andy Obusek (@obusek) July 30, 2015 @iOhYesPodcast ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? — Ashton (@AshtonDev) July 29, 2015 @iOhYesPodcast looks like we have an opensource book writing tool http://t.co/HhkQa6Pi30 — Ashton (@AshtonDev) July 31, 2015 @iOhYesPodcast My degree says Computer Science. My job title says Mobile Engineer. My time-sheets say Senior Software Engineer. I make apps. — Ashton (@AshtonDev) July 30, 2015 @iOhYesPodcast Yep - objects aren't equatable.Just having one of my adversarial swift days, thank you for listening:) http://t.co/tlIvSVECgy — Ding0 Bytes (@ding0bytes) July 30, 2015 @iOhYesPodcast definitely FTEquivalent in my experience. Useful for commoditised services (ie servicedesks with 200 headcount but 150 FTE.) — Ding0 Bytes (@ding0bytes) July 30, 2015 @iOhYesPodcast lack of clarity yesterday still bothering me: FTE is useful as a means of describing the capacity of a project or a service. — Ding0 Bytes (@ding0bytes) July 31, 2015 ..but it should not be used to describe individual people, unless alienation is the express objective of the exercise. — Ding0 Bytes (@ding0bytes) July 31, 2015 @iOhYesPodcast @NolanOBrien that flew under my OpenRadar. I’m sure you’ll bring some interesting __attributes to the show. — Nick Takayama (@ntakayama) July 31, 2015 @iOhYesPodcast @NolanOBrien @5by5 @jazzychad @dh_thomas @johnsextro Wow, what an upgrade! ???????????? — Jason Kozemczak (@jak) July 31, 2015 Discussion Swift 2.0 in Practice (continued) Custom Subclasses throwaway required initializers Property observers (will/didSet etc) and initialization redundancy JSON Parsing SwiftyJSON Argo Another way Roll your own? What’s wrong with NSJSONSerialization? JSON in Swift - article talking about NSJSONSerialization vs SwiftyJSON vs Argo Picks Chad Configuring App Transport Security Exceptions in iOS 9 and OSX 10.11 Darryl Swift Error Handling and Objective-C Interop in Depth - Benjamin Encz More Than Just Code Podcast Nolan Dirty Coding Tricks More Dirty Tricks from Game Developers Thanks Amro Mousa @amdev for the article(s) Boxes: Organize. Discover. Buy. Sell. Shameless plug for a startup I advised Also Mentioned Build Phase Podcast Making Crash Bandicoot - All Things Andy Gavin Alternative show title suggestions Shoot Me Now Judicious use of gritty code Bumps in the road Whack Whack Colon Whack Whack…
Tweet Shoutouts @dh_thomas @jazzychad @iOhYesPodcast In the last few years I’ve been of the mindset that models should be dumber. Easy to bloat them. — Amro Mousa (@amdev) July 22, 2015 @iOhYesPodcast how come show notes aren’t as detailed as they once were. Would always go there for Twitter names and Pick links ???? — Ashton (@AshtonDev) July 23, 2015 @iOhYesPodcast I’m using CoreData just fine from a framework written in Swift for bike2Go (for Philly bike share) https://t.co/IBcRpXT9O6 — Andy Obusek (@obusek) July 23, 2015 @iOhYesPodcast found you guys a month ago and love the show! But now I'm all caught up on new episodes and am having withdrawals #iOhNo ! — Dale Fairclough (@faircoder) July 25, 2015 @iOhYesPodcast I haven't had any issues using it, but to be fair my model is **very** simple. — Giovanni Lodi (@mokagio) July 26, 2015 @iOhYesPodcast Wait... we still don't have .contains on Swift arrays without using a protocol? NSMutable FTW. Again. http://t.co/ff7a8RwwOP — Ding0 Bytes (@ding0bytes) July 27, 2015 Discussion Programmer vs. Developer vs. Engineer discussion Re: Episode 76 Episode 76 had a great topic that was really thought provoking regarding Programmer vs Developer vs Engineer. Everyone can probably has an opinion on what those titles mean Fascinating: we’re inclined to rank things Their all title for someone who makes software or code Maybe “Software Producer” or “Talent” is less biased Code Poet is my favorite (thx John) Alternate views Instead, I like to examine the skills Instead of Programmer vs Developer vs Engineer; look at Programming, Development and Engineering as buckets of skills Full-time Equivalent The 5 skills Hacking * bringing together a system of potentially disparate computer apps/tools/functions to achieve a goal * Gluing together anything you can get your hands on to build a workflow or solution takes talent and skill * Often the goal of Hacking is really “discovery” or “exploration” Movie Reference: Hackers Programming writing code/scripts to pull together potentially disparate functionality and/or frameworks to achieve a goal You create a whole that is more valuable than the sum of its parts amassing and consuming huge amounts of knowledge about APIs and Frameworks that are available and then using them effectively Development the process of bringing together talent, ideas and requirements to build a new application or feature Deals with other people and takes input from all over to build something new it’s inherently collaborative and requires other skills like interpersonal skills and communications skills often called soft skills which I find ironic because it’s so hard Engineering the use of science and creativity to solve complex problems It needs an academic foundation combined with creativity and ingenuity to solve hard problems These skills get amplified in value when complemented by others who can fill in any knowledge or skill gaps Architecture the design of a large complex system or application that requires numerous contributors to fully implement it is a skillset that can envision, design, and clearly document and communicate a complex system in a cogent way that everyone tasked with implementing the system are able to apply their skills to succeed with little or no impediment? Picks Darryl Swift’s Type System - Ole Begemann A response to Brent Simmons’ blog post, Solving Problems I Don’t Have, Except that I Do Have Them , in which he points out the things he likes most about Swift, of which static type checking is probably the least significant. Chad deferring (haha) to Nolan John Hacking with Swift - A load of free tutorials with Swift from Paul Hudson @twostraws Twelve South Dual Screen Wallpaper Collection Nolan Apple Radar Everyone should file bugs and feature requests Open Radar Dupe any bugs/requests that you can to open radar Be a community Share your Open Radar with us. Any radar we can get on board with we will mention on the show and dupe to Apple Radar ourselves. Quick Radar Makes filing radars easier Easily can file to both Apple and Open radars Can automatically Tweet the radar out too First radar plug: My own Radar Asking Apple for @defer support in Objective-C https://twitter.com/NolanOBrien/status/618098575826751488 Anyone interested in using a macro for defer support until Xcode supports it can look at the Open Radar for the code on how to Special thanks to Ashton @AshtonDev for the inspiration Alternative show title suggestions SequenceType Feedback from Ding0bytes Full-time Equivalent Spam Killer Hex Editor Not the Southern Kind of Cracker Soft skills are hard Software is easy, people are hard Sell yourself I’m a svengali Getting my hemispheres correct All the ripples String this racket Skin this cat Made with catgut I Try To Avoid Titles I make people smile and sometimes cry…
We discuss specifics regarding value types and references, including how to use them and when to use them. Chad sheds some light on his struggles getting familiar with Protocol-Oriented Programming. A special thanks to Casper for supporting the show. Go get $50 toward any mattress purchase by visiting Casper.com/iOhYes and use the code iOhYes. Terms and Conditions Apply.…
We discuss what it means to be a software developer and the differences between programmer, developer and engineer (if there really are any differences). Do you think there's a difference or should there be a difference in those terms? Let us know. Send a tweet to @iohyespodcast
Welcome to Player FM!
Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.