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

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

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

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

Windows

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

Q&A

4回答

1949閲覧

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

skltn00

総合スコア31

iOS

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

Windows

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

0グッド

3クリップ

投稿2018/05/01 10:52

前提・実現したいこと

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

知りたいこと

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

skltn00

2018/05/02 03:45

おそらく今年最低の糞質問にコメントいただきありがとうございます。 確かにCPUアーキが違いますよね。 Xpでさえ遅いというのはかなり説得力があります。パワポよりも物を目でみたいという役員なので。 頂いたリンクはかなり使えそうです、ありがとうございます。 仮想マシン(クラウド)案はパフォーマンスの問題で蹴られていますので、 だったらリンク先の動画を参考に、同じ理由で「つくれるけどパフォーマンスが…」でごり押しできそうです。 大変参考になりました。
guest

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
TakeOne

総合スコア6299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

skltn00

2018/05/02 04:00

ありがとうございます、まさにこういう理由が説得力あります。 役員大好きアップルが言うことは納得してくれそうです(笑) お忙しい中助かります。
guest

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

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

skltn00

2018/05/02 03:59

糞質問に丁寧にありがとうございます。 .Netの件、これは1つの理由で使わせて頂きます、助かりました。 仮想マシンは、Citrixのを使う案もありましたが、パフォーマンスと、ネット問題(Online前提にはできない)ので、キャンセルになっています。
guest

0

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

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

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

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

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

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

投稿2018/05/01 11:12

wkbiz

総合スコア152

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

skltn00

2018/05/01 11:34

早速のコメントありがとうございます。 Windowsアプリは、用途を書くと特定されてしまいそうなので書けませんが、世界中・10000万クライアント程度で使われています。外部の大きなディバイスにつなげてデータを読み書きします。 新バージョンはクラウド(ハイブリッド)で、それが本命です。iOSがいい理由は、役員がiPadで指でシュッシュするのが流行りだとか…それだけです。「エミュレータってのをつくれば既存のWindowsアプリは動くはず、いちいちクラウドにマイグレーションするな」と言われています。役員の性格上、金ではなく法的に無理と諦めさせたいのです。。。 JailBreakということは、やはり既存のPublic APIでは難しいということですね。 ガイドラインを読む限り、他OSアプリのエミュレーションはNGだとかドンピシャで書いてくれてはいなそうですね・・
wkbiz

2018/05/01 14:58 編集

他の方の回答もありますのでそちらもご参考に。 10000万=1億?凄く大きなベンダーさんなんですかね? 俺なら、やり方わかんないんで出来るというならやり方教えてくださいよ!って言い返しますねw (さすがに直球で言い返しませんが) iOSのエミュレータアプリ(主にゲーム機のエミュ)がありますがAppストアに載せられないケースが殆どなのでどうなのかなと。そもそもストアに載せらせないアプリをどうやって配布するんです?役員のiPadすべてJeilBreakしていいよ、セキュリティに穴開けても良いよってことを言いたいのかな?その役員はw 技術云々以前の問題にしか思えないので、それより優先する案件がでてくるまで適当にあしらって耐えるほうが良いように思ったりしますがw GWなのにお疲れ様です。忘れてGWしっかり遊んで休んでくださいね^^; (追記)懇切に説明されてる方がいますね。それでもヤレや!って言って来たら、議事録に残して責任は自分じゃないこと残した方が良いでしょうね。
skltn00

2018/05/01 23:32

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

2018/05/02 03:09

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問