いまどきの  iOS プログラミング
with Xcode 5
伊勢  シン
2013/10/12 (Sat)
プログラミング⽣生放送勉強会  第26回@⼤大阪
⾃自⼰己紹介
•  伊勢  シン / 伊藤  伸裕
–  @iseebi / id:iseebi
•  スマートフォンアプリ作ってます。
–  iPhone / Android
•  コミュニティ
–  スマートフォン勉強会@関⻄西
•  最近...
まずはききたい
•  iOSプログラミングやったことある⼈人
•  やったことあるけど挫折した⼈人
–  何がわからなかった?
•  普段どんな⾔言語つかってる?
–  Java / PHP / Perl …
–  Objective-Cやって...
むかしの  iOS プログラミング
•  メモリ管理理意味不不明
– alloc / init / release / autorelease …
– 簡単にクラッシュする
•  書くのが⼤大変
– ヘッダにプロパティ書いたら @synthes...
いまの  iOS プログラミング
•  ARC のおかげでお約束がだいぶ簡単になった!
– 「たった4つのお約束」を守れば、そうクラッシュしない
•  書き⽅方に対する制限が減った
– @synthesize かかなくてOK
– メソッドの順番...
ところで  iOS 7 対応って地獄ってきくけど
•  そもそもデザイン変わったからあわせないと…
•  iOS 5/6までの⽅方法で作ってたアプリが
軒並み画⾯面ずれ
–  ⾒見見た⽬目がんばってたアプリほど悲しい思いをすることに
•  激し...
今⽇日お伝えすること
•  ほかのプラットフォームで開発したことはあるけど、
iOS 開発はちょっとわからない/挫折した⼈人向けに
今⾵風の  iOS プログラミングをおみせします。
–  Xcode の操作⽅方法込みで、触りながらみていきます...
伊勢的 Objective-C クラス
書き⽅方チャート
他の⾔言語をやったことのあるけどObjective-Cはじめての⼈人は
これだけ覚えておけば、まずは⼤大丈夫!
クラスの構成
•  @interface と @implementationにわかれてる。
•  1つのクラスに対して複数 @interface を書け、
メソッドを追加できる。
– 2つめ以降降は @interface ClassName(H...
チャート1: どこに何を書くか
公開メソッド
公開プロパティ
⾮非公開プロパティ
実装
チャート1 補⾜足
•  クラス変数は特別な事情がない限り使わない。
– ⾮非公開プロパティにする。
•  公開しないメソッドは宣⾔言に含めない。
•  @synthesize も不不要になってるので書かない。
– 古いサンプルコピペしてくると...
Xcode のエディタを便便利利に使おう
•  Assistant Editor を開くと並べてみれるよ!
– ⌥⌘↩ で直接開けます。⌘↩で閉じれます。
•  ⾒見見失ったら「Counterparts」をえらびなおそう
•  ⼊入⼒力力補完は...
Objective-C のクラスに書けるもの
•  プロパティ
•  クラスメソッド
•  インスタンスメソッド
•  クラス変数
– 今はあまり使わない
@property (assign, nonatomic) NSInteger step...
Objective-C の変数型
•  ⼤大きく分けて3つある。
Objective-Cの
クラスインスタンス
NS… UI… とかの、Objective-C のクラスインスタンス。
Objective-C のオブジェクトだけ使ってるときは、
...
チャート2: プロパティの書き⽅方
@property (copy, nonatomic) NSString *title;
@property (strong, nonatomic) NSMutableArray *values;
@prop...
Blocks常套パターン
•  Blocks の中で self (⾃自⼰己参照) をつかうと
循環参照で self が永遠に破棄されなくなる!
•  Blocks の外で __weak をつけた変数に
代⼊入してから使う。
–  型は __ty...
メモリ管理理 4つのお約束
•  ARCを使おう
– ARC = Automatic Reference Counter
•  iOS 5 のころから使えるようになったメモリ管理理⽅方法
•  参照カウンタ管理理をコンパイラが⽣生成してくれます...
Xcode 5 + Storyboard を使った
開発
Demo
まとめ
•  Objective-C のメモリ管理理・クラスの書き⽅方は
ARCを使って、最低限のルールを覚えればこわく
ありませんよ。
•  Storyobard をつかえば簡単にUIや画⾯面遷移を
つくれます。
•  6/7両対応はデザイン...
Upcoming SlideShare
Loading in...5
×

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

7,738

Published on

Published in: Technology
1 Comment
17 Likes
Statistics
Notes
No Downloads
Views
Total Views
7,738
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
29
Comments
1
Likes
17
Embeds 0
No embeds

No notes for slide

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

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

    Clipping is a handy way to collect important slides you want to go back to later.

×