0Pricing
Swift Academy · レッスン

レイアウト、プロダクト、ビルド・テスト・実行

SwiftPMのレイアウト(Sources/とTests/)、プロダクト(実行可能ファイルとライブラリ)、CLIでビルド、テスト、実行する方法を学びます。

「レイアウト、プロダクト、ビルド・テスト・実行」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全3レッスンが含まれています。

概要

このレッスンでは、SwiftPMのレイアウト、プロダクトとターゲットの対応関係、そしてbuild/test/run用のCLIについて説明します。

フォルダー構成

SwiftPMではSources/とTests/が必要です。各ターゲットには専用のフォルダーがあります。

let tree = """
MyPkg/
├─ Package.swift
├─ Sources/
│  ├─ MyLib/            // library target sources
│  │  └─ MyLib.swift
│  └─ MyApp/            // executable target sources (main.swift)
│     └─ main.swift
└─ Tests/
   ├─ MyLibTests/
   │  └─ MyLibTests.swift
   └─ MyAppTests/
      └─ MyAppTests.swift
"""
print(tree)

プロダクトとターゲット

プロダクトはターゲットを公開します。再利用にはライブラリ、アプリやCLIには実行可能ファイルを使用します。テストはtestTargetの下に配置します。

let manifest = """
// Package.swift (illustrative)
import PackageDescription
let package = Package(
  name: "MyPkg",
  products: [
    .library(name: "MyLib", targets: ["MyLib"]),
    .executable(name: "MyApp", targets: ["MyApp"])
  ],
  targets: [
    .target(name: "MyLib"),
    .executableTarget(name: "MyApp", dependencies: ["MyLib"]),
    .testTarget(name: "MyLibTests", dependencies: ["MyLib"])
  ]
)
"""
print(manifest)

ライブラリと実行可能ファイル

ライブラリはAPIを公開し、実行可能ファイルにはmain.swiftのエントリーポイントがあり、ライブラリに依存できます。

// Library code (Sources/MyLib/MyLib.swift)
public struct Greeter {
    public init() {}
    public func hello(_ name: String) -> String { "Hello, \\(name)" }
}

// Executable entry (Sources/MyApp/main.swift)
let g = Greeter()
print(g.hello("World"))

CLIの基本

CLIではswift build、swift run <Exe>、swift testを使用します。最適化されたビルドには-c releaseを追加します。

let cmds = """
# Build (debug by default)
swift build

# Run an executable product
swift run MyApp

# Execute tests (XCTest)
swift test

# Release build (optimized)
swift build -c release
"""
print(cmds)

成果物とヒント

出力は.build/に保存されます。ターゲットの責務を絞り、テストはTests/<Target>Testsの下に配置します。

let notes = """
Artifacts live under .build/:
  • debug/ and release/ contain compiled products
  • x86_64-apple-macosx / arm64-apple-* vary by platform/arch
Tips:
  • Keep one target per responsibility
  • Name products simply; match target folders
  • Put tests in Tests/<TargetName>Tests
"""
print(notes)

テストの実行

確認問題:テストを実行するコマンドはどれでしょうか?

まとめ

まとめ:標準のSources/とTests/のレイアウトを使用し、ターゲットをプロダクトに対応付けます。そしてswift build、swift run、swift testを使って開発します。

よくある質問

「レイアウト、プロダクト、ビルド・テスト・実行」レッスンは無料ですか?

はい。「レイアウト、プロダクト、ビルド・テスト・実行」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全3レッスンが含まれています。

「レイアウト、プロダクト、ビルド・テスト・実行」で何を学びますか?

SwiftPMのレイアウト(Sources/とTests/)、プロダクト(実行可能ファイルとライブラリ)、CLIでビルド、テスト、実行する方法を学びます。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。

「レイアウト、プロダクト、ビルド・テスト・実行」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Swift Package Managerの基本
  2. レイアウト、プロダクト、ビルド・テスト・実行
  3. モジュールのインポートとセマンティックバージョニングの基本
← Swift Academyに戻る