Making Human Attention the Priority
In my software factory series, raising expectations leads to a question: how much human attention does a useful result take? Explaining, steering, reviewing, correcting, and verifying all count.
Category
In my software factory series, raising expectations leads to a question: how much human attention does a useful result take? Explaining, steering, reviewing, correcting, and verifying all count.
In my software factory series, I turn observations about where my attention goes into tools. My approach is straightforward: define the inputs and expected result, let an agent build a useful version, and improve it through real work. I'm comfortable keeping the implementation rough and vibe coded in a controlled environment.
The iOS community deserves tooling designed for how we increasingly work: several coding agents editing, generating, linting, building, testing, and merging throughout the day. In that workflow, “written in Swift” tells me very little about whether a tool is a good choice. I care about the correctness of its output and how quickly I can get the next useful result.
Tuist Test Selection is a good starting point. Running the tests affected by a change is already a substantial improvement over running every test on every merge. Its selection works at the target level: changes to a shared dependency can select tests in its consumers.
I run practically every agentic coding session in a separate Git worktree. Each worktree gets a dedicated iOS simulator. All simulators share one OAuth session.
Tuist module cache is great. But treating it as one magic switch is where the pain starts.
A client showed us their designs. Among them, an animated globe. Core to the UI delightfulness, technically non-trivial, the kind of thing that usually gets a "we'll figure it out during development" footnote in proposals. I decided to check how hard it actually was.
After years of building mobile apps, I've found that the most valuable analytics use cases are often the least obvious at first glance. The events that matter most are usually not the ones your analytics SDK gives you out of the box. They're the ones that help you understand silent failures, quantify technical tradeoffs, and recover data your backend model never thought it would need.
XcodeGen is a tool for improving the generation of .xcodeproj files and their maintenance over time. By defining a simple YAML manifest you get a whole .xcodeproj in seconds. But that’s not everything! There is one more built-in feature — dependency graphs. In this article, I would like to cover possible use cases of a such graph.
When it comes to modularisation on Apple platforms, development teams point must deal with adding a new module at some point. In this article, I would like to present my approach to automating this work.
Welcome back to the story of iOS CI at AppUnite company.
It's almost the end of 2019 - exactly 3 years after the U.S. presidential election and maybe America isn't made great again but we all need to admit that it was a pretty good electoral slogan.