個人でスマホアプリの開発を始めたけど、実機の検証端末って必要?
シミュレーター/エミューレーターだけじゃ不十分?
必要だとしても、たくさんの実機を揃えるのはお金もかかる。。効率的な調達方法は?
という方向けの記事です。
個人アプリ開発をするにあたり、同じ悩みにぶつかったのですが、参考になる情報を探しても見当たらず、手探りで今の状態に落ち着いたので、その経験を共有したいと思います。
自分なりの結論は、以下のとおりです。
- 実機の検証端末(スマホ・タブレット)は必要!
- 数を集めるため、家族にも協力をお願い!
- 不足する機種は、低コストで調達するため、中古スマホショップを活用!
以下は、詳細になります。
これまでにiOS・Androidで計6つ・計3万ダウンロード以上の運営をしてきた、自身の経験を踏まえ、個人開発において、必要最低限の検証端末の揃え方をご紹介します。
同じ悩みを持つ方のご参考になれば幸いです。
40代からプログラミング(Flutter)を始めて、GooglePlayとAppStoreにアプリを公開しているhalzo appdevです。
作成したアプリはこちら↓ 全てFlutterで開発したアプリです。
検証用の実機は必要
アプリの開発環境には、PC上で検証できる、iOSシミュレーター・Androidエミューレーター(以下、総称して「シミュレーター」と記載します)があるので、実機での検証は不要と思われるかもしれません。
しかし、以下の理由から、検証用の実機は必須と考えています。
シミュレーターと実機とでは、挙動に違いがある
最も大きな理由がこれになります。
例えば、iOSシミュレーターでは、カメラを起動できません。
そのため、カメラ機能を使うアプリの場合は、iOS実機(iPhoneまたはiPad)での検証が不可欠になります。
シミュレーターでは検証できないことがある
シミュレーターには、無駄なアプリは一切インストールされていません。
iOSの場合は、AppStoreからのインストールも制限されています。
そのため、メモリ容量を大きく消費するアプリの場合、普段使いしている実機だとメモリオーバーでクラッシュするような状態を、検知できません。
実機の挙動を確認することで、エラーの原因に気づけることがある
これも実機があることのメリットの一つです。
同じソースコードであっても、シミュレーターだとエラーになるけど、実機だとエラーにならない、というケースもあります。
下記記事でも紹介しましたが、シミュレーターと実機での挙動の違いを確認することで、ソースコード修正の要否や、修正すべき点に気づくキッカケを得ることができます。
以上の理由から、やはり検証用の実機は持っておいた方が良いです。
どんな検証機をどこまで用意すればよいか?
検証用の実機が必要とは言うものの、当然ながら個人開発では予算に限りもあります。。
次々にアップデートされ、様々なバージョンのOSが出回っている上、Androidはメーカーの種類も多く、全てを揃えようとすると、いくらお金があっても足りません。。
そこで、以降では、これまでにiOS・Androidで計6つ・計3万ダウンロード以上の運営をしてきた、自身の経験を踏まえ、個人開発において、必要最低限の検証端末の揃え方をご紹介します。
最新OSバージョンにアップデート可能な実機を用意
例えば、FlutterでiOS・Android両方のアプリを開発する場合には、やはりiOS、Android両方の実機を用意すべきです。
そして、最新のOSバージョンに対応できる実機が望ましいです。
理由は、最新のOSバージョンでは、旧バージョンで発生しなかった想定外のエラーが出る場合があるためです。
下記は、最新のOSバージョンで検証していなかったため、後で苦労する事になった自分の体験例です。
AndroidのOSバージョンが、最新よりも1バージョン古い状態の実機で検証を行い、そのままリリースしようとしたが、Google Play Consoleのリリース前レポートで、クラッシュ報告を受けた。
調べたところ、最新のOSバージョンでは、あらかじめ「build.gradle」ファイルに、特定のコードを追記しておかないと、アプリ起動時にクラッシュしてしまう問題があることが分かり、リリース直前で手間取ることになった。
最新のiOSバージョンの仕様変更により、アプリ起動時に、これまで問題なく表示されていたダイアログが表示されない状況になっていた。
しかし、古いiOSバージョンの実機で検証していたため、この事象に気づけず、AppStoreの審査でリジェクトされ、リリース直前で大幅な改修をする羽目になった。
こうした経験から、最新OSの実機で検証することが重要だと痛感しています。
AndroidはGoogle Pixel一択
メーカーの種類が多岐にわたるAndroidは、用意すべき端末の選択が悩ましいですが、個人開発者にとっては、
Google Pixel 一択
だと考えます。
特に、価格を抑えるのであれば、新機種の翌年にリリースされる「〜a」のシリーズが良いです。
理由は大きく2点です。
- Pixelの国内スマートフォンシェアは、Appleに次ぐ規模になりつつある(出典:IDC Japan 株式会社「2023年第4四半期 国内スマートフォン市場上位5社 出荷台数シェア」)
- Pixel8aからは、「〜a」シリーズも7年間のOSアップデート対象となった
個人的には、2点目のアップデート対象の改善影響が一番大きいです。
他社端末だと、アップデートがリアルタイムに供給されないことも多く、やはりGoogle純正は利便性が大きいです。
できれば各OSで2台ずつあるとベター
欲を言えばですが、各OSで2台ずつあると、最新OSバージョンの端末と、古いOSバージョンの端末を用意できるので、異なる環境下で検証でき、不具合の検知漏れを防ぐことができます。
特に、最新OSバージョンが出た直後は、すべてのユーザーがOSをバージョンアップするわけではないので(むしろバージョンアップ直後は不具合が見つかるので、あえてバージョンアップしないユーザーも多いと思います)、旧バージョンのユーザーも一定数いることを想定する必要があります。
実機で2台用意するのが難しい場合は、新・旧複数のOSバージョンでシミュレーターを作成して検証する手もあります。
しかし、iOSの場合、最新OSバージョンのシミュレーターを作成するには、XcodeやMacOSのバージョンのアップグレードが求められる場合がある点に、注意が必要です。
自分の経験でも、最新バージョンのiOSのシミュレーターで検証しようとした際、MacOSのアップグレードが必要と分かったのですが、タイミング的に避けたかったので(MacOSのアップグレードにより、開発環境が変化し、不具合を生じる場合があるため、、)、結局、2台あったiOS実機の片方をバージョンアップして乗り切ったことがあります。
実機端末の調達方法3選
以降では、自分自身が、これまでに活用してきた
- できる限り低コストで
- 幅広いOS・機種パターンに対応できる
実機端末の調達方法をご紹介します。
①古い端末を残しておく
アプリ開発をする方は、ご自身のスマホを買い換える際、できるだけ古い端末は手元に残しておくと良いです。
キャリアの通信状態が影響するアプリを開発している場合は別ですが、大抵の場合は、WiFi通信ができれば必要な検証はできるので、買い替え時は、検証用端末の確保チャンスと捉えると良いと思います。
自分の場合は、使わなくなった古いiPadがあり、過去に売ることを考えた時期もありましたが、アプリ開発をするようになってから、検証機として大活躍しています。
iPadは、iPadアプリの検証はもちろん、iPhoneアプリの検証にも使用でき、OSバージョンアップも可能なので、自分は最新iOSバージョンの実機検証用に使用しています。
ちなみに、Macも2台あると都合が良いので、買い替え時には下取りに出さずに、とっておくのがおすすめです。
前述のとおり、iOSの開発では、MacOSのバージョンアップが求められる事があるのですが、作業進捗のタイミング等で、開発環境を変えたくない場合は、とりあえず古いMacの方をバージョンアップして試してみる、ということが可能です(実際、自分も古いMacBookを手元に残しており、現在もサブ機として活躍してくれています)。
②家族の端末を使う
家族にお願いできる方は、協力を依頼するのも手です。
調達コストを抑えるためにも、使える端末はできるだけ使いましょう!
仕事で会社から支給された端末を使うのは望ましくないですが、家族の個人利用の端末であれば、是非、TestFlight(iOS)や、内部テスター(Android)に登録してもらいましょう。
家族間で、OSのバージョンが異なる場合もあると思うので、前述のように各OSで2台用意できないときに、協力を依頼できると強いです。
また、家族間で異なるOS(iOS、Android)の端末を使用しているなら、さらに調達の幅が広がるため、有効です。
③中古スマホ・中古タブレットを買う
古い端末や家族の端末でも確保しきれない場合は、中古スマートフォン・タブレットのオンラインショップを利用しましょう。
新品を購入するよりも、はるかに安い金額で、手軽に調達できます。
クラウド上にある実機端末を使い、リモートで検証できるサービスや、デバッグを外部委託する方法もありますが、いずれも法人向けを想定したサービスで、費用が高額のため(リモート検証サービスの場合は、月額数万円ほど)、個人開発には不向きです。
それに比べ、中古端末は、買い切りのため、一度購入すればその後は費用の発生はなく、自分の専用機となるので、利用の幅も広がります。
私自身も、検証用のiPhone実機を中古で購入しました。
購入する端末スペックの目安ですが、調達コストをできる限り抑えるのであれば、
最新OSにアップデート可能な範囲で、
最も古い型、もしくは、
次世代バージョンのサポート切れの可能性を考慮して、最も古い型から1バージョン新しい型
のものを選ぶと良いと思います。
前述のとおり、最新OSバージョンで検証することが重要なためです。
なお、キャリアの通信状態が影響するアプリでない限り、基本、検証端末にSIM契約は不要なので、端末のみの購入で問題ありません。
また、iOSの場合、既にiPhone実機をお持ちの場合は、もう1台をiPadにするのもアリです。
前述のとおり、iPadは、iPhone用アプリの検証にも利用でき、かつ、iPhoneよりも安く調達できるためです。
どの機種なら、最新OSに対応しているか?
iOSの機種別の最新OSバージョンへの対応状況は、以下のとおりです。
iPhoneXR以降を調達すれば、現最新OSに対応しているので問題ありませんが、より安全に考えるなら、今後のサポート切れも想定し、最も古い型から1バージョン新しいiPhone 11以降を調達するのが望ましいです。
また、Androidの機種別(Google Pixelの例)の最新OSバージョンへの対応状況は、以下のとおりです(2024年9月現在)。
Google Pixelの場合、OSのバージョンアップ対応期限を示す形で公表されています。
Pixel8から、OSバージョンアップの対応期限が大幅に延長(改善)されました。
これによると、2024年リリースとなる最新OS(Android15)への対応であれば、Google Pixel 6a以降で問題ありませんが、2025年に想定される次期OS(Android16)へのバージョンアップも見据えるなら、Google Pixel 7a以降にするのが安全です。
また、Androidアプリは、毎年、ターゲットSDKのバージョン更新が必須となりましたので、できるだけOSバージョンアップの期限を長くとり、思い切ってPixel8a以降を調達してしまう、というのも長い目で見ればアリだと思います(ちょっと値は張りますが、、、)。
検証端末用におすすめの中古スマホ販売店・オンラインショップ
中古スマホ・中古タブレットを調達する際のおすすめのオンラインショップをご紹介します。
①にこスマ
「にこスマ」([PR]公式サイト)は、大手総合商社の伊藤忠商事の子会社(株式会社Belong)が運営するオンラインショップのため、購入先として安心です。
全ての商品について、専門スタッフによる検品が行われており、中古品としての品質が高い点が特長になっています。
下記のように、端末の保存状態に応じて、グレードが、
- Aグレード(超美品)
- Bグレード(美品)
- Cグレード(良品)
に分かれており、保存状態を気にしなければ、リーズナブルな価格で入手可能です。
にこスマで実際に購入した例
自分は、実際に「にこスマ」で、iOSの検証端末用にiPhoneを購入しました。
購入したのは、CグレードのiPhone8(価格は20,000円)でしたが、届いて開封したところ、驚くほどキレイで、傷ひとつない良品でした。
動作面も全く問題なく、毎年のiOSバージョンにもアップデート可能でした。
強いて言えば、電池の減りが早いのが難点ですが、この辺は中古スマホであれば致し方ないかな、、と思います。
Cグレードでこの品質の高さだったので、あくまで実機検証の目的であれば、Cグレードでも十分だと感じました。
その後、残念ながらiPhone8は、AppleのOS更新対象外となってしまったので、同じく「にこスマ」でiPhone11を購入し、現在も活用しています。
ちなみに、前述のとおり、まだOS更新対象となっているギリギリのバージョンから、1バージョン新しいiPhone 11は、「にこスマ」で、2024年9月時点において、34,300円(Cグレード)で販売されているので、十分検討の余地ありです。
②ゲオオンラインストア
「ゲオオンラインストア」は、全国に1,000店舗を以上展開しているゲオの公式通販サイトです。
ゲオは、ゲーム・中古スマホ・タブレット・テレビ・イヤホンなど、幅広い中古製品を長年に渡り販売してきた実績のあるショップであり、運営している株式会社ゲオホールディングスは上場企業なので、安心して購入できる点が魅力です。
下記のとおり、端末の保存状態に応じて、グレードが分かれています。
- 状態A
- 目立たない傷はあるが、動作・機能に問題がない状態
- 状態B
- 細かな傷があり、塗装の剥がれなど使用感があるが、動作・機能には問題がない状態
- 小さなヒビ割れを含む
出典:ゲオオンラインストア「よくある質問 中古商品のキズや汚れについて」
こちらの写真を見ると、「状態B」を見る限り、それほど傷は多くない印象なので、「状態B」であっても、検証端末としては全く問題ない思います。
③ダイワンテレコム
「ダイワンテレコム」は、バイヤーズ株式会社が運営する、スマートフォン専門で、販売・買取・修理サービスを展開しているオンラインショップです。
実店舗もあり、全国50店舗を展開しています。
ダイワンテレコムの特長は、動作不具合に対する保証期間がついている点です。
ちなみに、保証なしのJランクというのもありますが、しっかりした検証を行うには、Cランク以上を購入したほうが良いと思います。
どのショップで購入するのが良いか?
価格・品質のバランスから、1〜2機を購入する程度であれば、「にこスマ」([PR]公式サイト)がおすすめです。
「もっとたくさんの検証機を揃えたい!」という場合は、低価格の商品も多く揃っている「ゲオオンラインショップ」で購入するのも良いかと思います。
動作不良時の保証対応を重視するなら、「ダイワンテレコム」が安心です。
いずれにしても、中古購入ですので、レンタルとは違って、一生自分のモノになりますので、安心して思う存分、検証に活用できます。
中古品の機種・グレードはどのレベルが良いか?
新しい機種で、かつグレードが高いに越したことはありませんが、目的は、あくまでアプリの「実機検証」なので、多少の傷や汚れは許容し、
- 最新OSにアップデート可能な機種のうち、
- 最も古い型、もしくは最も古い型から1バージョン新しい型(次世代バージョンのサポート切れの可能性を考慮)で、
- 動作に問題ない事が確認されている
- 最低のグレード
を調達するのが、最もリーズナブルだと考えます。
例えば、「にこスマ」([PR]公式サイト)で購入した場合を例に挙げると、自分の場合、Cグレードの「iPhone8」で十分でした(購入当時)。
iPhone8は、iOS16アップデートまではしっかり活躍してくれました。※以降は、iPhone11が現在も活躍しています!
2024年9月現在では、今後のサポート切れのリスクを踏まえ、iPhone 11以上にしておくのが無難だと思います。
iOS・Android検証端末の必要性とおすすめの調達方法3選 -まとめ-
以上、自分の経験を踏まえた、個人アプリ開発における、検証端末の必要性と、おすすめの調達方法をご紹介しました。
以下に、ポイントをまとめます。
ご参考になれば幸いです。
最後までお読みいただき、ありがとうございました。
個人アプリ開発で役立ったもの
おすすめの学習教材
\超初心者向けでオススメな元Udemyの講座/
\キャンペーン時を狙えば安価で網羅的な内容が学べる(日本語訳あり)/
\Gitの基礎について無料で学べる/
おすすめの学習書籍
\実用的。image_pickerに関してかなり助けられた/
\Dartの基礎文法を素早くインプットできる/
コメント
xcodeを(というかiosすら)触ったことがない素人なのですが、
ipadでiphoneの実機検証もできるとのことですが、
最新のipad一台買えば、そのipad+色々なサイズのiphoneの実機検証も可能ということなのでしょうか?
よければお教えください。
さぶとる様
コメントを頂き、ありがとうございます!
結論としましては、iPadでの色々なサイズのiPhoneの実機検証は難しいかと思われます。。(もしかすると方法があるのかもしれませんが、現状、理解が及んでおりません。)
調べてみたのですが、下記の記事などによりますと(かなり古いですが、、)、例えば、12インチのiPadでは、iPhone6のサイズ(375×667ピクセル)で表示され、12インチより小さいiPadでは、320×480ピクセル(iPhone5などに相当)で表示されるなど、iPad上でのiPhoneの表示サイズは、自動的に決定されるようです。
https://stackoverflow.com/questions/52289326/ipad-compatibility-mode-uses-unsupported-small-iphone-size
記事で記載させていただいたのは、iPadだけでもiPhoneを想定したiOSの挙動を検証できる(画面サイズは一定のものになりますが)、という意味合いでした。iPadはiPhoneより安く入手できますし、日常使いがAndroidの方でも、手軽にiOSの検証ができるという趣旨でした。分かりづらく申し訳ございません。
調べても全然見つからなかったので助かりました!
ありがとうございました!
さぶとる様
ご返信ありがとうございます!
今後とも、よろしくお願いいたします。