• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
いまどきのiOSプログラミング with Xcode5
 

いまどきのiOSプログラミング with Xcode5

on

  • 7,568 views

 

Statistics

Views

Total Views
7,568
Views on SlideShare
7,475
Embed Views
93

Actions

Likes
15
Downloads
21
Comments
1

4 Embeds 93

https://twitter.com 52
http://blog.iotaworks.jp 39
http://s.deeeki.com 1
http://feedly.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

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

11 of 1 previous next

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

    いまどきのiOSプログラミング with Xcode5 いまどきのiOSプログラミング with Xcode5 Presentation Transcript

    • いまどきの  iOS プログラミング with Xcode 5 伊勢  シン 2013/10/12 (Sat) プログラミング⽣生放送勉強会  第26回@⼤大阪
    • ⾃自⼰己紹介 •  伊勢  シン / 伊藤  伸裕 –  @iseebi / id:iseebi •  スマートフォンアプリ作ってます。 –  iPhone / Android •  コミュニティ –  スマートフォン勉強会@関⻄西 •  最近は平⽇日夜のXamarin.Androidハンズオン 「すまべんLite」シリーズで細々継続中 –  すごいHaskell読書会 in ⼤大阪 •  H本読んでます。次回15⽇日
    • まずはききたい •  iOSプログラミングやったことある⼈人 •  やったことあるけど挫折した⼈人 –  何がわからなかった? •  普段どんな⾔言語つかってる? –  Java / PHP / Perl … –  Objective-Cやってるひともかなりいるっぽいんですが… •  「っつーかプログラミングやったことねー」って⼈人
    • むかしの  iOS プログラミング •  メモリ管理理意味不不明 – alloc / init / release / autorelease … – 簡単にクラッシュする •  書くのが⼤大変 – ヘッダにプロパティ書いたら @synthesize かかないと – メソッドの順番を考慮しないといけない •  画⾯面遷移どうやって作るの? •  iPhone 5 で解像度度増えやがった! •  ライブラリ⼊入れるの、プロジェクトに ソースコード追加するとかわりと泥泥臭い。
    • いまの  iOS プログラミング •  ARC のおかげでお約束がだいぶ簡単になった! – 「たった4つのお約束」を守れば、そうクラッシュしない •  書き⽅方に対する制限が減った – @synthesize かかなくてOK – メソッドの順番気にしなくてOK – ラムダっぽいのもいける •  画⾯面遷移もGUIで作れるようになった •  CocoaPods でライブラリを管理理できるようになっ た。
    • ところで  iOS 7 対応って地獄ってきくけど •  そもそもデザイン変わったからあわせないと… •  iOS 5/6までの⽅方法で作ってたアプリが 軒並み画⾯面ずれ –  ⾒見見た⽬目がんばってたアプリほど悲しい思いをすることに •  激しい⾮非推奨の嵐嵐 –  ⽂文字列列から直接画⾯面に描画するメソッド等 •  iPhone 5s 64bit対応 –  int とか long とかやばい •  6以上でARC,Storyboard,Autolayoutなやつを 7に対応するのはそんな⼤大変じゃなかった。 •  結論論:(6より)昔のことは忘れましょう。      (7より)未来のことを考えましょう。
    • 今⽇日お伝えすること •  ほかのプラットフォームで開発したことはあるけど、 iOS 開発はちょっとわからない/挫折した⼈人向けに 今⾵風の  iOS プログラミングをおみせします。 –  Xcode の操作⽅方法込みで、触りながらみていきます。 –  とはいえ僕も全部理理解しているわけじゃないので、 突っ込み⼤大歓迎! •  これだけ覚えていればだいたいOK。 伊勢的 Objective-C クラスの書き⽅方チャート •  Storyboard の使い⽅方と Autolayout を使った 6/7 両対応 •  CocoaPods を使ったライブラリの使⽤用 (時間あれば)
    • 伊勢的 Objective-C クラス 書き⽅方チャート 他の⾔言語をやったことのあるけどObjective-Cはじめての⼈人は これだけ覚えておけば、まずは⼤大丈夫!
    • クラスの構成 •  @interface と @implementationにわかれてる。 •  1つのクラスに対して複数 @interface を書け、 メソッドを追加できる。 – 2つめ以降降は @interface ClassName(Hoge) と、 カテゴリをつける。 – 同じプロジェクトの中に @implementation があれば、 プロパティもかける。 – 無名のカテゴリをインプリメンテーションに書いて、 プライベートな宣⾔言にするのが常套⼿手段。
    • チャート1: どこに何を書くか 公開メソッド 公開プロパティ ⾮非公開プロパティ 実装
    • チャート1 補⾜足 •  クラス変数は特別な事情がない限り使わない。 – ⾮非公開プロパティにする。 •  公開しないメソッドは宣⾔言に含めない。 •  @synthesize も不不要になってるので書かない。 – 古いサンプルコピペしてくるときは注意
    • Xcode のエディタを便便利利に使おう •  Assistant Editor を開くと並べてみれるよ! – ⌥⌘↩ で直接開けます。⌘↩で閉じれます。 •  ⾒見見失ったら「Counterparts」をえらびなおそう •  ⼊入⼒力力補完は  ⎋  で出てくるよ! – でもわざわざ押さなくても、 ⼊入⼒力力してたらわりとさくさくっと出てきます。 •  ⌘: command, ⌥ option (alt), ⎋ : esc
    • Objective-C のクラスに書けるもの •  プロパティ •  クラスメソッド •  インスタンスメソッド •  クラス変数 – 今はあまり使わない @property (assign, nonatomic) NSInteger step; + (id) valueWithData:(NSData *)data; - (void) introduceToUserWithTitle:(NSString *)title;
    • Objective-C の変数型 •  ⼤大きく分けて3つある。 Objective-Cの クラスインスタンス NS… UI… とかの、Objective-C のクラスインスタンス。 Objective-C のオブジェクトだけ使ってるときは、 * のついてるやつがこれにあたる。 (実際はCベースの関数使ったりするとこの限りではない) 数値型 int long などの数値。あるいはenum値。 64bit 対応のために、なるべく  NSInteger などの 定義されている⽅方を使った⽅方がよい Blocks ラムダ的なインライン関数 void (^completionBlock)(BOOL isSuccess);
    • チャート2: プロパティの書き⽅方 @property (copy, nonatomic) NSString *title; @property (strong, nonatomic) NSMutableArray *values; @property (assign, nonatomic) NSInteger step; 変数の型 書くべきキーワード Objective-Cの オブジェクト 通常のオブジェクト strong Mutableがある型 (NSString 等) copy なくなってもいい(弱参照) weak 数値やenum値 assign Blocks copy
    • Blocks常套パターン •  Blocks の中で self (⾃自⼰己参照) をつかうと 循環参照で self が永遠に破棄されなくなる! •  Blocks の外で __weak をつけた変数に 代⼊入してから使う。 –  型は __typeof(self) としておくと、 どこにコピペしてもちゃんと補完が効く •  スニペットに登録すると簡単に⼊入⼒力力できる。 __weak __typeof(self) bself = self; [UIView animateWithDuration:0.5 animations:^{ bself.view.alpha = 0.5; }];
    • メモリ管理理 4つのお約束 •  ARCを使おう – ARC = Automatic Reference Counter •  iOS 5 のころから使えるようになったメモリ管理理⽅方法 •  参照カウンタ管理理をコンパイラが⽣生成してくれます。 •  クラスに保存する値はプロパティを使おう – クラス変数を使わない •  Blocks の中では weak self を使おう •  コールバック⽤用で保持するものは  weak を使おう – delegate など
    • Xcode 5 + Storyboard を使った 開発 Demo
    • まとめ •  Objective-C のメモリ管理理・クラスの書き⽅方は ARCを使って、最低限のルールを覚えればこわく ありませんよ。 •  Storyobard をつかえば簡単にUIや画⾯面遷移を つくれます。 •  6/7両対応はデザインのことをひとまず横において おけば、Autolayoutをつかえば簡単。 – 5のことはもうわすれよう