41554 blogs · [ { "id": "01a087ee-80cf-7322-88cb-5c77559e5ed5", "title": "Building scalable backend apps in Swift", "url": "https://theswiftdev.com/building-scalable-backend-apps-in-swift/", "published_at": "2026-08-16T12:00:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7755fc72de", "title": "Swift, AI, and the future of software development", "url": "https://theswiftdev.com/swift-ai-and-the-future-of-software-development/", "published_at": "2026-08-03T14:30:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7756b8d597", "title": "All about Swift Package Manager Traits", "url": "https://theswiftdev.com/all-about-swift-package-manager-traits/", "published_at": "2025-09-27T11:00:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77574054f9", "title": "Type-safe and user-friendly error handling in Swift 6", "url": "https://theswiftdev.com/type-safe-and-user-friendly-error-handling-in-swift-6/", "published_at": "2025-06-26T11:00:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7759146eb5", "title": "Encoding and decoding data using the Hummingbird framework", "url": "https://theswiftdev.com/encoding-and-decoding-data-using-the-hummingbird-framework/", "published_at": "2023-03-22T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77594de29a", "title": "Hummingbird routing and requests", "url": "https://theswiftdev.com/hummingbird-routing-and-requests/", "published_at": "2023-03-17T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77579f5ad5", "title": "Beginner's guide to server-side Swift using the Hummingbird framework", "url": "https://theswiftdev.com/beginners-guide-to-server-side-swift-using-the-hummingbird-framework/", "published_at": "2023-03-08T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775a28cd7a", "title": "Running and testing async Vapor commands", "url": "https://theswiftdev.com/running-and-testing-async-vapor-commands/", "published_at": "2023-02-23T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775a5b13ae", "title": "Running tasks in parallel", "url": "https://theswiftdev.com/running-tasks-in-parallel/", "published_at": "2023-02-09T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775ae2d591", "title": "The abstract Vapor service factory design pattern", "url": "https://theswiftdev.com/the-abstract-vapor-service-factory-design-pattern/", "published_at": "2023-02-01T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775a6c94c6", "title": "SwiftNIO tutorial - The echo server", "url": "https://theswiftdev.com/swiftnio-tutorial-the-echo-server/", "published_at": "2023-01-26T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77584b9bd1", "title": "Easy multipart file upload for Swift", "url": "https://theswiftdev.com/easy-multipart-file-upload-for-swift/", "published_at": "2023-01-17T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775b7b5e03", "title": "Utilizing Makefiles for Swift projects", "url": "https://theswiftdev.com/utilizing-makefiles-for-swift-projects/", "published_at": "2023-01-10T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7763f80e6a", "title": "Lenses and prisms in Swift", "url": "https://theswiftdev.com/lenses-and-prisms-in-swift/", "published_at": "2022-08-12T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775f005d7d", "title": "Beginner's guide to modern generic programming in Swift", "url": "https://theswiftdev.com/beginners-guide-to-modern-generic-programming-in-swift/", "published_at": "2022-06-28T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776330c15d", "title": "Introduction to SPM artifact bundles", "url": "https://theswiftdev.com/introduction-to-spm-artifact-bundles/", "published_at": "2022-05-24T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775fdff1e4", "title": "Beginner's guide to Swift package manager command plugins", "url": "https://theswiftdev.com/beginners-guide-to-swift-package-manager-command-plugins/", "published_at": "2022-05-16T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775c48c339", "title": "Swift visitor design pattern", "url": "https://theswiftdev.com/swift-visitor-design-pattern/", "published_at": "2022-04-06T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775ecbde91", "title": "Working with diffable data sources and table views using UIKit", "url": "https://theswiftdev.com/working-with-diffable-data-sources-and-table-views-using-uikit/", "published_at": "2022-03-24T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77649a6fbb", "title": "Async HTTP API clients in Swift", "url": "https://theswiftdev.com/async-http-api-clients-in-swift/", "published_at": "2022-03-18T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775fa106cb", "title": "Beginner's guide to Swift arrays", "url": "https://theswiftdev.com/beginners-guide-to-swift-arrays/", "published_at": "2022-03-10T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775d3acee1", "title": "The repository pattern for Vapor 4", "url": "https://theswiftdev.com/the-repository-pattern-for-vapor-4/", "published_at": "2022-03-03T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77624a5b9d", "title": "How to use a Swift library in C", "url": "https://theswiftdev.com/how-to-use-a-swift-library-in-c/", "published_at": "2022-02-23T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775e18efbe", "title": "UIKit - loadView vs viewDidLoad", "url": "https://theswiftdev.com/uikit-loadview-vs-viewdidload/", "published_at": "2022-02-09T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77642e212c", "title": "10 little UIKit tips you should know", "url": "https://theswiftdev.com/10-little-uikit-tips-you-should-know/", "published_at": "2022-02-03T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775bf9eda6", "title": "Progressive Web Apps on iOS", "url": "https://theswiftdev.com/progressive-web-apps-on-ios/", "published_at": "2022-01-27T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7760ca13e0", "title": "How to create a Swift package collection?", "url": "https://theswiftdev.com/how-to-create-a-swift-package-collection/", "published_at": "2022-01-20T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7762820916", "title": "How to write HTML in Swift?", "url": "https://theswiftdev.com/how-to-write-html-in-swift/", "published_at": "2022-01-12T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c775d2e35f5", "title": "The future of server side Swift", "url": "https://theswiftdev.com/the-future-of-server-side-swift/", "published_at": "2022-01-05T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776cfb41d6", "title": "Building a global storage for Vapor", "url": "https://theswiftdev.com/building-a-global-storage-for-vapor/", "published_at": "2021-12-16T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776da874e6", "title": "Building tree data structures in Swift", "url": "https://theswiftdev.com/building-tree-data-structures-in-swift/", "published_at": "2021-11-23T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776ae04623", "title": "Practical guide to binary operations using the UInt8 type in Swift", "url": "https://theswiftdev.com/practical-guide-to-binary-operations-using-the-uint8-type-in-swift/", "published_at": "2021-09-16T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776ca553bf", "title": "All about the Bool type in Swift", "url": "https://theswiftdev.com/all-about-the-bool-type-in-swift/", "published_at": "2021-09-10T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776908c041", "title": "How to build better command line apps and tools using Swift?", "url": "https://theswiftdev.com/how-to-build-better-command-line-apps-and-tools-using-swift/", "published_at": "2021-08-05T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776606a820", "title": "Swift structured concurrency tutorial", "url": "https://theswiftdev.com/swift-structured-concurrency-tutorial/", "published_at": "2021-06-30T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7765577caa", "title": "Swift actors tutorial - a beginner's guide to thread safe concurrency", "url": "https://theswiftdev.com/swift-actors-tutorial-a-beginners-guide-to-thread-safe-concurrency/", "published_at": "2021-06-17T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776cee6c7d", "title": "Beginner's guide to the async/await concurrency API in Vapor & Fluent", "url": "https://theswiftdev.com/beginners-guide-to-the-asyncawait-concurrency-api-in-vapor-fluent/", "published_at": "2021-06-03T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776a316c6a", "title": "Introduction to async/await in Swift", "url": "https://theswiftdev.com/introduction-to-asyncawait-in-swift/", "published_at": "2021-05-25T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77684eb595", "title": "Dynamic libraries and code replacements in Swift", "url": "https://theswiftdev.com/dynamic-libraries-and-code-replacements-in-swift/", "published_at": "2021-05-20T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776c2a4083", "title": "Declarative unit tests for Vapor", "url": "https://theswiftdev.com/declarative-unit-tests-for-vapor/", "published_at": "2021-05-04T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7769101486", "title": "How to design type safe RESTful APIs using Swift & Vapor?", "url": "https://theswiftdev.com/how-to-design-type-safe-restful-apis-using-swift-and-vapor/", "published_at": "2021-04-29T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77675ce8f2", "title": "Unsafe memory pointers in Swift", "url": "https://theswiftdev.com/unsafe-memory-pointers-in-swift/", "published_at": "2021-03-18T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776aa1c54b", "title": "Memory layout in Swift", "url": "https://theswiftdev.com/memory-layout-in-swift/", "published_at": "2021-03-08T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77695007d0", "title": "How to use C libraries in Swift?", "url": "https://theswiftdev.com/how-to-use-c-libraries-in-swift/", "published_at": "2021-03-05T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776d7fdede", "title": "Building static and dynamic Swift libraries using the Swift compiler", "url": "https://theswiftdev.com/building-static-and-dynamic-swift-libraries-using-the-swift-compiler/", "published_at": "2021-02-16T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7766970653", "title": "The Swift compiler for beginners", "url": "https://theswiftdev.com/the-swift-compiler-for-beginners/", "published_at": "2021-02-10T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776b62abef", "title": "Custom working directory in Xcode", "url": "https://theswiftdev.com/custom-working-directory-in-xcode/", "published_at": "2021-01-07T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7777be7bd6", "title": "File upload API server in Vapor 4", "url": "https://theswiftdev.com/file-upload-api-server-in-vapor-4/", "published_at": "2020-12-30T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777ad8b784", "title": "AJAX calls using Vapor 4", "url": "https://theswiftdev.com/ajax-calls-using-vapor-4/", "published_at": "2020-12-18T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7778077221", "title": "File upload using Vapor 4", "url": "https://theswiftdev.com/file-upload-using-vapor-4/", "published_at": "2020-12-10T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777762070e", "title": "Event-driven generic hooks for Swift", "url": "https://theswiftdev.com/event-driven-generic-hooks-for-swift/", "published_at": "2020-11-27T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7776867762", "title": "Getting started with SwiftIO", "url": "https://theswiftdev.com/getting-started-with-swiftio/", "published_at": "2020-11-12T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777732e431", "title": "How to build macOS apps using only the Swift Package Manager?", "url": "https://theswiftdev.com/how-to-build-macos-apps-using-only-the-swift-package-manager/", "published_at": "2020-10-26T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777164f578", "title": "Logging for beginners in Swift", "url": "https://theswiftdev.com/logging-for-beginners-in-swift/", "published_at": "2020-09-30T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7774d06b3c", "title": "How to define strings, use escaping sequences and interpolations?", "url": "https://theswiftdev.com/how-to-define-strings-use-escaping-sequences-and-interpolations/", "published_at": "2020-09-16T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7773f354bd", "title": "Swift on the Server in 2020", "url": "https://theswiftdev.com/swift-on-the-server-in-2020/", "published_at": "2020-08-28T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7779b6b2b1", "title": "10 short advices that will make you a better Vapor developer right away", "url": "https://theswiftdev.com/10-short-advices-that-will-make-you-a-better-vapor-developer-right-away/", "published_at": "2020-07-15T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776fe1feb6", "title": "How to store keys in env files?", "url": "https://theswiftdev.com/how-to-store-keys-in-env-files/", "published_at": "2020-06-30T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776dbbc684", "title": "Table joins in Fluent 4", "url": "https://theswiftdev.com/table-joins-in-fluent-4/", "published_at": "2020-06-11T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776ea1873f", "title": "Websockets for beginners using Vapor 4 and Vanilla JavaScript", "url": "https://theswiftdev.com/websockets-for-beginners-using-vapor-4-and-vanilla-javascript/", "published_at": "2020-05-28T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77774c9063", "title": "Building and loading dynamic libraries at runtime in Swift", "url": "https://theswiftdev.com/building-and-loading-dynamic-libraries-at-runtime-in-swift/", "published_at": "2020-05-20T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776ee4c7e0", "title": "What's new in Swift 5.3?", "url": "https://theswiftdev.com/whats-new-in-swift-5-3/", "published_at": "2020-05-14T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77733d06ac", "title": "Sign in with Apple using Vapor 4", "url": "https://theswiftdev.com/sign-in-with-apple-using-vapor-4/", "published_at": "2020-04-30T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776e5b1b81", "title": "The Swift package manifest file", "url": "https://theswiftdev.com/the-swift-package-manifest-file/", "published_at": "2020-04-24T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777316ba71", "title": "Server side Swift projects inside Docker using Vapor 4", "url": "https://theswiftdev.com/server-side-swift-projects-inside-docker-using-vapor-4/", "published_at": "2020-04-19T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777218016e", "title": "Modules and hooks in Swift", "url": "https://theswiftdev.com/modules-and-hooks-in-swift/", "published_at": "2020-04-16T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777b290fc9", "title": "All about authentication in Vapor 4", "url": "https://theswiftdev.com/all-about-authentication-in-vapor-4/", "published_at": "2020-04-07T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777a27ba34", "title": "A generic CRUD solution for Vapor 4", "url": "https://theswiftdev.com/a-generic-crud-solution-for-vapor-4/", "published_at": "2020-04-01T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776e2950e3", "title": "The anatomy of Vapor commands", "url": "https://theswiftdev.com/the-anatomy-of-vapor-commands/", "published_at": "2020-03-25T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776ff60a3a", "title": "How to use middlewares in Vapor 4?", "url": "https://theswiftdev.com/how-to-use-middlewares-in-vapor-4/", "published_at": "2020-03-17T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777079221e", "title": "How to write Swift scripts using the new Command API in Vapor 4?", "url": "https://theswiftdev.com/how-to-write-swift-scripts-using-the-new-command-api-in-vapor-4/", "published_at": "2020-03-03T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7778fef68a", "title": "Get started with the Fluent ORM framework in Vapor 4", "url": "https://theswiftdev.com/get-started-with-the-fluent-orm-framework-in-vapor-4/", "published_at": "2020-02-27T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7775af4480", "title": "How to set up pgSQL for Fluent 4?", "url": "https://theswiftdev.com/how-to-set-up-pgsql-for-fluent-4/", "published_at": "2020-02-25T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77746b316e", "title": "How to create your first website using Vapor 4 and Leaf?", "url": "https://theswiftdev.com/how-to-create-your-first-website-using-vapor-4-and-leaf/", "published_at": "2020-02-13T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77758af0d3", "title": "How to download files with URLSession using Combine Publishers and Subscribers?", "url": "https://theswiftdev.com/how-to-download-files-with-urlsession-using-combine-publishers-and-subscribers/", "published_at": "2020-01-28T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77774429f7", "title": "Beginner's guide to Server side Swift using Vapor 4", "url": "https://theswiftdev.com/beginners-guide-to-server-side-swift-using-vapor-4/", "published_at": "2020-01-13T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c776ec63273", "title": "What are the best practices to learn iOS / Swift in 2020?", "url": "https://theswiftdev.com/what-are-the-best-practices-to-learn-ios-swift-in-2020/", "published_at": "2020-01-06T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777f5b07ec", "title": "Custom views, input forms and mistakes", "url": "https://theswiftdev.com/custom-views-input-forms-and-mistakes/", "published_at": "2019-10-21T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77832eea2d", "title": "A simple HTTP/2 server using Vapor 4", "url": "https://theswiftdev.com/a-simple-http2-server-using-vapor-4/", "published_at": "2019-10-08T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7781a56549", "title": "How to write services for VIPER?", "url": "https://theswiftdev.com/how-to-write-services-for-viper/", "published_at": "2019-09-25T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777ff95b57", "title": "How to build SwiftUI apps using VIPER?", "url": "https://theswiftdev.com/how-to-build-swiftui-apps-using-viper/", "published_at": "2019-09-18T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c77827c7bc7", "title": "Picking and playing videos in Swift", "url": "https://theswiftdev.com/picking-and-playing-videos-in-swift/", "published_at": "2019-08-28T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777b6e9e06", "title": "What's new in Vapor 4?", "url": "https://theswiftdev.com/whats-new-in-vapor-4/", "published_at": "2019-08-26T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777c16b392", "title": "Swift init patterns", "url": "https://theswiftdev.com/swift-init-patterns/", "published_at": "2019-08-25T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777dbefa49", "title": "URLSession and the Combine framework", "url": "https://theswiftdev.com/urlsession-and-the-combine-framework/", "published_at": "2019-08-15T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777bafb30e", "title": "Promises in Swift for beginners", "url": "https://theswiftdev.com/promises-in-swift-for-beginners/", "published_at": "2019-05-28T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777f4ba0f5", "title": "Building input forms for iOS apps", "url": "https://theswiftdev.com/building-input-forms-for-ios-apps/", "published_at": "2019-05-23T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777d0acbf0", "title": "Uniquely identifying views", "url": "https://theswiftdev.com/uniquely-identifying-views/", "published_at": "2019-04-02T14:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c778216d647", "title": "Mastering the VIPER architecture", "url": "https://theswiftdev.com/mastering-the-viper-architecture/", "published_at": "2019-03-19T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777e770a71", "title": "VIPER best practices for iOS developers", "url": "https://theswiftdev.com/viper-best-practices-for-ios-developers/", "published_at": "2019-03-11T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777beaf1f5", "title": "Styling by subclassing", "url": "https://theswiftdev.com/styling-by-subclassing/", "published_at": "2019-02-19T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777f31be29", "title": "Beginners guide to functional Swift", "url": "https://theswiftdev.com/beginners-guide-to-functional-swift/", "published_at": "2019-02-05T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c777b824818", "title": "Picking images with UIImagePickerController in Swift 5", "url": "https://theswiftdev.com/picking-images-with-uiimagepickercontroller-in-swift-5/", "published_at": "2019-01-30T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7780ac8485", "title": "How to use the result type to handle errors in Swift 5?", "url": "https://theswiftdev.com/how-to-use-the-result-type-to-handle-errors-in-swift/", "published_at": "2019-01-28T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7783a6a54f", "title": "All about the Swift Package Manager and the Swift toolchain", "url": "https://theswiftdev.com/all-about-the-swift-package-manager-and-the-swift-toolchain/", "published_at": "2019-01-14T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c778edc0934", "title": "Lazy initialization in Swift", "url": "https://theswiftdev.com/lazy-initialization-in-swift/", "published_at": "2018-12-17T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c778ba84677", "title": "Swift object pool design pattern", "url": "https://theswiftdev.com/swift-object-pool-design-pattern/", "published_at": "2018-12-09T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7785ccc346", "title": "UITableView tutorial in Swift", "url": "https://theswiftdev.com/uitableview-tutorial-in-swift/", "published_at": "2018-12-01T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c778d24349a", "title": "Swift 5 and ABI stability", "url": "https://theswiftdev.com/swift-5-and-abi-stability/", "published_at": "2018-11-16T15:20:00+00:00" }, { "id": "01a087ee-80cf-7322-88cb-5c7793c4f5bc", "title": "Custom UIView subclass from a xib file", "url": "https://theswiftdev.com/custom-uiview-subclass-from-a-xib-file/", "published_at": "2018-10-16T14:20:00+00:00" } ] posts Claim your blog
Back to theswiftdev.com
Blog · corpus.blog/blogs/theswiftdev.com/posts

theswiftdev.com

theswiftdev.com

2026

2025

2023

2022

2021

2020

2019

2018