Xcode7でSwiftのEmpty Applicationを作る方法

はじめに

「そろそろSwiftとか勉強してみるか」

と唐突に思いたち、OSもついでにEl Capitanにしちゃいました。

まずはWebにある入門を幾つかやってみようとしたのですが、 どうもXcode6.1からEmpty Applicationがなくなってたみたいですね。 しばらくiOS開発から離れていたらこのザマですよ。。。

お手製Empty Application

調べてみると、「無ければ作ればいいじゃない」ということみたいですね。 既に記事が古く、うまく動かないものが散見しておりましたので、 今一度記しておきたいと思います。

確認環境

Let's Make

1. 「Single View Application」を作る

Empty ApplicationがないのでSingle View Applicationから寄せていきます。
(この辺は今までの手順と同じですね。)
f:id:hades-netherworld-service:20160502013310p:plain

2. StoryBoardの利用設定を消す

「Development Info」の「Main Interface」を空文字にします。
これでとりあえずStoryBoardを使わなくなります。
f:id:hades-netherworld-service:20160502014733p:plain ↓↓↓↓↓↓↓↓↓↓ f:id:hades-netherworld-service:20160502020305p:plain この時点でエミュレータを起動してもエラー何かが動きます。
が何もしません。

3. rootViewControllerの登録

自前のControllerとrootViewControllerをひも付けてアプリをどんどん作っていきましょう。 AppDelegate.swiftapplication(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool関数を以下のように修正します。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    self.window = UIWindow(frame:UIScreen.mainScreen().bounds)
    self.window?.rootViewController = ViewController()
    self.window?.makeKeyAndVisible()
    return true
}

4. 何かしてみる(サンプルコード)

せっかくだから何か画面においてみましょう。 ViewController.swiftを以下のようにしてみます。

//
//  ViewController.swift
//

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        initLabel()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    func initLabel(){
        
        let ikimezaLabel: UILabel = UILabel(frame: CGRectMake(15, 50, 350, 60))
        
        ikimezaLabel.text = "活きのいいコード目指すお"
        ikimezaLabel.textAlignment = NSTextAlignment.Center
        ikimezaLabel.textColor = UIColor.blackColor()
        ikimezaLabel.font = UIFont.systemFontOfSize(28)
        ikimezaLabel.backgroundColor = UIColor.whiteColor()
        self.view.addSubview(ikimezaLabel)
    }
}

実行してみる

f:id:hades-netherworld-service:20160502025106p:plain:w300

動きましたね!

おわりに

StoryBoardやめたらデフォの背景が真っ黒に。。。等微妙なところはありますが、 これで次に進めそうです。