2016-09-14 8 views
2

Swiftにはモジュラーコードがあり、モジュールにソートすることができます。Swiftパッケージとモジュールの違いは何ですか?

しかし、Swift Package Managerを使用して、モジュールを取得してインストールすることができます。

「Swiftパッケージ」と「Swiftモジュール」には違いがありますか? 1つのフレーズをいつ使うべきですか?

答えて

0

Swift.org

モジュールで述べたように:スウィフト、モジュールにコードを整理。各モジュールは名前空間を指定し、そのコードの一部が のモジュールの外部で使用できるアクセス制御を強制します。

プログラムはすべてのコードを1つのモジュールに含めることができます。または、 は他のモジュールを依存関係としてインポートすることができます。 MacOSのDarwinやLinuxのGlibcのように、 のシステム提供モジュール以外にも、 のほとんどの依存関係では、 を使用するためにコードをダウンロードしてビルドする必要があります。

特定の 問題を解決するコードに別のモジュールを使用すると、そのコードは他の状況で再利用できます。たとえば、ネットワークリクエストを作成する機能を提供する モジュールは、写真共有アプリと天気アプリの間で共有される にすることができます。モジュールを使用する を使用すると、 よりも同じ機能を自分自身で再実装するのではなく、他の開発者のコ​​ードの上に構築できます。

パッケージ:パッケージは、Swiftソースファイルとマニフェストファイルで構成されています。 Package.swiftというマニフェストファイルは、PackageDescriptionモジュールを使用して パッケージの名前とその内容を定義します。

パッケージには1つ以上のターゲットがあります。各ターゲットは製品を指定し、 は1つ以上の依存関係を宣言できます。

12

スウィフトパッケージは、ソースコードの集まりです。独自のバージョンとリポジトリを持つ自己完結型プロジェクトと考えることができます。 Swift言語自体は現在のところパッケージについては知らないが、Swiftパッケージマネージャーによってのみ使用される概念である。

Aスウィフトパッケージには、一つ以上のスウィフトのモジュールを含むことができます - 各スウィフトモジュールは言語が知っている、とスウィフトのモジュールは、例えば、アクセス制御(publicinternalprivate)のようなものの範囲を定義するものです。 Swiftパッケージには、他の種類のターゲットやモジュールも含めることができます。たとえば、ライブラリにビルドするCソースコードの本体を含めることができます。

Swiftパッケージは、Xcodeプロジェクトに類似しています。Swiftモジュールは、Xcodeターゲットに似ています。

具体例として

https://github.com/apple/example-package-fisheryates そのURLによって識別スイフトパッケージ(トップレベルでPackage.swiftによって示されるように)、であり、これは、2つのソースを有する単一スウィフトモジュール含ま: https://github.com/apple/example-package-fisheryates/tree/master/Sourcesを。

+2

ありがとう、この類推は非常に役に立ちます –

+0

モジュールは.frameworkか.swiftファイルで構成されたフォルダですか? – eonist

関連する問題