Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #241】Storyboardを使わないでアプリ作成する(1 新規プロジェクト 〜 Storyboard削除)

最近からiOSアプリ開発の勉強を始める人は、
Storyboardを使ってアプリ開発することから始めてる。

なぜなら、入門書籍の多くがStoryboardを使って、
アプリ開発することを説明しているからだ。

自分もStoryboardを使ったアプリ開発を勉強することから始めた。
自分のアプリを作っているときはStoryboardでいいんだけど、アプリ開発のプロジェクトに入ってみて、複数人でアプリ開発してると、まずStoryboardを使ってない。

Storyboardを使うとgitでのソース管理・差分管理が難しくなるし、他の人と同時に編集してるとコンフリクトして、やり直しになることがある。

Storyboardを使わない開発も勉強したいと思ったが、
入門書籍で扱っていることが少ない。
なので、少しずつメモっていこうと思う。

最終的にはTwitterクライアントに仕立てようかと思う。

■新規プロジェクト 〜 Storyboard削除

◯新規プロジェクト作成
1.Xcodeの上部メニュの「File」-「Project」を選択
2.開いた画面でSingle View Applicationを選択し、「Next」をタップ。

f:id:fjswkun:20150727155344p:plain

3.プロジェクトに関する情報を入力し、「Next」をタップ。
下記画面と同じように入力する。

f:id:fjswkun:20150727155408p:plain

4.プロジェクトの保存先を選択する。
任意の場所で構いません。
Create Git Repository on はチェックなしにします。

f:id:fjswkun:20150727155427p:plain

◯Storyboard設定を削除
プロジェクトを新規作成したときはStoryboardを使う設定になっているので、設定を変更する必要があります。

また、Storyboardを使わなくなるので、何も画面がない状態になるので、
代わりになる画面をソースを書いて追加する。

1.Storyboardを使う設定を削除
プロジェクト設定を開き、下記画面のMain Interfaceという部分の入力を消します。

f:id:fjswkun:20150727155457p:plain

2.代わりの画面をソースで追加
Storyboardを使わなくなったことを確認するために、
一時的に使用する画面をソースで追加する。

AppDelegateファイルを開き、下記のように編集する。
編集したのは

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
メソッドの中だけです。
import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        window = UIWindow(frame: UIScreen.mainScreen().bounds)

        // 一時的な画面の作成。Storyboardで作成された画面でないとわかるように背景色を青色にする。
        let rootViewController = UIViewController()
        rootViewController.view.backgroundColor = UIColor.blueColor()

        // 一時的な画面をセット
        window?.rootViewController = rootViewController
        window?.makeKeyAndVisible()

        return true
    }

    func applicationWillResignActive(application: UIApplication) {
        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
        // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
    }

    func applicationDidEnterBackground(application: UIApplication) {
        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
    }

    func applicationWillEnterForeground(application: UIApplication) {
        // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
    }

    func applicationDidBecomeActive(application: UIApplication) {
        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    }

    func applicationWillTerminate(application: UIApplication) {
        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    }


}

◯実行
問題なければ、下記のように青色の背景色の画面が開きます。

f:id:fjswkun:20150727155529p:plain

■おわりに
うまくいかなかった方はコチラからプロジェクトをダウンロード。
TwitterClient.zip - Google ドライブ

次はテーブルビューとかを書くか!?


【参考情報】
iOSアプリ開発未経験の人向け
iOSアプリ開発をはじめたとき最初に買った書籍
【アプリ作成未経験の人向け】
Storyboardを使って画面を作成していく。
手順にしたがって操作していくと、ボタンの作成やWebViewの作成などができる。
アプリって、こんな感じで作るんだというのを体験できる。

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

・わかりやすくていい、と聞いた本
立ち読みした感じだと【アプリ作成未経験の人向け】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

②を終えたくらいの知識の方向け
・アプリ開発独学中に2冊めに購入した書籍
プログラミング知識はなくても、若干理解するのに時間がかかる程度で、
読み進められるわかりやすさがある。

iPhoneアプリ開発塾

iPhoneアプリ開発塾

③中級者、上級者向け

詳解 Swift

詳解 Swift