【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

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

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

AndroidでいうManifest.xmlみたいなもので、アプリの実行ファイル(.ipa)のために必要な構成情報を記載するファイル。

アイコンやアプリ名など指定することが可能

Info.plistとは(HACK NOTE)

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

project.pbxproj

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

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

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

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

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

トラブルシューティング①

なんとかコマンドエラー(レイアウトを指している)時は、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が画面の大きさによってずれてしまう時の対処法
XcodeでUIViewを使ってみたもののデバイスのサイズが違ってくると空きスペースが出来てしまう・・・という場合の対処方法について紹介します。 UIViewがずれてしまうケース Appleが発売しているiPhoneですが、様々なケースがありますよね。

Auto Layout

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

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

 

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