Slides

Ll xcode

Categories
Published
of 34
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Description
1. LL ばかりのエンジニアがXcode にチャレンジしました @kanayannet 2. LLとはLightweight Language ※和製英語だそうです。 by wikipedia 例:…
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. ご清聴ありがとうございました
  • We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks