【Xcode/iOS】UIKitプロジェクトからSwift UIへ移行する方法!

【Xcode/iOS】UIKitプロジェクトからSwift UIへ移行する方法!

この記事からわかること

  • UIKitプロジェクトからSwift UI移行させる方法
  • 初回起動StoryboardではなくSwift UIのViewにするには?

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

UIKitプロジェクトをSwift UIへ移行する方法

iOSアプリをStoryboardなどを使用したUIKitベースで開発しているプロジェクトをSwift UIへ移行するための手順をまとめていきます。手順は以下の通りでこの手順通りに作業することでSwift UIで定義したViewがアプリ起動時に表示されるようになります。

  1. AppDelegate.swiftのエントリーポイント(@main)を削除
  2. Swift UIのエントリーポイントを定義する
  3. info.plist内を修正

1.AppDelegate.swiftの@mainを削除

まずは「AppDelegate.swift」ファイル内にあるエントリーポイント(@main)を削除します。iOSアプリではこのエントリーポイントが定義されている場所をアプリ起動時に実行するプログラムとして認識しています。

// @main コメントアウトなどして削除
class AppDelegate: UIResponder, UIApplicationDelegate {
  // 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
}

2.Swift UIのエントリーポイントを定義する

Swift UIをエントリーポイントにするためにAppを継承した構造体を定義し、@mainを付与しておきます。また@UIApplicationDelegateAdaptorを使用してアプリのライフサイクルイベント(アプリの起動、バックグラウンド移行など)を検知するクラスを指定します。これはUIKitで元々用意されていた「AppDelegateクラス」を指定します。

import SwiftUI

@main
struct MyProjectNameApp: App {

    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
    var body: some Scene {
        WindowGroup {
            // 最初に呼び出したい任意のSwift UI Viewを指定
            RootView()
        }
    }
}

3.info.plist内を修正

最後に「info.plist」内にある設定項目をいくつか修正します。

  1. 「Main storyboard file base name」を削除
  2. 「Enable Multiple Windows」 を YESに変更
  3. 「Storyboard Name」を削除
【Xcode/iOS】UIKitプロジェクトからSwift UIへ移行する方法!

これでアプリ起動時にStoryboardのViewではなくエントリーポイントに指定したSwift UIのViewが表示されるようになります。

UIKitのクラスをそのままSwift UIで使用する方法

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index