![]()
12/13学生向けITスキル勉強会~リクルート流iPhoneアプリの創り方~を開催しました
フナミタカオです。
12/13学生向けのイベントで、iOSのコーディング勉強会を開催しました。
http://atnd.org/events/22514
約40名の学生のみなさまにお集まりいただきました。参加されたみなさん、どうもありがとうございました!
学生向けの勉強会イベントは今回初めてということもあり、参加者のみなさんの開発経験を絞り込めなかった(どんな方にきていただけるのか予想できなかった)ので、「Mac持参、Xcodeがつかったことがある」という条件とさせていただきました。
参加条件がちょっとあいまいだったこともあり、参加者のみなさんのiOS経験は初心者から、エキスパートまで幅広くなかなかすべての皆さんに満足いただくのはむずかしかったのですが、「サンプルコードが役に立った」とか「なんとなく雰囲気はわかりました」等の感想もいただいており、なにか得ていただけるものがあったのではと思っています。
中には「HTMLの話と思ってましたー」というご意見もあり、募集要項にはObjective-Cとは明記しておらず、反省点です。次回以降、気をつけます。
参加されたみなさま、今回は時間がなくてこれなかった皆様も、次回以降バージョンアップしてゆく予定ですので、よろしくおねがいいたします。
勉強会の概要
- リクルートWebサービスのWebAPIを使って、取得したJSONをもとに、一覧表示、詳細表示、Twitter連動ができるアプリを作る
- コードを解説しながら、実習を交えて、iOSの基本となるプログラミング方法を、つかむ。

例1:エリア一覧画面で、UITableVewのsectionとrowの関係を理解する

例2:詳細画面をInterface Builderで作成して、JSONから生成した、店舗データとひもづける

例3:お店一覧をホットペッパーWebサービスのAPIを利用して取得
勉強会で使ったスライド
ただし、コーディング部分はスライドではほとんど説明していないので、ソースのコメントを参照してください。
ポイント
iPhoneプログラミングの基本となるUITableViewと画面の遷移あたりを実際のホットペッパーWebサービスのデータを使って試せるようにしています。
CoreDataの部分までいきたかったのですが、ちょっと、時間切れ。ソースも用意できなかったので、次回以降で取り上げる予定です。
1.UITableView
基本1.delegate,dataSorceの理解(master)
基本2.cellへのデータ投入(master)
応用1.カスタムセル(コードなし)
応用2.セクション(advance)
2.MapKit
基本1.地図を緯度経度を指定して表示する(master)
基本2.ピンをたてる(master)
3.CoreLocation
基本1.現在位置を取得する(master)
基本2.Mapアプリの経路検索と連携する(master)
4.Twitter連動
基本1.UIWebViewを使って、Tweetする。(master)
基本2.iOS5のTwitter連携機能(コードなし)
5.JSONのパース
基本1.JSONKitライブラリを使う(master)
6.NSURLConnectionを使った非同期通信
基本1.delegateによる、非同期データの受信。(advance)
基本2.通信完了をUITableViewに通知する方法 (advance)
7.CoreData
応用1.CoreDataにモデルを読み込む(コードなし)
応用2.NSFetchedResultsControllerとUITableViewを使って、さまざまなソートを試す(コードなし)
ソース
1.master
オフラインでも動くサンプル
https://github.com/funami/mtl_iPhone_student_seminner_1
以下ポイントの1〜5の基本部分をカバーしています。
XCode3.2.6,XCode4.2でのビルドを確認しています。
iOS4.1以上での動作を確認しています。
2.advance
https://github.com/funami/mtl_iPhone_student_seminner_1/tree/advance Webサービスにネット経由で接続する。 XCode4.2でのビルドを確認しています。(XCode3.2.6では動かないかもしれません) iOS4.1以上での動作を確認しています。上記ソース内にコメントがありますので、以下2ファイルのコメントを見ながら、ソースの変更をしてみてください
RootViewController.m,
DetailViewController.m
日本語ドキュメントについて
開発時に必要なのは、リファレンス。
iOS Dev Centerにいけば、たんまり、リファレンスやサンプルコード、WWDCのビデオがありますが、日本語のドキュメントもそこそこあります。勉強会でも紹介したのですが、リンクは以下になりますので、参考にしてみてください。
日本語ドキュメント:http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html
日本語ドキュメント
日本語ではないですが...
NSURLConnectionの使い方サンプル(リファレンス)
UsingNSURLConnection
delegaten使い方を習得するにはこちらが参考になります
今後ともよろしくおねがいします
今回のソースでは、iOSの各APIの動きを確認してもらえるようにと考えて、モデルとコントローラーの分離をしていません。
RootViewControllerが、jsonのパースや通信も担当していますが、モデル部分は分離して、シングルトンのDataManegerとして独立させるのがよろしいかと思います。また、通信完了もサンプルでは
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
のメソッド内で[self.tableView reloadData];を呼び出していますが、こちらは、NSNortification経由にすべきでしょう。
等々、つっこみどころもたくさんある、ソースなので、基本がわかったかたは、ぜひ、改造してみてください!
どうもありがとうございました〜
