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から寄せていきます。
(この辺は今までの手順と同じですね。)
2. StoryBoardの利用設定を消す
「Development Info」の「Main Interface」を空文字にします。
これでとりあえずStoryBoardを使わなくなります。
↓↓↓↓↓↓↓↓↓↓
この時点でエミュレータを起動してもエラー何かが動きます。
が何もしません。
3. rootViewControllerの登録
自前のControllerとrootViewControllerをひも付けてアプリをどんどん作っていきましょう。
AppDelegate.swift
のapplication(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) } }
実行してみる
動きましたね!
おわりに
StoryBoardやめたらデフォの背景が真っ黒に。。。等微妙なところはありますが、 これで次に進めそうです。