<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Egzon Pllana - Articles</title><description>Senior iOS engineer and SDK architect. I build production Swift SDKs and ship App Store apps. Articles on Swift 6 concurrency, SDK design, and iOS architecture.</description><link>https://egzonpllana.github.io/</link><language>en-us</language><atom:link href="https://egzonpllana.github.io/rss.xml" rel="self" type="application/rss+xml"/><generator>Astro (build iq9zxzxiq9zxzxiqiq9zxzxzx9zxiq)</generator><item><title>How Big-Name Companies Check Username Availability in Milliseconds</title><link>https://egzonpllana.github.io/articles/username-availability-milliseconds/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/username-availability-milliseconds/</guid><description>It is not a search, it is a keyed existence lookup. How indexes, Bloom filters, and caches make the check instant, and why correctness lives somewhere else entirely.</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate><category>Systems Design</category><category>Bloom Filters</category><category>Databases</category><category>Caching</category><category>Distributed Systems</category><author>docpllana@gmail.com (Egzon Pllana)</author></item><item><title>From 0 to over 1,000 Unit Tests: The DI Framework Behind It</title><link>https://egzonpllana.github.io/articles/from-0-to-1000-unit-tests-di-framework/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/from-0-to-1000-unit-tests-di-framework/</guid><description>Why I built OrbitCore, an open-source Swift DI container with three retain policies, thread-safe lazy injection, and a test pattern that scaled past 1,000 unit tests.</description><pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate><category>Swift</category><category>iOS</category><category>Dependency Injection</category><category>Unit Testing</category><category>Clean Architecture</category><author>docpllana@gmail.com (Egzon Pllana)</author></item><item><title>How I Built an Offline Photo Geocoding Engine That Clusters 8,000 Photos in Under 5 Seconds</title><link>https://egzonpllana.github.io/articles/offline-photo-geocoding-engine/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/offline-photo-geocoding-engine/</guid><description>Replacing Apple CLGeocoder with embedded GeoNames data, a K-D Tree, and a chain expansion algorithm to geocode and cluster thousands of photos offline in seconds.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate><category>Swift</category><category>iOS</category><category>Geocoding</category><category>K-D Tree</category><category>Spatial Search</category><author>docpllana@gmail.com (Egzon Pllana)</author></item><item><title>6 Problems With NSLocalizedString That Made Me Build LocalizationEngine SDK</title><link>https://egzonpllana.github.io/articles/six-problems-with-nslocalizedstring/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/six-problems-with-nslocalizedstring/</guid><description>Why Apple&apos;s built-in localization tools fall short for multi-language iOS apps, and the open-source Swift Package I built to fix them.</description><pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>Localization</category><category>SwiftUI</category><category>Mobile App Development</category><author>docpllana@gmail.com (Egzon Pllana)</author></item><item><title>Implementing Apple App Attest for iOS API Security - No More Static Secrets</title><link>https://egzonpllana.github.io/articles/apple-app-attest-ios-api-security/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/apple-app-attest-ios-api-security/</guid><description>How Apple App Attest replaces static shared secrets with per-device hardware keys in the Secure Enclave to secure iOS API requests.</description><pubDate>Fri, 13 Feb 2026 00:00:00 GMT</pubDate><category>Swift</category><category>Security</category><category>Apple</category><category>Certificate Attestation</category><category>iOS</category><author>docpllana@gmail.com (Egzon Pllana)</author></item><item><title>From Network Chaos to Cached Harmony</title><link>https://egzonpllana.github.io/articles/from-network-chaos-to-cached-harmony/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/from-network-chaos-to-cached-harmony/</guid><description>How I replaced scattered, redundant contact API calls with a multi-layered, reactive caching architecture in a SwiftUI app using Clean Architecture.</description><pubDate>Mon, 11 Aug 2025 00:00:00 GMT</pubDate><category>Swift</category><category>iOS</category><category>Clean Architecture</category><category>Caching</category><category>Combine</category><author>docpllana@gmail.com (Egzon Pllana)</author></item><item><title>How I Stopped a Silent Memory Leak in My iOS App</title><link>https://egzonpllana.github.io/articles/stopping-a-silent-memory-leak-ios/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/stopping-a-silent-memory-leak-ios/</guid><description>How I diagnosed a silent SwiftUI memory leak, achieved 85% memory reduction on tab switches, and open-sourced a real-time memory profiler.</description><pubDate>Sun, 27 Jul 2025 00:00:00 GMT</pubDate><category>Swift</category><category>iOS</category><category>SwiftUI</category><category>Memory Management</category><category>Combine</category><author>docpllana@gmail.com (Egzon Pllana)</author></item><item><title>EventHorizon - A thread-safe networking layer in Swift with Sendable and async-await</title><link>https://egzonpllana.github.io/articles/eventhorizon-thread-safe-networking-swift/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/eventhorizon-thread-safe-networking-swift/</guid><description>EventHorizon is a lightweight, thread-safe Swift package for building a clean, type-safe network communication layer with Swift 6, Sendable and async/await.</description><pubDate>Wed, 09 Apr 2025 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>Networking</category><category>Concurrency</category><category>async-await</category><author>docpllana@gmail.com (Egzon Pllana)</author></item><item><title>The important difference between RunLoop.main and DispatchQueue.main</title><link>https://egzonpllana.github.io/articles/runloop-main-vs-dispatchqueue-main/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/runloop-main-vs-dispatchqueue-main/</guid><description>Why a Combine pipeline can pause UI updates during scrolling, and how the choice between RunLoop.main and DispatchQueue.main on receive(on:) affects value delivery.</description><pubDate>Wed, 09 Oct 2024 00:00:00 GMT</pubDate><category>Swift</category><category>Combine</category><category>iOS</category><category>Concurrency</category><category>SwiftUI</category><author>docpllana@gmail.com (Egzon Pllana)</author></item><item><title>Understanding Concurrency in Swift 6 with Sendable protocol, MainActor, and async-await</title><link>https://egzonpllana.github.io/articles/understanding-concurrency-swift-6-sendable-mainactor/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/understanding-concurrency-swift-6-sendable-mainactor/</guid><description>A practical guide to Swift 6 concurrency: async/await, MainActor, the Sendable protocol, actors, TaskGroup, and more for safe, modern asynchronous code.</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>Swift</category><category>iOS</category><category>Concurrency</category><category>async-await</category><category>Sendable</category><author>docpllana@gmail.com (Egzon Pllana)</author></item><item><title>Building a generic, thread-safe Networking Layer in Swift 6 with Interceptors</title><link>https://egzonpllana.github.io/articles/thread-safe-networking-layer-swift-6-interceptors/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/thread-safe-networking-layer-swift-6-interceptors/</guid><description>Build a generic, thread-safe networking layer in Swift 6 using the EventHorizon package, with async/await, Sendable, and network interceptors.</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>Swift</category><category>Async Await</category><category>Sendable</category><category>Generics</category><category>Networking</category><author>docpllana@gmail.com (Egzon Pllana)</author></item><item><title>Building the Airbnb Host Passport view in Swift 5.9 on iOS</title><link>https://egzonpllana.github.io/articles/airbnb-host-passport-view-swift/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/airbnb-host-passport-view-swift/</guid><description>Recreating the Airbnb Host Passport as a flippable, book-like multi-page view in UIKit using transparent views and CATransform3D 3D rotations.</description><pubDate>Sat, 17 Aug 2024 00:00:00 GMT</pubDate><category>Swift</category><category>iOS</category><category>UIKit</category><category>3D Animation</category><category>Core Animation</category><author>docpllana@gmail.com (Egzon Pllana)</author></item><item><title>Drawing a Gauge View with Swift 5.9 on iOS</title><link>https://egzonpllana.github.io/articles/drawing-a-gauge-view-swift/</link><guid isPermaLink="true">https://egzonpllana.github.io/articles/drawing-a-gauge-view-swift/</guid><description>Building a custom UIKit GaugeViewXK using CAShapeLayer, CAGradientLayer, CADisplayLink, and trigonometry to draw an animated, gradient gauge.</description><pubDate>Fri, 02 Aug 2024 00:00:00 GMT</pubDate><category>Swift</category><category>iOS</category><category>UIKit</category><category>Core Animation</category><category>Mathematics</category><author>docpllana@gmail.com (Egzon Pllana)</author></item></channel></rss>