SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
いまどきのiOSプログラミング with Xcode5
Report
Shin Ise
Follow
Oct. 12, 2013
•
0 likes
•
9,064 views
1
of
19
いまどきのiOSプログラミング with Xcode5
Oct. 12, 2013
•
0 likes
•
9,064 views
Download Now
Download to read offline
Report
Technology
Shin Ise
Follow
Recommended
2013 11-21 epubpub
Satoshi KOJIMA
378 views
•
76 slides
scikit-image でフィルムスキャナで取り込んだネガ画像をポジ化する
Iosif Takakura
300 views
•
15 slides
名前のつけ方
Yasuko Ohba
7.3K views
•
33 slides
オブジェクト指向プログラミング再入門
Ryo Miyake
32.5K views
•
50 slides
機能追加を行う際に考慮したい3つのポイント
Miwa Kuramitsu
6.6K views
•
62 slides
深層学習の非常に簡単な説明
Seiichi Uchida
45.5K views
•
51 slides
More Related Content
Viewers also liked
色彩センスのいらない配色講座
Mariko Yamaguchi
3M views
•
39 slides
JavaScriptの落とし穴
ikdysfm
35.3K views
•
100 slides
査読の仕組みと論文投稿上の対策
Takayuki Itoh
37.5K views
•
30 slides
やはりお前らのiOS7対応は間違っている
今城 善矩
37.1K views
•
29 slides
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
Monaca
15.6K views
•
51 slides
Xcodeを便利に使って爆速開発する #yxcm
Hiramatsu Ryosuke
45.9K views
•
35 slides
Viewers also liked
(20)
色彩センスのいらない配色講座
Mariko Yamaguchi
•
3M views
JavaScriptの落とし穴
ikdysfm
•
35.3K views
査読の仕組みと論文投稿上の対策
Takayuki Itoh
•
37.5K views
やはりお前らのiOS7対応は間違っている
今城 善矩
•
37.1K views
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
Monaca
•
15.6K views
Xcodeを便利に使って爆速開発する #yxcm
Hiramatsu Ryosuke
•
45.9K views
iOS アプリのメンテナンス性を高めるための基本的な考え方
kakegawa-atsushi
•
13.8K views
Chrome Developer Toolsを使いこなそう!
yoshikawa_t
•
92.5K views
はやわかりHTML5ハイブリッドアプリ開発事情
Monaca
•
41K views
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
Kazuaki Hidaka
•
41K views
数式を綺麗にプログラミングするコツ #spro2013
Shuyo Nakatani
•
50.4K views
pythonでオフィス快適化計画
Kazufumi Ohkawa
•
53.6K views
ソフトウェア設計のすすめ
Yoshimura Soichiro
•
39.6K views
非同期処理の基礎
信之 岩永
•
57.1K views
C#や.NET Frameworkがやっていること
信之 岩永
•
59.9K views
Gitはじめの一歩
Ayana Yokota
•
54.2K views
論文に関する基礎知識2016
Mai Otsuki
•
56.7K views
機械学習によるデータ分析 実践編
Ryota Kamoshida
•
17.6K views
データベース技術の羅針盤
Yoshinori Matsunobu
•
123.7K views
音声認識の基礎
Akinori Ito
•
35.9K views
Similar to いまどきのiOSプログラミング with Xcode5
多人数iOSアプリ開発を考える
sasaron 397
4.8K views
•
26 slides
プログラミングはじめの一歩 先生:関根 元和
schoowebcampus
1.3K views
•
29 slides
Apple Map
Tomohiro Kumagai
885 views
•
67 slides
iOSアプリ制作のためのObjective-C入門
聡 中川
2.5K views
•
20 slides
20150514 android
Fujimura Munehiko
1K views
•
38 slides
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
Tomohiro Kumagai
1.5K views
•
14 slides
Similar to いまどきのiOSプログラミング with Xcode5
(20)
多人数iOSアプリ開発を考える
sasaron 397
•
4.8K views
プログラミングはじめの一歩 先生:関根 元和
schoowebcampus
•
1.3K views
Apple Map
Tomohiro Kumagai
•
885 views
iOSアプリ制作のためのObjective-C入門
聡 中川
•
2.5K views
20150514 android
Fujimura Munehiko
•
1K views
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
Tomohiro Kumagai
•
1.5K views
Oss written in swift
Yuki Asai
•
1.7K views
SwiftでAndroidアプリ書けるってよ
Syo Ikeda
•
8.7K views
ブラウザでかんたんプログラミング!さらにお手軽に体験できるようになった日本語プログラミング言語「なでしこ」最新情報のご紹介
Masaya Hayashi
•
1.1K views
Cocoa関西勉強会#49
yashigani
•
2.7K views
Xcode 5 で見つけた「どうでもいい」機能(厳選6つ) #cocoa_kansai, #yidev
Tomohiro Kumagai
•
6.3K views
ソニーでElectronアプリをリリースしてみた
Yasuharu Seki
•
5.1K views
Swift afterbeginner
Kiminari Homma
•
504 views
やんちゃでかしこいあいぼうをHoloLensで操作してみた
Kohsuke Nakagawa
•
1.4K views
デザイナーのためのXcode入門 先生:関根 元和
schoowebcampus
•
2.6K views
Size class 20150521
Takeshi Sato
•
559 views
スマホアプリの開発手法をまとめてみた。
Hiroshi Goto
•
1.4K views
Swift afterbeginner
Kiminari Homma
•
1K views
Macで快適にプログラミング
Yusuke Sakurai
•
2.7K views
スマホアプリ開発再考
Daijiro Abe
•
534 views
More from Shin Ise
Cross platform development with Xamarin 2.0 + MvvmCross
Shin Ise
2.6K views
•
25 slides
すまべんLite@関西#4
Shin Ise
1.1K views
•
30 slides
すまべんLite@関西#3
Shin Ise
1.2K views
•
22 slides
すまべんLite@関西#2
Shin Ise
902 views
•
45 slides
すごいHaskell読書会#10
Shin Ise
1.6K views
•
38 slides
音声APIを使ってみる
Shin Ise
1.8K views
•
18 slides
More from Shin Ise
(20)
Cross platform development with Xamarin 2.0 + MvvmCross
Shin Ise
•
2.6K views
すまべんLite@関西#4
Shin Ise
•
1.1K views
すまべんLite@関西#3
Shin Ise
•
1.2K views
すまべんLite@関西#2
Shin Ise
•
902 views
すごいHaskell読書会#10
Shin Ise
•
1.6K views
音声APIを使ってみる
Shin Ise
•
1.8K views
すまべんLite@関西#1
Shin Ise
•
1.4K views
Xamarin2.0であそぼう
Shin Ise
•
1.8K views
CoreBluetoothでつくるBluetooth Low Energyデバイス
Shin Ise
•
25K views
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
Shin Ise
•
1.5K views
GridViewのつかいかた
Shin Ise
•
1.3K views
iOSのVoiceOver対応開発 Rev2
Shin Ise
•
1.6K views
MediaLibrary で あそぼう
Shin Ise
•
614 views
実践 Reactive Extensions
Shin Ise
•
1.5K views
本当は怖いSilverlight for Windows Phone Toolkit
Shin Ise
•
660 views
Socketプログラム Silverlight for Windows Phoneへの移植のポイント
Shin Ise
•
706 views
Macで使うWindows Phone 7
Shin Ise
•
988 views
iOSのVoiceOver対応開発
Shin Ise
•
5.8K views
Galaxy tab で持ち歩くモバイルサーバー
Shin Ise
•
1.5K views
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
Shin Ise
•
908 views
Recently uploaded
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
125 views
•
31 slides
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
6 views
•
1 slide
磁石内臓イヤリングによる磁力変化を利用したジェスチャ識別
sugiuralab
7 views
•
1 slide
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
7 views
•
11 slides
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
149 views
•
12 slides
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
69 views
•
20 slides
Recently uploaded
(13)
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
•
125 views
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
•
6 views
磁石内臓イヤリングによる磁力変化を利用したジェスチャ識別
sugiuralab
•
7 views
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
•
7 views
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
•
149 views
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
•
69 views
CatBoost on GPU のひみつ
Takuji Tahara
•
780 views
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
•
28 views
画像生成AIの問題点
iPride Co., Ltd.
•
13 views
遠征ドルヲタのための便利サイトを作ってみた
Kenta Fujimoto
•
11 views
GraphQLはどんな時に使うか
Yutaka Tachibana
•
17 views
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
•
45 views
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
•
170 views
いまどきのiOSプログラミング with Xcode5
1.
いまどきの iOS プログラミング with
Xcode 5 伊勢 シン 2013/10/12 (Sat) プログラミング⽣生放送勉強会 第26回@⼤大阪
2.
⾃自⼰己紹介 • 伊勢 シン
/ 伊藤 伸裕 – @iseebi / id:iseebi • スマートフォンアプリ作ってます。 – iPhone / Android • コミュニティ – スマートフォン勉強会@関⻄西 • 最近は平⽇日夜のXamarin.Androidハンズオン 「すまべんLite」シリーズで細々継続中 – すごいHaskell読書会 in ⼤大阪 • H本読んでます。次回15⽇日
3.
まずはききたい • iOSプログラミングやったことある⼈人 • やったことあるけど挫折した⼈人 –
何がわからなかった? • 普段どんな⾔言語つかってる? – Java / PHP / Perl … – Objective-Cやってるひともかなりいるっぽいんですが… • 「っつーかプログラミングやったことねー」って⼈人
4.
むかしの iOS プログラミング •
メモリ管理理意味不不明 – alloc / init / release / autorelease … – 簡単にクラッシュする • 書くのが⼤大変 – ヘッダにプロパティ書いたら @synthesize かかないと – メソッドの順番を考慮しないといけない • 画⾯面遷移どうやって作るの? • iPhone 5 で解像度度増えやがった! • ライブラリ⼊入れるの、プロジェクトに ソースコード追加するとかわりと泥泥臭い。
5.
いまの iOS プログラミング •
ARC のおかげでお約束がだいぶ簡単になった! – 「たった4つのお約束」を守れば、そうクラッシュしない • 書き⽅方に対する制限が減った – @synthesize かかなくてOK – メソッドの順番気にしなくてOK – ラムダっぽいのもいける • 画⾯面遷移もGUIで作れるようになった • CocoaPods でライブラリを管理理できるようになっ た。
6.
ところで iOS 7
対応って地獄ってきくけど • そもそもデザイン変わったからあわせないと… • iOS 5/6までの⽅方法で作ってたアプリが 軒並み画⾯面ずれ – ⾒見見た⽬目がんばってたアプリほど悲しい思いをすることに • 激しい⾮非推奨の嵐嵐 – ⽂文字列列から直接画⾯面に描画するメソッド等 • iPhone 5s 64bit対応 – int とか long とかやばい • 6以上でARC,Storyboard,Autolayoutなやつを 7に対応するのはそんな⼤大変じゃなかった。 • 結論論:(6より)昔のことは忘れましょう。 (7より)未来のことを考えましょう。
7.
今⽇日お伝えすること • ほかのプラットフォームで開発したことはあるけど、 iOS 開発はちょっとわからない/挫折した⼈人向けに 今⾵風の
iOS プログラミングをおみせします。 – Xcode の操作⽅方法込みで、触りながらみていきます。 – とはいえ僕も全部理理解しているわけじゃないので、 突っ込み⼤大歓迎! • これだけ覚えていればだいたいOK。 伊勢的 Objective-C クラスの書き⽅方チャート • Storyboard の使い⽅方と Autolayout を使った 6/7 両対応 • CocoaPods を使ったライブラリの使⽤用 (時間あれば)
8.
伊勢的 Objective-C クラス 書き⽅方チャート 他の⾔言語をやったことのあるけどObjective-Cはじめての⼈人は これだけ覚えておけば、まずは⼤大丈夫!
9.
クラスの構成 • @interface と
@implementationにわかれてる。 • 1つのクラスに対して複数 @interface を書け、 メソッドを追加できる。 – 2つめ以降降は @interface ClassName(Hoge) と、 カテゴリをつける。 – 同じプロジェクトの中に @implementation があれば、 プロパティもかける。 – 無名のカテゴリをインプリメンテーションに書いて、 プライベートな宣⾔言にするのが常套⼿手段。
10.
チャート1: どこに何を書くか 公開メソッド 公開プロパティ ⾮非公開プロパティ 実装
11.
チャート1 補⾜足 • クラス変数は特別な事情がない限り使わない。 – ⾮非公開プロパティにする。 •
公開しないメソッドは宣⾔言に含めない。 • @synthesize も不不要になってるので書かない。 – 古いサンプルコピペしてくるときは注意
12.
Xcode のエディタを便便利利に使おう • Assistant
Editor を開くと並べてみれるよ! – ⌥⌘↩ で直接開けます。⌘↩で閉じれます。 • ⾒見見失ったら「Counterparts」をえらびなおそう • ⼊入⼒力力補完は ⎋ で出てくるよ! – でもわざわざ押さなくても、 ⼊入⼒力力してたらわりとさくさくっと出てきます。 • ⌘: command, ⌥ option (alt), ⎋ : esc
13.
Objective-C のクラスに書けるもの • プロパティ •
クラスメソッド • インスタンスメソッド • クラス変数 – 今はあまり使わない @property (assign, nonatomic) NSInteger step; + (id) valueWithData:(NSData *)data; - (void) introduceToUserWithTitle:(NSString *)title;
14.
Objective-C の変数型 • ⼤大きく分けて3つある。 Objective-Cの クラスインスタンス NS…
UI… とかの、Objective-C のクラスインスタンス。 Objective-C のオブジェクトだけ使ってるときは、 * のついてるやつがこれにあたる。 (実際はCベースの関数使ったりするとこの限りではない) 数値型 int long などの数値。あるいはenum値。 64bit 対応のために、なるべく NSInteger などの 定義されている⽅方を使った⽅方がよい Blocks ラムダ的なインライン関数 void (^completionBlock)(BOOL isSuccess);
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.
Blocks常套パターン • Blocks の中で
self (⾃自⼰己参照) をつかうと 循環参照で self が永遠に破棄されなくなる! • Blocks の外で __weak をつけた変数に 代⼊入してから使う。 – 型は __typeof(self) としておくと、 どこにコピペしてもちゃんと補完が効く • スニペットに登録すると簡単に⼊入⼒力力できる。 __weak __typeof(self) bself = self; [UIView animateWithDuration:0.5 animations:^{ bself.view.alpha = 0.5; }];
17.
メモリ管理理 4つのお約束 • ARCを使おう – ARC
= Automatic Reference Counter • iOS 5 のころから使えるようになったメモリ管理理⽅方法 • 参照カウンタ管理理をコンパイラが⽣生成してくれます。 • クラスに保存する値はプロパティを使おう – クラス変数を使わない • Blocks の中では weak self を使おう • コールバック⽤用で保持するものは weak を使おう – delegate など
18.
Xcode 5 +
Storyboard を使った 開発 Demo
19.
まとめ • Objective-C のメモリ管理理・クラスの書き⽅方は ARCを使って、最低限のルールを覚えればこわく ありませんよ。 •
Storyobard をつかえば簡単にUIや画⾯面遷移を つくれます。 • 6/7両対応はデザインのことをひとまず横において おけば、Autolayoutをつかえば簡単。 – 5のことはもうわすれよう