LL ばかりのエンジニアがXcode にチャレンジしました     @kanayannet
LLとはLightweight Language ※和製英語だそうです。 by wikipedia 例:      Perl、Python、PHP      Ruby Javascript
Xcode とは?  ソフトウェアを開発するための  アップルの統合開発環境 例:  IPhone IPad のアプリケーション
主に使われる言語 objective-c
Objective-c とは? C言語をベースにSmalltalk型の オブジェクト指向機能を持たせた上位 互換言語である。 by wikipedia
解りづらい自分なりに解釈してみるC言語よりは便利に使えるのかな?LL ではない -> 簡単ではなさそう?
自分が普段使ってる言語 Perl、Ruby、Javascript...  LLばっかりです!
今回、話す事1.始めるキッカケ2. Xcode + Objective-c を使って開発して...苦戦した箇所3. 苦戦しなかった箇所を話します
1.始めるキッカケ 家庭菜園でブルーベリー作ってます
1.始めるキッカケ    ブルーベリーの栽培記録を  その場で残せるアプリが欲しかった   (土壌PH や 農薬 や 肥料など)        ↓↓↓↓↓     作ればいいじゃない!?
1.始めるキッカケ- どうせ作るなら、今までやった事がないもの- ブラウザアプリは結構作った- Xcode + objective-c は経験ない
よし!やろう!
アプリの構成            HTTP                   Web API農作物や日記の入力                   データの保存    描画                   呼び出し
ごめんなさい!PhoneGapの事は話しません! ※話したい方は懇談会で話しましょう
苦戦した箇所  1. コードの長さ  2. HTML との違い
苦戦した箇所1. コードの長さ    HTTP の通信
苦戦した箇所   javascript(Jquery) の場合 $.ajax({    type: "POST",    url: "http://example.com",    data: "xxx=yyy",    success: fu...
苦戦した箇所   objective-c の場合みなさん使ってるライブラリあるのかな∼?      っとググってみる....       ↓↓↓↓↓ 自作ライブラリ配布してる人はいたけど...    多くがコツコツ書いてる...
苦戦した箇所          objective-c の場合NSURL *nsurl = [NSURL URLWithString:@”http://example.com”];NSMutableURLRequest *request = [...
2. HTML との違い   例: Table 表示      HTML の場合
2. HTML との違い  例: Table 表示       HTML の場合    <table width=100% border=1 width=100%>                   <tr>                 ...
2. HTML との違い  例: Table 表示  Xcode + Objective-c の場合
//セルの数-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{  // table_list の中身は配列    re...
苦戦しなかった箇所 1. JSON 2. メモリ管理
苦戦しなかった箇所     JSON ( javascript ) var json_string = { status : ok } ; var json_obj = JSON.parse(json_string); console.log(...
苦戦しなかった箇所   JSON                           Objective-c// json_string にjson文字列 json_string = ‘{”status”:”ok”}’NSData *json_...
苦戦しなかった箇所       JSONは思ったよりもコーディングしやすかった
苦戦しなかった箇所 メモリ管理(objective-c)   ARC (Automatic Reference Counting)       @autoreleasepool       {           // 自動的にメモリ解放しても...
※ ARC の注意点これ使うと手動で解放する release method が使えなくなります
まとめObjective-c 自体は思っていたよりも、難しくなかった。(むしろ、C言語より、やりやすかった)View(描画)処理が絡むとmethod名の長いものが出てきて、結構面倒くさい...
最後に モック版(デザインはまだ、適当) ですが、ここまで作れたものをデモしますhttp://www.youtube.com/watch?v=ivQdj8KOz9Y
このモック版作れるようになるまで、   どんなもん学習したの?     30時間 ※30 x 1時間 (1日1時間 を 30日しました)
- 30時間続けて勉強した訳ではない- 無理に続けて勉強しても身に付かない- 睡眠時間と適切な休憩時間は必要- 睡眠すると頭が整理されて、解らなかった箇所が解るようになったりする
ご清聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

Ll xcode

1,137 views
1,065 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,137
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \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

    1. 1. LL ばかりのエンジニアがXcode にチャレンジしました @kanayannet
    2. 2. LLとはLightweight Language ※和製英語だそうです。 by wikipedia 例: Perl、Python、PHP Ruby Javascript
    3. 3. Xcode とは? ソフトウェアを開発するための アップルの統合開発環境 例: IPhone IPad のアプリケーション
    4. 4. 主に使われる言語 objective-c
    5. 5. Objective-c とは? C言語をベースにSmalltalk型の オブジェクト指向機能を持たせた上位 互換言語である。 by wikipedia
    6. 6. 解りづらい自分なりに解釈してみるC言語よりは便利に使えるのかな?LL ではない -> 簡単ではなさそう?
    7. 7. 自分が普段使ってる言語 Perl、Ruby、Javascript... LLばっかりです!
    8. 8. 今回、話す事1.始めるキッカケ2. Xcode + Objective-c を使って開発して...苦戦した箇所3. 苦戦しなかった箇所を話します
    9. 9. 1.始めるキッカケ 家庭菜園でブルーベリー作ってます
    10. 10. 1.始めるキッカケ ブルーベリーの栽培記録を その場で残せるアプリが欲しかった (土壌PH や 農薬 や 肥料など) ↓↓↓↓↓ 作ればいいじゃない!?
    11. 11. 1.始めるキッカケ- どうせ作るなら、今までやった事がないもの- ブラウザアプリは結構作った- Xcode + objective-c は経験ない
    12. 12. よし!やろう!
    13. 13. アプリの構成 HTTP Web API農作物や日記の入力 データの保存 描画 呼び出し
    14. 14. ごめんなさい!PhoneGapの事は話しません! ※話したい方は懇談会で話しましょう
    15. 15. 苦戦した箇所 1. コードの長さ 2. HTML との違い
    16. 16. 苦戦した箇所1. コードの長さ HTTP の通信
    17. 17. 苦戦した箇所 javascript(Jquery) の場合 $.ajax({ type: "POST", url: "http://example.com", data: "xxx=yyy", success: function(msg){ alert( "成功: " + msg ); } });
    18. 18. 苦戦した箇所 objective-c の場合みなさん使ってるライブラリあるのかな∼? っとググってみる.... ↓↓↓↓↓ 自作ライブラリ配布してる人はいたけど... 多くがコツコツ書いてる...
    19. 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. 20. 2. HTML との違い 例: Table 表示 HTML の場合
    21. 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. 22. 2. HTML との違い 例: Table 表示 Xcode + Objective-c の場合
    23. 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. 24. 苦戦しなかった箇所 1. JSON 2. メモリ管理
    25. 25. 苦戦しなかった箇所 JSON ( javascript ) var json_string = { status : ok } ; var json_obj = JSON.parse(json_string); console.log( json_obj.status ); // -> ok
    26. 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. 27. 苦戦しなかった箇所 JSONは思ったよりもコーディングしやすかった
    28. 28. 苦戦しなかった箇所 メモリ管理(objective-c) ARC (Automatic Reference Counting) @autoreleasepool { // 自動的にメモリ解放してもらいたい処理 } ※LL でいう GC のようなもの
    29. 29. ※ ARC の注意点これ使うと手動で解放する release method が使えなくなります
    30. 30. まとめObjective-c 自体は思っていたよりも、難しくなかった。(むしろ、C言語より、やりやすかった)View(描画)処理が絡むとmethod名の長いものが出てきて、結構面倒くさい...
    31. 31. 最後に モック版(デザインはまだ、適当) ですが、ここまで作れたものをデモしますhttp://www.youtube.com/watch?v=ivQdj8KOz9Y
    32. 32. このモック版作れるようになるまで、 どんなもん学習したの? 30時間 ※30 x 1時間 (1日1時間 を 30日しました)
    33. 33. - 30時間続けて勉強した訳ではない- 無理に続けて勉強しても身に付かない- 睡眠時間と適切な休憩時間は必要- 睡眠すると頭が整理されて、解らなかった箇所が解るようになったりする
    34. 34. ご清聴ありがとうございました

    ×