Download - 第三回 iOSアプリ勉強会
Classについて1. Classの宣言
もっとも小さいクラスの宣言
宣言と実装のように記述を二つ書く必要はなく、ただ単にクラスキーワード、クラス名、中
括弧で終わり
プロパティや関数を宣言するには、中括弧{}の中にかく
Classについて
このPlayerクラスは、positionという名前の座標情報を保持するプロパティを持っていて、
デフォルトでは(0, 0)
moveToという関数はプレイヤーを任意の位置に移動させる関数です
ここではpositionに初期値を設定してありますが、設定しないとコンパイルエラーになります
その理由は、現状Playerクラスはイニシャライザ(コンストラクタに相当)を持っていないため
Classについて2. インスタンスの生成先ほど作ったクラスのインスタンスは以下のようにして生成する
クラスのインスタンスを生成するには、ただ単にクラス名の後に「()」をつけるだけ
プロパティやメソッドへのアクセスは「.」をつけて行う
イニシャライザが指定されている場合引数を記述する。
それぞれの引数には変数名をつける必要がある。
Classについてイニシャライザ init()
ここの変数名(position)は、外部
変数名と呼ばれ、通常イニシャ
ライザの内部処理を記述すると
きにそのまま内部変数名として
使われますが、左のように書く
ことで、外部変数名と内部変数
名を別の文字列にすることが可
能
Classについて3. メソッドクラスのインスタンスの持つ関数を呼び出すには、「.」のあとに関数名を書く。
player.moveTo(Point(x:100, y:-100))
引数の外部変数名は、関数側で明示的に書かない限り、呼び出し時には指定せず、内部変数名を外部変数名として指定した場合には、コンパイルエラーになる
⇩先ほどのPlayerクラスのmoveTo()メソッドをちょっと修正
Classについて4. クラスの継承クラスを継承して新たなクラスを作成するには、以下のようにクラス名の後に「:」を書き、その後に親クラスの名前を書く
子クラスは、自動的に親クラスの持つイニシャライザを継承子クラスのイニシャライザでは、親クラスのイニシャライザを呼び出す必要がある
演習問題BMIを計算し、判定するclassをつくりたい
BMIの計算に必要な要素は身長(m)と体重(kg)
計算式は
BMI=体重÷(身長×身長)
(標準体重=(身長×身長)×22)
判定は
BMIが18.5未満 =>「痩せ」
BMIが18.5~25未満 =>「標準」
BMIが25〜30 => 「肥満」
BMIが30以上 => 「高度肥満」
Storyboardの使い方(ざっくり)
ざっくりとStoryboardの使い方を解説します機能がありすぎて僕自身まだまだ使いこなせていませんし、ググったらより詳しい解説がすでにたくさんあります。
今回は先ほど実装したBMI計算クラスを使って入力 => 計算 => 結果表示をさせるアプリを作るための簡単な使い方を解説します。
まずは
Xcode のmenuから File > New > Project
で新しいプロジェクトを作成してください
こんな感じで作りましょう!
配置はてきとーで構わないです
各部品は右メニューの値をいじることで設定できます
BackgroundやButtonを画像するだけでもアプリっぽさを演出できます
これだけではパーツを配置しただけなのでプログラムに紐付け処理とパーツを関連させる必要があります
Text Field
Label
Button
Outlet は部品の配置。nameはプログラムで扱う変数になります
Action は部品になにかしらのactionを起こした時の処理。nameはプログラムで扱うメソッド名
今回はButtonを押した時にText Fieldに入力された「身長」「体重」を元に計算を行い、結果を返す処理を実装します。(計算は先ほど作ったクラスを使いましょう)
結果はラベルにテキストとして出力させます。
とりあえず実践してみましょう!!!!
細かい箇所は口頭で説明します
各個人ですすめる課題として考える簡単なアプリ例 仕様
①地図アプリ(MapKit.frameworkを使用)
地図表示させる現在地を表示更新ボタンで現在地を更新地図上にピンを立て情報を表示
(経路検索)
②APIで外部からデータを取得し、アプリ内で表示(サーバ側のプログラムが必要)
DBは使っても使わなくてもどっちでもOK
サーバ側(PHPかな?)にAPIの機能を実装NSURLConnectでアクセスしデータを取得
TableViewControllerに一覧をlistで表示(出力形式はなんでもいいです。扱うデータによります。)
(listを押したら画面遷移し詳細なデータを表示)
ニュースアプリ的なものをイメージ