Obj C public
[search 0]
More
Download the App!
show episodes
 
Artwork
 
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
 
Loading …
show series
 
Sometimes we run into issues where SwiftUI doesn't quite do what we need. In some cases, SwiftUI views are powered by UIKit under the hood. Wouldn't it be great (and devious) to dig into the underlying UIKit views to customize things when vanilla SwiftUI just won't cut it? In this episode we'll look at a technique for discovering the UIKit undernea…
  continue reading
 
One of the most impactful things you can do to improve productivity is to improve turnaround time when iterating on features. Playgrounds and Xcode Live Previews are great, but both have their limitations. In this episode we will explore how to utilize hot module reloading to have the simulator automatically reflect your changes when you save. It's…
  continue reading
 
This is a discussion and code overview of another implementation of mapping models using key paths with a special guest, Antoine van der Lee! In this episode we talk about his initial goals and constraints, and some of the design tradeoffs he made while designing a solution that would give him a bidirectional mapping between Core Data entities and …
  continue reading
 
In this episode we migrate our collection view to use the new cell registration API. Using this API we no longer need to cast dequeued cell types to our custom types. Instead, we set up the registration object with the cell type and the data we'll be passing to each cell. This further reduces the code we have to write in our datasource implementati…
  continue reading
 
With UITableView no longer being encouraged for use, we need to replace this behavior with UICollectionView. This is where UICollectionViewListLayout comes into play. Using this layout we can get the familiar table view appearance in plain and grouped styles (as well as additional styles to support sidebars on iPad and macOS). This includes support…
  continue reading
 
I've been working on rendering waveforms using mathematical functions and have found the experience to be both fun and enlightening. In this episode we will develop a method to render arbitrary functions using a Shape, then explore some mathematical concepts that can help us render a nice looking waveform that could be use to indicate activity in s…
  continue reading
 
iOS 14 Beta is now available and one of the new features is Lazy stacks. With a normal stack, all the layout happened at once, which meant poor performance for large lists of content, grids, etc. With Lazy stacks the views are only created when they first come on screen, greatly increasing the usefulness of stacks for large or infinite collections …
  continue reading
 
Before Swift 5 we used to write our own Result type to contain a value or an error (but never both). A lot of 3rd party libraries brought along their own as well. Then Swift 5 came and brought us Result. Not only is it slightly different than the ones we might be familiar with, Swift's Result type also has some useful functionality up its sleeve.…
  continue reading
 
Sometimes we need to create variants of our icons. This can be done by using template images and using a UIImageView with a tintColor change, however sometimes this isn't feasible. We can use our icons along with a mask to create new images of whatever color we want. In this episode we'll use UIGraphicsImageRenderer to quickly draw a new dimmed ima…
  continue reading
 
Working with dates is a task that is universally applicable to Swift developers. Particularly when dealing with an API, dates can arrive in all shapes and sizes. We‘ll examine some of the common ones such as ISO 8601, show how to parse these formats into Date instances, and how to use DateFormatter to display them back again as a string. We‘ll also…
  continue reading
 
UITableView can support scrolling through many rows of data, however fetching large amounts of remote data can slow down your app, use up too much memory, and bog down your web server. This is all wasteful if users aren‘t ever going to scroll down that far. In this episode you‘ll learn how to perform automatic UITableView pagination using an easy t…
  continue reading
 
In order to use CloudKit to read or write private data (or to write in the public database) the user will have to be signed in to iCloud on their device. If they are not, they'll not have a great experience, and things won't work. In this episode we'll check the account status before trying to save a record in CloudKit. We'll also respond to the no…
  continue reading
 
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 H…
  continue reading
 
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 t…
  continue reading
 
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…
  continue reading
 
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 curre…
  continue reading
 
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…
  continue reading
 
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-…
  continue reading
 
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 (…
  continue reading
 
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 tak…
  continue reading
 
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 accessibi…
  continue reading
 
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 *…
  continue reading
 
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…
  continue reading
 
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 c…
  continue reading
 
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 sol…
  continue reading
 
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 “Acti…
  continue reading
 
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 ne…
  continue reading
 
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 measu…
  continue reading
 
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 infor…
  continue reading
 
Loading …

Quick Reference Guide