<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mobile Development on code.kiwi.com</title><link>https://code.kiwi.com/tag/mobile-development/</link><description>Recent content in Mobile Development on code.kiwi.com</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 15 Sep 2025 11:40:41 +0000</lastBuildDate><atom:link href="https://code.kiwi.com/tag/mobile-development/index.xml" rel="self" type="application/rss+xml"/><item><title>Feature configuration with Swift macros</title><link>https://code.kiwi.com/articles/feature-configuration-with-swift-macros/</link><pubDate>Mon, 15 Sep 2025 11:24:59 +0000</pubDate><guid>https://code.kiwi.com/articles/feature-configuration-with-swift-macros/</guid><description>&lt;p&gt;This article describes how we made the iOS app feature configuration system more ergonomic by using Swift’s macros. We take a framework with repetitive, hard-to-understand declarations and manual mocking and eliminate all of these weaknesses.&lt;/p&gt;</description></item><item><title>ObservableObject initialisation using Environment</title><link>https://code.kiwi.com/articles/observableobject-initialisation-using-environment/</link><pubDate>Wed, 23 Aug 2023 13:22:30 +0000</pubDate><guid>https://code.kiwi.com/articles/observableobject-initialisation-using-environment/</guid><description>&lt;p&gt;For the purpose of this article, our &lt;strong&gt;ObservableObjects&lt;/strong&gt; represent optional testable and mockable view models that drive the domain logic for some of the more complicated screens in our app.&lt;/p&gt;
&lt;p&gt;A side note on the SwiftUI environment for following code examples: As our app is driven by feature-based modular architecture, we are using &lt;strong&gt;Environment&lt;/strong&gt; instead of &lt;strong&gt;EnvironmentObjects&lt;/strong&gt; for our modular dependencies. This approach has some disadvantages (for example not being able to fully use &lt;strong&gt;@Published&lt;/strong&gt; properties), but in our case, the modularity aspect overweights these limitations.&lt;/p&gt;</description></item><item><title>Highlights from WWDC 2019</title><link>https://code.kiwi.com/articles/highlights-from-wwdc-2019/</link><pubDate>Wed, 26 Jun 2019 21:49:00 +0000</pubDate><guid>https://code.kiwi.com/articles/highlights-from-wwdc-2019/</guid><description>&lt;p&gt;When asked to describe this year’s WWDC, words like “packed”, “massive”, and “overwhelming” come to mind. It seems that Apple has announced multiple years worth of development. The following are some of the most prominent features, but rest assured that this article could easily be ten times as long if one was to dig beneath the surface.&lt;/p&gt;</description></item><item><title>Guide to advanced UI tests on iOS</title><link>https://code.kiwi.com/articles/guide-to-advanced-ui-tests-on-ios/</link><pubDate>Wed, 15 May 2019 21:32:00 +0000</pubDate><guid>https://code.kiwi.com/articles/guide-to-advanced-ui-tests-on-ios/</guid><description>&lt;p&gt;&lt;img src="https://code.kiwi.com/images/media/cb79cbdf4c69792d966e8e96fc762537af1121cc3261d9bdb6e121cfd9eafe09.webp" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://nsscreencast.com/episodes/328-introduction-to-xctest"&gt;&lt;em&gt;Image source&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Let’s talk about tests for iOS today — especially about writing advanced UI tests using the XCTest framework.&lt;/p&gt;
&lt;p&gt;Before we start, I’d like you to know I will skip all the preparations — such as creating a new test target and adding pods to test target since it’s something you should already know before reading this article. Guide to these settings can be found eg &lt;a href="https://www.raywenderlich.com/709-ios-unit-testing-and-ui-testing-tutorial"&gt;here&lt;/a&gt;. Also, as for the languages, we will be using mainly Swift and a bit of Objective-C.&lt;/p&gt;</description></item></channel></rss>