#5 - Mar 7, 2025
What if you owned your automation?
Welcome to issue 5!
Continuous integration is a piece in the software development lifecycle that we've taken for granted. It's that element that ensures our changes do what they are supposed to do and adhere to some conventions. When checks are green and we've got the required reviews, our PRs are ready to merge. One can think of this as a recursive function: push, feedback (CI or human), change, push, feedback... and eventually merge. If you think about it, little has changed or improved in how we do CI. We are still required to push YAML files upstream to get them validated. We can't simulate the execution of the pipelines locally because the pipelines and scheduling logic are proprietary solutions that organizations are not willing to trade off for a better developer experience. In the case of our scripting, we are stuck with Fastlane, even though most people in the ecosystem would prefer to be writing Swift. I was personally excited when Apple acquired BuddyBuild, but the excitement faded when I saw how it materialized as Xcode Cloud. Apple (understandably) uses their control over Xcode to compete with a more tightly integrated solution that still doesn't solve the aforementioned problems. In today's CI, you have weak ownership over your remote automation. It's by design. Some people have accepted that's how things are, and we did too for a long time. But Dagger, created by the founder of Docker, has recognized this issue and has started building a solution. Think of it as a CI engine that's platform agnostic. In other words, you can run your pipelines locally or remotely using the same engine, so no more pushing to see if the YAML is valid or how it behaves. Would the same idea work in the Apple ecosystem? I strongly believe so. The execution would need to be different because Dagger uses Docker, and virtualization of macOS images is costlier (images are more heavyweight), but the idea of decoupling the engine from the platform is something worth exploring. Fastlane is in fact a step in this direction. It simplifies pipelines by moving their logic to scripts, but it's not sufficient. There's still a dependency on certain CI capabilities, like caching, which is usually built into the pipeline, or steps, which are usually provided from a proprietary marketplace. Imagine if caching needs were declared in comments in your scripts (or Fastlane lanes), and steps became Swift Packages that you could depend on. And the installation of tools? That's something Mise is exceptional at. What would that all mean? That pipelines can be reduced to mise install && mise run x , you become the owner of your automation, have the freedom to port it to the platform that aligns best with your needs, and you have a better experience debugging it. I don't know about you, but this is a future I feel like enabling.
Tools & sites
The App Fair Project
The universal free and open-source app marketplace
|
With the European Union now requiring Apple to allow alternative app stores, The App Fair Project is building a marketplace that's free, open-source, and committed to respecting user privacy. To make this vision a reality, they need to reach a milestone of one million downloads for their browser app, Net Skip.
|
xcc
A CLI for Xcode Cloud
|
If you spend significant time working from the terminal, you might appreciate xcc - a powerful command-line tool designed to streamline your interactions with Xcode Cloud. It enables you to efficiently manage workflows, trigger new builds, and access other Xcode Cloud features directly from your terminal environment, eliminating the need to switch contexts.
|
Posting
The API client that lives in your terminal
|
And continuing with terminal tools, if you're a fan of Postman or Proxyman but prefer working in your terminal environment, you should explore Posting. Its user interface is remarkably impressive, bringing the power of API testing and network debugging right to your command line with an experience that will truly amaze you.
|
visualizeTouches
Touch Visualization in SwiftUI
|
If you need to display touch interactions when recording demos of your application, check out visualizeTouches by @robb - a simple yet effective tool for enhancing your app demonstration videos with visible touch feedback.
|
Lynx
A framework to build apps with web technologies
|
Just when we thought the mobile development framework space was saturated, ByteDance (the company behind TikTok) has open-sourced a framework-agnostic technology allowing developers to build apps using familiar web patterns and technologies like Vue, Svelte, and React.
|
Worthy Five: giginet
@giginet (X) is a Mobile DevOps Engineer mainly focused on Swift and Apple Platform. He maintains open-sourced developer tools like fastlane / XcodeGen / Carthage and so on. Recently, he has focused on developing Scipio, the build tool to generate XCFramework from Swift Packages.
|
An app worth installing:
My favorite application is Fantastical. It's just a calendar app, but it's actively adapting to the new features and conventions of standards on the Apple platform. It supports iOS/macOS as well as watchOS and visionOS, and correctly implements recent OS features such as Focus Filter and Dynamic Activity. This is a model for developers on the Apple platform.
An open-source project worth checking out:
The biggest news recently is that swift-build is now OSS. As I have been working on build tools on a regular basis, I'm excited to see the unveiling of the whole build system, which until now has only been tacit knowledge. Otherwise, exploring Apple's OSS, such as swiftc and swift-foundation, is a great daily discovery.
A developer tool worth using:
SwiftFiddle, developed by the famous Japanese developer @kishikawakatsumi, is the easiest way to run Swift in various versions. We can choose any version and run it in our browser. It supports not only the stable version but also the trunk! When I hit a bug in the compiler, I often use this tool to check whether it also occurs in the latest Swift. I can't imagine debugging without it.
A developer worth following:
@stzn3 regularly shares summaries of Swift Evolution and Forum topics with the community in Japan. If you keep watch on his X, we can learn about the latest pitches and Evolution developments.
A book worth reading:
Team Geek (2012) is one of the most memorable books of my decade-long career. It is almost a classic now, but its content is as fresh as ever. The HRT 🫶 of Humility, Respect, and Trust is the most important thing to become an engineer who plays an active role in their team. This idea still lives in my heart.
|
Food for thought
Educational notes on Swift Concurrency compiler errors
Read
|
It's truly inspiring to see both the Swift community and Apple engineers like Holly Borla dedicating significant resources to help developers navigate the transition to a data-race safe programming model. If you're finding yourself frustrated when confronting compiler errors related to these changes, we highly recommend exploring the newly released educational notes, which provide valuable guidance through this important evolution in Swift development.
|
DOOM implemented with TypeScript types
Watch
|
Can you imagine DOOM running entirely on Swift's type system? That's exactly what Michigan Typescript accomplished - writing 3.5 trillion lines of code, enduring 12 days of processing time, and overcoming countless technical hurdles. Why tackle such an absurd challenge? Simply because it was there to be conquered!
|
Anatomy of an AI System
Read
|
Behind every LLM-powered chat interface, Siri, or Alexa exists an intricate web of data collection, processing, and fine-tuning that obscures the true environmental and computational costs of our summarized content and quick answers. This resource provides a comprehensive and detailed mapping of the complex infrastructure that powers modern AI systems, revealing what typically remains hidden from view.
|
Apple's Software Quality Crisis: When Premium Hardware Meets Subpar Software
Read
|
In this revealing blog post, Eliseo Martelli questions whether Apple is prioritizing hardware advancements over software quality. He describes alarming thermal issues with his iPad Air 11" M2 that made the device painfully hot to touch. The most concerning aspect? These overheating problems occurred during a surprisingly mundane task - simply filling "roughly one page (or 'screen') with handwritten notes," raising serious questions about quality control and optimization in Apple's latest devices.
|
Xcode constantly phones home
Read
|
In an eye-opening blog post, Jeff Johnson highlights a concerning trend where code editors increasingly rely on network connections to report usage analytics and other business-beneficial information. Apple appears to have crossed a line, with Johnson documenting sudden 50-second delays in build times for "gathering insights." This raises troubling questions: Could Apple be using developers' code and build data to train their AI models without explicit consent? This development represents yet another example of the blurring boundaries between development tools and data collection mechanisms.
|
|