スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« ファイル数は70オーバー | トップページ | タブレットに明日はあるのか? »

例によって絶望的だが

今は、macOS用ネイティブ版AGMPlayerを開発中で、必要そうなファイルを既存ソフトからコピーして持ってきたのだが、当然、そのままでは動作しない。なので、手直しを始めているのだが、その量が見えている分、新規開発よりも絶望感は大きい。

こういう人は意外と少ないのかもしれないのだが、作者の場合、自分でゼロから開発したソフトを自分で別環境に移植している事が結構ある。

例えば、Windows用にリリースしていたC++版のMirror-DTCは、Javaで書き直してMac / Ubuntuでも利用可能にしたのだが、最終的にはAndroidにも移植している。

もっとも、実際の所としては、Mirror-DTCについては、Android版を開発する必要性から、まずはJavaに移植し、Mac / Ubuntuでは、とりあえずJava版が使えたので、最初はそのまま使っていたのだが、その後、より利便性を高める為に、追加開発していたJNIコードを取り込みつつ、ネイティブ版を移植開発している。

同様のケースとしては、こちらについては、最初から、Android用にJavaで書いていたのだが、AGMPlayerは、暫くの期間、デスクトップOSでもJava版を使っていたのだが、Windows環境用としては、既に、C++を使ったネイティブ版を移植開発し、そちらに移行している。

Androidへの移植については、MasterReversiについても行なっているのだが、MasterReversiについては、元々は、ブラウザで動作させる事を目的として開発していたJavaアプレット版もあった。

しかし、Javaの脆弱性問題から、実質的に、ブラウザでJavaアプレットは利用できなくなったので、MasterReversiのJavaアプレット版については、javascriptでコードを書き直し、HTML5版MasterReversiに移植している。

今年に入っても、AG-ムービーカッターのUbuntu/Mac版をWindows版から移植して開発してきた訳なので、作者的には、少なくともここ数年は、新規開発している時間よりも移植開発している時間の方が圧倒的に長いかもしれない。

と、言う事で、作者的には、既に、自前ソフトの移植には慣れている訳なのだが、だからといって、移植作業は大して楽にはなっていない。

まあ、何度か書いてきた様に、Ubuntu / Mac環境では、Windows環境で利用しているAPI関数と同等の機能を実現する自前ライブラリを拡充してきているので、最初の頃に比べれば、移植は、全然、楽にはなっている。

しかし、コピーして持ってきたソースファイルは、コンパイルするとエラーが何百も出てくるし、エラーを無くしても、そのコードは動作しない。

何故、動作しないのか、というと、世の中、そんなに甘く無いからなのだが、例えば、動作しないコードを動作する様にしてくれ、と、Siriに頼んでみても、知らんぷりされる訳だ。

と、言う事で、移植を完了させる為には、作者は、昨日書いた様に、最終的には100を超えるであろうソースファイルのコンパイルエラーを無くし、更には、ちゃんと動作する様にしていかなければならない訳なのだが、macOS版としては、AGMPlayerの開発前にAG-ムービーカッターを開発した。

これは何故だったのか、というと、AGMPlayerの物量はあまりにも多いので、作者的には、より簡単に結果を出せるAG-ムービーカッターを優先した訳だ。

つまり、作者としても、AGMPlayerの物量には頭を抱えざるを得ない訳なのだが、macOS版AG-ムービーカッターのお陰で、既に、技術的な懸念事項は無くなっている。

なので、多分、来週末くらいには、macOS版AGMPlayerも、動作し始めている様な気はしないでもないのだが、その為には、作者が壊れずに作業を続けている事が前提になるかもしれない。

« ファイル数は70オーバー | トップページ | タブレットに明日はあるのか? »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/65273129

この記事へのトラックバック一覧です: 例によって絶望的だが:

« ファイル数は70オーバー | トップページ | タブレットに明日はあるのか? »

2017年8月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google