SlideShare une entreprise Scribd logo
1  sur  67
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
プロフィール



    平井                              祐樹
    •     iPhone/iPadなどのiOSアプリ開発を主に担当しています。

    •     ちょっと前まではWEBアプリエンジニアでした。

    •     得意な言語はObjective-C、PHP、JSです。

    •     http://dev.classmethod.jp/author/hirai-yuki/




Copyright ©Classmethod.inc All Right Reserved.           2
プロフィール




      目標:モテるシステムエンジニア!
Copyright ©Classmethod.inc All Right Reserved.   3
アジェンダ




Copyright ©Classmethod.inc All Right Reserved.   4
アジェンダ


    本日のアジェンダ
    1. このセッションの目的

    2. 今対象にすべきプラットフォームは?

    3. 把握しておくべきはまりどころ

    4. まとめ




Copyright ©Classmethod.inc All Right Reserved.   5
このセッションの目的




Copyright ©Classmethod.inc All Right Reserved.   6
このセッションの目的


    iOSアプリ開発を始める前に・・・




                  iOSのプラットフォームを
                    決めなければならない



Copyright ©Classmethod.inc All Right Reserved.   7
このセッションの目的




Copyright ©Classmethod.inc All Right Reserved.   8
このセッションの目的




                     意外とたくさんある!!
                                           (Androidよりはマシですが・・・)




Copyright ©Classmethod.inc All Right Reserved.                    9
このセッションの目的




                            どれを選べばいいの?



Copyright ©Classmethod.inc All Right Reserved.   10
このセッションの目的




          全部を対象にすると・・・



                     新機能が使えない
                     実装・テスト工数の増化




Copyright ©Classmethod.inc All Right Reserved.   11
このセッションの目的




          最新のプラットフォームのみを対象にすると・・・



                     古いプラットフォームの
                      ユーザーが利用できない!!




Copyright ©Classmethod.inc All Right Reserved.   12
このセッションの目的




                                  どうすればいいの?



Copyright ©Classmethod.inc All Right Reserved.   13
このセッションの目的




                            このセッションの目的



Copyright ©Classmethod.inc All Right Reserved.   14
このセッションの目的



     iOS界隈の現状を把握した上で
     実状に則したプラットフォームを導出し
     はまりどころを理解して


                 効率良くiOSアプリを開発しよう!




Copyright ©Classmethod.inc All Right Reserved.   15
今対象にすべきプラットフォームは?




Copyright ©Classmethod.inc All Right Reserved.   16
結論




Copyright ©Classmethod.inc All Right Reserved.   17
結論




Copyright ©Classmethod.inc All Right Reserved.   18
根拠


    以下の3つの視点から分析
    1. iOSの普及率

    2. 有名iOSアプリの対応状況

    3. 開発作業




Copyright ©Classmethod.inc All Right Reserved.   19
根拠




                                            1.iOSの普及率




Copyright ©Classmethod.inc All Right Reserved.          20
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
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
1.iOSの普及率


    iOSの普及率の視点から見ると・・・




Copyright ©Classmethod.inc All Right Reserved.   23
1.iOSの普及率


    iOSの普及率の視点から見ると・・・




Copyright ©Classmethod.inc All Right Reserved.   24
根拠




    2.有名iOSアプリの対応状況



Copyright ©Classmethod.inc All Right Reserved.   25
2.有名iOSアプリの対応状況


    iOS 5.xからアップデート可能な有名アプリ
    アップル純正のアプリ




    その他のアプリ




Copyright ©Classmethod.inc All Right Reserved.   26
2.有名iOSアプリの対応状況


    有名iOSアプリの対応状況の視点から見ると・・・




Copyright ©Classmethod.inc All Right Reserved.   27
2.有名iOSアプリの対応状況


    有名iOSアプリの対応状況の視点から見ると・・・




Copyright ©Classmethod.inc All Right Reserved.   28
根拠




    3.開発環境



Copyright ©Classmethod.inc All Right Reserved.   29
3.開発環境


    Xcode4.5以降では・・・




       iOS 4.3未満は対象にできない

Copyright ©Classmethod.inc All Right Reserved.   30
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
3.開発環境


    iOS 5以降をターゲットに含めた場合
          Storyboardが使える

          ARCに完全対応したプログラムが書ける(iOS4.xではweak修飾子が使えない)

          便利なフレームワークが使える

                     Core Image Framework

                     Core Bluetooth Framework

                     GLKit Framework




                                  実装工数の削減!!
Copyright ©Classmethod.inc All Right Reserved.         32
3.開発環境


    開発環境の視点から見ると・・・




Copyright ©Classmethod.inc All Right Reserved.   33
3.開発環境


    開発環境の視点から見ると・・・




Copyright ©Classmethod.inc All Right Reserved.   34
根拠


    以上の3つの視点から分析すると
    1. iOSの普及率

    2. 有名iOSアプリの対応状況

    3. 開発環境




               対象とするiOSはiOS5.x以降!!




Copyright ©Classmethod.inc All Right Reserved.   35
今対象にすべきプラットフォームは?




                                                 iOS5.x以降で

                     サポートされるデバイス


Copyright ©Classmethod.inc All Right Reserved.               36
iOS5.x以降でサポートされるデバイス




Copyright ©Classmethod.inc All Right Reserved.   37
iOS5.x以降でサポートされるデバイス




Copyright ©Classmethod.inc All Right Reserved.   38
今対象にすべきプラットフォームは?


    結論
    iOSのバージョンは・・・



                       iOS 5 〜
    iPhoneは・・・



                       iPhone 3GS 〜
    iPadは・・・



                       全部
    iPod Touchは・・・



                       第3世代〜

Copyright ©Classmethod.inc All Right Reserved.   39
把握しておくべきはまりどころ




Copyright ©Classmethod.inc All Right Reserved.   40
今対象にすべきプラットフォームは?


    結論
    iOSのバージョンは・・・
                                                 iOS 5.xとiOS 6.xの両方の
                       iOS 5 〜                         対応が必要!!
    iPhoneは・・・



                       iPhone 3GS 〜
    iPadは・・・



                       全部
    iPod Touchは・・・



                       第3世代〜

Copyright ©Classmethod.inc All Right Reserved.                         41
把握しておくべきはまりどころ


    iOS5.x/iOS6.xを対応する場合
              以下の3つのはまりどころがある!!
              1. iOS5ではAutolayoutが使えない

              2. ビューコントローラのライフサイクルが違う

              3. 画面回転の対応方法が違う




Copyright ©Classmethod.inc All Right Reserved.   42
把握しておくべきはまりどころ




        1.iOS5ではAutolayoutが使えない




Copyright ©Classmethod.inc All Right Reserved.   43
1.iOS5ではAutolayoutが使えない


    Autolayoutは
    iOS 6からの新機能なのでiOS 5では使えないのに



                                                  Xcode4.5だと

                      xxx.storyboardやxxx.xib作成時に

                                                 無条件で有効になる!



                       iOS 5.xだと例外が発生してしまう!
Copyright ©Classmethod.inc All Right Reserved.                 44
1.iOS5ではAutolayoutが使えない


    解決方法
    xxx.storyboardやxxx.xib作成時に「Use Autolayout」を無効にする!!




                                    チェックを外す




Copyright ©Classmethod.inc All Right Reserved.           45
把握しておくべきはまりどころ




                            2.ビューコントローラの

                                       ライフサイクルが違う



Copyright ©Classmethod.inc All Right Reserved.      46
2.ビューコントローラのライフサイクルが違う


    iOS 6からの変更点
    iOS 6から



                  viewDidUnloadメソッドが

                            呼ばれなくなった!!



Copyright ©Classmethod.inc All Right Reserved.   47
2.ビューコントローラのライフサイクルが違う


    viewDidUnloadの役割


                                                   3.ViewDidUnloadで
                                                   メモリ解放!!

                                                 iOS 6では
                                                 ViewDidUnloadが呼ばれない!!
                                                                         2.メモリ警告!!

                                                   1.モーダルウィンドウで表示




Copyright ©Classmethod.inc All Right Reserved.                                       48
2.ビューコントローラのライフサイクルが違う


    解決方法
    iOS 6では

                         didReceiveMemoryWarningメソッド

                                                 を使う!!




Copyright ©Classmethod.inc All Right Reserved.           49
2.ビューコントローラのライフサイクルが違う


    解決方法

                                                 3. didReceiveMemoryWarningで
                                                  メモリ解放!!


                                                                               2.メモリ警告!!

                                                 1.モーダルウィンドウで表示




                                                                                           50


Copyright ©Classmethod.inc All Right Reserved.
2.ビューコントローラのライフサイクルが違う


    サンプルソース


                                                 • iOS 5でも呼ばれる
                                                 • メモリ警告が発生するとすべての
                                                   ビューコントローラで呼ばれる




Copyright ©Classmethod.inc All Right Reserved.                       51
把握しておくべきはまりどころ




                 3.画面回転の対応方法が違う




Copyright ©Classmethod.inc All Right Reserved.   52
3.画面回転の対応方法が違う


    iOS 6からの変更点
    iOS 6から


      shouldAutorotateToInterfaceOrientation:
                    メソッドが呼ばれなくなった!!




Copyright ©Classmethod.inc All Right Reserved.   53
3.画面回転の対応方法が違う


    iOS 6からの変更点
    shouldAutorotateToInterfaceOrientation:メソッドの役割

                                                 iOS 6では
                                                 shouldAutorotateToInterfaceOrientation:が呼ばれない!!

                                                   2.shouldAutorotateToInterfaceOrientation:が
                                                      呼ばれて、回転してもいいか確認!!




                                           1.回転               3.回転OK




Copyright ©Classmethod.inc All Right Reserved.                                                     54
3.画面回転の対応方法が違う


    解決方法
    iOS 6では

                                 shouldAutorotateメソッドと

      supportedInterfaceOrientationsメソッド

                                                 を使う!!




Copyright ©Classmethod.inc All Right Reserved.           55
3.画面回転の対応方法が違う


    iOS 6からの変更点


                                                      2. shouldAutorotateメソッドと
                                                 supportedInterfaceOrientationsメソッドが
                                                     呼ばれて回転してもいいか確認!!




                                         1.回転             3.回転OK




Copyright ©Classmethod.inc All Right Reserved.                                         56
3.画面回転の対応方法が違う


    サンプルソース




                                                 最初にこのメソッドが呼ばれる


                                                      shouldAutorotateメソッドがYESを
                                                      返した場合のみ呼ばれる




Copyright ©Classmethod.inc All Right Reserved.                                    57
まとめ




Copyright ©Classmethod.inc All Right Reserved.   58
対象にすべきプラットフォームは?




Copyright ©Classmethod.inc All Right Reserved.   59
対象にすべきプラットフォームは?




Copyright ©Classmethod.inc All Right Reserved.   60
把握しておくべきはまりどころ



    iOS 5.x/iOS 6.xを対応する場合の3つのはまりどころ

    1. iOS5ではAutolayoutが使えない

    2. ビューコントローラのライフサイクルが違う

    3. 画面回転の対応方法が違う




Copyright ©Classmethod.inc All Right Reserved.   61
まとめ




         効率良くiOSアプリを開発しよう!




Copyright ©Classmethod.inc All Right Reserved.   62
まとめ


    本音を言うと・・・

                                       理想はiOS 6以降のみ対応!



                                                 現状はまだ無理!!

                                    (地図アプリの影響もある)




Copyright ©Classmethod.inc All Right Reserved.               63
まとめ


    iOSアプリ開発のいいところ

     対象のプラットフォームが少ない

     新しいプラットフォームへの移行が早い



                    この流れを止めてはいけない!!




Copyright ©Classmethod.inc All Right Reserved.   64
まとめ


    iOSアプリ開発者として

                                       魅力的なiOSアプリを開発し

               最新のプラットフォームへの移行を促す

                   ぐらいの意気込みで取り組むべき!!




Copyright ©Classmethod.inc All Right Reserved.          65
ご清聴ありがとうございました。




Copyright ©Classmethod.inc All Right Reserved.   66
最近のiOS開発の現状と実状

Contenu connexe

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

20140918 i os8イベント_ios-history (公開用)
20140918 i os8イベント_ios-history (公開用)20140918 i os8イベント_ios-history (公開用)
20140918 i os8イベント_ios-history (公開用)Rikitake Oohashi
 
コンテンツプラットフォームとしてのAndroidの将来性
コンテンツプラットフォームとしてのAndroidの将来性コンテンツプラットフォームとしてのAndroidの将来性
コンテンツプラットフォームとしてのAndroidの将来性Teiichi Ota
 
オープンセミナー2013@広島
オープンセミナー2013@広島オープンセミナー2013@広島
オープンセミナー2013@広島Masahiko Tani
 
組込み技術とモバイル技術
組込み技術とモバイル技術組込み技術とモバイル技術
組込み技術とモバイル技術Tomo Watanabe
 
classmethod devio2015 J-1 iBeacon
classmethod devio2015 J-1 iBeaconclassmethod devio2015 J-1 iBeacon
classmethod devio2015 J-1 iBeaconHiraku Komuro
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションYoshito Tabuchi
 
スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果Koichiro Sumi
 
iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流Rakuten Group, Inc.
 
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計Yuichi Adachi
 
Flashテクノロジーの今後とあなたの人生とのかかわりについて
Flashテクノロジーの今後とあなたの人生とのかかわりについてFlashテクノロジーの今後とあなたの人生とのかかわりについて
Flashテクノロジーの今後とあなたの人生とのかかわりについてTeiichi Ota
 
120829atechhills3flashfinal 120829215733-phpapp01
120829atechhills3flashfinal 120829215733-phpapp01120829atechhills3flashfinal 120829215733-phpapp01
120829atechhills3flashfinal 120829215733-phpapp01Chris Brownlee
 
Firefox OS 1.0 Application Development
Firefox OS 1.0 Application DevelopmentFirefox OS 1.0 Application Development
Firefox OS 1.0 Application Developmentdynamis
 
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu TouchHonma Masashi
 
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことエンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことMayumi Narisawa
 
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことエンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことMayumi Narisawa
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会codeal
 

Similaire à 最近のiOS開発の現状と実状 (20)

20140918 i os8イベント_ios-history (公開用)
20140918 i os8イベント_ios-history (公開用)20140918 i os8イベント_ios-history (公開用)
20140918 i os8イベント_ios-history (公開用)
 
コンテンツプラットフォームとしてのAndroidの将来性
コンテンツプラットフォームとしてのAndroidの将来性コンテンツプラットフォームとしてのAndroidの将来性
コンテンツプラットフォームとしてのAndroidの将来性
 
オープンセミナー2013@広島
オープンセミナー2013@広島オープンセミナー2013@広島
オープンセミナー2013@広島
 
組込み技術とモバイル技術
組込み技術とモバイル技術組込み技術とモバイル技術
組込み技術とモバイル技術
 
classmethod devio2015 J-1 iBeacon
classmethod devio2015 J-1 iBeaconclassmethod devio2015 J-1 iBeacon
classmethod devio2015 J-1 iBeacon
 
Html5minute #5
Html5minute #5Html5minute #5
Html5minute #5
 
Pokelabo android web
Pokelabo android webPokelabo android web
Pokelabo android web
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
 
スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果
 
iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流
 
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
 
Flashテクノロジーの今後とあなたの人生とのかかわりについて
Flashテクノロジーの今後とあなたの人生とのかかわりについてFlashテクノロジーの今後とあなたの人生とのかかわりについて
Flashテクノロジーの今後とあなたの人生とのかかわりについて
 
120829atechhills3flashfinal 120829215733-phpapp01
120829atechhills3flashfinal 120829215733-phpapp01120829atechhills3flashfinal 120829215733-phpapp01
120829atechhills3flashfinal 120829215733-phpapp01
 
Firefox OS 1.0 Application Development
Firefox OS 1.0 Application DevelopmentFirefox OS 1.0 Application Development
Firefox OS 1.0 Application Development
 
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
 
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことエンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたこと
 
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたことエンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたこと
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
 
3分でわかるMobileApps
3分でわかるMobileApps3分でわかるMobileApps
3分でわかるMobileApps
 
WWDC2017 レポート & Quick Look Preview Extension について
WWDC2017 レポート & Quick Look Preview Extension についてWWDC2017 レポート & Quick Look Preview Extension について
WWDC2017 レポート & Quick Look Preview Extension について
 

Plus de クラスメソッド株式会社 (10)

ブラウザレンダリング 最適化テクニック
ブラウザレンダリング 最適化テクニックブラウザレンダリング 最適化テクニック
ブラウザレンダリング 最適化テクニック
 
Haxe で始める CreateJS
Haxe で始める CreateJSHaxe で始める CreateJS
Haxe で始める CreateJS
 
ChefとOpsWorksで EC2 楽チンクッキング!
ChefとOpsWorksで EC2 楽チンクッキング!ChefとOpsWorksで EC2 楽チンクッキング!
ChefとOpsWorksで EC2 楽チンクッキング!
 
AWS管理を自動化する奥義
AWS管理を自動化する奥義AWS管理を自動化する奥義
AWS管理を自動化する奥義
 
課外授業7日目"GIGSI" CASE OF CLASSMETHOD
課外授業7日目"GIGSI" CASE OF CLASSMETHOD課外授業7日目"GIGSI" CASE OF CLASSMETHOD
課外授業7日目"GIGSI" CASE OF CLASSMETHOD
 
20121220cmblog seminar 03-fukuda
20121220cmblog seminar 03-fukuda20121220cmblog seminar 03-fukuda
20121220cmblog seminar 03-fukuda
 
0から始めるVPC
0から始めるVPC0から始めるVPC
0から始めるVPC
 
iOS6 Auto Layout
iOS6 Auto LayoutiOS6 Auto Layout
iOS6 Auto Layout
 
Amazon Web Servicesブース:UI×API×AWS 横田 聡
Amazon Web Servicesブース:UI×API×AWS 横田 聡Amazon Web Servicesブース:UI×API×AWS 横田 聡
Amazon Web Servicesブース:UI×API×AWS 横田 聡
 
ActionScript API for Amazon Web Services (AWS) クラスメソッド株式会社 横田 聡
ActionScript API for Amazon Web Services (AWS)  クラスメソッド株式会社 横田 聡ActionScript API for Amazon Web Services (AWS)  クラスメソッド株式会社 横田 聡
ActionScript API for Amazon Web Services (AWS) クラスメソッド株式会社 横田 聡
 

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