最近のiOS開発の現状と実状

5,563 views
5,428 views

Published on

最近のiOS開発の現状と実状

  1. 1. Title 最近のiOS開発の現状と実状 Sub ~クラスメソッド課外授業2日目~ http://classmethod.jp/ Author 平井 祐樹 Date 2012/12/10 Vol. Version 1.0 1.0Copyright ©Classmethod.inc All Right Reserved. 1
  2. 2. プロフィール 平井 祐樹 • iPhone/iPadなどのiOSアプリ開発を主に担当しています。 • ちょっと前まではWEBアプリエンジニアでした。 • 得意な言語はObjective-C、PHP、JSです。 • http://dev.classmethod.jp/author/hirai-yuki/Copyright ©Classmethod.inc All Right Reserved. 2
  3. 3. プロフィール 目標:モテるシステムエンジニア!Copyright ©Classmethod.inc All Right Reserved. 3
  4. 4. アジェンダCopyright ©Classmethod.inc All Right Reserved. 4
  5. 5. アジェンダ 本日のアジェンダ 1. このセッションの目的 2. 今対象にすべきプラットフォームは? 3. 把握しておくべきはまりどころ 4. まとめCopyright ©Classmethod.inc All Right Reserved. 5
  6. 6. このセッションの目的Copyright ©Classmethod.inc All Right Reserved. 6
  7. 7. このセッションの目的 iOSアプリ開発を始める前に・・・ iOSのプラットフォームを 決めなければならないCopyright ©Classmethod.inc All Right Reserved. 7
  8. 8. このセッションの目的Copyright ©Classmethod.inc All Right Reserved. 8
  9. 9. このセッションの目的 意外とたくさんある!! (Androidよりはマシですが・・・)Copyright ©Classmethod.inc All Right Reserved. 9
  10. 10. このセッションの目的 どれを選べばいいの?Copyright ©Classmethod.inc All Right Reserved. 10
  11. 11. このセッションの目的 全部を対象にすると・・・  新機能が使えない  実装・テスト工数の増化Copyright ©Classmethod.inc All Right Reserved. 11
  12. 12. このセッションの目的 最新のプラットフォームのみを対象にすると・・・  古いプラットフォームの ユーザーが利用できない!!Copyright ©Classmethod.inc All Right Reserved. 12
  13. 13. このセッションの目的 どうすればいいの?Copyright ©Classmethod.inc All Right Reserved. 13
  14. 14. このセッションの目的 このセッションの目的Copyright ©Classmethod.inc All Right Reserved. 14
  15. 15. このセッションの目的  iOS界隈の現状を把握した上で  実状に則したプラットフォームを導出し  はまりどころを理解して 効率良くiOSアプリを開発しよう!Copyright ©Classmethod.inc All Right Reserved. 15
  16. 16. 今対象にすべきプラットフォームは?Copyright ©Classmethod.inc All Right Reserved. 16
  17. 17. 結論Copyright ©Classmethod.inc All Right Reserved. 17
  18. 18. 結論Copyright ©Classmethod.inc All Right Reserved. 18
  19. 19. 根拠 以下の3つの視点から分析 1. iOSの普及率 2. 有名iOSアプリの対応状況 3. 開発作業Copyright ©Classmethod.inc All Right Reserved. 19
  20. 20. 根拠 1.iOSの普及率Copyright ©Classmethod.inc All Right Reserved. 20
  21. 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/1347504706Copyright ©Classmethod.inc All Right Reserved. 21
  22. 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.htmlCopyright ©Classmethod.inc All Right Reserved. 22
  23. 23. 1.iOSの普及率 iOSの普及率の視点から見ると・・・Copyright ©Classmethod.inc All Right Reserved. 23
  24. 24. 1.iOSの普及率 iOSの普及率の視点から見ると・・・Copyright ©Classmethod.inc All Right Reserved. 24
  25. 25. 根拠 2.有名iOSアプリの対応状況Copyright ©Classmethod.inc All Right Reserved. 25
  26. 26. 2.有名iOSアプリの対応状況 iOS 5.xからアップデート可能な有名アプリ アップル純正のアプリ その他のアプリCopyright ©Classmethod.inc All Right Reserved. 26
  27. 27. 2.有名iOSアプリの対応状況 有名iOSアプリの対応状況の視点から見ると・・・Copyright ©Classmethod.inc All Right Reserved. 27
  28. 28. 2.有名iOSアプリの対応状況 有名iOSアプリの対応状況の視点から見ると・・・Copyright ©Classmethod.inc All Right Reserved. 28
  29. 29. 根拠 3.開発環境Copyright ©Classmethod.inc All Right Reserved. 29
  30. 30. 3.開発環境 Xcode4.5以降では・・・ iOS 4.3未満は対象にできないCopyright ©Classmethod.inc All Right Reserved. 30
  31. 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. 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. 33. 3.開発環境 開発環境の視点から見ると・・・Copyright ©Classmethod.inc All Right Reserved. 33
  34. 34. 3.開発環境 開発環境の視点から見ると・・・Copyright ©Classmethod.inc All Right Reserved. 34
  35. 35. 根拠 以上の3つの視点から分析すると 1. iOSの普及率 2. 有名iOSアプリの対応状況 3. 開発環境 対象とするiOSはiOS5.x以降!!Copyright ©Classmethod.inc All Right Reserved. 35
  36. 36. 今対象にすべきプラットフォームは? iOS5.x以降で サポートされるデバイスCopyright ©Classmethod.inc All Right Reserved. 36
  37. 37. iOS5.x以降でサポートされるデバイスCopyright ©Classmethod.inc All Right Reserved. 37
  38. 38. iOS5.x以降でサポートされるデバイスCopyright ©Classmethod.inc All Right Reserved. 38
  39. 39. 今対象にすべきプラットフォームは? 結論 iOSのバージョンは・・・ iOS 5 〜 iPhoneは・・・ iPhone 3GS 〜 iPadは・・・ 全部 iPod Touchは・・・ 第3世代〜Copyright ©Classmethod.inc All Right Reserved. 39
  40. 40. 把握しておくべきはまりどころCopyright ©Classmethod.inc All Right Reserved. 40
  41. 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. 42. 把握しておくべきはまりどころ iOS5.x/iOS6.xを対応する場合 以下の3つのはまりどころがある!! 1. iOS5ではAutolayoutが使えない 2. ビューコントローラのライフサイクルが違う 3. 画面回転の対応方法が違うCopyright ©Classmethod.inc All Right Reserved. 42
  43. 43. 把握しておくべきはまりどころ 1.iOS5ではAutolayoutが使えないCopyright ©Classmethod.inc All Right Reserved. 43
  44. 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. 45. 1.iOS5ではAutolayoutが使えない 解決方法 xxx.storyboardやxxx.xib作成時に「Use Autolayout」を無効にする!! チェックを外すCopyright ©Classmethod.inc All Right Reserved. 45
  46. 46. 把握しておくべきはまりどころ 2.ビューコントローラの ライフサイクルが違うCopyright ©Classmethod.inc All Right Reserved. 46
  47. 47. 2.ビューコントローラのライフサイクルが違う iOS 6からの変更点 iOS 6から viewDidUnloadメソッドが 呼ばれなくなった!!Copyright ©Classmethod.inc All Right Reserved. 47
  48. 48. 2.ビューコントローラのライフサイクルが違う viewDidUnloadの役割 3.ViewDidUnloadで メモリ解放!! iOS 6では ViewDidUnloadが呼ばれない!! 2.メモリ警告!! 1.モーダルウィンドウで表示Copyright ©Classmethod.inc All Right Reserved. 48
  49. 49. 2.ビューコントローラのライフサイクルが違う 解決方法 iOS 6では didReceiveMemoryWarningメソッド を使う!!Copyright ©Classmethod.inc All Right Reserved. 49
  50. 50. 2.ビューコントローラのライフサイクルが違う 解決方法 3. didReceiveMemoryWarningで メモリ解放!! 2.メモリ警告!! 1.モーダルウィンドウで表示 50Copyright ©Classmethod.inc All Right Reserved.
  51. 51. 2.ビューコントローラのライフサイクルが違う サンプルソース • iOS 5でも呼ばれる • メモリ警告が発生するとすべての ビューコントローラで呼ばれるCopyright ©Classmethod.inc All Right Reserved. 51
  52. 52. 把握しておくべきはまりどころ 3.画面回転の対応方法が違うCopyright ©Classmethod.inc All Right Reserved. 52
  53. 53. 3.画面回転の対応方法が違う iOS 6からの変更点 iOS 6から shouldAutorotateToInterfaceOrientation: メソッドが呼ばれなくなった!!Copyright ©Classmethod.inc All Right Reserved. 53
  54. 54. 3.画面回転の対応方法が違う iOS 6からの変更点 shouldAutorotateToInterfaceOrientation:メソッドの役割 iOS 6では shouldAutorotateToInterfaceOrientation:が呼ばれない!! 2.shouldAutorotateToInterfaceOrientation:が 呼ばれて、回転してもいいか確認!! 1.回転 3.回転OKCopyright ©Classmethod.inc All Right Reserved. 54
  55. 55. 3.画面回転の対応方法が違う 解決方法 iOS 6では shouldAutorotateメソッドと supportedInterfaceOrientationsメソッド を使う!!Copyright ©Classmethod.inc All Right Reserved. 55
  56. 56. 3.画面回転の対応方法が違う iOS 6からの変更点 2. shouldAutorotateメソッドと supportedInterfaceOrientationsメソッドが 呼ばれて回転してもいいか確認!! 1.回転 3.回転OKCopyright ©Classmethod.inc All Right Reserved. 56
  57. 57. 3.画面回転の対応方法が違う サンプルソース 最初にこのメソッドが呼ばれる shouldAutorotateメソッドがYESを 返した場合のみ呼ばれるCopyright ©Classmethod.inc All Right Reserved. 57
  58. 58. まとめCopyright ©Classmethod.inc All Right Reserved. 58
  59. 59. 対象にすべきプラットフォームは?Copyright ©Classmethod.inc All Right Reserved. 59
  60. 60. 対象にすべきプラットフォームは?Copyright ©Classmethod.inc All Right Reserved. 60
  61. 61. 把握しておくべきはまりどころ iOS 5.x/iOS 6.xを対応する場合の3つのはまりどころ 1. iOS5ではAutolayoutが使えない 2. ビューコントローラのライフサイクルが違う 3. 画面回転の対応方法が違うCopyright ©Classmethod.inc All Right Reserved. 61
  62. 62. まとめ 効率良くiOSアプリを開発しよう!Copyright ©Classmethod.inc All Right Reserved. 62
  63. 63. まとめ 本音を言うと・・・ 理想はiOS 6以降のみ対応! 現状はまだ無理!! (地図アプリの影響もある)Copyright ©Classmethod.inc All Right Reserved. 63
  64. 64. まとめ iOSアプリ開発のいいところ  対象のプラットフォームが少ない  新しいプラットフォームへの移行が早い この流れを止めてはいけない!!Copyright ©Classmethod.inc All Right Reserved. 64
  65. 65. まとめ iOSアプリ開発者として 魅力的なiOSアプリを開発し 最新のプラットフォームへの移行を促す ぐらいの意気込みで取り組むべき!!Copyright ©Classmethod.inc All Right Reserved. 65
  66. 66. ご清聴ありがとうございました。Copyright ©Classmethod.inc All Right Reserved. 66

×