4D でモバイル化を
4D for Android 
4D v19 R2 では、4D for Android が利用可能になります。これは4DのAndroidデバイス用のノーコード開発プラットフォームです。
今後は、同じモバイルプロジェクトからネイティブなiOSアプリとネイティブなAndroidアプリの両方を生成することが可能になります。これはつまり、4D for iOSを使用している人は、既存のモバイルプロジェクトを開いてビルドをクリックするだけで同じアプリのAndroid版を取得することができるということです。
私たちは両方の規格に気をつけながらも、両プラットフォームにおいてとても近いユーザーエクスペリエンスを提供しています。大部分の機能はすでにAndroidユーザー向けに利用可能です。今後リリースを経るごとに、4D for iOS と完全に同一のものを提供できるように可能性を豊かにしていく所存です。一方で、4D v19 R2 で両プラットフォームにおいて新規に追加された新機能をここでご紹介します:
ライト/ダークアピアランス用のカスタムのデータフォーマッター
独自のカスタムデータフォーマッター を作成して、生成されたアプリ内で文字列、ブール、整数を画像へと変換することは既に可能です。4D v19 R2 では、iOSとAndroid用のフォーマッターを最大限活用して、アピアランスがライトでもダークでも、両方で画像がよく見えるようにすることが可能です。以下の3つのオプションが利用可能です:
- 黒と白を使用する
- アクティブなモードに応じて異なるピクチャーを使用する
- 上記2つのオプションを混用する
アプリに簡単に色を付ける
モバイルプロジェクトを作成するとき、一般セクションにおいてはデフォルトの4Dアイコンが使用されます。デフォルトでは、このアイコンのドミナントカラーが、例えばナビゲーションバーやボタンといったモバイルアプリの様々な要素を自動的に色づけされるために使用されています。4D v19 R2以降、プロジェクトエディターに完全に統合されたカラーピッカーから色を選ぶことで、iOSおよびAndroid apps両方のアプリのメインカラーを容易に定義することができます。
リジェクトになってしまった4D for iOSのペンディングタスクを更新する
オフラインアクション機能 が追加されてからしばらく経ちますが、この機能は接続が切れている間のユーザーアクションをキューに入れておき、4D Serverとの接続が回復したらすぐにそれを処理するというものです。4D v19 R2では送信に失敗したペンディングのタスクを、ユーザーが編集してリトライするための機能が提供されています。
4D for iOS: リストフォームの中身をソートする
これまで、“追加”、“編集”、“削除”、そして“共有”といったアクションセクション内の複数の定義済みアクションを利用することで、ユーザーがアプリのコンテンツを管理するのを手助けしてきました。4D v19 R2では、これに加えて新しいアクションが利用できるようになりました: ソートアクションを使用することで、ローカルアプリのデータを並べ替えることができます。
プログラミング関連機能
オブジェクト内にBLOB属性を作成する
クラスが導入されたことで、オブジェクト内にデータを保存しておく需要、特にBlob型データを保存しておく必要性が高まっています。このため、4D v19 R2においては、オブジェクト内にBlobを格納することをサポートするようになりました。
保管という観点だけでなく、Blobオブジェクトは参照型であるため、メモリ確保とスピードのパフォーマンスが大幅に向上することでしょう。
バイトオーダーマーク(BOM)と改行コード(EOL)管理
4D v19 R2において、4Dはテキストファイル内の特定の非表示文字を管理するベストな方法に倣うように、スムーズな進化を遂げました。これはつまり、4DはテキストファイルをBOMなしで書き出すようになったということです。またmacOS環境下では、4DはLF(ラインフィード)をEOL文字(改行コード)として使用するようになりました。これは4Dによって書き出されるすべてのファイルに対して完全に自動的に行われ、これらのファイルとは4DSettings、4dm、4DFormなどが含まれます。
互換性のための設定として、TEXT TO DOCUMENT および File.setText() コマンドにおいて、オプションの“charSet” および “breakMode” 引数が省略された際にBOMなしのファイルの作成とmacOSにおいてLFを改行コードとして使用することを可能にするオプションが追加されました。詳細についてはドキュメントを参照してください。
新規プロジェクトにおいてデフォルトの.GITIGNOREファイルが追加に
プロジェクトモードを使用すれば、Git(あるいはそれに類するバージョン管理システム)を使用して変更履歴を容易に追跡することが可能になります。しかし、Gitリポジトリ内のプロジェクトのすべてのファイルを追跡したわけではない場合もあります。4D v19 R2では、新規プロジェクトにおいてデフォルトのファイルをprojectフォルダ内に追加されており、そこに履歴を追跡しないデフォルトのファイルとフォルダが記されています。これによって履歴を追跡しないものを容易に定義することができます。
macでのコンポーネントの自動署名
mac版の4D v19 R2 では、ビルドされたコンポーネントは、証明書が指定されていない場合にはユーザーによって定義された証明書、あるいはAdhoc 署名を使用して4Dによって自動的に署名されます。これによってコンポーネントの開発者は署名されたコンポーネントを配布することができ、エンドユーザーはそれを使用する前に自分で署名を行う必要がなくなります。
コードエディターからオンラインドキュメントを直接開く
4D v19 R2では、ドキュメンテーションのサイトを検索することなく、クラス関数の詳細へとアクセスすることができます。シンプルに、F1キーを押すか、またはコンテキストメニュー内の”定義へ移動…”をクリックすることで、関数のオンラインドキュメンテーションが開きます。
4D Write Pro
新しい画像表示オプション
4D v19 R2以降、4D Write Proドキュメント内のインライン画像とアンカーされたは、新しいwk image display mode 属性のおかげで7つもの新しいフォーマットタイプを使用することができるようになります:
- Scaled to fit (デフォルト)
- Truncated
- Truncated centered
- Proportional
- Proportional centered
- Replicated
- Replicated centered
また、新しいwk background display mode 属性のおかげで、ドキュメント、セクション、段落などの背景に使用されている画像のフォーマットが容易になりました。
4D View Pro
ピボットテーブルとSpreadJS v14.1
4D v19 R2 では新機能ピボットテーブルを導入した新しいバージョンのSpreadJS を使用しています。ユーザーが営業とマーケティングの両方の部門にまたがっている場合、この機能は試す価値があります。4D View Proリボンツールバーから容易に、直接データを要約/分析することができるからです。
CSV: 新しい読込み/書出しフォーマット
4D v19 R2ではCSVファイルの読込み/書出しが可能になりました。このフォーマットはデータ交換用の一般的なフォーマットで、たくさんのアプリケーションから広くサポートされているフォーマットです。これを使用すれば、例えばCSVファイルのような区分けされたテキストフォイルをサポートするVP Import documentおよびVP Export document コマンドを使用して、他の情報システムからのCSVファイルをユーザーに表示する、などのことができるようになります。
シート管理
シートを作成、名称変更、あるいは表示/非表示にしたい場合、またはユーザーがどのシートを見ているのかを知りたい場合、4D v19 R2では4D View Pro ドキュメント内のシートをプログラミングで管理することでこれらのことが実現可能になります。
これらの目的のために、4つの新しいコマンドが追加されました:
- VP SET SHEET COUNT: 必要なシートの数を一度に定義することができます。
- VP ADD SHEET: 指定された名前を持つシートを、特定の位置に挿入することができます。
- VP SET SHEET NAME: ユーザーにとってわかりやすいように、より関連性のある名前をつけることができます。
- VP SET CURRENT SHEET: 現在選択されているシートを変更することができます。
- VP SET SHEET OPTIONS: 計算のため必要な情報だけが格納されているようなシートを非表示に設定することができます。
UIから改ページを管理する
4D v19 R2 では、コンテキストメニューに新たに追加された”改ページを追加” and “改ページを除去,”を使用することでユーザーインターフェースから改ページを管理することができるようになりました。また新しいVP SET SHOW PRINT LINESおよび VP Get show print linesコマンドを使用することで、印刷境界線の表示/非表示もできるようになりました。