前提・実現したいこと
10年運用しているWindowsアプリがあります。C/C++/C#で150万Step程度、.NetやCOMを使っています。Driver経由でUSBを使い、BlueToothも使います。
役員がiPadでも動かしたいと言い出し、スクラッチではなく、エミュレーターを開発すればいいだろうといわれています。
知りたいこと
役員以外は「無理だろう」「やりたくない」なので、なんとかしてやりたくない理由を探しています。 iOS上で動くWindowsエミュレーター開発の見積もりは適当に数字を書けばいいのですが、「AppleのガイドラインとしてEmulatorは審査が通らない」など、コストではなくApple側の都合でできない理由を探しています。
ガイドラインで、エミュレーターを禁止しているなどは明文化されているのでしょうか?
このサイトで質問すべき事なのかさえわからず、怒られてしまいそうですが、iOS開発に疎いため、どうぞ宜しくお願いいたします。
※Citrixなどのクラウド上の仮想化はパフォーマンス的にNGとなっています
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
iPhone X上で「Windows 95」を動かした事例は既にあります。
参考記事: iPhone XでWindows 95を起動させる動画が公開! - iPhone Mania
記事の中のリンクにもありますが、iPhone 7でWindows XPを動かそうともしたそうですが、遅すぎて使い物にならかったようです。エミュレータなどの必要なものもGithubに上がっているので誰でも根気があれば試すことができるでしょう。(jailbrakeする必要も無いとのことです)
現実的にはパフォーマンスがきついと思います。サクサク動いたのは、CPUがi486や初代Pentiumだった時代のWindows 95です。速いCPUが100MHzとか今では考えられない時代でのOSです。ホスト側はiPhone Xという最高スペックの物です。iPad Proよりも速く、MacBook Proを越えるとまで言われるものです。
使おうとしているiPadがどの世代のものかにもよるかも知れませんが、少し前の物だとiPhone 7と同じぐらいでしょう。となると、Windows XPでも遅すぎで、Windows 7なんて無理すぎるでしょう。なんとか作っても、起動だけで1時間待ってください。ボタン押して返ってくるまで10分かかります。というものができるだけでしょう。
もし、確実に納得させるなら、Githubのコードを使って実演することです。遅い、これでは無理、って見せた方が説得力があると思います。
投稿2018/05/01 11:49
総合スコア21741
0
「App Store審査ガイドライン」
https://developer.apple.com/jp/app-store/review/guidelines/
2.5.2に、次のような記述があります。
アプリケーションはバンドル内で自己完結している必要があります。他のアプリケーションを含め、指定されたコンテナエリア外に対するデータの読み書き、またはエリア外からのコードのダウンロード、インストール、実行は許可されません。
仮にWindowsエミュレータを作ったとしても、WindowsのOS自体を勝手にエミュレータ内にバンドルして配布することはできませんので、この場合Windowsのインストール媒体を外部からダウンロードしてインストールする必要があります。そうすると、上記の規約に抵触します。この規約によりエミュレータを公開することは実質不可能になっています。
この規約によりエミュレータはおろか、VisualStudioのような開発ツールやExcelのマクロ機能等、外部から任意のプログラムをダウンロードしてiPhone内で実行させる機能は一切AppStoreからリリースできないことになっています。
この厳しい規約はウイルスの侵入を防ぐ目的があるのだと思います。
投稿2018/05/01 14:48
編集2018/05/01 14:54総合スコア6299
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
現実的には不可能でしょう。
まず、CPUが違いますからCPUのエミュレーションから始めないといけないわけですが、そうなるとホスト側にはエミュレート対象より一桁ぐらい上のマシンパワーが要求されます(たぶん)。Windowsアプリが想定しているマシンスペックがどの程度か判りませんが、仮に10年前程度でも、当時すでにクロック数は頭打ち(3GHz超え)で複数コアへの移行が進んでいた時期ですから(Vistaの頃ですね)、今と比べても極端に性能が低いわけではないと思います。最新のハイエンド向けCPUでもその数分の1程度(数百MHz相当)引き出すのがやっとだと思います。ましてやモバイル向けCPUでは、さらにその数分の1程度になってしまうと思います。
仮に、超低速動作を許容するとして、Windowsアプリを動かすためのコンポーネントのライセンス問題が発生します。.NETやCOM、各種ドライバーを利用しているとのことですが、Windowsに同梱されているコンポーネントは、当然のことですが、それを実行するのもライセンスされたWindows上でなければいけません。したがって、Windowsエミュレーターを作るなら、それらのコンポーネントを自前で作らなければいけません。オープンソースではないので解析作業は相当な困難を極めることでしょう。
そこまでするぐらいなら、いっそのこと、raccyさんが書かれているように仮想マシンを作ってそこにWindowsをインストールし、その中で所望のアプリを動かすのが良いかもしれません。
ただし、WindowsをインストールするにはWindowsのシステム要件を満たす必要がありますが、iPadでそれが可能かどうかは判りません。
投稿2018/05/01 13:46
総合スコア5944
0
根本的な解決策の提示ではないですが、
そもそもそのWindowsアプリってどういうアプリなのでしょう?誰向けのアプリなのでしょうか?
iOSネイティブアプリで動かす必要ってなんでしょうか?ウェブアプリではダメなのでしょうか?
150万ステップを書き換えるとして1人月で出来る話じゃないように思いますが。つまり
工数や予算を鑑みて、もしそのアプリが社内向けだけのアプリならこれだけのコストと
人員リソース使ってやる価値がどれだけあるのか。
脱獄(JailBreak)は違法ではないけどApple規約に違反することになる。というのをキーワード
にして理由づけするのも手かと。
skltn00さんがどういう立場の方か存じないので突っ込んだ話は出来ないですが、
1.コスト提示して数字で唸らせる
2.JailBreakしないと作れないので規約違反になる
の2点くらいしか思い当たりません。
単なる経営や経理アプリならウェブアプリ作れば良い気もしますけれど。
参考にならなかったらごめんなさい。
投稿2018/05/01 11:12
総合スコア154
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/02 03:45