てりーぬの成長ブログ

1. 私の記録(ブログ)が誰かの役に立つように。1. 私のイラストでほっこり笑顔を届ける。1. たくさんの人に見てもらえるように工夫する。1. 自分が見返したとき笑顔になれるように記録を残す。

ToDoリストアプリを作成する(XcodeとSwiftの基礎)

ToDoリストアプリを作成する(XcodeとSwiftの基礎)


www.youtube.com

 

Xcodeの基本的な使い方やSwift言語の基礎について解説します。

百聞は一見にしかず、実際にToDoリストアプリを作って学びましょう!

※Swift言語とXcodeを学び始めて2.3週間程度の者が書いています。

プロの方の記事や、同じToDoアプリを作成している先輩方の記事を参考にしていますが、適切でない表現等ございましたら、教えていただけますと幸いです。

 

プロジェクトの作成

「➕Create a new Xcode project」で iOS Application の App を選択する。

任意のProduct Nameを設定し、以下の画像と同じように設定する

(私は「My ToDoList」とした)

f:id:Rilason:20210928171306p:plain

 

トップ画面を作成する

左のプロジェクトファイル内から「Main」を選択した後、アプリの端末サイズを選択する。

(ここの選択を謝ると、作成したアプリが正しく表示されないので、しっかりと確認すること!)

f:id:Rilason:20210928171351p:plain

 

画面中央のLibrary(ボタン)を開き、「Navigation Bar」と「Navigation Item」をボード上にドラッグ&ドロップする。

f:id:Rilason:20210928171450p:plain

 

前項の要領で「Table View」と「Table View Cell」も追加する。

f:id:Rilason:20210928171544p:plain

 

画面遷移先Storybordを作成する

画面中央のLibrary(ボタン)を開き、「View Controller」を追加する。

遷移先Storybordに「Navigation Bar」と「Navigation Item」、「Text Field」と「Buttun」を追加する

f:id:Rilason:20210928171632p:plain

 

それぞれのオブジェクト表記「MyToDoList」や「+」「戻る」などの設定は画面右側の「三」内にある「Title」に任意の文字列を入力することで設定できる。

 

遷移先bordのswiftファイル作成

タスクバーから「 File」→「New」→「File...」→「iOS」→「Cocoa Toutch Class」を選択し、ファイルを作成します。

Class名はわかりやすく「AddViewController」にしました。

f:id:Rilason:20210928171946p:plain

 

それぞれの紐付け

「Main」を開き、遷移先bordを選択します。

下画像のように所属Classを「AddViewController」に設定します。

f:id:Rilason:20210928174234p:plain

 

トップbordの「Navigation Item」を選択し、「controlキー」を押しながら遷移先bordまでドラッグします。

選択フィールドから「Show」を選んでください。

f:id:Rilason:20210928174358p:plain

 

遷移先bordの「Navigation Item」を選択し、「controlキー」を押しながらトップbordまでドラッグします。

選択フィールドから「Show」を選んでください。

 

※画面が小さくなった場合は「画面が小さくなった!」を参考にしてください。

 

「Tavle View」を選択し、「controlキー」を押しながらトップbordの「View Controller」までドラッグします。

トップ画面と遷移画面との間に矢印マークが表示されているか確認してください。

f:id:Rilason:20210928175028p:plain

 

選択フィールドから「data Source」と「delegate」を選択します。

f:id:Rilason:20210928174316p:plain

 

下画像のようになっているか確認してください。

f:id:Rilason:20210928175234p:plain

 

コーディング

「Main」で遷移先bordを選択した後、画面中央の右上から「Assistant」を選択します。

画面下部または右にAddViewControllerのソースコードが表示されます。

f:id:Rilason:20210928175413p:plain

 

遷移先bordの「Text Field」を選択し、「controlキー」を押しながらソースコードのclass下にドラッグします。

各設定と入力を行なった後に「connect」します。

f:id:Rilason:20210928175449p:plain

 

ボタンも同じようにconnectします。

f:id:Rilason:20210928175520p:plain

 

以下Add Controller と View Controller のソースコード

ViewController

/*  ViewController.swift

*  MyToDoList2

*  Created by Terrine on 2021/09/28.

*/

// iOSまたはtvOSアプリ用のグラフィカルなイベント駆動型ユーザーインターフェイスを構築および管理するフレーム

import UIKit

//classの継承を追加

class ViewControllerUIViewController,UITableViewDelegate,UITableViewDataSource {

    //UITableView、numberOfRowsInSectionの追加(表示するcell数を決める)

    func tableView(_ tableView: UITableViewnumberOfRowsInSection section: Int) -> Int {

        //戻り値の設定(表示するcell数)

        return TodoTextList.count

    }

    //UITableView、cellForRowAtの追加(表示するcellの中身を決める)

    func tableView(_ tableView: UITableViewcellForRowAt indexPath: IndexPath) -> UITableViewCell {

        //変数を作る

        let TodoCell : UITableViewCell = tableView.dequeueReusableCell(withIdentifier"TodoCell", for: indexPath)

        //変数の中身を作る

        TodoCell.textLabel!.text = TodoTextList[indexPath.row]

        //戻り値の設定(表示する中身)

        return TodoCell

    }

    //最初からあるコード

    override func viewDidLoad() {

        super.viewDidLoad()

        //追加画面で入力した内容を取得する

        if UserDefaults.standard.object(forKey"TodoList") != nil {

            TodoTextList = UserDefaults.standard.object(forKey"TodoList"as! [String]

            //TodoTextの入力情報を出力する

            print("TodoTextList: \(TodoTextList)")

        }

    }

    override func didReceiveMemoryWarning() {

        //アプリがメモリ警告を受信すると、ViewControllerに送信される。

        super.didReceiveMemoryWarning()

    }

}

 

AddController

/*  AddController.swift

*  MyToDoList2

*  Created by Terrine on 2021/09/28.

*/

 

import UIKit

 

//ViewControllerに渡す変数の設置

var TodoTextList = [String]()

 

class AddControllerUIViewController {

 

    //テキストフィールドのコネクト

    @IBOutlet weak var TodoTextFieldUITextField!

 

    //追加ボタンのコネクト

    @IBAction func TodoAddButten(_ sender: Any) {

        //変数に入力内容を入れる

        TodoTextList.append(TodoTextField.text!)

        //追加ボタンを押したらフィールドを空にする

        TodoTextField.text = ""

        //変数の中身をUDに追加

        UserDefaults.standard.setTodoTextListforKey"TodoList" )

    }

 

    //最初からあるコード

    override func viewDidLoad() {

        /* コントローラのビューがメモリにロードされた後に呼び出される。

         このメソッドをオーバーライドして、nibファイルからロードされたビューに対して追加の初期化を実行する。*/

        super.viewDidLoad()

    }

 

    //エラー発生時に呼び出される

    override func didReceiveMemoryWarning() {

        //アプリがメモリ警告を受信すると、ViewControllerに送信される。

        super.didReceiveMemoryWarning()

    }

 

「Swift言語の『!』と『?』の使い分けがわからない!」、「オプショナル型って何?」、「アンラップとは?」

初心者にもわかりやすく1から解説しているオススメサイト:

どこよりもわかりやすいSwiftの”!”と”?”

 

参考文献:

Swift逆引きハンドブック-林晃- /【Swift/Xcode超入門】ToDoリストを作ってみよう①〜プロジェクト作成からレイアウト作成まで〜 / Swiftで簡単なTODOアプリを作ってみよう / Apple Deveropper

 

*******記事の更新記録*******

2021/09/28....初回記録!<更新!

*********************