<?xml version='1.0' encoding='UTF-8'?>
 <rss version='2.0' xmlns:atom='http://www.w3.org/2005/Atom'>
 <channel>
 <atom:link href='https://appforce1.net/blog/rss.php' rel='self' type='application/rss+xml' />
 <title>AppForce1 | RSS</title>
 <link>https://appforce1.net/blog/</link>
 <description>AppForce1 news and articles.</description>
 <copyright>© 2025 · AppForce1 - Jeroen Leenarts</copyright>
 <pubDate>Thu, 22 Jan 2026 21:55:00 +0100</pubDate>
 <language>en-us</language><item>
   <title>The Senior Developer in an AI-Generated World</title>
   <link>https://appforce1.net/blog/08-senior-developer-ai-world</link>
   <guid>https://appforce1.net/blog/08-senior-developer-ai-world</guid>
   <description>I've been mentoring junior developers for years. It's one of the most rewarding parts of my job. Watching someone go from &quot;I don't know how to write a for loop&quot; to &quot;I just shipped a feature that thousands of people use&quot; is incredible.
Real Developer, Real Problems: The Death of the Junior Role?</description>
   <pubDate>Thu, 22 Jan 2026 21:55:00 +0100</pubDate>
   </item><item>
   <title>The Road to Do iOS 2026: Planning the Next Evolution of the iOS Developer Conference</title>
   <link>https://appforce1.net/blog/do-ios-2026</link>
   <guid>https://appforce1.net/blog/do-ios-2026</guid>
   <description>The echoes of Do iOS 2025 at the NEMO Science Museum have barely faded, yet the mission to make the next edition even better has already begun. As the organizer, I'm thrilled to officially kick off the planning cycle for Do iOS 2026.
Organizing a conference isn't just about booking a venue and ordering coffee; it’s about curating a moment in time—a snapshot of where iOS development stands and where it's headed. The success of 2025, with deep dives into SwiftUI performance, App Intents, and complex security topics, proved that our community craves technical depth and real-world application.</description>
   <pubDate>Thu, 11 Dec 2025 08:55:00 +0100</pubDate>
   </item><item>
   <title>AppForce1 Worklog: The Hidden Complexity of iOS Audio Engineering: Lessons from the Trenches</title>
   <link>https://appforce1.net/blog/appForce1-podcast-e104</link>
   <guid>https://appforce1.net/blog/appForce1-podcast-e104</guid>
   <description>This week's iOS development journey took me deep into two notoriously challenging areas of iOS development: audio engineering and background task management. What started as a seemingly simple volume slider issue revealed layers of complexity that showcase what real-world iOS development truly involves.
Listen to my entire podcast episode.</description>
   <pubDate>Sat, 20 Sep 2025 10:45:00 +0200</pubDate>
   </item><item>
   <title>AppForce1 Worklog: Real Developer, Real Problems: No More Polished Perfection</title>
   <link>https://appforce1.net/blog/appForce1-podcast-e103</link>
   <guid>https://appforce1.net/blog/appForce1-podcast-e103</guid>
   <description>I'm excited to announce a significant pivot for my podcast AppForce1, transforming it from a weekly news format into what I'm calling the &quot;AppForce1 Work Log.&quot; After a stint in developer relations at Stream, where I spoke at conferences like NS Spain, Swift Heroes, and AppDevCon, I've returned to my true passion – building iOS apps. I'm now working at Dawn Technology (formerly eGenic), the company behind the AppDevCon conference, where I'm focusing on actual development rather than just talking about it.
The new AppForce1 Work Log represents something notably absent in the iOS podcast landscape – a raw, honest look at day-to-day iOS development challenges. While many podcasts cover the latest news, frameworks, and WWDC announcements, few dive into the messy reality of debugging sessions that take hours, architectural decisions that keep developers up at night, and those moments of realization when you've been approaching a problem incorrectly. I aim to fill this gap by sharing my journey in real-time, documenting the wins, struggles, lessons learned, and code that actually works, without corporate speak or unnecessary fluff.</description>
   <pubDate>Mon, 15 Sep 2025 23:45:00 +0200</pubDate>
   </item><item>
   <title>10 New Jobs for Burned-Out Software Developers</title>
   <link>https://appforce1.net/blog/10-new-jobs-for-burned-out-software-developers</link>
   <guid>https://appforce1.net/blog/10-new-jobs-for-burned-out-software-developers</guid>
   <description>Maxed out on software development and ready for new challenges? Read this practical guide to discover the next role in your tech career.
If you've been in the trenches as a software developer for a while, you know the routine: code reviews, sprint planning, mentoring juniors, shipping features, fighting fires in production and probably a dozen Slack messages before lunch. It's a role that demands deep technical and people skills — but where do you go next when you've mastered this level?</description>
   <pubDate>Fri, 02 May 2025 07:15:00 +0200</pubDate>
   </item><item>
   <title>BenQ ScreenBar Pro Review: The Desk Light You Didn’t Know You Needed</title>
   <link>https://appforce1.net/blog/benq-screenbar-pro-review</link>
   <guid>https://appforce1.net/blog/benq-screenbar-pro-review</guid>
   <description>As someone who spends the majority of their day coding, reviewing content, and collaborating with a remote team, my desk is more than just a workspace—it’s mission control. And over the years, I’ve learned that the details of your setup can make or break your productivity, comfort, and even your mood. One of the most surprisingly impactful additions to my setup came in the form of a BenQ ScreenBar a couple of years ago. At first, I wasn’t convinced that a light bar could make that much of a difference. But after two years of daily use, I found it hard to imagine my desk without it.
So when BenQ offered me the chance to try out their newer and more advanced ScreenBar Pro, I was curious. I already had a solid benchmark in the regular ScreenBar, which I’d been using and loving since the moment it was mounted. Could the Pro model really justify the upgrade? Would it make a difference that I could feel—not just see?</description>
   <pubDate>Sun, 13 Apr 2025 16:54:00 +0200</pubDate>
   </item><item>
   <title>AV1 vs. H.264: Which Codec Should You Use?</title>
   <link>https://appforce1.net/blog/av1-h264</link>
   <guid>https://appforce1.net/blog/av1-h264</guid>
   <description>With the explosion of video content across platforms, the demand for efficient video codecs has grown exponentially. AV1 and H.264 stand out as two of the most widely discussed codecs in the industry today, each with its unique strengths, limitations, and ideal use cases. Understanding their differences and when each codec shines is critical for content creators, platform developers, and even end-users who want the best viewing experience.
This article delves deeper into each codec’s technology, performance, real-world applications, and suitability for different use cases. By the end, you’ll have a clearer idea of when to use AV1 versus H.264—and why other codecs like H.265, VP9, and VVC might also be worth exploring.</description>
   <pubDate>Fri, 11 Apr 2025 17:15:00 +0200</pubDate>
   </item><item>
   <title>WebRTC vs. VoIP: Comparing Network Resilience</title>
   <link>https://appforce1.net/blog/webrtc-vs-voip</link>
   <guid>https://appforce1.net/blog/webrtc-vs-voip</guid>
   <description>Internet-based communication has become the backbone of business operations, personal interactions, and emergency services. Technologies like Voice over Internet Protocol (VoIP) and Web Real-Time Communication (WebRTC) have revolutionized communication, offering flexible and cost-effective alternatives to traditional telephony. However, regulatory challenges in some countries pose strict restrictions on VoIP services.
This article explores the differences between VoIP and WebRTC, highlights the countries that actively block VoIP, and examines how WebRTC’s decentralized nature makes it a resilient alternative in restrictive environments.</description>
   <pubDate>Fri, 11 Apr 2025 17:15:00 +0200</pubDate>
   </item><item>
   <title>Configuration as Code, Using PKL</title>
   <link>https://appforce1.net/blog/configuration-as-code</link>
   <guid>https://appforce1.net/blog/configuration-as-code</guid>
   <description>You are building the next best thing. You are scoping out some amazing features. But now you have to add a way for someone running your software to configure things. So, you break out the JSON parser and start coding the interpretation of your new-fangled config file format.
But JSON does not allow schemas, and it doesn’t allow you to indicate to your end users if and what errors they made while configuring your product. Instead of building your configuration logic from scratch, why not pick something dedicated to the task at hand?</description>
   <pubDate>Sat, 02 Mar 2024 07:15:00 +0100</pubDate>
   </item><item>
   <title>Build an iOS 17-Style Action Composer in SwiftUI</title>
   <link>https://appforce1.net/blog/swiftui-action-composer</link>
   <guid>https://appforce1.net/blog/swiftui-action-composer</guid>
   <description>Apple tends to bring improvements to the UI on each major platform release. One of these nice improvements is the new Action Menu List. The Action Menu List is a nicely animated menu, typically under a button at the bottom left of an app’s message entry screen. When building for iOS 17 and beyond, you’ll want to build a UI that takes the best of what Apple shows us.
Did you know it’s possible to achieve the same look with Stream? Let’s recreate the Apple-designed user interface on top of the Stream Chat UI Component Library.</description>
   <pubDate>Tue, 30 Jan 2024 07:15:00 +0100</pubDate>
   </item><item>
   <title>Integrating with Logging Platforms on iOS</title>
   <link>https://appforce1.net/blog/ios-logging</link>
   <guid>https://appforce1.net/blog/ios-logging</guid>
   <description>You might ask yourself, are users reaching certain screens? What crashes happen in production? Are certain things happening as expected?
This is the area of production logging. Logging during development is straightforward. You just print things to the console. But in production, you do not have this luxury. Instead, you have to roll your logging backend or rely on a third party to provide these services. Stream’s Chat SDK exposes API enabling you to send our SDK’s log output to any destination you like.</description>
   <pubDate>Wed, 07 Jun 2023 07:15:00 +0200</pubDate>
   </item><item>
   <title>Integrate Vale with Xcode</title>
   <link>https://appforce1.net/blog/integrate-xcode-with-vale</link>
   <guid>https://appforce1.net/blog/integrate-xcode-with-vale</guid>
   <description>Most software developers are familiar with tools to lint their source code. Linting code is the process of checking your code against a defined set of rules to help keep a consistent naming convention, prevent common mistakes, and anti-patterns in other aspects of your code, provided the requirement can be expressed in configuration understood by your linting tool.
What if you could lint your documentation as well? We are all familiar with spell checking tools and you might already use, like Grammarly. But, those tools are only available in your editing environment and not a part of the normal workflows related to source code.</description>
   <pubDate>Mon, 10 Apr 2023 22:55:00 +0200</pubDate>
   </item><item>
   <title>How To Set Up Your Coding Environment</title>
   <link>https://appforce1.net/blog/set-up-coding-environment</link>
   <guid>https://appforce1.net/blog/set-up-coding-environment</guid>
   <description>Many coding tutorials start with a blanket statement that tells you to set up a project environment. Here are some examples:

Make sure to have Python available
</description>
   <pubDate>Mon, 10 Apr 2023 22:55:00 +0200</pubDate>
   </item><item>
   <title>Videos of Do iOS 2022</title>
   <link>https://appforce1.net/blog/do-ios-2022-videos</link>
   <guid>https://appforce1.net/blog/do-ios-2022-videos</guid>
   <description>Al videos are available on YouTube.
I've embedded them all on this post too. It is impressive to see the quality of the talks we had at Do iOS 2022.</description>
   <pubDate>Sat, 14 Jan 2023 15:45:30 +0100</pubDate>
   </item><item>
   <title>Using Obsidian for personal knowledge management</title>
   <link>https://appforce1.net/blog/obsidian-for-pkm</link>
   <guid>https://appforce1.net/blog/obsidian-for-pkm</guid>
   <description>Personal Knowledge Management (PKM) is the process of actively organizing and creating connections between the information and ideas that you encounter in your life. PKM helps you to better understand, remember, and use this information, ultimately leading to increased productivity and creativity.[^1]
One tool that can assist with PKM is Obsidian, a powerful open-source note-taking application that allows you to link your notes together in a non-linear fashion, creating a web of interconnected ideas.</description>
   <pubDate>Fri, 06 Jan 2023 15:17:30 +0100</pubDate>
   </item><item>
   <title>2022 in review</title>
   <link>https://appforce1.net/blog/2022-in-review</link>
   <guid>https://appforce1.net/blog/2022-in-review</guid>
   <description>To give myself some perspective, I tend to list a few of the things I did in 2022. If I don't write what I did on a regular basis, I tend to get the idea I cruise along career-wise, which makes me increase my efforts to a rate I can not sustain. The funny thing is, in hindsight, I always see and think I did get many things done.
This is something I have done in some capacity for a few years now.</description>
   <pubDate>Wed, 04 Jan 2023 15:45:30 +0100</pubDate>
   </item><item>
   <title>How to Run Stream’s Docs on a Multipass VM</title>
   <link>https://appforce1.net/blog/docs-docusaurus-multipass-vm</link>
   <guid>https://appforce1.net/blog/docs-docusaurus-multipass-vm</guid>
   <description>Of course, you can isolate things by running a tool like NVM, RBEnv, or PyEnv. But there is still a risk of doing something to your system that will break things, causing you to spend loads of time fixing your setup for your current main project.
But, what if there was a simple and easy way to explore a codebase without installing &quot;stuff&quot; all over your main operating system?</description>
   <pubDate>Fri, 16 Dec 2022 11:45:00 +0100</pubDate>
   </item><item>
   <title>Do iOS 2022 in review</title>
   <link>https://appforce1.net/blog/organizing-do-ios-2022</link>
   <guid>https://appforce1.net/blog/organizing-do-ios-2022</guid>
   <description>Do iOS is a conference in Amsterdam. It is the 4th edition. Previous editions were organized in 2015, 2016, and 2018. The event itself has quite an interesting history. The best part is I have been involved with each edition.
The Team behind Do iOS</description>
   <pubDate>Thu, 24 Nov 2022 15:45:30 +0100</pubDate>
   </item><item>
   <title>KeyboardIO Model-100 initial review</title>
   <link>https://appforce1.net/blog/keyboardio-model-100-initial-review</link>
   <guid>https://appforce1.net/blog/keyboardio-model-100-initial-review</guid>
   <description>On October 4, 2022 I took delivery of a KeyboardIO Model-100 keyboard.
This is a device I ordered in the summer of 2021 though KeyboardIO's Model-100 Kickstarter campaign. Shortly after backing the Model-100 I ordered my Atreus with palmrest from KeyboardIO directly.</description>
   <pubDate>Tue, 22 Nov 2022 22:55:00 +0100</pubDate>
   </item><item>
   <title>BenQ Screenbar review</title>
   <link>https://appforce1.net/blog/benq-screenbar-initial-review</link>
   <guid>https://appforce1.net/blog/benq-screenbar-initial-review</guid>
   <description>On September 15, 2022 I took delivery of a BenQ Screenbar.
The Screenbar was offered to me for free by BenQ, provided I would write my honest review on the item.</description>
   <pubDate>Mon, 19 Sep 2022 09:10:00 +0200</pubDate>
   </item><item>
   <title>About coding outside of work</title>
   <link>https://appforce1.net/blog/about-coding-outside-of-work</link>
   <guid>https://appforce1.net/blog/about-coding-outside-of-work</guid>
   <description>I've read a tweet the other day with someone asking whether or not doing no coding at all besides your dayjob is a problem or not. This person was clearly someone not doing much coding besides his own dayjob and was curious to learn if that's ok or not.
First of all, if that's what you are comfortable with and doing your job makes you feel accomplished at the end of the week. Why would you care what the internet thinks of this. You are doing great and have a lot of time and attention for other things in your private life.</description>
   <pubDate>Wed, 27 Jul 2022 15:05:00 +0200</pubDate>
   </item><item>
   <title>KeyboardIO Atreus long-term review</title>
   <link>https://appforce1.net/blog/keyboardio-atreus-longterm-review</link>
   <guid>https://appforce1.net/blog/keyboardio-atreus-longterm-review</guid>
   <description>On August 11, 2021 I took delivery of a KeyboardIO Atreus keyboard. And I have been using the Atreus for over 10 months now and I just love this keyboard. Sometimes I still need to look keys on the reference card. But I am mostly able to just write and program with it and my typing speed is on the same level as it was on a regular keyboard.
Build Quality</description>
   <pubDate>Sun, 19 Jun 2022 22:29:00 +0200</pubDate>
   </item><item>
   <title>Scaling Your Xcode Projects With Tuist</title>
   <link>https://appforce1.net/blog/xcode-tuist</link>
   <guid>https://appforce1.net/blog/xcode-tuist</guid>
   <description>One of the biggest challenges for iOS development teams is scaling a codebase when their company or product takes off. Growth and scaling issues are a great thing, but they introduce some typical growing pains as well, like:

Clearly defining responsibilities when splitting up your development effort across multiple teams.
</description>
   <pubDate>Thu, 31 Mar 2022 22:55:00 +0200</pubDate>
   </item><item>
   <title>UIKit vs. SwiftUI: How to Choose the Right Framework for Your App</title>
   <link>https://appforce1.net/blog/uikit-vs-swiftui</link>
   <guid>https://appforce1.net/blog/uikit-vs-swiftui</guid>
   <description>Choosing between UIKit or SwiftUI to be your main implementation framework is a big decision. We will explore some of the characteristics of both frameworks and list their pros and cons. 
So let’s dive right in and help you determine which approach is best.</description>
   <pubDate>Tue, 25 Jan 2022 22:55:00 +0100</pubDate>
   </item><item>
   <title>KeyboardIO Atreus review</title>
   <link>https://appforce1.net/blog/keyboardio-atreus-initial-review</link>
   <guid>https://appforce1.net/blog/keyboardio-atreus-initial-review</guid>
   <description>On August 11, 2021 I took delivery of a KeyboardIO Atreus keyboard.
I have been using the Atreus for a month now and I am really starting to get used to it. So this is my one month review.
I ordered the Atreus configured as follows:</description>
   <pubDate>Sat, 11 Sep 2021 22:55:00 +0200</pubDate>
   </item><item>
   <title>Frequently used keyboard shortcuts I use in/with Xcode</title>
   <link>https://appforce1.net/blog/frequently-used-keyboard-shortcuts</link>
   <guid>https://appforce1.net/blog/frequently-used-keyboard-shortcuts</guid>
   <description>As a mindful exercise I kept track of things I do in Xcode that might not seem obvious to a new user. Maybe all things are known. But who knows maybe there is a little gem in here. I use more shortcuts, but these I use most often by far.
Open Quickly dialog (⌘⇪O) with camel cased names
A lot of people know ‘⌘⇪O’, but not a lot of people are aware of the value of entering lowercase and uppercase input. Casing is significant in the “Open Quickly…” dialog. For example, if you have a class called SomeRandomClassName you can actually open that file by typing SoRaCl.</description>
   <pubDate>Fri, 16 Apr 2021 09:19:00 +0200</pubDate>
   </item><item>
   <title>Client certificate with URLSession in Swift</title>
   <link>https://appforce1.net/blog/client-certificate-with-urlsession-in-swift</link>
   <guid>https://appforce1.net/blog/client-certificate-with-urlsession-in-swift</guid>
   <description>Recently we I needed to implement an API in an app requiring a TLS client certificate.
It proved to be pretty simple, but I did need connect various bits and pieces together to get to a working solution. In this post I'll show what worked for me.</description>
   <pubDate>Fri, 16 Apr 2021 08:59:00 +0200</pubDate>
   </item><item>
   <title>GitHub Actions for iOS projects</title>
   <link>https://appforce1.net/blog/github-actions-for-ios-projects</link>
   <guid>https://appforce1.net/blog/github-actions-for-ios-projects</guid>
   <description>When building an iOS project, you probably want to have some form of continuous integration working on your codebase.
Continuous integration
Continuous integration (CI) is a process where each code change results in certain checks to be performed. It is best to automate this.</description>
   <pubDate>Fri, 16 Apr 2021 08:56:00 +0200</pubDate>
   </item></channel></rss>