Sick of bookmarks in browser. So I want to keep track of nice blog posts and news related to Swift, Objective-C and Apple products in here.
Categorized with emojis.
- Swift - 🔶
- Objective-C - 🔷
- iOS - 📱
- watchOS - ⌚
- macOS - 🖥
- Server Side - 🔭
- Xcode and other tools - 🛠
- Marketing - 🎯
- Apple investments, stocks, business decisions etc. - 💲
- Soft Launching Your App - What It Is And Why You Should Do It - 17.02.2019 - 🎯
- Get Your iOS App Featured on the App Store with These 11 Tips - 17.02.2019 - 🎯
- iOS Performance Tricks To Make Your App Feel More Performant - 12.02.2019 - 📱
- Strong-typed Notifications in Swift - 12.02.2019 - 🔶📱
- Unbreakable reference cycles in Swift no one is talking about - 10.02.2019 - 🔶
- Data-Driven Table Views - 10.02.2019 - 📱🔶
- How to convert your Xcode plugins to Xcode extensions - 10.02.2019 - 🛠
- Adding External Display Support To Your iOS App Is Ridiculously Easy - 10.02.2019 - 📱
- Swift Tip: Unexpected Results from a Date Formatter - 03.02.2019 - 🔶
- Test doubles in Swift: dummies, fakes, stubs, and spies - 03.02.2019 - 🔶
- Unit testing retain cycles - 03.02.2019 - 🔶
- Server-side Swift: Making Canopy - 03.02.2019 - 🔭🔶
- iOS at Scale: Modularization of the Wayfair App - 03.02.2019 - 📱
- Xcode & Instruments: Measuring Launch time, CPU Usage, Memory Leaks, Energy Impact and Frame Rate - 03.02.2019 - 🛠
- Unleashing the power of asset catalogs and bundles on iOS - 03.02.2019 - 📱
- Multiple Inheritance in Swift - 03.02.2019 - 🔶
- 6 Winning Monetisation Strategies - 03.02.2019 - 🎯
- How to Leverage Apple Pre-order For Your iOS App Launch - 03.02.2019 - 🎯
- Delegates vs Closure Callbacks - 03.02.2019 - 🔶🔷
- What's inside the Derived Data folder? - 03.02.2019 - 📱
- Dynamic Features in Swift - 03.02.2019 - 🔶
- NSPredicate 💬 | Examples Cheatsheet - 03.02.2019 - 🔶
- Similar Prefixes - 03.02.2019 - 🔶🔷
- Debugging Tips&Tricks - 01.02.2019 - 🛠
- Debugging iOS network traffic - 01.02.2019 - 📱
- Implement Push Notification easily using CloudKit - 05.10.2018 - 📱⌚️
- Why #if DEBUG Conditional Should Be Avoided in Library Code - 30.09.2018 - 📱🔶
- Prefetching images size without downloading them [entirely] in Swift - 11.09.2018 - 🔶
- How to Build Swift Compiler-Based Tool? The Step-by-Step Guide - 19.08.2018 - 🔶
- An iOS alert view with a text field and a “smart” OK button - 19.08.2018 - 🔶📱
- Extension Approach to Keeping UITextFields in Sight - 12.08.2018 - 🔶
- Swift Style Guide - 04.06.2018 - 🔶
- Memory Management and Performance of Value Types - 29.05.2018 - 🔶
- The Laws of Core Data - 10.05.2018 - 📱🖥
- Reimplementation of Implicitly Unwrapped Optionals - 01.05.2018 - 🔶
- Simplifying UICollectionViewFlowLayout Delegate Method usage with Functional Programming - 22.04.2018 - 📱🔶
- Taming Build Variants with Xcode Configuration Files - 22.04.2018 - 🛠
- Care and Feeding of Xcode Configurations - 22.04.2018 - 🛠
- Why you should not name your @IBActions didTapButton - 20.04.2018 - 📱🖥
- A Collection of Interesting Swift Features - 24.03.2018 - 🔶
- Xcode’s Secret Performance Tests - 01.03.2018 - 🛠
- Trusting third party SDKs - 25.02.2018 - 📱🛠
- CloudKit: Structured Storage for Mobile Applications - 10.02.2018 - 🛠
- iOS Subscription Groups Explained - 08.02.2018 - 📱
- It Looks Like You Are Trying to Use a Framework - 08.02.2018 - 🔶🔷📱🖥
- Dependency Management for iOS projects with the Swift package manager - 08.02.2018 - 🔶📱
- The Ultimate Guide To Mobile In-App Purchases Optimization - 30.01.2018 - 📱🎯
- Patterns for Working With Associated Types - 15.12.2017 - 🔶
- Coordinator and FlowController - 19.11.2017 - 🔶📱
- Challenges of Supporting iPhone X - 06.11.2017 - 📱
- Data Detection in Swift - 06.11.2017 - 🔶
- @objc Warnings Upgrading To Swift 4 - 06.11.2017 - 🔶4
- Dictionary and Set Improvements in Swift 4.0 - 05.10.2017 - 🔶4
- DIY Prisma App with CoreML - 26.09.2017 - 📱11
- Measuring Compile Times in Xcode 9 - 26.09.2017 - 🛠🔶4
- Codable Enums - 26.09.2017 - 🔶4
- Swift 4 Weak References - 26.09.2017 - 🔶4
- Swift 4 Officially Released! - 26.09.2017 - 🔶4
- Generics in Swift 4 - 23.09.2017 - 🔶4
- WKWebView advanced tutorial (catch JS events, access properties etc...) - 28.07.2017 - 🔶📱
- Stack View Custom Spacing - 16.07.2017 - 🔶📱
- User Breakpoints in Xcode - 16.07.2017 - 🛠
- SSL certificate pinning in iOS applications - 26.06.2017 - 🔶📱
- How to open Deep Links, Notifications and Shortcuts - 26.06.2017 - 🔶📱
- CALayer And Auto Layout With Swift - 26.06.2017 - 🔶📱
- Screen Edges in iOS 11 - 26.06.2017 - 🔶📱
- Ultimate Guide to JSON Parsing With Swift 4 - 26.06.2017 - 🔶4
- How to create a Telegram bot with Swift using Vapor on Ubuntu / macOS - 18.04.2017 - 🔶 🔭
- 100% Coverage of Edge Cases: How to Safely Parse JSON - 17.04.2017 - 🔶
- TestFlight Update from Apple - 17.04.2017 - 💲
- You Probably Don't Want enumerated - 01.04.2017 - 🔶
- Avoiding primitive obsession in Swift - 01.04.2017 - 🔶
- System Level Breakpoints in Swift - 26.03.2017 - 🔶
- Kitura/iOS: Running a Web Server on your iPhone - 20.03.2017 - 🔶
- The Recipe for Singletons Removal - 19.03.2017 - 🔶 🔹
- Common unit testing techniques on iOS - 19.03.2017 - 🔶 📱
- Modern Attributed Strings with Attributed - 08.02.2017 - 🔶
- What's new in Swift 3.1 - 07.02.2017 - 🔶
- Waiting in XCTest - 05.02.2017 - 🔶
- Understanding memory leaks in closures - 05.02.2017 - 🔶
- Faster Mix-and-Match Builds with Precompiled Bridging Headers - 05.02.2017 - 🔶
- Additional Details on the New App Store Review Features - 05.02.2017 - 📱💲
- Pretty much every way to assign optionals - 05.02.2017 - 🔶
- Clean Code for Multiple Storyboards - 23.01.2017 - 🔶
- Swift Evolution Status - 23.01.2017 - 🔶
- Identifying Side Effects Using Swift - 23.01.2017 - 🔶
- Improving Optionals - 23.01.2017 - 🔶
- Naming Things in Swift - 22.01.2017 - 🔶
- Generic allValues for enums - 22.01.2017 - 🔶
- Crazy Fast Builds Using distcc - 22.01.2017 - 🛠
- Errorify String - 22.01.2017 - 🔶
- Unsafe Swift: Using Pointers And Interacting With C - 22.01.2017 - 🔶
- In-App Purchases in iOS With Swift 3 - 08.01.2017 - 🔶
- RxSwift Primer - 05.01.2017 - 🔶
- Protocols are more than Bags of Syntax - 05.01.2017 - 🔶
- Profiling your Swift compilation times - 25.12.2016 - 🔶
- Emptiness - 25.12.2016 - 🔶3
- CollectionOfOne - 12.12.2016 - 🔶
- Swift Method Dispatch - 12.12.2016 - 🔶
- Hiding Your Action and Share Extensions In Your Own Apps - 12.12.2016 - 🔶📱
- Guarding Against Long Compiles - 12.12.2016 - 🛠
- How to Prevent Memory Leaks in Swift Closures - 11.12.2016 - 🔶
- Use New Awesome iOS Features While Maintaining Backward Compatibility - 11.12.2016 - 🔶
- Swift Snippets - 11.12.2016 - 🔶
- Build Setting Reference aka Xcode Script variables - 07.12.2016 - 🛠
- Protocol Oriented Programming is Not a Silver Bullet - 28.11.2016 - 🔶
- Understanding Data Race Detection by Implementing it in Swift - 28.11.2016 - 🔶
- Meaningful Composite Errors - 20.11.2016 - 🔶
- Better Xcode Run Script Build Phases - 13.11.2016 - 🛠
- Date Math is Hard, Let's Do it Tomorrow - 13.11.2016 - 🔶
- Understanding code signing for iOS apps - 05.11.2016
- Firebase Tutorial: Real-time Chat - 03.11.2016 - 🔶
- iOS Security: Best Practices in Safeguarding User Data - 03.11.2016 - 📱
- How to Read the Swift Standard Library Source - 03.11.2016 - 🔶
- Useful details about underscore keyword in Swift - 🔶
- Unowned or Weak? Lifetime and Performance - 🔶
- iOS 10 Link Preview API in WKWebView - 03.11.2016 - 🔶
- A Beginner’s Guide to Automated UI Testing in iOS - 03.11.2016 - 📱 🔶
- In-App Purchase Promo Codes Now Available - - 03.11.2016 - 💲
- Swift Profiling - 31.10.2016 - 🔶
- Enum Raw Values and Failable Initializers - 30.10.2016 - 🔶
- Touch Bar Basics - 30.10.2016 - 🔶🖥
- How to Do XCTestCase tearDown Wrong …and Right - 26.10.2016 - 🔶
- Flowing Text Around Images With Exclusion Paths - 26.10.2016 - 🔶
- Generic Range Algorithms - 26.10.2016 - 🔶
- Server APIs Work Group - 26.10.2016 - 🔶💲
- Testing UserDefaults - 26.10.2016 - 🔶
- Whole-Module Optimization in Swift 3 - 22.10.2016 - 🔶3
- Analysis of the Facebook.app for iOS - 21.10.2016 - 📱
- Speeding up Development Build Times With Conditional dSYM Generation - 21.10.2016 - 🛠
- Closures Capture Semantics, Part 1: Catch them all! - 19.10.2016 - 🔶
- Tips for Backwards Compatibility with iOS 10 Today Widgets - 19.10.2016 - 📱
- Measurement Basics - 19.08.2016 - 🔶3
- What do you do with Any? - 18.10.2016 - 🔶3
- Event Delivery on iOS: Part 1 - 16.10.2016 - 📱
- Google Blockly for iOS - 14.10.2016 - 📱
- Singletons - 14.10.2016 - 🔶
- Slicing - 14.10.2016 - 🔶
- Optional Non-Escaping Closures - 13.10.2016 - 🔶3
- Learn how to integrate Siri with your app thanks to Apple SiriKit - 12.10.2016 - 📱
- Real World Swift Performance - 11.10.2016 - 🔶
- Updating Strings for Swift 3 - 10.10.2016 - 🔶3
- Strings in Swift 3 - 07.10.2016 - 🔶3
- What Do You Do with Any? - 07.10.2016 - 🔶3
- Split View Controller Display Modes - 07.10.2016 - 📱 🔶
- Smooth Scrolling in Buffer for iOS: How (and Why) We Implemented AsyncDisplayKit - 07.10.2016 - 📱 🔷
- Silicon Valley comes to Naples: Apple prepares to open Italian academy - 06.10.2016 - 💲
- App Groups and iMessage Extensions for iOS 10 - 06.10.2016 - 🔶 📱
- Edge Cases with Background Downloads - 06.10.2016 - 📱
- Realm Mobile Platform - 04.10.2016 - 📱
- Search Ads Now Available - 04.10.2016 - 📱 💲
- Swift Option Sets - 30.09.2016 - 🔶3
- Updating NSURLSession Calls to Swift 3.0 - 30.09.2016 - 🔶3
- Swifty Delegates - 30.09.2016 - 🔶3
- Swift 3 Access Controls - 30.09.2016 - 🔶3
- Preparing Your iOS App for Extensions - 28.09.2016 - 📱
- Token Authentication Now Available for Push Notifications - Apple - 25.09.2016 - 📱⌚🖥
- New subscriptions data and reports are now available - Apple - 25.09.2016 - 💲
- Memory Graph Debugger Tips - 25.09.2016 - 🛠
- openURL Deprecated in iOS10 - 24.09.2016 - 📱
- Swift API Design Guidelines - 23.09.2016 - 🔶
- Swift 3 and Declarative Programming - 23.09.2016 - 📱🔶
- Pushing the Envelope with iOS 10 Notifications - Realm - 23.09.2016 - 📱🔶
- Handling Dates with Swift 3 - 23.09.2016 - 🔶3
- Function Naming in Swift 3 - 19.09.2016 - 🔶3
- Offering Subscriptions by Apple - 16.09.2016 - 📱
- Auto Layout and Alignment Rectangles - 16.09.2016 - 🔶3
- It's Now or Never - 16.09.2016 - 🔶3
- Swift 3.0 Released! - 16.09.2016 - 🔶
- How to Unit test your Network Layer in iOS - 16.09.2016 - 🔶 📱
- Working with JSON in Swift by Apple - 16.09.2016 - 🔶
- Escaping and Nonescaping Closures in Swift 3 - 16.09.2016 - 🔶3
- How to generate haptic feedback with UIFeedbackGenerator - 16.09.2016 - 🔶 📱
- The Savvy App Store Submission Checklist - 16.09.2016 - 📱
- Migrating Code Signing Configurations to Xcode 8 - 16.09.2016 - 📱 🛠
- A (mostly) comprehensive list of Swift 3.0 and 2.3 changes - 16.09.2016 - 🔶
- Getting Ready for App Transport Security in 2017 - 16.09.2016 - 📱
- App Store Optimization in 7 steps - 16.09.2016 - 📱 🎯
- Notifications in iOS 10 - 16.09.2016 - 📱 🔶
- Xcode Visual Memory Debugger - 16.09.2016 - 🛠
- IB Free: Living Without Interface Builder and Loving It - 16.09.2016 - 🔶
- Swift App Bundle Sizes - Davit Owens - 29.08.2016 - 🔶
- Structs and Mutation in Swift - Chris Eidhof - 26.08.2016 - 🔶3
- Using Redux with MVVM in iOS - Goksel Koksal - 26.08.2016 - 📱
- MVVM is Quite Okay at What It Is Supposed to Do - Christian Tietze - 24.08.2016 - 📱
- Pattern Matching in Swift - Cosmin Pupaza - 24.08.2016 - 🔶3
- Advanced & Practical Enum Usage in Swift - Benedikt Terhechte - 23.08.2016 - 🔶 2.2
- Swiff - Human readable time diffs on lines of output when running - 03.02.2019 - 🔶
- How to use Wireless Debugging on Xcode 9 - 21.09.2017 - 🛠
- How to show the duration of builds in Xcode - 04.05.2017