新機能で4Dアプリのサイズを縮小する

Deeplからの自動翻訳

4Dアプリケーションの構築を改善するための継続的な努力の中で、4D v19R5には、あなたが必ず見つけることができるいくつかの機能性が追加されました。

まず1つ目は、アプリケーションから4Dモジュールを削除する機能です。CEF、Mecab、PHP、Spell Checker、4D Updaterです。これらのモジュールのいくつかが必要ない場合は、アプリケーションのサイズを大幅に削減することができます。

また、同じ構造体の複数のコンパイル版を使用している方に配慮して、コンパイルした構造体を構築する際の最終ディレクトリを変更しました。

日本のお客様に関しては、MacOSの4D日本語版と国際版を統合しました。

それでは、詳細を説明します。

モジュールの削除

まず、最初の目新しい機能として、アプリケーションが使用しないモジュールを削除する機能から始めましょう。アプリケーションのビルド画面のプラグインとコンポーネントのタブで、5つのモジュールを削除できるようになりました。

  • CEFは、Chromium Embedded Frameworkの略です。Webエリアや4D View Proエリアの表示に使用しています。というわけで、なかなか便利なフレームワークなのですが、その分、重くなっています。
  • MeCabは、日本語用の4Dテキストフォーマッターです。もし、あなたのアプリケーションが日本語にローカライズされていなければ、このモジュールは必要ないでしょう。
  • PHPを使わないのであれば、迷わずPHPモジュールを削除してください。
  • SpellCheckerは、4Dのスペルチェック・コマンドを使用する場合に便利ですが、そうでない場合は、アプリケーションから削除してかまいません。
  • 最後に、もし、4Dアップデータを使ってアプリケーションを更新する予定がないのであれば、これを含める必要はないでしょう。

以下は、Mac と Windows でのこれらすべてのモジュールのサイズです。

モジュール Mac Windows
CEF 459 MB 217 MB
ミーカブ 80 MB 75 MB
PHP 26 MB 19 MB
スペルチェッカー 10 MB 10 MB
アップデータ 11 MB 6MB
最大ゲイン 586 MB 327 MP

これらのモジュールは、Intel や Silicon アーキテクチャ用のユニバーサルバイナリなので、特に Mac では、これらのモジュールを削除することで、アプリケーションのサイズが大幅に削減されるはずです。
注意点としては、4Dは、あなたが削除するモジュールの呼び出しについて、メソッドやフォームをチェックしないことです。そのため、チェックを外したときの動作は確実なものにしてください。

日本語版

v19R5以前は、日本のお客様がMeCabを使用するために、Macの4Dを特別に提供していました。現在は、アプリケーションから簡単に削除できるようになったので、MeCabは誰でも使えるようになり、特別な日本語版4Dを提供することはなくなりました。

関連フォルダがない構造体をコンパイルした場合の出力ディレクトリ

最後に、関連フォルダを持たない構造体をコンパイルしたときの出力先ディレクトリを変更しました。

以前のバージョンでは、コンパイルされた構造体は、ビルドディレクトリのCompiled Databaseフォルダに直接置かれていましたが、同じ構造体の複数のバージョンをビルドしたい場合には、問題が発生します。v19R5からは、Compiled Databaseフォルダー内のアプリケーション名のついたフォルダー内に置かれます。自動ビルドプロセスを採用している場合は、この変更に注意してください。

これらの新しい変更により、より軽量なアプリケーションを構築し、ビルドプロセスの自動化をより簡単に行うことができるようになるはずです。また、いつものように、何か質問があれば、4Dフォーラムにコメントをお寄せください。

Nicolas Brachfogel
- プロダクトオーナー & シニアデベロッパー - Nicolas Brachfogelは、2017年にシニアデベロッパーとして4Dに入社しました(4D Serverとネットワークを担当)。Apple Siliconのリリースを管理するプロダクトオーナーとして、ユーザーストーリーを書いて機能仕様に落とし込み、機能実装が顧客のニーズを満たしているかを確認する役割を担っています。Institut Supérieur d'Informatique Appliquée (INSIA) を卒業した Nicolas は、2001年にソフトウェア開発者としてのキャリアをスタートさせました。JavaとC++で数年間コーディングした後、ゲーム会社のクライアント・サーバー開発を専門に担当。サーバー開発者/アーキテクトとして、多くのゲーム(Dofus Arena、Drakerz、Trivial Pursuit Go!)のサーバーアーキテクチャに携わり、成功を収めてきました。