第三回 iosアプリ勉強会

19
第三回iOSアプリ勉強会

Upload: daisuke-tsukagoshi

Post on 18-Jul-2015

108 views

Category:

Engineering


2 download

TRANSCRIPT

第三回iOSアプリ勉強会

今日の内容

・前回の復習

・Classについて

・Storyboardの簡単な使い方

・簡単なアプリを実装しよう!!

前回の復習

XcodeのPlaygroundを開いてください

前回の復習・Optional型について

何も無いことを表すnilを扱うためにはOptional型でwrapする

その変数(定数)を使用する際は!でunwrapする必要がある。

前回の復習・型の変換 (CAST)について

「as?」でCASTをするができない場合もある。

「as?」で変換したらOptional型になる。変換できない場合はnilとなる。

前回の復習・制御構文

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

で新しいプロジェクトを作成してください

Drag & Drop

今回使うのは

Label Button Text Field

の3つです

こんな感じで作りましょう!

配置はてきとーで構わないです

各部品は右メニューの値をいじることで設定できます

BackgroundやButtonを画像するだけでもアプリっぽさを演出できます

これだけではパーツを配置しただけなのでプログラムに紐付け処理とパーツを関連させる必要があります

Text Field

Label

Button

右上の の真ん中のボタンをClick! 画面を分割しViewControllerを表示

右クリック??したままDrag & Drop

もしくはcontrolキーを押しながらDrag & Drop

Outlet は部品の配置。nameはプログラムで扱う変数になります

Action は部品になにかしらのactionを起こした時の処理。nameはプログラムで扱うメソッド名

今回はButtonを押した時にText Fieldに入力された「身長」「体重」を元に計算を行い、結果を返す処理を実装します。(計算は先ほど作ったクラスを使いましょう)

結果はラベルにテキストとして出力させます。

とりあえず実践してみましょう!!!!

細かい箇所は口頭で説明します

各個人ですすめる課題として考える簡単なアプリ例 仕様

①地図アプリ(MapKit.frameworkを使用)

地図表示させる現在地を表示更新ボタンで現在地を更新地図上にピンを立て情報を表示

(経路検索)

②APIで外部からデータを取得し、アプリ内で表示(サーバ側のプログラムが必要)

DBは使っても使わなくてもどっちでもOK

サーバ側(PHPかな?)にAPIの機能を実装NSURLConnectでアクセスしデータを取得

TableViewControllerに一覧をlistで表示(出力形式はなんでもいいです。扱うデータによります。)

(listを押したら画面遷移し詳細なデータを表示)

ニュースアプリ的なものをイメージ