Build4Dコンポーネントでスタンドアロンアプリケーションを作成する

新しい build4D コンポーネントが数ヶ月前から GitHub で公開されており、これを使って コンパイル済みプロジェクトやコンポーネント を簡単に作成することができます。このコンポーネントの新しいバージョンでは、シングルユーザーアプリケーションを生成できるようになり、開発ワークフローの可能性が広がります。

tool4D が v20 から利用可能になったことで、アプリケーション生成プロセスを CI (継続的インテグレーション) ツールに統合することが驚くほど便利になりました。

それでは、詳細を掘り下げていきましょう!

Build4Dコンポーネント

コンポーネントは何をするのか?

以下は、このコンポーネントでできることの一部です:

  • プロジェクトをコンパイルする
  • 4D Volume Desktop をプロジェクトに統合する
  • 著作権や会社のようなアプリケーションの情報を追加する
  • アイコンを追加する
  • Documentation、WebFolder、Default Data など、追加するフォルダーを選択する
  • Resources 内の開発用フォルダーのように、削除するフォルダーを選択する
  • CEF、Mecab、php など、削除するモジュールを選択する
  • 運用ライセンスを生成する
  • アプリケーションに署名する

Build application コマンドとの違いは?

どちらも、完全なシングルユーザーアプリケーションを生成できます。Build Application コマンドはモノリシックです。つまり、ファイルのカスタマイズや、フォルダーの追加・削除がしたい場合には、アプリケーションのビルド後におこなう必要があります。また、macOS アプリケーションの場合は、アプリケーションに改めて署名する必要があります。

Build4D コンポーネントは、4D でコーディングされた複数のクラスと関数で構成されています。そのため、もし非常に特殊なアプリケーションがあり、他のものとは異なる対応が必要であれば、関数を追加したり、既存のものを改良したりするのは簡単です。

やり方は?

以下のコードは、外部プロジェクトからスタンドアロンアプリケーションを生成する例です:

var $build : cs.Build4D.Standalone
var $settings : Object
var $success : Boolean

$settings:={} 
// 外部プロジェクトファイルを定義します
$settings.projectFile:=Folder(fk documents folder).file("Contact/Project/Contact.4DProject") 

// アプリケーションを設定します
$settings.buildName:="myApp"
$settings.destinationFolder:="Test/"
$settings.obfuscated:=True
$settings.packedProject:=False
$settings.useSDI:=False
$settings.startElevated:=False
$settings.lastDataPathLookup:="ByAppPath"

// 4D Volume Desktop のパスを定義します
$settings.sourceAppFolder:=Folder(fk documents folder).folder("4D v20.0/4D Volume Desktop.app") 

// コンパイルに必要なコンポーネントを指定します
$componentFolder:=Folder(fk documents folder).folder("4D v20.0/4D.app/Contents/Components")
$components:=[]
$components.push($componentFolder.file("4D WritePro Interface.4dbase/4D WritePro Interface.4DZ"))
$settings.compilerOptions:={components$components}

// 不要なモジュールを削除します
$settings.excludeModules:=["CEF"; "MeCab"] 

// 含めるフォルダーやファイルのパスを指定します
$settings.includePaths:=[] 
$settings.includePaths.push({source$componentFolder.folder("4D WritePro Interface.4dbase").path; destination: "../Components/"})
$settings.includePaths.push({source$componentFolder.folder("4D SVG.4dbase").path; destination: "../Components/"})

// 不要なフォルダーやファイルのパスを指定します
$settings.deletePaths:=[] 
$settings.deletePaths.push("Resources/Dev/")

// アプリケーションのアイコンを追加します
$settings.iconPath:="/RESOURCES/myIcon.icns"

// アプリケーション情報を追加します
$settings.versioning:={} 
$settings.versioning.version:="version"
$settings.versioning.copyright:="copyright"  
$settings.versioning.companyName:="companyName"
$settings.versioning.fileDescription:="fileDescription"
$settings.versioning.internalName:="internalName"

// 運用ライセンスファイルを作成します
$settings.license:=Folder(fk licenses folder).file("XXXXX.license4D") 

// macOS アプリケーションを署名します
$settings.signApplication:={} 
$settings.signApplication.macSignature:=True
$settings.signApplication.macCertificate:="xxxxxx"

// ビルドを開始します
$build:=cs.Build4D.Standalone.new($settings)
$success:=$build.build()

各属性の詳細については、各コンポーネントクラスの ドキュメント を参照ください。

macOSアプリケーションの場合、配布するには公証が必要です。詳細は Apple のドキュメント を参照ください。

次に…

GitHub にアクセスし、”Build4D” コンポーネントをダウンロードしましょう。さらに、コンポーネントの新機能に関する最新情報を得るには、”Watch” ボタンをクリックするか、4D Depot または Build 4D をお気に入り登録してください。ヘルプが必要な場合は、4D の GitHub組織と、Github の機能の使い方を詳しく説明したこの ブログ記事 を読んでみてください。

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。