-
-
Notifications
You must be signed in to change notification settings - Fork 524
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Long term roadmap for Tuist #235
Comments
Thanks for sharing this detailed roadmap! I grouped the suggested items by the some form of theme to help comment on them + merged in some of @ollieatkinson's suggestions from slack Project Generation
Project & workspace generation is the area that drew me to contributing to Tuist 🙂 It’s an area of much pain for larger projects and Tuist has a lot of potential to grow further and excel here. Other suggestions under this theme:
Manifests Enhancements
This is a really interesting one (both technically and as a feature). Perhaps as a suggestion this could be generalized as finding ways or techniques to help reduce repetition by including or sharing manifest definitions etc… Suggestions under this theme:
Integrations
Integrating with SwiftPM is worthy of exploring or at least keeping an eye on (#215) as it’s an area that is gaining more adoption by the community. Sadly I can’t comment much on support for React Native as I haven’t personally tried this before. Perhaps for this it’s best if it’s driven by contributions of React Native developers as they would have more context and knowledge in this domain. Suggestions:
Developer Workflow
Having the ability for those commands is a cool idea (the equivalent of In fact this is something worth considering as adoption techniques, i.e. Tuist could welcome users wishing to generate all or part of their workspace (i.e. it doesn’t have to be all or nothing) - this will help with incremental adoption on any size project new or old! Release Workflow
Is the idea purely for uploads? Perhaps and alternate could be providing the ability to integrate with fastlane? That way Tuist doesn’t need to cater for all the various use cases fastlane has developed and solidified over the years. App release / signing is a large (painful) domain and seriously a big kudos to fastlane for taking it on and making our lives that much easier 🙂 |
I'm not sure if you've read the in-progress proposal for SwiftPM relating to this topic, but I think it's a good direction and something we should try work alongside: https://github.com/abertelrud/swift-evolution/blob/package-manager-resources/proposals/NNNN-package-manager-resources.md |
Impressive and ambitious list! Looks like it might make us busy for a while. Some other areas maybe worth considering in the future:
|
It's obvious that there's a need for a tool to manage projects and workspaces for iOS, tvOS, watchOS and macOS projects. Countless other solutions exist in their own little domains, CocoaPods and Carthage are the biggest ones. With SwiftPM growing in size and popularity it really lends itself to us to be able to support it natively out of the box. I often get asked "Why tuist, won't SwiftPM replace it" - in some aspects yes, but others no. SwiftPM is a tool for managing swift packages, it doesn't have any support for Xcode (yet) when it does it means we can look to deprecate parts of tuist to favour SwiftPM. tuist still has a life, it's job is to simplify the process of working with Xcode projects. I have thought about some of the points raised, especially around signing and weather or not that's something which we should handle. Fastlane is quite a mature tool which solves that problem, instead of solving it again I think we should adopt Fastlane. I'm really happy with the general direction we are thinking of taking this project - we have lots of work and won't run out anytime soon :D |
Agree. Carthage and CocoaPods have been mainly focus on the dependencies domain. They do a pretty good job there. We overlap with CocoaPods in the project generation but we are less opinionated regarding how the dependency projects should look.
And we could integrate seamlessly with our manifest because we'd just need to link against the
I agree we shouldn't re-invent the wheel when there are other tools already doing it, but I'm not quite sure if we should find ways to adopt or integrate with Fastlane because it's a different programming language that requires the environment to be properly configured (Ruby, Bundler...) for things to work. It'd be a really bad experience if Tuist failed because the developer's Ruby environment is messed up.
Me too. I'm very happy to see the project consistently evolving and tackling inconveniences that projects face when using Xcode at scale. |
Moved the ideas into this document. Feel free to add your comments to the document. |
👋 Just wanted to share some thoughts on the project:
I love it ❤️ I believe being able to migrate from existing Xcode projects to
It was the very first question that came to my mind when I saw this project. By having a look at the current state of SPM, we might expect that it is not gonna happen anytime soon(ish). The need of simplified process of Xcode project management is real. When you introduce a modularization and quite a few dependencies, the project management gets messy quite quickly.
🙇 🙇 |
Agree it'd help a lot with adoption, but I'm not 100% convinced on this being a good idea for Tuist. The reason is that it's impossible to do this reliably, and because of that the generated projects that developers would get won't likely compile. They'd expect Tuist to do it right and they'd be frustrated instead of motivated for using Tuist. What do you think?
I recommend reading this blog post that I wrote and where I touch a bit on Fastlane and why I believe a standard CLI for Tuist would make sense. |
We can close this one in favor of this issue |
I'd like to share on this issue some ideas that I had for the long term work of the project. So far I was a solo maintainer so kept most of those ideas for myself. However, with more people maintaining the project now, we should make all that information transparent and involve maintainers to elaborate and prioritise the work.
Feel free to add yours and comments on anything. I'd like to sort them based on what you think it'd be the most priority thing to do.
Potential areas of work
Debug
andRelease
currently, which is limiting for some projects that have other configuration flavours. The idea is providing an interface for projects to define their custom configurations. If no configuration is specified, Tuist'd fallback into the default configs.tuist build MyTarget
ortuist build all
and we'd run xcodebuild under the hood. By doing that we'd remove the need of having to maintain scripts or DSL sort of files that end up being huge and unmaintainable sometimes.xcodebuild
doesn't have an it'd be relatively easy to implement after we have the build command. The idea is once the build completes, we could detect if an app has been built, and asks the user in which simulator they'd like to open it.The text was updated successfully, but these errors were encountered: