41554 blogs · [ { "id": "01a08c55-1d1b-720a-b659-7d5adfaab1e8", "title": "Why Building Mobile Apps Is So Much Harder Than It Looks", "url": "https://www.thomashanning.com/why-building-mobile-apps-is-so-much-harder-than-it-looks/", "published_at": "2025-03-28T19:05:01+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae095a09b", "title": "Swift: Comparing Enums With Associated Values", "url": "https://www.thomashanning.com/swift-comparing-enums-with-associated-values/", "published_at": "2023-02-12T09:56:00+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae0f9860a", "title": "Merge Sort In Swift", "url": "https://www.thomashanning.com/merge-sort-in-swift/", "published_at": "2023-02-05T11:08:00+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae1d0e307", "title": "iOS Dev & Swift Newsletter #1", "url": "https://www.thomashanning.com/ios-dev-swift-newsletter-1/", "published_at": "2023-02-04T14:44:09+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae2293c4f", "title": "Xcode for Windows?", "url": "https://www.thomashanning.com/xcode-for-windows/", "published_at": "2023-01-29T20:40:00+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae251add9", "title": "Should You Still Learn UIKit?", "url": "https://www.thomashanning.com/should-you-still-learn-uikit/", "published_at": "2023-01-18T19:52:42+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae277673a", "title": "SwiftUI: Alert", "url": "https://www.thomashanning.com/swiftui-alert/", "published_at": "2023-01-14T09:37:51+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae34a36ac", "title": "if let shorthand syntax in Swift", "url": "https://www.thomashanning.com/if-let-shorthand-syntax-in-swift/", "published_at": "2023-01-09T06:00:00+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae415f516", "title": "Swift: Property wrappers", "url": "https://www.thomashanning.com/swift-property-wrappers/", "published_at": "2020-08-02T08:32:33+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae496b14d", "title": "The Advantages of SwiftUI", "url": "https://www.thomashanning.com/the-advantages-of-swiftui/", "published_at": "2020-05-24T11:19:50+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae4f6ff7e", "title": "Swift: The differences between structs and classes", "url": "https://www.thomashanning.com/swift-differences-between-structs-and-classes/", "published_at": "2019-06-10T15:01:37+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae57acca2", "title": "Swift: Reference Equality and Value Equality For Classes ​", "url": "https://www.thomashanning.com/swift-reference-equality-value-equality-for-classes/", "published_at": "2019-02-03T00:00:52+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae59ad250", "title": "How iOS Development Has Evolved Over The Past 8 Years", "url": "https://www.thomashanning.com/how-ios-development-has-evolved-over-the-past-8-years/", "published_at": "2019-01-04T10:15:52+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae673a011", "title": "Sets in Swift", "url": "https://www.thomashanning.com/sets-in-swift/", "published_at": "2018-11-06T17:27:22+00:00" }, { "id": "01a08c55-1d1b-720a-b659-7d5ae6990b89", "title": "MFMailComposeViewController - sending emails from an iOS app", "url": "https://www.thomashanning.com/mfmailcomposeviewcontroller/", "published_at": "2018-08-15T20:56:17+00:00" } ] posts Claim your blog
Back to thomashanning.com
Blog · corpus.blog/blogs/thomashanning.com/posts

thomashanning.com

thomashanning.com

2025

2023

2020

2019

2018