- XToolは、Xcodeの機能を複数のOSで代替できるクロスプラットフォーム開発ツール
- SwiftPMを活用し、Linux、Windows、macOSでiOSアプリのビルドと配布が可能
- 開発者はApple Developer Servicesとプログラム的に連携可能
- デバイス管理・インストール・アプリ実行などのCLIベースのサブコマンドを提供
- XKitライブラリにより、アプリ内から直接機能を利用可能
XToolプロジェクト紹介
- XToolはXcodeに類似した機能を提供するクロスプラットフォーム開発ツールで、Linux、WSL、macOSで動作
- 従来のXcodeと異なり、WindowsやLinuxでもSwiftPMパッケージをiOSアプリとしてビルドし、実機へ署名・インストールできる
- 開発者はApple Developer Servicesとのプログラム的連携が可能で、macOSでなくてもiOS開発環境を構築できる
主な機能
- SwiftPMパッケージのビルドとiOSアプリへの変換をサポート
- iOSアプリの**署名(Sign)、インストール(Install)**が可能
- Apple Developer Services連携: 認証およびサービス活用機能を提供
代表的な利用例
コマンドラインインターフェース
xtoolは多様なサブコマンドを通じて、開発・デバイス・設定などの機能を提供
setup: iOS開発環境のセットアップ
auth: Apple開発者認証の管理
sdk: Darwin Swift SDKの管理
new: 新しいSwiftPMプロジェクトを作成
dev: プロジェクトのビルドと実行
ds: Apple Developer Servicesと連携
devices: デバイス一覧を確認
install: ipaファイルをデバイスにインストール
uninstall: アプリを削除
launch: デバイスにインストールされたアプリを起動
XToolライブラリ(KIT)の活用
- XKitライブラリをSwiftPM依存関係として追加することで、開発中のアプリからApple Developer ServicesやiOSデバイスの制御などの機能を直接呼び出せる
- Swift開発者は
.package()および.product()宣言だけで、プロジェクトへ容易に統合できる
利点まとめ
- macOSだけでなく、Linux、Windowsなど多様なプラットフォームでiOSアプリの開発・配布が可能
- VSCodeなど各種開発ツールとの連携が可能
- オープンスタンダードベースで、汎用的かつ自動化された開発フローを支援
- Xcodeが使えない場合の代替手段として有用性が高い
1件のコメント
Hacker Newsの意見
このツールは「Xcodeの代替」や「Xcodeなしで開発」と言っているが、私はXcodeなしでアプリをビルドするのは不可能だと思う。ライブラリやコンパイラのようなものをどう置き換えるのかさらに調べてみると、実際にはそうではない。「Xcodeのビルドシステムは使わないが、iOS SDKとツールチェーンのためにXcodeのインストールは依然として必要」とある。彼らはこのメッセージをもっと明確にすべきだと思う。これは代替品や完全な代案ではなく、既存システムの上に載る、より良い体験を目指すレイヤーだ
JetBrainsは過去にAppCodeを開発していた。AppCodeはiOS/macOS開発向けのスマートIDEだったが、2022年12月14日以降は商用製品として提供されなくなった
https://forums.swift.org/t/… および HNの議論スレッド https://news.ycombinator.com/item?id=43952239 を参照した意見
理論上、このツールによってFlutterアプリ開発者がLinuxでiOSアプリをビルドして配布できるのか気になる。本当にそうなってほしい
xcodeは数か月ごとに9時間かけてダウンロードし、XML・plistファイルをやたらと書き換えるツールだ。あのxcodeのことだ
Sweetpadを思い出す。Sweetpadはインストール手順がやや面倒だ。XToolの方がより良い開発体験(DX)を提供しているように見える。このプロジェクトがさらに成長してほしい
以前にも「LinuxとWindowsでiOSアプリをビルド」という話があった。https://news.ycombinator.com/item?id=43952239 を参照
Githubの組織名が「xtool-org」なのを見た。XToolという会社(レーザー彫刻機およびクラフト技術のメーカー)がこれを問題視しないのか気になる
XCodeと切り離された類似ツールとして、Swift UIベースのインターフェースのライブプレビュー機能もあれば素晴らしいだろう
スクリーンショットにvscodeアイコンがある?