Mais conteúdo relacionado
Semelhante a iPhone develop for Beginner (20)
iPhone develop for Beginner
- 1. iPhoneアプリ開発入門
∼簡単なiPhoneアプリを作ってみよう∼
13年3月17日日曜日
iPhoneアプリ開発の入門ということで勉強会を開催させていただくことになりました。
3時間という短い時間ですが、よろしくお願いいたします。
- 2. 今日の目標
iPhoneアプリ開発の楽しさを知っ
ていただく
iPhoneアプリの本を読めるように
なる
好評だったらシリーズ化(できたらいいな・・・)
13年3月17日日曜日
本日の目標は、
iPhoneアプリ開発の楽しさを知っていただくこととiPhoneアプリの本が抵抗なく読めるようになることです。
iPhoneアプリ開発に興味はあるけれど、いまいち取っ付きにくいと感じているのではないでしょうか。
本日一緒に勉強することで少しでも抵抗がなくなればと思います。
好評だったらシリーズ化したいなと思っています。。。
- 3. アジェンダ
iPhoneアプリ開発に必要なもの
お決まりのHelloWorld
簡単なアプリを作ってみる
13年3月17日日曜日
本日は、まずiPhoneアプリ開発に必要な環境や知識を少し説明し、
HelloWorldアプリを作成しながら、基本的なXCodeの使い方、実機転送の仕方の説明をいたします。
実際に手を動かしながら行うのが一番身に付くので、一緒に手を動かしましょう。
Macが人数分なくて申し訳ないのですが、交代で使ってください。
- 4. どうやって開発しているの?
Objective-Cという言語とXcodeというIDEを
使用して開発
言語的な敷居が高いので、Unity,Titaniumな
ど他の言語で開発できるフレームワークもあ
る(ここではObjective-Cで開発する前提で
す)
13年3月17日日曜日
iPhoneアプリをどうやって開発しているのかを説明いたします。
iPhoneアプリはObjective-Cという言語とXcodeというIDEを使って開発します。
Javaとかに慣れ親しんでいる開発者にとってはObjective-Cという言語は敷居が高いので
(今はARCがあるのでメモリ管理が楽になりましたが、Javaのようなガーベジコレクションがないのです)
UnityとかTitaniumといったほかの言語(JavaScript)で開発できるフレームワークもあります。
ですが、せっかくなのでここではObjective-Cで開発します。
- 5. Objective-Cって何者?
C言語をベースにSmalltalk型のオブジェクト
指向機能を持たせた上位互換言語(Wikipedia
より)→そもそもMac向け
C言語はそのまま使用することが出来る
構文など実践的なことは後ほどやりますの
で、ご安心を・・。
13年3月17日日曜日
ちょっと敷居が高いといわれているObjective-Cが何者かということについて軽く説明いたします。
Objective-CはC言語をベースにして、オブジェクト指向機能を持たせたものです。
こういうとC++と変わらないような気もしますが、Mac向けに特化しているのが特徴です。
C言語をベースにしているということもあり、中でそのままC言語を使うことができます。
- 6. 必要なもの
Mac
Xcode(Macにインストールしてますか?)
実機転送およびAppStoreへの登録をするに
は、AppleDeveloperへの登録(年間99ド
ル)が必要
13年3月17日日曜日
開発に必要なものを説明します。
開発にはMacを使います。
なので、本格的に開発するというのであればMacを用意してください。
Mac上でXcodeというIDEを使います。Xcode自体はフリーでダウンロードできますが、AppleDeveloperに登録して年間99
ドルを払うと、β版を入手できます。
あと、実機転送やAppStoreへの登録(公開する)ためにはAppleDeveloperへの登録が必要なので、注意してください。本
日は私が登録しているIDを使って実機転送をしてみます。
- 7. では、お決まりの・・・
HelloWorldを作成してみます。
13年3月17日日曜日
あまりぐだぐだと説明しても退屈なので、お決まりのHelloWorldを作成してみましょう。
- 8. Xcodeを起動して、新
規プロジェクトを作成す
る(ここでは
SingleViewApplication
を選択してください)
13年3月17日日曜日
まず、Xcodeを起動してください。
FinderのアプリケーションというところにXcodeと書かれているアイコンがあるので、クリックしてください。
起動したら、「Create new Xcode Project」をクリックして新しいプロジェクトを作成しましょう。
いくつか種類があるのですが、ここでは「Simple View Applications」を選択してください。
- 9. プロジェクト名を記載して、Createをクリッ
クしてください。
Devices:iPhone,iPad,Universalの3つから選ぶ(ここではiPhone)
UseStoryboards:StoryBoardをつかうかどうか(ここではチェックを入れる)
Use AutomaticReferenceCounting:ARCをつかうかどうか(ここではチェックを入れ
る)
13年3月17日日曜日
次の画面でプロダクト名などを記載します
Product Name : アプリ名です。好きな名前を入力してください。
Organization Name:作成者の名前です。
Company Identifier:会社名などの組織名です。これも好きなものを入力してください。
BundleName:Company Identifier+ProductNameでできた、iPhoneアプリを一意に決めるものです。プッシュ通信を受け
るときなどに使います。
Class Prefix:クラス名の前に付加される文字列です。ここでは入力しなくてもかまいません。
Devices:対象となるデバイスです。iPhone・iPadを選択するとiPhone用、iPad用のアプリを作成できます。Universalを選
ぶとiPhoneのときはiPhone向け、iPadのときはiPad向けの表示ができます。(一つのアプリで使い分けられます)
UseStoryBoard:パーツの配置を行う際に、StoryBoardを使うかどうかを選択できます。StoryBoardはiOS5から入った機能
なので、古いOSをサポートする場合は使いません。ここでチェックを入れないとxibファイルというファイルが作成されま
す。(古い本だと書かれていないかもです)
Use Automatic Reference Counting:リファレンスカウンタを自動的に行うかどうかを選択できます。これもIOS5から入っ
た機能です。これにチェックを入れないと、確保したメモリを自分で解放することになります。(解放しないと、メモリリ
ークが発生します)ここでは、チェックを入れます。
Include Unit Tests:UnitTestを行うことができます。とりあえずここでは使いません。
- 10. このような画面が表示されたでしょうか?
ファイルの内容を表示
ファイル名を表示する
する
13年3月17日日曜日
プロジェクトを作成するとこのような画面が表示されます。
EclipseとかのIDEを使っていればだいたいにたようなものだと思います。
左側にファイル名、真ん中にファイルの内容が表示されます。
右側はソースコードを編集しているときにはあまり使わないのですが、
StoryBoardで部品の情報を編集するのに使います。
だいたいイメージがつかめるかと思いますが、
上の部分にあるRunというアイコンをクリックするとソースコードの実行を行うことができます。
- 11. いったんこの状態で「Run」をクリックして
みましょう
こんな風に何もない画面が表示
されましたか?
13年3月17日日曜日
では、この状態で実行してみましょう。
iPhoneシミュレータが起動されて、真っ白な画面が表示されたと思います。
XcodeにはiPhone/iPadむけシミュレータが用意されており、Mac上で挙動を確認することができます。
ただし、シミュレータでは確認できない機能(電話とか、カメラとか)もありますし、当然ながらiPhone端末よりもMacの
方がスペックが高いので、最終的な確認は実機で行うようにしましょう。
シミュレータではさくさく動いていたのに、実機に転送してみたらもっさりしていたなんてことはよくあります。
- 13. 右側のwindowにオブジェクトが記載されているの
で、配置してみましょう
13年3月17日日曜日
UILabelを配置したらLabelという表記を削除しましょう。
ここではボタンを押したら表記を変更するようにします。
UIButtonを2つ配置し、Buttonと記載されている箇所を変更します。
片方をON、片方をOFFにしてみましょう。
- 15. ヘッダファイルの内容がこのようになったでしょうか。
@interface ViewController : UIViewController@property (weak, nonatomic)
IBOutlet UILabel *label;- (IBAction)displayOff:(id)sender;- (IBAction)displayOn:
(id)sender;
@end
ヘッダファイルの書き方は以下の通りです。
@interface クラス名:スーパークラス名{
インスタンス変数の定義}
プロパティ名、メソッド名の定義
@end
13年3月17日日曜日
ヘッダファイルの内容について説明いたします。
@interface ViewController:UIViewController
という箇所でViewControllerというクラス名を定義しています。
ViewControllerの隣に書いてあるUIViewControllerというのは親クラスで、
このViewControllerというのはUIViewControllerというiOSのクラスを継承しています。
@property(weak,nonatomic)IBOutlet UILabel *label;
という箇所でlabelという変数を定義しています。
@propertyとすることでコンパイラが勝手にsetterとgetterを作ってくれます。
ヘッダファイルに記載した変数はpublicではないので、アクセスする場合はsetterとgetterが必要なのです
IBOutletと記載したことでInterfaceBuiderで定義した部品と結びつけることが出来ます。
-(IBAction)displayOff:(id)sender;
という箇所でボタンが押されたときに呼び出されるメソッドを定義しています。
IBActionと記載したことでInterface Builderでこのメソッドをactionとして認識できるようになります。
ちなみにコンパイラないでIBActionはvoidに書き換えられますので、リターン値は特にありません。
- 17. では、ソースコードを変更していきましょう。
このようになっているでしょうか。
#import "ViewController.h"@interface ViewController ()@end@implementation
ViewController- (void)viewDidLoad{ [super viewDidLoad];}-
(void)didReceiveMemoryWarning{
[super didReceiveMemoryWarning];}- (IBAction)displayOff:(id)sender {}-
(IBAction)displayOn:(id)sender {
}
@end
13年3月17日日曜日
今度はViewController.mファイルを変更していきます。
このように記載されているかと思います。
viewDidLoadというメソッドとdidReceiveMemoryWarningというメソッドはUIViewControllerでていぎされているもの
で、ここではオーバーライドしています。
独自に実装したい処理がある場合はここで定義します。
ちなみに、viewDidLoadというメソッドはView(画面)が初期化されるときに呼び出されるメソッドで、
didReceiveMemoryWarningというメソッドはメモリ不足になったときに呼び出されるメソッドです。
定義したメソッドの内容を実装していきましょう。
- 18. [self.label setText:@ Hello World ];
//この書き方でも問題ありません。
self.label.text = @ Hello World ;
}
メソッドの呼び出し方法(メッセージングという)
[オブジェクト名 メソッド名:引数名 メッセージキーワー
ド:引数名]
例
[hoge setHoge:moge moge2:moge2];
13年3月17日日曜日
Onボタンが押されたときに、ラベルの内容を変更します。
[self.label setText:@”Hello World”];と記載することでlabelという変数のテキスト内容を変更することができます。
setTextというのはtextというプライベート変数に対するセッターです。
ただし、Objective-Cでは self.label.textというようにJavaのような記載をすることも出来ます。
メソッドを呼び出すには [オブジェクト名 メソッド:引数名 メッセージキーワード:引数名]のように記載します。
Objective-Cではオブジェクトに対して 「メソッド名」のメッセージを送るという処理を行います。
- 21. おすすめ本などを紹介
Appleのサンプルコード
https://developer.apple.com/library/ios/navigation/
index.html?section=Resource+Types&topic=Sample
+Code
入門書はこれが好きです(英語です)
Beginning iOS6 Development(Dave Mark)
http://www.apress.com/9781430245124
Objective-Cについては以下の本が詳しいです(入門書では
ありません)
詳解Objective-C2.0 第3版 萩原剛志
13年3月17日日曜日
最後におすすめの本などを詳解します。
参考書を既に持っているという方はそれを使っていただいてかまいません。
まず、AppleのDeveloperサイトにはサンプルコードがあります。
使いたい機能を見つけてダウンロードしてみてください。
入門書はいろいろあるのですが、個人的にはApressのBegininngiOSシリーズが好きです。
何がいいかというと情報が早いのです。アルファプログラムではありますが、iOS6に対応しています。
英語ですが、それほど難しい表現はありません。
Objective-Cそのものについては 詳解Objective-C2.0 第3版 をお勧めします。決して入門書ではないので、あるていど出
来るようになってから使ったほうがいいです。