Xcodeとは?基礎知識とProjectとTargetの違い
この記事からわかること
- Xcodeとは?
- Xcodeでできること
- ProjectとTargetの違い
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
XcodeでiOSアプリなどを開発するにあたって基礎的なXcodeに纏わる情報と素人にはややこしいProjectやTargetの違い、xcodeproj
ファイルの役割などを自分なりにまとめてみます。
Xcodeとは?
XcodeとはAppleから提供されているアプリ開発などに用いられる統合開発環境(IDE※)です。iOSやmacOS、watchOSなど様々なApple製品で使用するアプリケーションだけでなく、アプリ開発をスムーズにするためのフレームワークやライブラリを開発するために使用されます。(画像は開発できるプロジェクト)
※IDE:エディターやデバッガーなどアプリ開発に必要な機能を1つにまとめたソフトウェアのこと
XcodeはApp Storeに公開されているので誰でも無料でインストール可能です。容量が大きいのでインストールには注意してください。
おすすめ記事:Xcodeのインストール方法と使い方!終わらない時の対処法!
Xcodeでできること
Xcodeを使用することでApple端末に対応したアプリの開発からリリースまでを行うことができます。開発するためには独自のプログラミング言語であるSwiftなどでコードを記述する必要があります。
開発者を支援するための機能としてコード補完やシミュレーション機能など開発を円滑に進めるための機能も備わっています。
またApp StoreへリリースするためのApp Store Connectやバージョン管理ツールであるGit、GitHubとの連携もできるため開発者にとっては欠かせないソフトウェアになっています。
Xcodeの機能
- Source Editor:エディタ機能
- Simulator:シミュレーター機能
- LLDM:コンパイラ機能
- LLDB:デバッガ機能
- Fix-it:コード自動修正機能
- Documentation:リファレンス参照機能
- Git/GitHub:バージョン管理システム連携機能
- Interface Builder:インターフェース設計機能
- Live Issue:コードミスのハイライト機能
- Live Mode:リアルタイムでコードをプレビュー(Swift UI)
Xcodeには数多くの機能が詰め込まれており、全ての機能を網羅するには途方もない時間がかかってしまいます。必要な機能だけを使いながらうまく開発に役立てていくことが重要です。
Xcodeプロジェクトを立ち上げる
Xcodeからアプリを開発するためにはまずXcodeプロジェクトを作成します。XcodeではProject(プロジェクト)という単位でアプリケーションの開発全体を管理しています。その際に開発するプラットフォームの選択、アプリの種類、アプリ名(Product Name)などを選択します。
Xcodeプロジェクトを作成するとアプリ名フォルダが生成され、中には選択したプラットフォームのテンプレートファイルが用意されています。
├── Xcodeプロジェクト
│ ├── .git
│ ├── プロジェクト名
│ ├── Assets.xcassets
│ ├── ContentView.swift
│ ├── プロジェクト名.swift
│ └── Preview Content
│ // ↓プロジェクトのIDEを開くファイル
│ └── プロジェクト名.xcodeproj
この中にあるxcodeproj
という拡張子がついたファイルがプロジェクトのメインウィンドウを起動させるファイルになっています。
ワークスペースの名称
xcodeproj
ファイルを開くと以下のような画面になり、細かく作業スペースが分かれています。
エリア名 | 概要 |
---|---|
ツールバー | プレビュー機種の変更 iPhone実機へのリンク Runボタン( )など |
ナビゲータ | フォルダ階層とは異なるファイル構造 |
エディタ | ソースコードの記述場所 |
キャンバス | プレビュー画面(※) |
インスペクタ | アクティブになっている ファイルやコードなどの設定情報が表示 |
ビルドとは?
プログラミング言語は人間が読みやすいようにされた言語であり、そのままでは機械は読むことができません。記述されたソースコードをコンパイルすることで機械から読めるように変換する必要があります。
Xcodeではビルドと呼ばれる機能でコードで書かれた文字を実際に動作するものへと変換しています。ビルドの過程の中にコンパイル作業も含まれています。
またビルドは実行(シミュレーターを起動)やテスト、アーカイブ(リリース用に変換)する際に必ず行われます。
おすすめ記事:【Xcode】ビルドとは?実行(Run)との違いと仕組み
Targetとは?
プロジェクト内ではTarget(ターゲット)と呼ばれる単位でビルド対象を管理しています。プロジェクトを立ち上げた時には最初から1つTargetが生成されます。1つのプロジェクト内には複数のTargetを含ませることができ、Targetごとにビルド設定やソースファイルを管理することができます。
例えばテスト機能やウィジェットなどは別Targetとして管理され、それだけでビルドが可能になります。他にもアプリの基本的な概要自体は同じで中身だけ切り替えたい時などに使用されます。
ProjectとTargetの違い
ややこしくなりがちなProjectとTargetの違いを改めて整理しておきます。
- Project:アプリケーションの開発全体を管理する単位
- Target:Project内のビルド対象を管理する単位
Schemeとは?
Scheme(スキーム)とはビルド時の設定情報を保持するコレクションです。Xcodeではビルドする際の設定が定義されており、スキームという機能で管理されています。
このスキームの中でビルド対象になるターゲットやシミュレーターのデバイスなどを選択可能です。また複数作成することができるので任意のタイミングで切り替えることが可能です。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。