Tuist

More productive and happier teams using Xcode

Effortlessly build, test, and deploy your apps with Tuist's revolutionary automation and project management features.

Proudly sponsored by


import ProjectDescription

let project = Project(
    name: "Tuist",
    targets: [
        Target(
            name: "Tuist",
            platform: .iOS,
            product: .app,
            bundleId: "io.tuist.Tuist",
            sources: ["Sources/**"]
        ),
        Target(
            name: "TuistTests",
            platform: .iOS,
            product: .unitTests,
            bundleId: "io.tuist.TuistTests",
            sources: ["Tests/**"],
            dependencies: [.target(name: "Tuist")]
        )
    ]
)

import ProjectDescription

let workspace = Workspace(
    name: "TuistWorkspace",
    projects: [
        "Projects/**",
    ]
)
Tuist powers impactful organizations building game-changing apps
Designed for scale

Growth without the growing pains

Feedback

Users ❤️ Tuist

Hear what our users have to say about Tuist

Søren Gregersen ― Mobile Development Manager at Emplate

Tuist is improving our development process and saves us at lot of time. It ensures consistency across our Xcode projects and saves us an endless number of clicks in Xcode.
Tuist Cloud

Up to 90% faster builds and insights to scale your development

Tuist Cloud is a paid extension of Tuist to address large-scale challenges such as slow build times and the lack of insights to make informed decisions.

Speed up your workflows
  • Faster builds

    We skip compilation steps by reliably reusing compilation artifacts from previous builds in local and remote environments.
  • Faster tests

    Running all the tests for every commit is slow. We only run the tests of the files that have changed and its upstream dependencies.
  • Analytics

    Making the right decisions when evolving projects requires data that Xcode doesn't provide. We do and make it actionable for you.
FAQs

You ask, we answer

Some of the most frequently asked questions about Tuist.

Tuist

While we offer tools to assist in the migration process, automating it reliably can be challenging due to Xcode projects' implicit configurations resolved at build-time. Therefore, we recommend a manual approach, which presents a valuable opportunity to clean up your project and achieve greater consistency.

Unlike other project generation tools, Tuist goes beyond simply generating projects. We view project generation as a means to an end, leveraging the project information to validate, optimize, and automate workflows. With our Swift-based solution, teams are spared the burden of building and maintaining their own tooling upon project generation, ensuring a streamlined and efficient development process.

It's weak. The generated projects don't include any references to Tuist. If you ever decide to move away from Tuist or if we discontinue maintaining the tool, you can simply add the generated Xcode project to your Git repository, and you're good to go. Making it easier for users to transition away from Tuist is a design principle we adhere to.
Tuist Cloud

To enable caching, you'll need to define your projects with Tuist and ensure that the configuration is explicit. If there are any implicit configurations that Tuist is not aware of, such as build-time linking, the build artifacts won't be cached. Additionally, there may be certain project scenarios that are not handled seamlessly. However, we are more than willing to collaborate with you to iterate and find solutions to make them work effectively.

The process involves generating a fingerprint for each target in the project targets graph, which takes into account their metadata, dependencies on files and other targets. This fingerprint serves as an indicator of whether any changes have occurred and if the target needs to be recompiled. During the generation phase, we check the cache for targets using their fingerprint. If pre-existing binaries are found, we utilize them instead of generating new targets with the corresponding source files.

Absolutely! To achieve this, you'll require a server that adheres to a predefined contract. You have the option to devise your own solution or leverage Tuist Cloud, which not only enables cache sharing but also offers additional useful features for building apps at scale.

Tuist

Need help migrating? Let us help you with that

l