corpus.blog
Most cited
Talked about
Blogs
41554 blogs · [ { "id": "01a08219-661c-73ac-a36e-92b0c98787bc", "title": "Understanding actors in Swift", "url": "https://tanaschita.com/swift-concurrency-actors-basics", "published_at": "2024-10-27T23:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0c9e39202", "title": "Extending optionals in Swift", "url": "https://tanaschita.com/swift-extending-optionals", "published_at": "2024-10-20T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0ca608a0a", "title": "How to call async/await functions in SwiftUI", "url": "https://tanaschita.com/swiftui-with-async-await", "published_at": "2024-10-13T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0cb396d9b", "title": "Understanding localization with LocalizedStringKey in SwiftUI", "url": "https://tanaschita.com/swiftui-localization", "published_at": "2024-10-06T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0cc32754d", "title": "Getting started with async/await in Swift", "url": "https://tanaschita.com/swift-async-await", "published_at": "2024-09-29T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0ccafa92e", "title": "Understanding Substring and String indices in Swift", "url": "https://tanaschita.com/swift-strings-indices-and-substrings", "published_at": "2024-09-22T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0cd9a60d1", "title": "How to set up and use Core Data with SwiftUI", "url": "https://tanaschita.com/coredata-with-swiftui", "published_at": "2024-09-15T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0ce79892d", "title": "Introduction to supporting VoiceOver in SwiftUI", "url": "https://tanaschita.com/ios-accessibility-voiceover-swiftui-guide", "published_at": "2024-09-08T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0cf6a40f7", "title": "Cheat sheet on VoiceOver gestures for iOS", "url": "https://tanaschita.com/ios-accessibility-voiceover-gestures", "published_at": "2024-09-07T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0cff957cc", "title": "Swift optionals cheat sheet", "url": "https://tanaschita.com/swift-optionals-cheat-sheet", "published_at": "2024-09-01T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d0d34c85", "title": "Understanding container values in SwiftUI", "url": "https://tanaschita.com/swiftui-container-values", "published_at": "2024-08-25T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d10dd015", "title": "How to call async/await functions concurrently in Swift", "url": "https://tanaschita.com/swift-call-async-await-functions-concurrently", "published_at": "2024-08-18T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d1247987", "title": "Understanding the @FetchRequest property wrapper in SwiftUI", "url": "https://tanaschita.com/swiftui-fetchrequest-property-wrapper", "published_at": "2024-08-18T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d181c51f", "title": "How to create custom reusable container views in SwiftUI", "url": "https://tanaschita.com/swiftui-custom-containers", "published_at": "2024-08-11T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d2518084", "title": "How to add local Swift Packages to an iOS project", "url": "https://tanaschita.com/spm-add-local-packages", "published_at": "2024-08-04T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d3031e7e", "title": "Get started with Swift Package Manager for iOS", "url": "https://tanaschita.com/spm-overview", "published_at": "2024-08-04T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d3bde4ae", "title": "How to add public libraries as Swift Packages to an iOS project", "url": "https://tanaschita.com/spm-add-public-packages", "published_at": "2024-08-04T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d47db37e", "title": "Understanding the @Environment property wrapper in SwiftUI", "url": "https://tanaschita.com/swiftui-environment-property-wrapper", "published_at": "2024-07-28T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d53d91f2", "title": "How to delay server requests for user's search query with SwiftUI and Combine", "url": "https://tanaschita.com/combine-swiftui-search-query-debounce", "published_at": "2024-07-14T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d5c54b8c", "title": "Backpressure in Combine", "url": "https://tanaschita.com/combine-back-pressure", "published_at": "2024-07-07T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d5d67315", "title": "Developer guide on Swift Testing for iOS", "url": "https://tanaschita.com/ios-swift-testing", "published_at": "2024-06-30T22:00:00+00:00" }, { "id": "01a0d3b8-2467-7324-b0ac-bad4f8d899ad", "title": "Developer guide on Swift Testing for iOS", "url": "https://tanaschita.com/testing-swift-testing-overview", "published_at": "2024-06-30T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d6792a4f", "title": "WWDC 2024 summary of Apple's platforms state of the union talk for iOS developers", "url": "https://tanaschita.com/wwdc-2024", "published_at": "2024-06-23T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d7510aba", "title": "How to use NavigationPath for routing in SwiftUI", "url": "https://tanaschita.com/swiftui-navigationpath", "published_at": "2024-06-08T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d771eb45", "title": "Objective-C basics for Swift developers", "url": "https://tanaschita.com/objective-c-for-swift-developers", "published_at": "2024-06-02T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d8119710", "title": "How to create custom @Environment values in SwiftUI", "url": "https://tanaschita.com/swiftui-custom-environment-values", "published_at": "2024-05-26T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d897075f", "title": "Combine essentials in Swift - a quick guide", "url": "https://tanaschita.com/combine-essentials", "published_at": "2024-05-19T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d923a648", "title": "How to combine SwiftUI and UIKit views in iOS", "url": "https://tanaschita.com/swiftui-uikit", "published_at": "2024-05-12T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d955be24", "title": "How to localize plurals with Localizable.stringsdict files in iOS", "url": "https://tanaschita.com/ios-plurals-localization-strictdict", "published_at": "2024-05-05T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d9724f1b", "title": "How to solve problems with bitwise operators in Swift", "url": "https://tanaschita.com/swift-working-with-bits", "published_at": "2024-04-28T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0d9b08a80", "title": "GraphQL essentials for iOS development", "url": "https://tanaschita.com/graphql-essentials-for-ios", "published_at": "2024-04-21T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0da6f114e", "title": "Quick tip on adding child view controllers programmatically in UIKit", "url": "https://tanaschita.com/uikit-adding-childview-controller", "published_at": "2024-04-21T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0dab9a839", "title": "My favorite Xcode keyboard shortcuts to be more productive", "url": "https://tanaschita.com/xcode-shortcuts", "published_at": "2024-04-14T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0db5b242e", "title": "Introduction to Combine for iOS developers with RxSwift experience", "url": "https://tanaschita.com/combine-for-rxswift-devs", "published_at": "2024-04-07T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0dbb7e39a", "title": "Quick tip on how to learn Xcode keyboard shortcuts efficiently", "url": "https://tanaschita.com/xcode-quicktip-learning-shortcuts", "published_at": "2024-04-07T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0dc676813", "title": "How to avoid using AnyView in SwiftUI", "url": "https://tanaschita.com/swiftui-how-to-avoid-using-anyview", "published_at": "2024-03-31T22:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0dcf21867", "title": "How to use Swift's logging API", "url": "https://tanaschita.com/swift-logging-api", "published_at": "2024-03-24T23:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0dd76de7f", "title": "How to support dark mode in SwiftUI programmatically", "url": "https://tanaschita.com/ios-supporting-dark-mode-programmatically", "published_at": "2024-03-17T23:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0de093ffd", "title": "Safe array subscription in Swift", "url": "https://tanaschita.com/swift-basics-safe-array-subscription", "published_at": "2024-03-17T23:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0de70c0df", "title": "How to use TipKit to create tool tips in SwiftUI", "url": "https://tanaschita.com/20240304-tipkit-feature-hints", "published_at": "2024-03-03T23:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0dece8e53", "title": "How to delay an animation in SwiftUI", "url": "https://tanaschita.com/20240226-delay-swiftui-animation", "published_at": "2024-02-25T23:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0df650742", "title": "How to define one-to-many relationships in SwiftData", "url": "https://tanaschita.com/swiftdata-one-to-many-relationships", "published_at": "2024-02-18T23:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0dfcd064c", "title": "Getting started with Apollo iOS for GraphQL in Swift", "url": "https://tanaschita.com/graphql-apollo-for-ios", "published_at": "2024-02-11T23:00:00+00:00" }, { "id": "01a08219-661c-73ac-a36e-92b0dfd8f0e4", "title": "Get started with auto‑renewable subscriptions for iOS", "url": "https://tanaschita.com/20231211-auto-renewable-subscriptions", "published_at": "2023-12-10T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670263949c", "title": "Introduction to Kotlin for Swift developers - protocols, extensions & generics", "url": "https://tanaschita.com/kotlin-for-swift-developers-part-3", "published_at": "2023-12-01T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226702d98358", "title": "How to store images in SwiftData", "url": "https://tanaschita.com/swiftdata-store-images", "published_at": "2023-11-26T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226703ce4b0a", "title": "How to migrate to a new schema with SwiftData in iOS", "url": "https://tanaschita.com/swiftdata-schema-migration", "published_at": "2023-11-19T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-2267040967a2", "title": "How to implemet a free trial period for StoreKit 2 subscriptions in iOS", "url": "https://tanaschita.com/20231113-subscriptions-introductory-offers", "published_at": "2023-11-12T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670508f12f", "title": "How to get a SwiftData model container and context in SwiftUI", "url": "https://tanaschita.com/swiftdata-model-container-context-swiftui", "published_at": "2023-10-29T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-2267052f3b45", "title": "Introduction to bash scripting for iOS developers", "url": "https://tanaschita.com/20231023-bash-scripting-for-ios-devs", "published_at": "2023-10-22T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226706233609", "title": "Quick developer guide on SwiftData for iOS", "url": "https://tanaschita.com/swiftdata-quick-developer-guide", "published_at": "2023-10-15T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226706bc211d", "title": "How to restore in-app purchases with StoreKit 2 for iOS", "url": "https://tanaschita.com/20231009-restore-in-app-purchases-storekit", "published_at": "2023-10-08T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226707648fac", "title": "Get started with StoreKit 2 for iOS", "url": "https://tanaschita.com/20231002-storekit-2-overview", "published_at": "2023-10-01T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-2267079dd3b6", "title": "Introduction to Kotlin for Swift developers - classes, structs & enums", "url": "https://tanaschita.com/kotlin-for-swift-developers-part-2", "published_at": "2023-09-24T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226708890886", "title": "How to intercept and edit a server response with Proxyman for iOS", "url": "https://tanaschita.com/20230918-proxyman-how-to-change-request", "published_at": "2023-09-17T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226709705d65", "title": "How to manually subscribe to changes of SwiftUI's @Observable objects", "url": "https://tanaschita.com/20230822-observation-framework-subscribe-to-changes", "published_at": "2023-08-21T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670a0337f9", "title": "Introduction to Kotlin for Swift developers - variables, functions & control flow", "url": "https://tanaschita.com/kotlin-for-swift-developers-part-1", "published_at": "2023-08-14T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670a1836bf", "title": "The difference between @StateObject and @ObservedObject in SwiftUI", "url": "https://tanaschita.com/20230731-stateobject-observedobject-swiftui", "published_at": "2023-07-30T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670affcc3f", "title": "How to automate taking screenshots with fastlane for iOS", "url": "https://tanaschita.com/20230724-fastlane-screenshots-ios", "published_at": "2023-07-23T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670b3d9067", "title": "Beginner's guide on Flutter for iOS developers", "url": "https://tanaschita.com/20230717-flutter-for-ios-developers", "published_at": "2023-07-16T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670bc52d79", "title": "Quick tip on how to split text into words with the Natural Language framework in Swift.", "url": "https://tanaschita.com/20230619-tokenizing-words-with-natural-language-framework", "published_at": "2023-06-18T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670c15c8b9", "title": "How to find synonyms with the Natural Language framework for iOS", "url": "https://tanaschita.com/20230612-find-similar-words-natural-language-framework-ios", "published_at": "2023-06-11T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670c9816dc", "title": "How to map a SwiftUI state to a binding of a different type", "url": "https://tanaschita.com/20230605-swiftui-state-binding-different-types", "published_at": "2023-06-04T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670d63610c", "title": "Continuous integration and delivery for iOS", "url": "https://tanaschita.com/20230529-continuous-integration-and-delivery-for-ios", "published_at": "2023-05-28T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670de62429", "title": "How to identify parts of speech and names in a text with Swift", "url": "https://tanaschita.com/20230515-natural-language-framework-linguistic-tags", "published_at": "2023-05-14T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670ee0c857", "title": "How to detect the language of a text with the Natural Language framework in Swift", "url": "https://tanaschita.com/20230501-detect-language-with-natural-language-framework", "published_at": "2023-04-30T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670f3820cc", "title": "Developer guide on App Clips for iOS", "url": "https://tanaschita.com/20230424-app-clips", "published_at": "2023-04-23T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22670f9b725c", "title": "Cheatsheet for the JSON payload of an iOS push notification", "url": "https://tanaschita.com/20230417-cheatsheet-for-anatomy-of-ios-push-notifications", "published_at": "2023-04-16T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22671070044f", "title": "How to scan QR codes with VisionKit for iOS", "url": "https://tanaschita.com/20230410-how-to-scan-qr-codes-with-visionkit-for-ios", "published_at": "2023-04-09T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-2267109b5056", "title": "Get started with Create ML to train a machine learning model in iOS", "url": "https://tanaschita.com/20230403-train-ml-model-with-create-ml-ios", "published_at": "2023-04-02T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226710d59fa0", "title": "How to change JSON keys by using Swift's CodingKey protocol", "url": "https://tanaschita.com/swift-json-custom-decoding-encoding", "published_at": "2023-03-26T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-2267119e2d12", "title": "Get started with NSPredicate to filter NSFetchRequest in Core Data", "url": "https://tanaschita.com/20230320-cheatsheet-nspredicate-fetchrequest-core-data", "published_at": "2023-03-19T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226711e09de4", "title": "Developer guide on machine learning for iOS with Core ML", "url": "https://tanaschita.com/20230313-machine-learning-ios-core-ml", "published_at": "2023-03-12T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-2267121aba9b", "title": "Quick tip on how to unit test Swift optionals with XCTUnwrap", "url": "https://tanaschita.com/20230306-xctunwrap-quick-tip", "published_at": "2023-03-05T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-2267130ad473", "title": "Quick guide on fastlane for iOS development", "url": "https://tanaschita.com/20230213-fastlane-ios-developer-guide", "published_at": "2023-02-12T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22671374f066", "title": "How to import Objective-C types as optionals or non-optionals into Swift", "url": "https://tanaschita.com/20230130-nullability-declarations-objective-c", "published_at": "2023-01-29T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-2267139a24cb", "title": "Authorizing App Store Connect API requests", "url": "https://tanaschita.com/20221226-authorizing-app-store-connect-api-requests", "published_at": "2022-12-25T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226713c26f6a", "title": "How to perform a lightweight migration in Core Data", "url": "https://tanaschita.com/core-data-lightweight-migration", "published_at": "2022-12-18T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22671498c043", "title": "Developer guide on the App Store Connect API", "url": "https://tanaschita.com/20221128-app-store-connect-api-quide", "published_at": "2022-11-27T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226714bade3f", "title": "How to handle non-optional Core Data properties in Swift", "url": "https://tanaschita.com/20221114-how-to-handle-non-optional-core-data-values-in-swift", "published_at": "2022-11-06T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22671531798d", "title": "Understanding different cache policies when working with URLRequest in Swift", "url": "https://tanaschita.com/20221031-managing-cache-when-working-with-urlsession-in-ios", "published_at": "2022-10-30T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226716075d9d", "title": "How to create NSManagedObject subsclasses for Core Data entities in Xcode", "url": "https://tanaschita.com/20221024-how-to-create-a-managed-object-subclass-xcode-core-data", "published_at": "2022-10-23T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226716e7bdbd", "title": "iOS developer guide on the main aspects of Core Data", "url": "https://tanaschita.com/20220919-understanding-the-main-aspects-of-core-data", "published_at": "2022-09-18T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22671717edc6", "title": "How to manage view lifecycle events in SwiftUI", "url": "https://tanaschita.com/swiftui-view-lifecycle-events", "published_at": "2022-09-14T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-2267172e7374", "title": "Building configurable widgets with WidgetKit and SwiftUI", "url": "https://tanaschita.com/widgetkit-configurable-widgets-swiftui", "published_at": "2022-09-04T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226717b920a6", "title": "How to bridge async/await functions to Combine's Future type in Swift", "url": "https://tanaschita.com/20220822-bridge-async-await-to-combine-future", "published_at": "2022-08-21T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22671872f834", "title": "Implementing Password AutoFill for an iOS application", "url": "https://tanaschita.com/20220815-supporting-password-autofill-for-ios-appilcations", "published_at": "2022-08-14T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226718b4ab3a", "title": "Quick guide on Proxyman for iOS development", "url": "https://tanaschita.com/20220704-quick-guide-on-proxyman", "published_at": "2022-07-03T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226718d1d094", "title": "Customizing buttons in SwiftUI with the ButtonStyle protocol", "url": "https://tanaschita.com/swiftui-customizing-button-with-buttonstyle", "published_at": "2022-05-22T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226718f46f9e", "title": "Customizing the appearance of the NavigationView title in SwiftUI", "url": "https://tanaschita.com/switui-navigationview-customize-title", "published_at": "2022-05-15T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-2267198cdd62", "title": "Quick guide on local notifications for iOS", "url": "https://tanaschita.com/ios-local-notifications-guide", "published_at": "2022-05-01T22:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-226719bc818c", "title": "Manipulating networking requests and responses with Charles", "url": "https://tanaschita.com/tools-charles-proxy-manipulating-network-requests-and-responses", "published_at": "2022-03-06T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22671a04c447", "title": "Quick guide on Charles Proxy for iOS development", "url": "https://tanaschita.com/tools-charles-proxy-for-ios-guide", "published_at": "2022-02-27T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22671a88f97d", "title": "Symmetric-key cryptography with CryptoKit for iOS", "url": "https://tanaschita.com/cryptokit-symmetric-key-cryptography", "published_at": "2022-01-16T23:00:00+00:00" }, { "id": "01a08219-661d-7025-87dc-22671a8cc3be", "title": "How to preview SwiftUI views in dark mode", "url": "https://tanaschita.com/swiftui-dark-mode-preview", "published_at": "2021-11-07T23:00:00+00:00" } ] posts
Claim your blog
Back to Tanaschita
Blog · corpus.blog/blogs/tanaschita.com/posts
Tanaschita
tanaschita.com
2024
Understanding actors in Swift
original ↗
27 Oct 2024
Extending optionals in Swift
original ↗
20 Oct 2024
How to call async/await functions in SwiftUI
original ↗
13 Oct 2024
Understanding localization with LocalizedStringKey in SwiftUI
original ↗
6 Oct 2024
Getting started with async/await in Swift
original ↗
29 Sept 2024
Understanding Substring and String indices in Swift
original ↗
22 Sept 2024
How to set up and use Core Data with SwiftUI
original ↗
15 Sept 2024
Introduction to supporting VoiceOver in SwiftUI
original ↗
8 Sept 2024
Cheat sheet on VoiceOver gestures for iOS
original ↗
7 Sept 2024
Swift optionals cheat sheet
original ↗
1 Sept 2024
Understanding container values in SwiftUI
original ↗
25 Aug 2024
How to call async/await functions concurrently in Swift
original ↗
18 Aug 2024
Understanding the @FetchRequest property wrapper in SwiftUI
original ↗
18 Aug 2024
How to create custom reusable container views in SwiftUI
original ↗
11 Aug 2024
How to add local Swift Packages to an iOS project
original ↗
4 Aug 2024
Get started with Swift Package Manager for iOS
original ↗
4 Aug 2024
How to add public libraries as Swift Packages to an iOS project
original ↗
4 Aug 2024
Understanding the @Environment property wrapper in SwiftUI
original ↗
28 Jul 2024
How to delay server requests for user's search query with SwiftUI and Combine
original ↗
14 Jul 2024
Backpressure in Combine
original ↗
7 Jul 2024
Developer guide on Swift Testing for iOS
original ↗
30 Jun 2024
Developer guide on Swift Testing for iOS
original ↗
30 Jun 2024
WWDC 2024 summary of Apple's platforms state of the union talk for iOS developers
original ↗
23 Jun 2024
How to use NavigationPath for routing in SwiftUI
original ↗
8 Jun 2024
Objective-C basics for Swift developers
original ↗
2 Jun 2024
How to create custom @Environment values in SwiftUI
original ↗
26 May 2024
Combine essentials in Swift - a quick guide
original ↗
19 May 2024
How to combine SwiftUI and UIKit views in iOS
original ↗
12 May 2024
How to localize plurals with Localizable.stringsdict files in iOS
original ↗
5 May 2024
How to solve problems with bitwise operators in Swift
original ↗
28 Apr 2024
GraphQL essentials for iOS development
original ↗
21 Apr 2024
Quick tip on adding child view controllers programmatically in UIKit
original ↗
21 Apr 2024
My favorite Xcode keyboard shortcuts to be more productive
original ↗
14 Apr 2024
Introduction to Combine for iOS developers with RxSwift experience
original ↗
7 Apr 2024
Quick tip on how to learn Xcode keyboard shortcuts efficiently
original ↗
7 Apr 2024
How to avoid using AnyView in SwiftUI
original ↗
31 Mar 2024
How to use Swift's logging API
original ↗
24 Mar 2024
How to support dark mode in SwiftUI programmatically
original ↗
17 Mar 2024
Safe array subscription in Swift
original ↗
17 Mar 2024
How to use TipKit to create tool tips in SwiftUI
original ↗
3 Mar 2024
How to delay an animation in SwiftUI
original ↗
25 Feb 2024
How to define one-to-many relationships in SwiftData
original ↗
18 Feb 2024
Getting started with Apollo iOS for GraphQL in Swift
original ↗
11 Feb 2024
2023
Get started with auto‑renewable subscriptions for iOS
original ↗
10 Dec 2023
Introduction to Kotlin for Swift developers - protocols, extensions & generics
original ↗
1 Dec 2023
How to store images in SwiftData
original ↗
26 Nov 2023
How to migrate to a new schema with SwiftData in iOS
original ↗
19 Nov 2023
How to implemet a free trial period for StoreKit 2 subscriptions in iOS
original ↗
12 Nov 2023
How to get a SwiftData model container and context in SwiftUI
original ↗
29 Oct 2023
Introduction to bash scripting for iOS developers
original ↗
22 Oct 2023
Quick developer guide on SwiftData for iOS
original ↗
15 Oct 2023
How to restore in-app purchases with StoreKit 2 for iOS
original ↗
8 Oct 2023
Get started with StoreKit 2 for iOS
original ↗
1 Oct 2023
Introduction to Kotlin for Swift developers - classes, structs & enums
original ↗
24 Sept 2023
How to intercept and edit a server response with Proxyman for iOS
original ↗
17 Sept 2023
How to manually subscribe to changes of SwiftUI's @Observable objects
original ↗
21 Aug 2023
Introduction to Kotlin for Swift developers - variables, functions & control flow
original ↗
14 Aug 2023
The difference between @StateObject and @ObservedObject in SwiftUI
original ↗
30 Jul 2023
How to automate taking screenshots with fastlane for iOS
original ↗
23 Jul 2023
Beginner's guide on Flutter for iOS developers
original ↗
16 Jul 2023
Quick tip on how to split text into words with the Natural Language framework in Swift.
original ↗
18 Jun 2023
How to find synonyms with the Natural Language framework for iOS
original ↗
11 Jun 2023
How to map a SwiftUI state to a binding of a different type
original ↗
4 Jun 2023
Continuous integration and delivery for iOS
original ↗
28 May 2023
How to identify parts of speech and names in a text with Swift
original ↗
14 May 2023
How to detect the language of a text with the Natural Language framework in Swift
original ↗
30 Apr 2023
Developer guide on App Clips for iOS
original ↗
23 Apr 2023
Cheatsheet for the JSON payload of an iOS push notification
original ↗
16 Apr 2023
How to scan QR codes with VisionKit for iOS
original ↗
9 Apr 2023
Get started with Create ML to train a machine learning model in iOS
original ↗
2 Apr 2023
How to change JSON keys by using Swift's CodingKey protocol
original ↗
26 Mar 2023
Get started with NSPredicate to filter NSFetchRequest in Core Data
original ↗
19 Mar 2023
Developer guide on machine learning for iOS with Core ML
original ↗
12 Mar 2023
Quick tip on how to unit test Swift optionals with XCTUnwrap
original ↗
5 Mar 2023
Quick guide on fastlane for iOS development
original ↗
12 Feb 2023
How to import Objective-C types as optionals or non-optionals into Swift
original ↗
29 Jan 2023
2022
Authorizing App Store Connect API requests
original ↗
25 Dec 2022
How to perform a lightweight migration in Core Data
original ↗
18 Dec 2022
Developer guide on the App Store Connect API
original ↗
27 Nov 2022
How to handle non-optional Core Data properties in Swift
original ↗
6 Nov 2022
Understanding different cache policies when working with URLRequest in Swift
original ↗
30 Oct 2022
How to create NSManagedObject subsclasses for Core Data entities in Xcode
original ↗
23 Oct 2022
iOS developer guide on the main aspects of Core Data
original ↗
18 Sept 2022
How to manage view lifecycle events in SwiftUI
original ↗
14 Sept 2022
Building configurable widgets with WidgetKit and SwiftUI
original ↗
4 Sept 2022
How to bridge async/await functions to Combine's Future type in Swift
original ↗
21 Aug 2022
Implementing Password AutoFill for an iOS application
original ↗
14 Aug 2022
Quick guide on Proxyman for iOS development
original ↗
3 Jul 2022
Customizing buttons in SwiftUI with the ButtonStyle protocol
original ↗
22 May 2022
Customizing the appearance of the NavigationView title in SwiftUI
original ↗
15 May 2022
Quick guide on local notifications for iOS
original ↗
1 May 2022
Manipulating networking requests and responses with Charles
original ↗
6 Mar 2022
Quick guide on Charles Proxy for iOS development
original ↗
27 Feb 2022
Symmetric-key cryptography with CryptoKit for iOS
original ↗
16 Jan 2022
2021
How to preview SwiftUI views in dark mode
original ↗
7 Nov 2021
Previous