最近のiOS開発の現状と実状
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 5,960 views

 

Statistics

Views

Total Views
5,960
Views on SlideShare
5,655
Embed Views
305

Actions

Likes
9
Downloads
22
Comments
0

3 Embeds 305

http://dev.classmethod.jp 302
http://localhost 2
http://news.google.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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. プロフィール 平井 祐樹 • 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
  • 4. アジェンダCopyright ©Classmethod.inc All Right Reserved. 4
  • 5. アジェンダ 本日のアジェンダ 1. このセッションの目的 2. 今対象にすべきプラットフォームは? 3. 把握しておくべきはまりどころ 4. まとめCopyright ©Classmethod.inc All Right Reserved. 5
  • 6. このセッションの目的Copyright ©Classmethod.inc All Right Reserved. 6
  • 7. このセッションの目的 iOSアプリ開発を始める前に・・・ iOSのプラットフォームを 決めなければならないCopyright ©Classmethod.inc All Right Reserved. 7
  • 8. このセッションの目的Copyright ©Classmethod.inc All Right Reserved. 8
  • 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
  • 16. 今対象にすべきプラットフォームは?Copyright ©Classmethod.inc All Right Reserved. 16
  • 17. 結論Copyright ©Classmethod.inc All Right Reserved. 17
  • 18. 結論Copyright ©Classmethod.inc All Right Reserved. 18
  • 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/1347504706Copyright ©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.htmlCopyright ©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
  • 37. iOS5.x以降でサポートされるデバイスCopyright ©Classmethod.inc All Right Reserved. 37
  • 38. iOS5.x以降でサポートされるデバイスCopyright ©Classmethod.inc All Right Reserved. 38
  • 39. 今対象にすべきプラットフォームは? 結論 iOSのバージョンは・・・ iOS 5 〜 iPhoneは・・・ iPhone 3GS 〜 iPadは・・・ 全部 iPod Touchは・・・ 第3世代〜Copyright ©Classmethod.inc All Right Reserved. 39
  • 40. 把握しておくべきはまりどころCopyright ©Classmethod.inc All Right Reserved. 40
  • 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.モーダルウィンドウで表示 50Copyright ©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.回転OKCopyright ©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.回転OKCopyright ©Classmethod.inc All Right Reserved. 56
  • 57. 3.画面回転の対応方法が違う サンプルソース 最初にこのメソッドが呼ばれる shouldAutorotateメソッドがYESを 返した場合のみ呼ばれるCopyright ©Classmethod.inc All Right Reserved. 57
  • 58. まとめCopyright ©Classmethod.inc All Right Reserved. 58
  • 59. 対象にすべきプラットフォームは?Copyright ©Classmethod.inc All Right Reserved. 59
  • 60. 対象にすべきプラットフォームは?Copyright ©Classmethod.inc All Right Reserved. 60
  • 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
  • 66. ご清聴ありがとうございました。Copyright ©Classmethod.inc All Right Reserved. 66