Learn about the new PBXObject types introduced in Xcode 16 to support synchronized groups.
Tags
Xcode
In this blog post, I explain why you might need to set the -ObjC flag in the OTHER_LDFLAGS build setting of your Xcode project.
Schemes in Xcode have an option to run tests in parallel, but if your code isn't designed for it, you are in for a world of pain.
Xcode struggles to achieve incremental builds within the same environment. What about across environments? Not even close. Tuist is working on bringing incremental builds and test execution to Xcode projects across environments.
Xcode is a great tool for beginners, but it makes it hard for developers to understand what's going on under the hood and optimize their workflows.
Apple embraced implicitness in some areas of the build system, and it's causing headaches to developers. In this post, I share my thoughts on the topic and how we are planning to address it in Tuist.
Swift Package Manager defaults to supporting all platforms when they don't specify any. This is a problem for tooling like Tuist that integrates Swift Packages as Xcode project targets.
I shared a bit of a reflection on what are the issues with current Apple's tooling touching on some of the points that I presented in my Swiftable 2023 talk.
Exploring native Swift macro support in Tuist to simplify and accelerate Xcode project builds.
Tuist, now 6 years old, has become essential for organizations using Xcode. While initially a side project, its popularity surged. To ensure sustainability, we're introducing paid features alongside free ones, navigating challenges like unauthorized forks and finding the right business model.
Tuist provides solutions to challenges in large-scale app development overlooked by Apple. It's a foundation for developers, promising simplicity and a future filled with actionable insights.
Apple's focus on simplifying basic tasks may overshadow the challenges of complex operations. Developers, often uninformed due to lack of data, face hard choices: pivot to alternatives or revamp systems.
I often wonder why Apple continues to build features that are closed into Xcode, for example Swift Package Manager's integration. While some developers might see that as something positive, because that means it can be seamlessly integrated…
It's common to see developers wondering why they should use Tuist instead of the Swift Package Manager (SPM) for modeling their projects. I think it's normal. It happened to me a few times too. Some of them even made me wonder if I should c…
I've recently spent a lot of time in Tuist tackling technical debt. It'd been a while since the last time I have to pause some other work for weeks to do something that would be beneficial for the long-term of the project. This time the wor…
I learned by working with Ruby and Ruby on Rails during my time at Shopify that using tools and programming languages that spark joy is crucial for developers' motivation. Even though we developers love to understand complexities, we enjoy…
Tree-shaking is a concept inspired by Javascript and used by Tuist to generate lean Xcode projects that are processed and compile faster.
Bazel and Buck is the solution large companies have adopted to make Xcode build fast. However, it's complex and not accessible to medium and small companies. In this blog post, I share the approach Tuist is taking and how it's inspired by tools the community is already using.
One thing that I noticed after Shopify 's commitment to React Native is that it foster a culture of turning ideas into mobile apps. Doing app development is no longer a thing that only mobile developers do. In hindshight, it was a good comp…
I'm avoiding opening Twitter these days. It makes me a bit anxious receiving WWDC news through people racing to be the first one to publish the clickbait-type of tweet. I used to have energy to be part of that race and not suffering from FO…
Bootstrapping and publishing an app to the App Store is not a straightforward process. I tried to do it myself yesterday and a lazy me got stuck when I had to create signing artifacts, write automation scripts, and set up things on the App…
A few days ago, Marek decided to take on a proposal that I made for Tuist a while ago, management of certificates and provisioning profiles . As it happened with the definition of dependencies, dealing with certificates and provisioning pro…
Many of you might already be familiar with SwiftGen ; a tool that generates Swift code to access resources in a type-safe manner. Having a type-safe API is something that Android developers have had for a long time, and that Apple has never…
There’s an idea that I’d love Tuist to move towards: provide a CLI that is standard across all the projects defined using Tuist. This is not a new idea; we can see it in frameworks like Rails that thanks to being opinionated about the struc…
I'm flying back from Tokyo and took the opportunity to code a bit on Tuist. Since I don't have Internet connection to get distracted with, I decided to work on something that doesn't require Internet connection: improving the project archit…
Today, I worked on automating the release process of Angle on CI. At first, I thought it'd be a straightforward task, but it turned out not to be so. Most Xcode projects don't have to deal with this because they use Match , which abstracts…
A Monday blog post with some reflections about the current state of Tuist and its future.
This blog post describes the advantages of dynamic over static Xcode projects, and how Tuist leverages project generation to help teams overcome the challenges associated to scaling up projects.
Trying to add error tracking to Tuist, I realized how the process is not very straightforward. This blog post describes the process that I followed to help other Swift developers add error tracking to their CLI tools.
In this mini-post I talk about some recent work that I've done in Tuist to support defining Info.plist files in the manifest file.
This post contains the video of the talk that I gave at AltConf about why I think it's important investing into tooling and some tips to build great tools.
A random reflection about Tuist and why I'm so glad working on it.
This is a short story of how Xcode projects can end up being very complex and hard to maintain.
On this blog post I talk about an idea that I'm pondering for Tuist. In the aim of abstracting implementation details from Xcode projects, I think there's an opportunity for Tuist to abstract `Info.plist` files which are barely modified by developers after they get created.
On this blog post I talk about Xcode updates and how painful they can sometimes be.
I started developing a tool, install-xcode that aims to help developers to install and upgrade versions of Xcode easily. In this blog post I talk about the motivation behinds building it and some design principles that I'm embrazcing.
This blog post is an introduction to the format of Xcode projects and xcodeproj, a Swift library that helps read and update Xcode projects in Swift. The post contains a few hands-on examples for developers to experiment with the library.
Not being mindful when contributing and maintaining open source projects might lead to burnout or low self-steem. In this blog post I talk about some principles that I applied to have a healthier relationship with the open source.
In this blog post I talk about why I work on open source projects and what are the most important elements for me when starting an open source community.
Because sometimes Xcode cannot install your apps, and you have to figure out why.
In this post I talk about a tool I've been working on that allows you to check the state of your Xcode projects, finding missing references and duplicated files.
I analyze in this post why some decisions that we make in our projects might turn into bad viruses that spread all over the code base.
This post presents some elementary concepts of how Xcode projects are structured, and introduces an structural approach to build modular Xcode apps.
This post introduces an approach to share testing data and mocks from your frameworks to other frameworks that might need them for testing purposes.
A command line tool written in Swift for copying the frameworks from your project to the output frameworks directory.
Because readability might compromise productivity.
Read, update and write your Xcode projects from Swift
Build UIs based on reusable components that you can compose in more complex hierarchies.
How modularizing your apps is helping us to scale our Xcode app.
Learn how handy protocol extensions can be, when used in a frameworks architecture.
Learnings from being a core developer and providing other teams with the tools that they need for their daily work.
Organize your app in small features that you
Introduction post for the last library that I've been working on, Szimpla.
One of posts that tells about the migration from a monolithic architecture based in single target to have multiple reusable Frameworks.
Set of normalized scripts very useful for Xcode projects. Individual contributors will be familiar with them after they clone the project.
Learn how to split your app components in different bundles instead of dealing with an unique bundle that packages the whole app