Hi! I write a short iOS app development nugget every Friday/Saturday. It's short, and usually something you can read in a few minutes and improve your skills at iOS app development. Join more than 1000 developers:
Easy to unsubscribe. No spam — your e-mail address is safe.
(This was previously hosted at http://tinyletter.com/iosdev and was called “iOS Dev Tips Weekly”. It's still the same newsletter, just renamed and hosted here now.)
.
Archives of Past Issues
- iOS Dev Nugget 315 UITextContentType.oneTimeCode
- iOS Dev Nugget 314 Checked Array Subscripting
- iOS Dev Nugget 313 Showing a Full Height UITableView
- iOS Dev Nugget 312 Fix Distorted Launch Screens with Hotspot Bar
- iOS Dev Nugget 311 jq
- iOS Dev Nugget 310 Weak Reference Wrapper Class
- iOS Dev Nugget 309 Rule of Thumb Regarding self.
- iOS Dev Nugget 308 Careful with early return statements in functions that return void
- iOS Dev Nugget 307 Array Out of Bounds
- iOS Dev Nugget 306 Underscores in Numeric Literals
- iOS Dev Nugget 305 Declaring Distinct Types from General Types
- iOS Dev Nugget 304 CodeRunner
- iOS Dev Nugget 303 Use Enums for States
- iOS Dev Nugget 302 Realm
- iOS Dev Nugget 301 Print App Document Path II
- iOS Dev Nugget 300 Pipe Operator
- iOS Dev Nugget 299 Currying
- iOS Dev Nugget 298 Conditional Breakpoints
- iOS Dev Nugget 297 Defensive Checks for Asynchronous Calls
- iOS Dev Nugget 296 Strange UITableView Jumping Behavior when Reloading
- iOS Dev Nugget 295 SwifterSwift
- iOS Dev Nugget 294 Core Data Editor
- iOS Dev Nugget 293 iOSSnapshotTestCase (was FBSnapshotTestCase)
- iOS Dev Nugget 292 for-where
- iOS Dev Nugget 291 Implicit Member Expressions
- iOS Dev Nugget 290 Auto Layout with UIScrollView
- iOS Dev Nugget 289 Set Background Color for UIWebView to Match App While Still Loading Documents
- iOS Dev Nugget 288 Use the .custom UIButton type to Fix Flashing when Title is Changed
- iOS Dev Nugget 287 Modifying a Property Which is a Struct Triggers didSet
- iOS Dev Nugget 286 Use Auto Layout for Bottom Bar
- iOS Dev Nugget 285 maskedCorners
- iOS Dev Nugget 284 Use Shell Aliases for Git commands
- iOS Dev Nugget 283 Eureka for Forms
- iOS Dev Nugget 282 Update to My Git no-commit Pre-commit Hook
- iOS Dev Nugget 281 Use R.swift for Static References to Resources Like Images
- iOS Dev Nugget 280 Using Custom Fonts Without Updating Info.plist Manually
- iOS Dev Nugget 279 Reclaim Disk Space by Deleting Old Simulators
- iOS Dev Nugget 278 Type Inference for Objective-C
- iOS Dev Nugget 277 REPL in LLDB
- iOS Dev Nugget 276 Adding an Indent Default Parameter When Logging Calls in Object Hierarchies
- iOS Dev Nugget 275 Implementing UIView draw(_:)
- iOS Dev Nugget 274 Password AutoFill
- iOS Dev Nugget 273 Animating UILabel textColor Changes
- iOS Dev Nugget 272 Namespacing using Enums
- iOS Dev Nugget 271 Zhi — Live Reloading Auto Layout Constraints and more
- iOS Dev Nugget 270 Using lazy properties to workaround initializing dependent non-optional properties
- iOS Dev Nugget 269 Including Finger Touches in App Preview Videos
- iOS Dev Nugget 268 Using Blocks for Delegate Methods
- iOS Dev Nugget 267 Touch ID with sudo
- iOS Dev Nugget 266 Play a System Sound for Simple Untethered Debugging
- iOS Dev Nugget 265 value type cannot have a stored property that recursively contains it
- iOS Dev Nugget 264 Track how long a function takes to run and report progress
- iOS Dev Nugget 263 Smart Folders for Quick Access to Most Recent Files
- iOS Dev Nugget 262 Apple Device Names API
- iOS Dev Nugget 261 Checking App Download Size
- iOS Dev Nugget 260 Include App Version and Device Name in Feedback/Support Email
- iOS Dev Nugget 259 CAShapeLayer, UIBezierPath and UIRectCorner
- iOS Dev Nugget 258 iPhone Screen Size Guide
- iOS Dev Nugget 257 Asserts
- iOS Dev Nugget 256 SFAuthenticationSession for Login Protocols and Single Sign On
- iOS Dev Nugget 255 Symbolic Breakpoint to watch for View Controller Deallocation
- iOS Dev Nugget 254 Paw, for Working with APIs
- iOS Dev Nugget 253 Token-based Push Provider Connections
- iOS Dev Nugget 252 A Little Trick to Write Loosely Coupled View Controllers
- iOS Dev Nugget 251 Retrieving the Current View Controller
- iOS Dev Nugget 250 Reset Push Notification Permissions Alert on iOS and More
- iOS Dev Nugget 249 App Transport Security Diagnostics with nscurl
- iOS Dev Nugget 248 In-app Native Routing
- iOS Dev Nugget 247 ASCII Table
- iOS Dev Nugget 246 Mapping Swift and Obj-C Method Names
- iOS Dev Nugget 245 Show Call Hierarchy
- iOS Dev Nugget 244 IteratorProtocol
- iOS Dev Nugget 243 Wrapping BOOL in a Class
- iOS Dev Nugget 242 Finder Tips
- iOS Dev Nugget 241 Swift Enums with Labels
- iOS Dev Nugget 240 Print an Object's Unique Identifier
- iOS Dev Nugget 239 Core Location Background Updates
- iOS Dev Nugget 238 Keep Code in Method at the Same Level of Abstraction
- iOS Dev Nugget 237 mas-cli
- iOS Dev Nugget 236 Look up Error Codes
- iOS Dev Nugget 235 Testing Localization Using Launch Arguments (III)
- iOS Dev Nugget 234 #available and @available
- iOS Dev Nugget 233 Separating View Controllers and Their Views
- iOS Dev Nugget 232 Shared Web Credentials: Logging Into iOS app with Password Saved with Safari
- iOS Dev Nugget 231 WhatTheFont
- iOS Dev Nugget 230 Shortcut to Generate Quick Help Documentation
- iOS Dev Nugget 229 Promises
- iOS Dev Nugget 228 Recording and Playing Back Network Calls
- iOS Dev Nugget 227 View with Rounded Corners
- iOS Dev Nugget 226 React Native
- iOS Dev Nugget 225 Contextual Help for Xcode Build Settings
- iOS Dev Nugget 224 Lazy Collections
- iOS Dev Nugget 223 Moving Your Cursor in Terminal
- iOS Dev Nugget 222 Uniquely Identifying User Devices
- iOS Dev Nugget 221 macOS No Longer Remembers Your SSH Passphrases
- iOS Dev Nugget 220 Don't Download Xcode from the Mac App Store
- iOS Dev Nugget 219 Test Your App with Airplane Mode enabled
- iOS Dev Nugget 218 Display an Empty Screen While Loading Data Instead of Blocking
- iOS Dev Nugget 217 CloudKit
- iOS Dev Nugget 216 File Data Protection
- iOS Dev Nugget 215 dump Instead of print for Swift Structs
- iOS Dev Nugget 214 Launch App Quickly
- iOS Dev Nugget 213 Download Your App Data on iOS Device for Debugging
- iOS Dev Nugget 212 Local Datastore as a Cache
- iOS Dev Nugget 211 Higher Order Functions: map, filter, reduce
- iOS Dev Nugget 210 PMAlertController
- iOS Dev Nugget 209 Swift Defer
- iOS Dev Nugget 208 showViewController(_:sender:)
- iOS Dev Nugget 207 Swift Nil-Coalescing Operator
- iOS Dev Nugget 206 Date doesRelativeDateFormatting
- iOS Dev Nugget 205 The Never Return Type in Swift
- iOS Dev Nugget 204 Swift @autoclosure
- iOS Dev Nugget 203 Swift Measurement
- iOS Dev Nugget 202 Swift Enumerations to Encode States
- iOS Dev Nugget 201 Swift Pattern Matching
- iOS Dev Nugget 200 Swift flatMap
- iOS Dev Nugget 199 Swift Talk Video Series
- iOS Dev Nugget 198 KZPlayground
- iOS Dev Nugget 197 App Initialization Code
- iOS Dev Nugget 196 Rename Refactoring for Swift Code
- iOS Dev Nugget 195 Tools of the Trade
- iOS Dev Nugget 194 Debugging CGContextDrawImage: invalid context 0x0
- iOS Dev Nugget 193 Result Enumeration
- iOS Dev Nugget 192 Download Xcode from Downloads for Apple Developers Website Instead of Mac App Store
- iOS Dev Nugget 191 Reducing Power Consumption While Using Core Location
- iOS Dev Nugget 190 Quick Look Plug-in for Mobile Provisioning Files
- iOS Dev Nugget 189 Xcode's Fix All in Scope
- iOS Dev Nugget 188 SwiftLint
- iOS Dev Nugget 187 Creating a Singleton Class in Swift
- iOS Dev Nugget 186 Injection for Xcode
- iOS Dev Nugget 185 Disabling Content Change Animation in CATextLayer
- iOS Dev Nugget 184 Async Library
- iOS Dev Nugget 183 Quality of Service Classes
- iOS Dev Nugget 182 Tracking the swift-evolution Git Repository
- iOS Dev Nugget 181 Swift Selectors
- iOS Dev Nugget 180 Low Power Mode
- iOS Dev Nugget 179 Dragging the Program Counter
- iOS Dev Nugget 178 Breakpoint Actions for Logging
- iOS Dev Nugget 177 Push Notifications Testing During Development
- iOS Dev Nugget 176 Git no-commit Pre-commit Hook
- iOS Dev Nugget 175 Displaying a Popover in iPhone App
- iOS Dev Nugget 174 View Controller Containment to Avoid Growing a Fat View Controller Base Class
- iOS Dev Nugget 173 Xcode Package Manager, Alcatraz
- iOS Dev Nugget 172 Print App Document Path
- iOS Dev Nugget 171 Dynamic Type
- iOS Dev Nugget 170 Homebrew
- iOS Dev Nugget 169 fastlane: deliver
- iOS Dev Nugget 168 Using Blocks to Manage Contexts
- iOS Dev Nugget 167 Animation with Auto Layout
- iOS Dev Nugget 166 @expr import UIKit
- iOS Dev Nugget 165 Copy and Paste from Shell
- iOS Dev Nugget 164 Using Storyboard Launch Screens
- iOS Dev Nugget 163 Testing Localization Using Launch Arguments (II)
- iOS Dev Nugget 162 Reclaim Disk Space from Xcode Usage
- iOS Dev Nugget 161 Read Smalltalk Best Practice Patterns
- iOS Dev Nugget 160 NSExtensionActivationRule for App/Share Extensions and using NSPredicate
- iOS Dev Nugget 159 3 Types of NSURLSessionConfiguration
- iOS Dev Nugget 158 Checking if Newer APIs Are Available In Older iOS Versions (II)
- iOS Dev Nugget 157 Quick Actions to Launch Apps Using 3D Touch
- iOS Dev Nugget 156 -canOpenURL:
- iOS Dev Nugget 155 Authentication Using Touch ID
- iOS Dev Nugget 154 App Transport Security
- iOS Dev Nugget 153 Shortcut to Open Log in Simulator
- iOS Dev Nugget 152 Lossy PNG Compression
- iOS Dev Nugget 151 More Wrappers for Keychain Access
- iOS Dev Nugget 150 Using NSCoder to Persist Data
- iOS Dev Nugget 149 Timepiece, a Swift Library for Handling Dates
- iOS Dev Nugget 148 Difference between CFBundleVersion and CFBundleShortVersionString
- iOS Dev Nugget 147 NSRegularExpression and NSDataDetector
- iOS Dev Nugget 146 UIStackView and TZStackView
- iOS Dev Nugget 145 Listing Available Fonts
- iOS Dev Nugget 144 NSURLSession instead of NSURLConnection
- iOS Dev Nugget 143 Don't Forget SQLite
- iOS Dev Nugget 142 Grand Central Dispatch
- iOS Dev Nugget 141 Great Swift Standard Library Examples Covered in Playground (Swift 2.0)
- iOS Dev Nugget 140 Best Practices on Avoiding Crashes
- iOS Dev Nugget 139 Custom Build Configurations and Xcode Subprojects
- iOS Dev Nugget 138 Interoperability: Using Enumerations Defined In Objective-C from Swift
- iOS Dev Nugget 137 Named Tuple Elements
- iOS Dev Nugget 136 Auto Layout with Cartography
- iOS Dev Nugget 135 CAShapeLayer, Animated Views and XCPShowView()
- iOS Dev Nugget 134 Checking an Object for its Class in Swift
- iOS Dev Nugget 133 Dollar.swift
- iOS Dev Nugget 132 XCPCaptureValue in Swift Playgrounds
- iOS Dev Nugget 131 Running Asynchronous Code in Swift Playgrounds
- iOS Dev Nugget 130 Try Disabling Source Control in Xcode if it Beachballs On Launch
- iOS Dev Nugget 129 Browsing the Swift Standard Library
- iOS Dev Nugget 128 Dependency Management for 3rd Party Code: Git Submodules
- iOS Dev Nugget 127 Dependency Management for 3rd Party Code: Carthage
- iOS Dev Nugget 126 Dependency Management for 3rd Party Code: Cocoapods
- iOS Dev Nugget 125 View Debugging in Xcode
- iOS Dev Nugget 124 performSelector:withObject:afterDelay: in Swift
- iOS Dev Nugget 123 Using dynamicType in Swift
- iOS Dev Nugget 122 Importing Many Test Photos into iOS Simulator II
- iOS Dev Nugget 121 InflectorKit
- iOS Dev Nugget 120 Running JavaScript on UIWebView and WKWebView
- iOS Dev Nugget 119 Ad Hoc Tethered Install Using iTunes
- iOS Dev Nugget 118 Vendoring Code and Git Submodules
- iOS Dev Nugget 117 UIView-Encapsulated-Layout-Height
- iOS Dev Nugget 116 method() is unavailable: use object construction Class()
- iOS Dev Nugget 115 Displaying Information in Settings App
- iOS Dev Nugget 114 Preview an Image for Debugging
- iOS Dev Nugget 113 GPUImage, a GPU-based Image and Video Processing Framework
- iOS Dev Nugget 112 Format Specifiers for Numbers
- iOS Dev Nugget 111 iOS Support Matrix
- iOS Dev Nugget 110 Resizing and Cropping an Image
- iOS Dev Nugget 109 UIKeyCommand
- iOS Dev Nugget 108 Extension View Controller As App's Root View Controller For Faster Development
- iOS Dev Nugget 107 Auto-sizing UITableViewCells
- iOS Dev Nugget 106 Command Line Access to Developer Portal
- iOS Dev Nugget 105 Try FLEX
- iOS Dev Nugget 104 Animating Changes to View Height When Keyboard Appears/Disappears
- iOS Dev Nugget 103 Testing Localization Using Launch Arguments
- iOS Dev Nugget 102 Static Launch Images for iPhone 6 and iPhone 6 Plus
- iOS Dev Nugget 101 Asset Catalog
- iOS Dev Nugget 100 Try Reveal
- iOS Dev Nugget 99 Try PaintCode
- iOS Dev Nugget 98 Type to Filter in Xcode Jump Bar
- iOS Dev Nugget 97 Checking Which Version Of the App The User Purchased
- iOS Dev Nugget 96 Jack, A Native App For iTunes Connect
- iOS Dev Nugget 95 Block-based API with BlocksKit
- iOS Dev Nugget 94 -valueForKeyPath: and KeyValueCoding
- iOS Dev Nugget 93 C Pointers
- iOS Dev Nugget 92 Text Notifications Over Status Bar or Navigation Bar
- iOS Dev Nugget 91 Using Event Delivery Responder Chain for Global Actions
- iOS Dev Nugget 90 Full-Text Searchable WWDC Video Text Transcripts
- iOS Dev Nugget 89 When to Deselect Table View Cell
- iOS Dev Nugget 88 Hiding the Status Bar In Launch Screens
- iOS Dev Nugget 87 What's New in iOS 8
- iOS Dev Nugget 86 Using UITableView -registerClass:forCellReuseIdentifier: with UITableViewCell
- iOS Dev Nugget 85 A More Customizable Button For Different States
- iOS Dev Nugget 84 One More Thing About +imageWithContentsOfFile: vs. +imageNamed:
- iOS Dev Nugget 83 Match Status Bar Style in Launch Screen With Your App's
- iOS Dev Nugget 82 @import
- iOS Dev Nugget 81 TMCache For In-Memory and Disk-backed Caching
- iOS Dev Nugget 80 Switching UIStatusBarStyle Based on UIImage Shown
- iOS Dev Nugget 79 TweetBot Photo Flicking Effect
- iOS Dev Nugget 78 Delegates or NSNotification
- iOS Dev Nugget 77 RubyMotion Tutorial For Objective C Developers
- iOS Dev Nugget 76 Importing Many Test Photos into iOS Simulator
- iOS Dev Nugget 75 UIButton Not Triggering Action
- iOS Dev Nugget 74 Autocompletion of Method in a Protocol
- iOS Dev Nugget 73 Open Source Date Picker from Square
- iOS Dev Nugget 72 Slimming Down Your App
- iOS Dev Nugget 71 Tap
- iOS Dev Nugget 70 Updates to Previous Issues
- iOS Dev Nugget 69 Apple Services Status Dashboard
- iOS Dev Nugget 68 Custom URL Schemes Directory
- iOS Dev Nugget 67 Simulating a slow cellular network with Network Link Conditioner on iOS
- iOS Dev Nugget 66 JBChartView for Charting
- iOS Dev Nugget 65 NSURLComponents
- iOS Dev Nugget 64 Placeholder Views Using PAPlaceholder
- iOS Dev Nugget 63 Update Your iOS Development Toolbox
- iOS Dev Nugget 62 Using PDF Instead of PNG Files for Resizable Assets
- iOS Dev Nugget 61 Null Coalescing Operator
- iOS Dev Nugget 60 Use instancetype
- iOS Dev Nugget 59 Zoom into UI on Device
- iOS Dev Nugget 58 Implementing Push Notifications
- iOS Dev Nugget 57 Triple Slash To Make Comments Appear in Xcode Help
- iOS Dev Nugget 56 Using Affiliate Links to Track Your App Downloads
- iOS Dev Nugget 55 Modifying Compilation Flags For Multiple Source Files at Once
- iOS Dev Nugget 54 Suppressing Xcode's Unused Variable Warning
- iOS Dev Nugget 53 Try Kaleidoscope, File Comparison for Mac
- iOS Dev Nugget 52 Set Up Crashlytics For Ad Hoc and App Store Builds Only
- iOS Dev Nugget 51 Keeping Swipe to Go Back in iOS 7 With Custom Back Button
- iOS Dev Nugget 50 UITableView -registerClassforCellReuseIdentifier:
- iOS Dev Nugget 49 Wrapper to Get UIColor Components
- iOS Dev Nugget 48 Utility Library for Keychain Access
- iOS Dev Nugget 47 Generating Copies of an Image With Different Colors
- iOS Dev Nugget 46 Timing Small Bits of Code
- iOS Dev Nugget 45 xScope
- iOS Dev Nugget 44 Automatically Remove Duplicate or Unused Images From App
- iOS Dev Nugget 43 Accessing Image Properties Without Loading Entire Image Into Memory
- iOS Dev Nugget 42 #valueForKey on NSArrays
- iOS Dev Nugget 41 Checking if Newer APIs Are Available In Older iOS Versions
- iOS Dev Nugget 40 Blocks are Great, but Watch Out for Retain Cycles
- iOS Dev Nugget 39 Use NSCache Instead of NSMutableDictionary When Caching
- iOS Dev Nugget 38 Bulk Generate 1x Images From 2x Retina Images
- iOS Dev Nugget 37 Checking if an Object is Empty
- iOS Dev Nugget 36 Use TestFlight for Ad Hoc Builds
- iOS Dev Nugget 35 Use UIView.autoresizingMask
- iOS Dev Nugget 34 When do you use UIImage's +imageWithContentsOfFile: over +imageNamed:?
- iOS Dev Nugget 33 Prepare for Locationalization from Day One
- iOS Dev Nugget 32 FMDB: Thin Objective C Wrapper Around SQLite
- iOS Dev Nugget 31 3rd Party Documentation Viewers
- iOS Dev Nugget 30 Shortcut key to toggle slow animations in the iOS simulator (part II)
- iOS Dev Nugget 29 Simulating a Custom Location
- iOS Dev Nugget 28 Delta Updates
- iOS Dev Nugget 27 Two-finger touch in Simulator
- iOS Dev Nugget 26 Do not prompt user to enable push notifications immediately
- iOS Dev Nugget 25 Watch out for hotspot and in-call status bar height
- iOS Dev Nugget 24 Take Screenshots in the Simulator
- iOS Dev Nugget 23 Use the Delegation Pattern
- iOS Dev Nugget 22 Try AppCode
- iOS Dev Nugget 21 Create launch images with the correct screen sizes
- iOS Dev Nugget 20 Do not hardcode keyboard height
- iOS Dev Nugget 19 Use the static analyzer
- iOS Dev Nugget 18 Handy macros for creating UIColor instances
- iOS Dev Nugget 17 Convenient macro to create a singleton class
- iOS Dev Nugget 16 When not to use category methods
- iOS Dev Nugget 15 Use the debugger to quickly inspect an object
- iOS Dev Nugget 14 Charles Web Debugging Proxy
- iOS Dev Nugget 13 Simulating a slow cellular network with Network Link Conditioner
- iOS Dev Nugget 12 Use #pragma to help organize your code
- iOS Dev Nugget 11 Use Automatic Reference Counting (ARC)
- iOS Dev Nugget 10 Write Synchronously to Campfire Room for Debugging
- iOS Dev Nugget 9 #import as few header files in your header files as possible
- iOS Dev Nugget 8 Copy and paste from/to the iOS Simulator
- iOS Dev Nugget 7 Suppress compiler warnings with #pragma
- iOS Dev Nugget 6 Open app in Simulator with Finder
- iOS Dev Nugget 5 Always use a prefix for category methods and category names
- iOS Dev Nugget 4 Prefer accessors to accessing private variables directly
- iOS Dev Nugget 3 Modern Objective C
- iOS Dev Nugget 2 Shortcut key to toggle slow animations in the iOS simulator
- iOS Dev Nugget 1 Easy logging of values and objects