質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • iOS

    3998questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • Windows

    1441questions

    Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

WinエミュレーターをiOS上でつくれるのか?

受付中

回答 4

投稿

  • 評価
  • クリップ 3
  • VIEW 2,435

skltn00

score 21

 前提・実現したいこと

10年運用しているWindowsアプリがあります。C/C++/C#で150万Step程度、.NetやCOMを使っています。Driver経由でUSBを使い、BlueToothも使います。
役員がiPadでも動かしたいと言い出し、スクラッチではなく、エミュレーターを開発すればいいだろうといわれています。

 知りたいこと

役員以外は「無理だろう」「やりたくない」なので、なんとかしてやりたくない理由を探しています。 iOS上で動くWindowsエミュレーター開発の見積もりは適当に数字を書けばいいのですが、「AppleのガイドラインとしてEmulatorは審査が通らない」など、コストではなくApple側の都合でできない理由を探しています。
ガイドラインで、エミュレーターを禁止しているなどは明文化されているのでしょうか?

このサイトで質問すべき事なのかさえわからず、怒られてしまいそうですが、iOS開発に疎いため、どうぞ宜しくお願いいたします。

※Citrixなどのクラウド上の仮想化はパフォーマンス的にNGとなっています

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+6

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/02 12:45

    おそらく今年最低の糞質問にコメントいただきありがとうございます。

    確かにCPUアーキが違いますよね。
    Xpでさえ遅いというのはかなり説得力があります。パワポよりも物を目でみたいという役員なので。
    頂いたリンクはかなり使えそうです、ありがとうございます。

    仮想マシン(クラウド)案はパフォーマンスの問題で蹴られていますので、
    だったらリンク先の動画を参考に、同じ理由で「つくれるけどパフォーマンスが…」でごり押しできそうです。


    大変参考になりました。

    キャンセル

+5

「App Store審査ガイドライン」
https://developer.apple.com/jp/app-store/review/guidelines/

2.5.2に、次のような記述があります。

アプリケーションはバンドル内で自己完結している必要があります。他のアプリケーションを含め、指定されたコンテナエリア外に対するデータの読み書き、またはエリア外からのコードのダウンロード、インストール、実行は許可されません。

仮にWindowsエミュレータを作ったとしても、WindowsのOS自体を勝手にエミュレータ内にバンドルして配布することはできませんので、この場合Windowsのインストール媒体を外部からダウンロードしてインストールする必要があります。そうすると、上記の規約に抵触します。この規約によりエミュレータを公開することは実質不可能になっています。
この規約によりエミュレータはおろか、VisualStudioのような開発ツールやExcelのマクロ機能等、外部から任意のプログラムをダウンロードしてiPhone内で実行させる機能は一切AppStoreからリリースできないことになっています。
この厳しい規約はウイルスの侵入を防ぐ目的があるのだと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/02 13:00

    ありがとうございます、まさにこういう理由が説得力あります。

    役員大好きアップルが言うことは納得してくれそうです(笑)

    お忙しい中助かります。

    キャンセル

+2

現実的には不可能でしょう。

まず、CPUが違いますからCPUのエミュレーションから始めないといけないわけですが、そうなるとホスト側にはエミュレート対象より一桁ぐらい上のマシンパワーが要求されます(たぶん)。Windowsアプリが想定しているマシンスペックがどの程度か判りませんが、仮に10年前程度でも、当時すでにクロック数は頭打ち(3GHz超え)で複数コアへの移行が進んでいた時期ですから(Vistaの頃ですね)、今と比べても極端に性能が低いわけではないと思います。最新のハイエンド向けCPUでもその数分の1程度(数百MHz相当)引き出すのがやっとだと思います。ましてやモバイル向けCPUでは、さらにその数分の1程度になってしまうと思います。

仮に、超低速動作を許容するとして、Windowsアプリを動かすためのコンポーネントのライセンス問題が発生します。.NETやCOM、各種ドライバーを利用しているとのことですが、Windowsに同梱されているコンポーネントは、当然のことですが、それを実行するのもライセンスされたWindows上でなければいけません。したがって、Windowsエミュレーターを作るなら、それらのコンポーネントを自前で作らなければいけません。オープンソースではないので解析作業は相当な困難を極めることでしょう。

そこまでするぐらいなら、いっそのこと、raccyさんが書かれているように仮想マシンを作ってそこにWindowsをインストールし、その中で所望のアプリを動かすのが良いかもしれません。
ただし、WindowsをインストールするにはWindowsのシステム要件を満たす必要がありますが、iPadでそれが可能かどうかは判りません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/02 12:59

    糞質問に丁寧にありがとうございます。

    .Netの件、これは1つの理由で使わせて頂きます、助かりました。

    仮想マシンは、Citrixのを使う案もありましたが、パフォーマンスと、ネット問題(Online前提にはできない)ので、キャンセルになっています。

    キャンセル

+1

根本的な解決策の提示ではないですが、
そもそもそのWindowsアプリってどういうアプリなのでしょう?誰向けのアプリなのでしょうか?

iOSネイティブアプリで動かす必要ってなんでしょうか?ウェブアプリではダメなのでしょうか?
150万ステップを書き換えるとして1人月で出来る話じゃないように思いますが。つまり
工数や予算を鑑みて、もしそのアプリが社内向けだけのアプリならこれだけのコストと
人員リソース使ってやる価値がどれだけあるのか。

脱獄(JailBreak)は違法ではないけどApple規約に違反することになる。というのをキーワード
にして理由づけするのも手かと。

skltn00さんがどういう立場の方か存じないので突っ込んだ話は出来ないですが、
1.コスト提示して数字で唸らせる
2.JailBreakしないと作れないので規約違反になる
の2点くらいしか思い当たりません。

単なる経営や経理アプリならウェブアプリ作れば良い気もしますけれど。

参考にならなかったらごめんなさい。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/01 20:34

    早速のコメントありがとうございます。
    Windowsアプリは、用途を書くと特定されてしまいそうなので書けませんが、世界中・10000万クライアント程度で使われています。外部の大きなディバイスにつなげてデータを読み書きします。

    新バージョンはクラウド(ハイブリッド)で、それが本命です。iOSがいい理由は、役員がiPadで指でシュッシュするのが流行りだとか…それだけです。「エミュレータってのをつくれば既存のWindowsアプリは動くはず、いちいちクラウドにマイグレーションするな」と言われています。役員の性格上、金ではなく法的に無理と諦めさせたいのです。。。

    JailBreakということは、やはり既存のPublic APIでは難しいということですね。

    ガイドラインを読む限り、他OSアプリのエミュレーションはNGだとかドンピシャで書いてくれてはいなそうですね・・

    キャンセル

  • 2018/05/01 21:20 編集

    他の方の回答もありますのでそちらもご参考に。 10000万=1億?凄く大きなベンダーさんなんですかね?

    俺なら、やり方わかんないんで出来るというならやり方教えてくださいよ!って言い返しますねw
    (さすがに直球で言い返しませんが)
    iOSのエミュレータアプリ(主にゲーム機のエミュ)がありますがAppストアに載せられないケースが殆どなのでどうなのかなと。そもそもストアに載せらせないアプリをどうやって配布するんです?役員のiPadすべてJeilBreakしていいよ、セキュリティに穴開けても良いよってことを言いたいのかな?その役員はw

    技術云々以前の問題にしか思えないので、それより優先する案件がでてくるまで適当にあしらって耐えるほうが良いように思ったりしますがw
    GWなのにお疲れ様です。忘れてGWしっかり遊んで休んでくださいね^^;
    (追記)懇切に説明されてる方がいますね。それでもヤレや!って言って来たら、議事録に残して責任は自分じゃないこと残した方が良いでしょうね。

    キャンセル

  • 2018/05/02 08:32

    糞みたいな質問にコメント頂きありがとうございます。(すいません、10,000でした)

    「こんなことしてるから日本は生産性低いんだよ」というセレモニー対応ですが、他の方の意見も交えてゴリ押ししたいと思います。(FYIで、タッチ対応のWindows2in1機種での指操作はだめで、リンゴのマークがお好きみたいです。)

    ありがとうございました。

    キャンセル

  • 2018/05/02 12:09

    たぶんどこの会社でも起こり得る、悩みだと思います。糞だなんて思ってませんよ誰も^^
    工数はかけていいけど金は一切出さないとか言ってきた上司とかいましたもんw

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • iOS

    3998questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • Windows

    1441questions

    Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。