【iOS開発入門】プロジェクト作成時に自動生成されたファイルを理解する

Hello-iPhone iOS開発

前回、新規でプロジェクトファイルを作成しました。

Xcodeでプロジェクトを作成すると、自動で生成されるファイルがあります。

これらのファイルについて理解を深めれば、どんなファイルで何をするのかザックリ分かります。

僕
Androidに触れていると、

ちょっと理解しやすいかも!

こちらの記事では、さらにザックリiOS開発についてまとめています。

【iOS開発入門】Xcode、iOSで押さえておくべき基本事項
業務中に学んだ、iOS開発で必要だと思ったことをまとめてみました。

今回わかること

以下のファイルについて触れます。

  • AppDelegate.swift
  • SceneDelegate.swift
  • ViewController.swift
  • Main.storyboard
  • LaunchScreen.storyboard
  • Info.plist
  • project.pbxproj
  • contents.xcworkspacedata

最初に生成されるファイルの説明

AppDelegate.swift

アプリ全体のライフサイクルを管理するファイル。

アプリの状態によって、呼び出される関数が変わり、ユーザ情報などやりたいことが設定できます。

【iOS】AppDelegate.swiftってなにしてんの?(Qiita)

AppDelegateについて調べてみる(Qiita)

SceneDelegate.swift

iOS13から導入された、同一アプリに対して、複数のインスタンス生成ができるもの。

iPadOSから画面を分割し、複数のアプリを同時に実行させることができるようになるためそれに準じた機能(らしい)です。

Info.plistの設定によっては不要にできるため必須ではないです。

iOS 13 から導入されるSceneDelegateとは(Qiita)

【xcode 11】新たに導入されたsceneDelegateの各メソッドが呼ばれるタイミング(Qiita)

iOS13でSceneDelegateを使わないでアプリを作る(Qiita)

ViewController.swift

名前の通り、Viewを管理したり操作するのを担うファイル。

表示、非表示、配置やアニメーションなども行えます。

受け取ったデータを使って、Textなどを表示させたりボタンのデザインを切り替えたりすることも可能です。

SwiftでViewControllerを使う(Qiita)

Main.storyboard

起動時、最初に開かれる画面のレイアウトファイル。

トップ画面みたいなイメージです。

このファイルを削除して、独自のファイルを作り直すことも可能です。

LaunchScreen.storyboard

起動直後、ロゴ画像が数秒出るよくある画面のレイアウトファイル。

スプラッシュ画面とも呼びます。

iOSのスプラッシュ画面実装における注意点と実装方法(Qiita)

Info.plist

アプリの実行ファイル(.ipa)のために必要な構成情報を記載するファイル。

AndroidでいうManifest.xmlみたいなもので、アイコンやアプリ名など指定することが可能です。

ちなみに「プロパティリスト」の略称だそうです。

Info.plistとは(HACK NOTE)

Info.plistについて(iPhoneアプリ開発の虎の巻)

project.pbxproj

プロジェクトの設定や、ファイルを追加した時などに変更されるファイル。

ターゲットOSバージョンを変更した時も変わります。

複数人開発だと特に厄介で、コンフリクト地獄になることも……。

注意が必要なファイルの1つです。

JSONに似た形式で記述されているので、読もうと思えば読むことも可能!

.xcodeproj/project.pbxproj を解読する(Qiita)

Xcode+gitのワークフロー考察

contents.xcworkspacedata

プロジェクト全体のデータを格納するXMLファイル。

Info.plistに似て、バージョン番号やプロジェクト名を保持しています。

また似たようなものに『project.xcworkspace』というファイルがあります。

これは、CocoaPodsを導入すると作成されるファイルです。

【iOS開発】 CocoaPodsが何なのか〜導入までまとめ
業務中よく聞くCocoaPodsに関して調べてまとめてみました。 導入後の注意点などもあります!

トラブルシューティング

レイアウトを指しているコマンドエラー

なんとかコマンドエラー(レイアウトを指している)時は、storyboadをコード表記にし、keyCommandsタグを削除する。

ふとした拍子に、レイアウトに変更が加わってしまい、エラーになるため注意が必要。

Key Commands must all have a Title, Key and Selector
I am receiving and error when trying to build, Xcode 8.0 Beta 4, and when I'm building it says "error: Illegal Configuration: Key Commands must all have a Title...

レイアウトコンポーネントの追加はどこから?!

UILabelなどのコンポーネント、調べても画面右下からドラッグ&ドロップという記事ばかり。

Xcode11.2.1以降では、画面右上の「+」ボタンから行う。

端末によって画面のレイアウトが崩れる……

UILabelなどを配置したら、端末によってレイアウトが崩れる場合がある。
これは解像度による問題。

相対的に「画面中央に配置する!」のような制約をかけたい場合、AutoLayoutを使用する。

[Xcode]UIViewが画面の大きさによってずれてしまう時の対処法 | Code Ocean
XcodeでUIViewを使ってみたもののデバイスのサイズが違ってくると空きスペースが出来てしまう・・・という場合の対処方法について紹介します。 UIViewがずれてしまうケース Appleが発売しているiPhoneですが、様々なケースがありますよね。

Auto Layoutとは

mixi-inc/iOSTraining
Training course repository for iOS app development - mixi-inc/iOSTraining

ちなみに、制約が増えれば増えるほど処理性能も低下しますので注意しましょう。

タイトルとURLをコピーしました