Nolan and Darryl discuss background operations on iOS, including some of the less-obvious pitfalls you can avoid.\n\n\n\nTweet Shoutouts\n\n\n@iOhYesPodcast I didn\u2019t get an Apple TV dev kit, nor will buy it. As long as @netflix & co will support rev 3 I\u2019ll stick with it— You can call me Joe (@mokagio) November 5, 2015\n\n\n\n\n@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\n\n\n\n\n@AshtonDev @iOhYesPodcast and imho, the margin guides ought to be set to the content-safe borders.— Darryl H. Thomas (@dh_thomas) November 5, 2015\n\n\n\n\n@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\n\n\n\n\n@iOhYesPodcast @Plex for the new #AppleTV is fantastic. Good design and excellent PQ when running movies from my NAS. Plus, it\u2019s #free!— BaraLabs, LLC (@BaraLabs) November 5, 2015\n\n\n\n\nHow do you get the WWDC videos on the new Apple TV? And the apple events?— ????? (@scottaw) November 6, 2015\n\n\n@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\n\n\n\n\n\n\n\n\n\nDiscussion: Background work\n\n\n\n\n\nGetting the User\u2019s Attention\n\n\nLocal Notification\n\nBackground Data Callbacks\n\n\nBluetooth\nLocation Updates\nNewsstand Downloads\nAccessory callbacks\n\n\nWWDC 2014 Session 701 - Designing Accessories for iOS and OS X\n\n\nElevated Multitasking Background Work\n\n\nVoIP\nAudio / Airplay\n\n\nThis is what Facebook has been scrutinized for\n\n\nBackground Processing Work\n\n\n[UIApplication backgroundTimeRemaining] - (10 seconds with no background tasks/fetches running)\nBackground work is often paired with greatly diminished CPU priority and can often end up with as little as 4% of the CPU\nBackground Tasks\n*[UIApplication beginBackgroundTaskWithName:expirationHandler:]\n\n\n[UIApplication endBackgroundTask:]\n[UIApplication backgroundTimeRemaining] - (600 secs pre-iOS 7, otherwise 180 secs)\n\nBackground Fetch\n\n\nProject checkbox \u201cBackground Fetch\u201d to enable\nSpecify [UIApplication setMinimumBackgroundFetchInterval:]\n\n\nMinimum == as frequently as the OS will permit\nNever == disable BG fetch callbacks\n\n[UIApplication backgroundTimeRemaining] - (~45 secs)\n\nPush Fetch\n\n\nEffectively the same behavior as background fetch\n\nBackground URL Sessions\n\n\nDownload to file or Upload from file\nPerformed out of process\nCalls back either on completion or when authentication is needed\n\n\nRemember to clean up when going into the background\n\n\nNo OpenGL\nSuspend timers\nExpect Network Failures\nClean up Bonjour and other shared resources (Address Book, Calendar, etc)\nClear sensitive info from screen\nClean up alerts (if needed)\nStop updating UI\nSave the app state\nClear unneeded resources\nClean up Audio Sessions (Facebook Bug)\n\nOpt out\n\n\nSet UIApplicationExitsOnSuspend to YES\n\n\n\n\n\n\nPicks\n\n\n\n\nNolan\n\n\n\n\n\nBackground Modes in Swift\n\n\n\n\n\nDarryl\n\n\n\n\n\nAnova Precision Cooker Wi-Fi