More Related Content
Similar to 最近のiOS開発の現状と実状
Similar to 最近のiOS開発の現状と実状 (20)
More from クラスメソッド株式会社 (10)
最近のiOS開発の現状と実状
- 1. Title 最近のiOS開発の現状と実状
Sub ~クラスメソッド課外授業2日目~
http://classmethod.jp/
Author
平井 祐樹
Date
2012/12/10
Vol. Version
1.0 1.0
Copyright ©Classmethod.inc All Right Reserved. 1
- 2. プロフィール
平井 祐樹
• iPhone/iPadなどのiOSアプリ開発を主に担当しています。
• ちょっと前まではWEBアプリエンジニアでした。
• 得意な言語はObjective-C、PHP、JSです。
• http://dev.classmethod.jp/author/hirai-yuki/
Copyright ©Classmethod.inc All Right Reserved. 2
- 3. プロフィール
目標:モテるシステムエンジニア!
Copyright ©Classmethod.inc All Right Reserved. 3
- 5. アジェンダ
本日のアジェンダ
1. このセッションの目的
2. 今対象にすべきプラットフォームは?
3. 把握しておくべきはまりどころ
4. まとめ
Copyright ©Classmethod.inc All Right Reserved. 5
- 7. このセッションの目的
iOSアプリ開発を始める前に・・・
iOSのプラットフォームを
決めなければならない
Copyright ©Classmethod.inc All Right Reserved. 7
- 9. このセッションの目的
意外とたくさんある!!
(Androidよりはマシですが・・・)
Copyright ©Classmethod.inc All Right Reserved. 9
- 10. このセッションの目的
どれを選べばいいの?
Copyright ©Classmethod.inc All Right Reserved. 10
- 11. このセッションの目的
全部を対象にすると・・・
新機能が使えない
実装・テスト工数の増化
Copyright ©Classmethod.inc All Right Reserved. 11
- 12. このセッションの目的
最新のプラットフォームのみを対象にすると・・・
古いプラットフォームの
ユーザーが利用できない!!
Copyright ©Classmethod.inc All Right Reserved. 12
- 13. このセッションの目的
どうすればいいの?
Copyright ©Classmethod.inc All Right Reserved. 13
- 14. このセッションの目的
このセッションの目的
Copyright ©Classmethod.inc All Right Reserved. 14
- 15. このセッションの目的
iOS界隈の現状を把握した上で
実状に則したプラットフォームを導出し
はまりどころを理解して
効率良くiOSアプリを開発しよう!
Copyright ©Classmethod.inc All Right Reserved. 15
- 19. 根拠
以下の3つの視点から分析
1. iOSの普及率
2. 有名iOSアプリの対応状況
3. 開発作業
Copyright ©Classmethod.inc All Right Reserved. 19
- 20. 根拠
1.iOSの普及率
Copyright ©Classmethod.inc All Right Reserved. 20
- 21. 1.iOSの普及率
アメリカ・カナダのデータ (2012/9/18〜10/19)
iOSの普及率
1%
9%
アメリカ・カナダ iOS 4.x以前の普及率は・・・
29%
iOS 6
10%!! 61% iOS 5.x
iOS 4.x
その他
参考:http://d.hatena.ne.jp/ntaku/20120913/1347504706
Copyright ©Classmethod.inc All Right Reserved. 21
- 22. 1.iOSの普及率
国内のデータ (2012/8/13~9/12)
国内でのiOS普及率
13%
国内でのiOS 4.x以前のシェアは・・・
3ヶ月前で13%!! iOS 5.x
iOS 4.x
87%
参考:http://ameblo.jp/tomotaken/entry-11225460691.html
Copyright ©Classmethod.inc All Right Reserved. 22
- 23. 1.iOSの普及率
iOSの普及率の視点から見ると・・・
Copyright ©Classmethod.inc All Right Reserved. 23
- 24. 1.iOSの普及率
iOSの普及率の視点から見ると・・・
Copyright ©Classmethod.inc All Right Reserved. 24
- 25. 根拠
2.有名iOSアプリの対応状況
Copyright ©Classmethod.inc All Right Reserved. 25
- 26. 2.有名iOSアプリの対応状況
iOS 5.xからアップデート可能な有名アプリ
アップル純正のアプリ
その他のアプリ
Copyright ©Classmethod.inc All Right Reserved. 26
- 27. 2.有名iOSアプリの対応状況
有名iOSアプリの対応状況の視点から見ると・・・
Copyright ©Classmethod.inc All Right Reserved. 27
- 28. 2.有名iOSアプリの対応状況
有名iOSアプリの対応状況の視点から見ると・・・
Copyright ©Classmethod.inc All Right Reserved. 28
- 29. 根拠
3.開発環境
Copyright ©Classmethod.inc All Right Reserved. 29
- 30. 3.開発環境
Xcode4.5以降では・・・
iOS 4.3未満は対象にできない
Copyright ©Classmethod.inc All Right Reserved. 30
- 31. 3.開発環境
さらに・・・
最新の開発環境である
Mac OS X 10.8 Mountain Lion かつ Xcode 4.5
だと、
iOS 4.3のシミュレータが
動作しない!!
(Mac OS X 10.7 Lionならなんとかなる模様)
Copyright ©Classmethod.inc All Right Reserved. 31
- 32. 3.開発環境
iOS 5以降をターゲットに含めた場合
Storyboardが使える
ARCに完全対応したプログラムが書ける(iOS4.xではweak修飾子が使えない)
便利なフレームワークが使える
Core Image Framework
Core Bluetooth Framework
GLKit Framework
実装工数の削減!!
Copyright ©Classmethod.inc All Right Reserved. 32
- 33. 3.開発環境
開発環境の視点から見ると・・・
Copyright ©Classmethod.inc All Right Reserved. 33
- 34. 3.開発環境
開発環境の視点から見ると・・・
Copyright ©Classmethod.inc All Right Reserved. 34
- 35. 根拠
以上の3つの視点から分析すると
1. iOSの普及率
2. 有名iOSアプリの対応状況
3. 開発環境
対象とするiOSはiOS5.x以降!!
Copyright ©Classmethod.inc All Right Reserved. 35
- 36. 今対象にすべきプラットフォームは?
iOS5.x以降で
サポートされるデバイス
Copyright ©Classmethod.inc All Right Reserved. 36
- 39. 今対象にすべきプラットフォームは?
結論
iOSのバージョンは・・・
iOS 5 〜
iPhoneは・・・
iPhone 3GS 〜
iPadは・・・
全部
iPod Touchは・・・
第3世代〜
Copyright ©Classmethod.inc All Right Reserved. 39
- 41. 今対象にすべきプラットフォームは?
結論
iOSのバージョンは・・・
iOS 5.xとiOS 6.xの両方の
iOS 5 〜 対応が必要!!
iPhoneは・・・
iPhone 3GS 〜
iPadは・・・
全部
iPod Touchは・・・
第3世代〜
Copyright ©Classmethod.inc All Right Reserved. 41
- 42. 把握しておくべきはまりどころ
iOS5.x/iOS6.xを対応する場合
以下の3つのはまりどころがある!!
1. iOS5ではAutolayoutが使えない
2. ビューコントローラのライフサイクルが違う
3. 画面回転の対応方法が違う
Copyright ©Classmethod.inc All Right Reserved. 42
- 43. 把握しておくべきはまりどころ
1.iOS5ではAutolayoutが使えない
Copyright ©Classmethod.inc All Right Reserved. 43
- 44. 1.iOS5ではAutolayoutが使えない
Autolayoutは
iOS 6からの新機能なのでiOS 5では使えないのに
Xcode4.5だと
xxx.storyboardやxxx.xib作成時に
無条件で有効になる!
iOS 5.xだと例外が発生してしまう!
Copyright ©Classmethod.inc All Right Reserved. 44
- 45. 1.iOS5ではAutolayoutが使えない
解決方法
xxx.storyboardやxxx.xib作成時に「Use Autolayout」を無効にする!!
チェックを外す
Copyright ©Classmethod.inc All Right Reserved. 45
- 46. 把握しておくべきはまりどころ
2.ビューコントローラの
ライフサイクルが違う
Copyright ©Classmethod.inc All Right Reserved. 46
- 47. 2.ビューコントローラのライフサイクルが違う
iOS 6からの変更点
iOS 6から
viewDidUnloadメソッドが
呼ばれなくなった!!
Copyright ©Classmethod.inc All Right Reserved. 47
- 48. 2.ビューコントローラのライフサイクルが違う
viewDidUnloadの役割
3.ViewDidUnloadで
メモリ解放!!
iOS 6では
ViewDidUnloadが呼ばれない!!
2.メモリ警告!!
1.モーダルウィンドウで表示
Copyright ©Classmethod.inc All Right Reserved. 48
- 49. 2.ビューコントローラのライフサイクルが違う
解決方法
iOS 6では
didReceiveMemoryWarningメソッド
を使う!!
Copyright ©Classmethod.inc All Right Reserved. 49
- 50. 2.ビューコントローラのライフサイクルが違う
解決方法
3. didReceiveMemoryWarningで
メモリ解放!!
2.メモリ警告!!
1.モーダルウィンドウで表示
50
Copyright ©Classmethod.inc All Right Reserved.
- 51. 2.ビューコントローラのライフサイクルが違う
サンプルソース
• iOS 5でも呼ばれる
• メモリ警告が発生するとすべての
ビューコントローラで呼ばれる
Copyright ©Classmethod.inc All Right Reserved. 51
- 52. 把握しておくべきはまりどころ
3.画面回転の対応方法が違う
Copyright ©Classmethod.inc All Right Reserved. 52
- 53. 3.画面回転の対応方法が違う
iOS 6からの変更点
iOS 6から
shouldAutorotateToInterfaceOrientation:
メソッドが呼ばれなくなった!!
Copyright ©Classmethod.inc All Right Reserved. 53
- 54. 3.画面回転の対応方法が違う
iOS 6からの変更点
shouldAutorotateToInterfaceOrientation:メソッドの役割
iOS 6では
shouldAutorotateToInterfaceOrientation:が呼ばれない!!
2.shouldAutorotateToInterfaceOrientation:が
呼ばれて、回転してもいいか確認!!
1.回転 3.回転OK
Copyright ©Classmethod.inc All Right Reserved. 54
- 55. 3.画面回転の対応方法が違う
解決方法
iOS 6では
shouldAutorotateメソッドと
supportedInterfaceOrientationsメソッド
を使う!!
Copyright ©Classmethod.inc All Right Reserved. 55
- 56. 3.画面回転の対応方法が違う
iOS 6からの変更点
2. shouldAutorotateメソッドと
supportedInterfaceOrientationsメソッドが
呼ばれて回転してもいいか確認!!
1.回転 3.回転OK
Copyright ©Classmethod.inc All Right Reserved. 56
- 57. 3.画面回転の対応方法が違う
サンプルソース
最初にこのメソッドが呼ばれる
shouldAutorotateメソッドがYESを
返した場合のみ呼ばれる
Copyright ©Classmethod.inc All Right Reserved. 57
- 61. 把握しておくべきはまりどころ
iOS 5.x/iOS 6.xを対応する場合の3つのはまりどころ
1. iOS5ではAutolayoutが使えない
2. ビューコントローラのライフサイクルが違う
3. 画面回転の対応方法が違う
Copyright ©Classmethod.inc All Right Reserved. 61
- 62. まとめ
効率良くiOSアプリを開発しよう!
Copyright ©Classmethod.inc All Right Reserved. 62
- 63. まとめ
本音を言うと・・・
理想はiOS 6以降のみ対応!
現状はまだ無理!!
(地図アプリの影響もある)
Copyright ©Classmethod.inc All Right Reserved. 63
- 64. まとめ
iOSアプリ開発のいいところ
対象のプラットフォームが少ない
新しいプラットフォームへの移行が早い
この流れを止めてはいけない!!
Copyright ©Classmethod.inc All Right Reserved. 64
- 65. まとめ
iOSアプリ開発者として
魅力的なiOSアプリを開発し
最新のプラットフォームへの移行を促す
ぐらいの意気込みで取り組むべき!!
Copyright ©Classmethod.inc All Right Reserved. 65