サトリク
この講座では、BMIを計算するアプリを作ってみます!
動作環境
item | Version |
---|---|
Swift | 5.3 |
Xcode | 12.0.1 |
この講座の完成イメージ
身長と体重を入力して計算ボタンを押すと、痩せ型か肥満かを判断するBMIを計算で割り出すという簡単なアプリを作成します。
ボディマス指数(ボディマスしすう)とは、体重と身長の関係から算出される、ヒトの肥満度を表す体格指数である。
アプリ開発手順
プロジェクトを作成
まずは、プロジェクトを作成していきましょう。
下のDockからXcodeを起動しましょう。
「Create a new Xcode project」を選択
もうすでにXcodeを開いていてこの画面が開けない方は、command + shift + 1を押しましょう。そうするとこの画面が開けます。
①「App」を選択
②「Next」をクリック
①「Product Name」にBMICalculator
と入力
②「Interface」でStoryboardを選択
③「Language」はSwiftを選択
④全てチェックなし
⑤「Next」をクリック
(そのほかは任意)
Practiceフォルダを選択しましょう。
storyboard(画面レイアウト)の編集
まずは、見た目の部分を作っていきます。
①Main.storyboard
を選択
②右上のプラスボタンをクリック
③Label
を画面の上らへんにドラッグ&ドロップ
TextField
は、文字を入力するフォームです。今回は自分の身長と体重を入力するために使います。
①右上のプラスボタンをクリック
②Text Field
をLabel
の下にドラッグ&ドロップ
TextField
を少し横に広げてください。
optionを押しながら、TextField
をドラッグ&ドロップすると、複製できます。
新たにButton
とLabel
を追加してください。
①右上のプラスボタンをクリック
②Label
をドラッグ&ドロップ
③Button
をドラッグ&ドロップ
①一番上のLabel
を選択
② (show the Attributes inspector)を選択
③身長と体重を入力してください。
と入力
①下のLabel
の範囲を広げる
② (show the Attributes inspector)を選択
③「Font」をSystem20.0
に変更
④中央揃えにする
①Button
を選択
② (show the Attributes inspector)を選択
③「Title」に計算
と入力、「Font」をSystem 25.0
に変更
①計算を選択
② (show the Attributes inspector)を選択
③「Text Color」をWhite Colorに変更
③「Background」を任意の色に変更
ボタンの範囲を広げる
iPhone11に変更して、左上の再生ボタンで実行しましょう。
このようなレイアウトになっていたら成功です。
これで、BMIアプリのレイアウトが一通り完成しました。
コードと紐付け
では、次はオブジェクトとコードを紐付けしていきましょう。
①上のバーをクリック
②command + option + control + enterで2分割
controlを押しながら、10行目と11行目の間にドラッグ&ドロップ
①身長を入力するTextField
なので、「Name」にheightTextField
と入力
②「Connect」をクリック
controlを押しながら、11行目と12行目の間にドラッグ&ドロップ
①体重を入力するTextField
なので、「Name」にweightTextField
と入力
②「Connect」をクリック
controlを押しながら、12行目と13行目の間にドラッグ&ドロップ
①「Name」にbmiLabel
と入力
②「Connect」をクリック
controlを押しながら、19行目と20行目の間にドラッグ&ドロップ
①計算するButton
なので、「Name」にcalculationBtnAction
と入力
②Connectをクリック
コーディング
では、いよいよ、計算の処理を書いていきます。
まずは、コードの画面を開きます。
左のメニューからViewController.swift
を選択
18行目あたりに、以下のコードを追記してください。
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. heightTextField.placeholder = "身長をcmで入力してください。" weightTextField.placeholder = "体重をkgで入力してください。" }
このひとかたまりのコードにふりがなをふるとこんな感じです。
super.viewDidLoad()
}
つまり、テキストフィールドのヒントに「身長をcmで入力してください。」を代入しているということです。
実行してみてみましょう。
このように、入力フォームに薄く文字が表示されると思います。
これが、TextField
のplaceholder
です。
これはユーザーに何を入力するといいのかヒントを出す役割があります。当然ヒントなので文字を打つと消えます。
次は、計算のロジックを書きます。
25行目あたりに以下のコードを記述してください。
func calculation(height: Double, weight: Double) -> String { let h = height / 100 let w = weight var result = w / (h * h) result = floor(result * 10) / 10 return result.description }
この7行でBMIを計算しています。
BMIの計算式は、
この計算式をコードで表しています。
}
まぁ、初心者の方は、ここら辺で計算してるんだなー程度の理解で大丈夫です。
23行目あたりに以下のコードを追記してください。
@IBAction func calculationBtnAction(_ sender: Any) { let doubleH = Double(heightTextField.text!) let doubleW = Double(weightTextField.text!) bmiLabel.text = calculation(height: doubleH!, weight: doubleW!) }
ここでは、簡単にいうと、TextField
に書かれた内容を計算して、bmiLabel
の文字に代入しています。
// // ViewController.swift // BMICalculator // // Created by RikutoSato on 2020/10/30. // import UIKit class ViewController: UIViewController { @IBOutlet weak var heightTextField: UITextField! @IBOutlet weak var weightTextField: UITextField! @IBOutlet weak var bmiLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. heightTextField.placeholder = "身長をcmで入力してください。" weightTextField.placeholder = "体重をkgで入力してください。" } @IBAction func calculationBtnAction(_ sender: Any) { let doubleH = Double(heightTextField.text!) let doubleW = Double(weightTextField.text!) bmiLabel.text = calculation(height: doubleH!, weight: doubleW!) } func calculation(height: Double, weight: Double) -> String { let h = height / 100 let w = weight var result = w / (h * h) result = floor(result * 10) / 10 return result.description } }
これでアプリ完成です。
実行して確認してみましょう!
実行
左上の再生ボタンで実行して確認しましょう。
上のTextField
に身長をcmで入力し、下のTextField
に体重を入力して、計算ボタンを押してみましょう。
labelというところに、BMIの数値が表示されると思います。
ちなみに、18.5未満が「低体重(やせ)」で、18.5以上25未満が「普通体重」、25以上が「肥満」です。
できましたでしょうか?これでBMIアプリが完成です!
まとめ
うまくできましたでしょうか?
うまくできなかったらもう一度やり直してみてください。
サトリク
独学でアプリ開発は厳しくないですか?
このブログ(satorikublog)の筆者サトリクが、初心者の方に教えるサービスをはじめました。
気軽にご相談ください!
次の講座
【Swift/Xcode超入門】プログラムコードを理解しよう
本で勉強したい方はこちら
【2021年版】Swift5/Xcode/OSアプリ開発のオススメ参考書・本・書籍まとめ。初心者から上級者まで!
ゼロから学ぶiPhoneアプリ開発入門