Recent Work
- Download macOS Beta Installer
- SwiftUI Fundamentals
- iOS 17 Fundamentals
Having trouble finding a macOS Beta installer? Look no further than these three steps!
This course will teach you to make iOS apps with adaptive user interfaces that work on multiple devices using Xcode, Swift, and SwiftUI.
This course will teach you to make apps using Xcode, Swift, and SwiftUI that support the features users will expect when they upgrade to iOS 17.
Pluralsight Courses
- SwiftUI Fundamentals
- iOS 17 Fundamentals
- Building iOS User Interfaces with SwiftUI
- iOS 14 Getting Started
- Implementing In-App Purchases on iOS
- iOS Debugging Fundamentals
- iOS Data Persistence: The Big Picture
- CloudKit Fundamentals
- Core Data Fundamentals with Swift
- Managing Xcode Project Dependencies with CocoaPods
iOS Development
Data Persistence
- A Swift Implementation of the Core Data Stack Using NSPersistentContainer
- Add SwiftData to an Existing App
- Core Data Cheat Sheet for Swift iOS Developers
- Core Data Model Attributes and NSManagedObject Property Types Must Match!
- Core Data: Solving Ambiguous Type / Redeclaration of Type
- Creating the Core Data Stack with Backwards Compatibility in Swift
- Displaying Data With NSFetchedResultsController and Swift
- Do Core Data Entities Need Primary Keys?
- First Impressions of NSPersistentCloudKitContainer
- Getting Started With NSPersistentCloudKitContainer
- How Smart (Or Dumb?) Should NSManagedObjects Be?
- How to Pass NSManagedObjectContext to a SwiftUI View
- How to Use @FetchRequest in SwiftUI
- Implement NSManagedObject Subclass in Swift
- iOS KeychainItemWrapper – Obstacles Overcome, Inconsistencies Resolved
- NSPersistentCloudKitContainer Buggy Behavior List
- On Core Data Object Fetching and Display Strategies
- Pre-populate a SwiftData Persistent Store
- Resolving Failed to Load Model Named... with Core Data
- Sharing a Core Data Model with a Swift Framework
- Swift Tip – Accessing a User’s Documents Directory with URL Extension
- The Case for CloudKit
- Using a Core Data Model in Swift Playgrounds
- Using an Existing SQLite Store with NSPersistentContainer
- Using Core Data With SwiftUI - An Introduction
- Using Swift to Seed a Core Data Database
In-App Purchases
- Extracting a PKCS7 Container for Receipt Validation with Swift
- Finalizing Receipt Validation in Swift – Computing a GUID Hash
- iOS Receipt Validation: Understanding and Troubleshooting the Original App Version Field
- Loading a Receipt for Validation with Swift
- Local Receipt Validation for iOS in Swift From Start to Finish
- OpenSSL for iOS and Swift the Easy Way
- Preparing to Test Receipt Validation for iOS
- Receipt Validation – Parse and Decode a Receipt with Swift
- Receipt Validation – Verifying a Receipt Signature in Swift
- StoreKit Testing Swift Start
Patterns and Practices
- 7 Reasons You Should Write About Swift
- Analyzing Swift Protocol Extensions and C# Abstract Classes
- Clarifying Swift Access Control (Hint: Swift Isn’t C#)
- Clean Coding in Swift – Functions
- Clean Coding in Swift – Type Inference
- Conveniently Transforming Immutable Types in Swift
- Converting Complex Objective-C Macros to Swift Functions
- Enums Instead of Booleans – An Example Implementation
- Every Developer is an API Designer
- Every Swift Value Type Should Be Equatable
- Expanded Thoughts on Swift’s Type Inference
- Force Unwrapping Swift Optionals: Code Smell!
- Fundamentals of Callbacks for Swift Developers
- Fundamentals of NSNotificationCenter in Swift
- How Delegation Works – A Swift Developer’s Guide
- How to Unwrap Multiple Optionals with One If-Let in Swift
- Immutable Types with Changing State in Swift
- Is Protocol Oriented Swift Better than Object Oriented Swift?
- NSNotificationCenter vs Delegation – An Analysis
- Pick a Delegate… Any Delegate… On Clean View Controllers in Swift
- Replace Magic Strings with Enumerations in Swift
- Resolving “Variable used within its own initial value” Error in Swift
- Send a Type to Obedience School – Using Swift Extensions for Additional Protocol Conformance
- What is Delegation? – A Swift Developer’s Guide
- Working with Swift: Adopt a Protocol or Pass a Function?
React Native
"Swift Five" Series
Swift How-To's
- Access Sub-Controllers from a UINavigationController in Swift
- Circular Progress Indicator in Swift
- Displaying and Updating Currency in a UILabel
- Distinguishing Between Multiple UIActionSheets with Swift
- Fade In / Out Animations as Class Extensions in Swift
- Fade Views In/Out with Fadeable – A Swift Protocol Extension
- Get Social With Swift – Posting to Facebook and Twitter
- Rotate Animation in Swift
- Send Email In-App – Using MFMailComposeViewController with Swift
- Send Text Message In-App – Using MFMessageComposeViewController with Swift
- Slide In Animation in Swift
- Swift Alternative to Objective-C Macros
- Swift Cheat Sheet for Dates, Formatters, and Date Components
- Swift Cheat Sheet for iPhone Camera Access and Usage
- Swift Cheat Sheet for iPhone Location Services Access and Usage
- Swift iOS Version Checking
- Swift UIColor Extension – Create using RGB Values (Not %)
Swift Language Notes
- 3 Nuances of Swift Extensions
- Sort It Out – Sorting an Array in Swift
- Strong, Weak, and Unowned – Sorting out ARC and Swift
- Swift 4 Upgrade Error: ‘init(colorLiteralRed:green:blue:alpha:)’ is unavailable
- Swift Framework Woes – Unresolved Identifier? No Member?
- Swift Functions as Types
- Swift Optionals? Don’t Forget to Unwrap!
- The 5 W’s of Swift Extensions
- What in the World is an “Escaping Closure” in Swift?
- What is an ABI
- Why Do We Need to Annotate Escaping Closures in Swift?
- Why is it called a “Closure” anyway? A Swift Conceptual Look.
- Why is Swift ABI Stability a Big Deal?
Testing
- An (Almost) TDD Workflow in Swift
- Creating Trust-able Unit Tests in Swift
- Don’t Write Legacy Swift
- Getting Started with Unit Testing in Swift
- How to Create Mocks and Stubs in Swift
- Improvements to Unit Testing in Swift with Xcode 7
- Swift Access Control – Implications for Unit Testing
- Swift Unit Testing – Verifying Method Calls
- Swift Unit Testing Resources
- TDD for iOS in Swift – What’s the Goal?
- Testability Tip for Swift Developers – Parameterize and Push
- Testability Tip for Swift Developers – Public Over Private
- Testing is to Software as Experiment is to Science
- Unit Testing Model Layer with Core Data and Swift
User Interface Work
- Accessing the Root View Controller at Launch on iOS 13 with SceneDelegate
- Adding Buttons to the Navigation Bar with Storyboards
- Apple's SwiftUI Essentials Tutorial Series as Playgrounds
- Basics of Pull to Refresh for Swift Developers
- Custom UITableViewCell for Text Input in Swift
- Swift How-To: Setting up a Table View
- Swift UITableViewDataSource Cheat Sheet
- SwiftUI is Declarative. What Does That Mean?
- Sync Table View Data: NSFetchedResultsController and Swift
- Taking First Steps With SwiftUI
- UITableView Swipe to Delete Workflow in Swift
- Using SwiftUI in a Playground
- What Are All of the Possible Environment Keys in SwiftUI?
- Working with Unwind Segues Programmatically in Swift
.Net Development
- 401 Unauthorized Browsing Site From Local IIS Instance
- Date, Date?, and the ToString Method in VB.Net
- Diagnosing “Restore failed” with ASP.NET 5 on Mac
- DotNetZip – Solving Mac Decompression Issues
- Entity Framework Tip – Specifying Decimal Precision
- NuGet app.config / web.config Transformation Trouble
- Solving ‘Spatial types and functions are not available’ with Entity Framework
- SQL Sever Synonyms, Entity Framework, and Integrated Security
- TypeScript Build Errors When Publishing ASP.Net Web Project
- Up and Running with Unity IOC Container for ASP.Net MVC
- Using PowerShell to Install a DLL into the GAC
Things I Wrote That Didn't Fit Anywhere Else ¯\_(ツ)_/¯
Musings
- “Unexpected System Error” in DataStage Sequence Job
- 3 Effective Ways to Keep You Focused as a Creator
- Agile Blogging
- Announcing the Birth of……
- Contributing My Share of Bytes
- Create Sound Clips from iTunes
- DataStage Range Lookup Failure – What Gives?
- Dissecting 10 Read 10 Said – My New Swift iOS App
- Download macOS Beta Installer
- From SQL Queries to Data Modeling
- How Old is Silas Allen?
- Journey in iOS Development Series – In the Beginning…
- Make a Bash Script Executable
- Pointer Pointer #1
- Pointer Pointer #2
- Removing Chart Gridlines and Plot Area Background in Report Studio
- Report Studio Bullet Chart – Missing Target
- Resolving “UDA-SQL-0569 Unable to load the driver manager library ( db2cli.dll )” with Framework Manager 10.1
- SSRS: Which server sent my e-mail subscription?
- Troubleshooting SQL Server 2012 Reporting Services and SharePoint 2010 Integration (Part 1)
- Troubleshooting SQL Server 2012 Reporting Services and SharePoint 2010 Integration (Part 2)
- WWDC - The Worldwide Developer Community