Ll xcode
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Ll xcode

on

  • 1,241 views

 

Statistics

Views

Total Views
1,241
Views on SlideShare
1,241
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Ll xcode Presentation Transcript

  • 1. LL ばかりのエンジニアがXcode にチャレンジしました @kanayannet
  • 2. LLとはLightweight Language ※和製英語だそうです。 by wikipedia 例: Perl、Python、PHP Ruby Javascript
  • 3. Xcode とは? ソフトウェアを開発するための アップルの統合開発環境 例: IPhone IPad のアプリケーション
  • 4. 主に使われる言語 objective-c
  • 5. Objective-c とは? C言語をベースにSmalltalk型の オブジェクト指向機能を持たせた上位 互換言語である。 by wikipedia
  • 6. 解りづらい自分なりに解釈してみるC言語よりは便利に使えるのかな?LL ではない -> 簡単ではなさそう?
  • 7. 自分が普段使ってる言語 Perl、Ruby、Javascript... LLばっかりです!
  • 8. 今回、話す事1.始めるキッカケ2. Xcode + Objective-c を使って開発して...苦戦した箇所3. 苦戦しなかった箇所を話します
  • 9. 1.始めるキッカケ 家庭菜園でブルーベリー作ってます
  • 10. 1.始めるキッカケ ブルーベリーの栽培記録を その場で残せるアプリが欲しかった (土壌PH や 農薬 や 肥料など) ↓↓↓↓↓ 作ればいいじゃない!?
  • 11. 1.始めるキッカケ- どうせ作るなら、今までやった事がないもの- ブラウザアプリは結構作った- Xcode + objective-c は経験ない
  • 12. よし!やろう!
  • 13. アプリの構成 HTTP Web API農作物や日記の入力 データの保存 描画 呼び出し
  • 14. ごめんなさい!PhoneGapの事は話しません! ※話したい方は懇談会で話しましょう
  • 15. 苦戦した箇所 1. コードの長さ 2. HTML との違い
  • 16. 苦戦した箇所1. コードの長さ HTTP の通信
  • 17. 苦戦した箇所 javascript(Jquery) の場合 $.ajax({ type: "POST", url: "http://example.com", data: "xxx=yyy", success: function(msg){ alert( "成功: " + msg ); } });
  • 18. 苦戦した箇所 objective-c の場合みなさん使ってるライブラリあるのかな∼? っとググってみる.... ↓↓↓↓↓ 自作ライブラリ配布してる人はいたけど... 多くがコツコツ書いてる...
  • 19. 苦戦した箇所 objective-c の場合NSURL *nsurl = [NSURL URLWithString:@”http://example.com”];NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:nsurl];[request setHTTPMethod: @"POST"];[request setValue:@"application/x-www-form-urlencoded"forHTTPHeaderField:@"Content-Type"];[request setValue:[NSString stringWithFormat:@"%d", [sendData length]]forHTTPHeaderField:@"Content-Length"];[request setHTTPBody: sendData];NSError *error;NSURLResponse *response;NSData *buffer = [NSURLConnection sendSynchronousRequest:requestreturningResponse:&response error:&error];
  • 20. 2. HTML との違い 例: Table 表示 HTML の場合
  • 21. 2. HTML との違い 例: Table 表示 HTML の場合 <table width=100% border=1 width=100%> <tr> <td>セル1</td> </tr> <tr> <td>セル2</td> </tr> <tr> <td>セル3</td> </tr> </table>
  • 22. 2. HTML との違い 例: Table 表示 Xcode + Objective-c の場合
  • 23. //セルの数-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{  // table_list の中身は配列 return [table_list count];}// セルの中身の設定-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"product_items"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; NSInteger row = [indexPath row]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:CellIdentifier]; } cell.textLabel.font = [UIFont boldSystemFontOfSize:18]; NSDictionary *table_row = [table_list objectAtIndex:row]; cell.textLabel.text = [table_row objectForKey:@"subject"]; cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton; return cell;}//セルの高さ-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return 42;}
  • 24. 苦戦しなかった箇所 1. JSON 2. メモリ管理
  • 25. 苦戦しなかった箇所 JSON ( javascript ) var json_string = { status : ok } ; var json_obj = JSON.parse(json_string); console.log( json_obj.status ); // -> ok
  • 26. 苦戦しなかった箇所 JSON Objective-c// json_string にjson文字列 json_string = ‘{”status”:”ok”}’NSData *json_data = [json_string dataUsingEncoding:NSUTF8StringEncoding];NSMutableArray *ret = [NSJSONSerialization JSONObjectWithData:json_dataoptions:NSJSONReadingAllowFragments error:nil];[ret objectForKey:@"status"]; // -> ok
  • 27. 苦戦しなかった箇所 JSONは思ったよりもコーディングしやすかった
  • 28. 苦戦しなかった箇所 メモリ管理(objective-c) ARC (Automatic Reference Counting) @autoreleasepool { // 自動的にメモリ解放してもらいたい処理 } ※LL でいう GC のようなもの
  • 29. ※ ARC の注意点これ使うと手動で解放する release method が使えなくなります
  • 30. まとめObjective-c 自体は思っていたよりも、難しくなかった。(むしろ、C言語より、やりやすかった)View(描画)処理が絡むとmethod名の長いものが出てきて、結構面倒くさい...
  • 31. 最後に モック版(デザインはまだ、適当) ですが、ここまで作れたものをデモしますhttp://www.youtube.com/watch?v=ivQdj8KOz9Y
  • 32. このモック版作れるようになるまで、 どんなもん学習したの? 30時間 ※30 x 1時間 (1日1時間 を 30日しました)
  • 33. - 30時間続けて勉強した訳ではない- 無理に続けて勉強しても身に付かない- 睡眠時間と適切な休憩時間は必要- 睡眠すると頭が整理されて、解らなかった箇所が解るようになったりする
  • 34. ご清聴ありがとうございました