非同期 REST API 呼び出しを実行する方法を示すクロスプラットフォーム アプリケーションを探している場合は、非同期RESTデモを参照ください。この強力な小さなアプリは、単一コード ベースと単一UI 使用し、Delphiによって構築されているため、真の クロスプラットフォームを実現しています。また、非同期であるため、返される値が常に最新であることを確認できます。デモは、Android、iOS、macOS、Windows、Linuxをサポートしています。

フルクロスプラットフォームのHello WorldソースコードをGithubからダウンロード

このデモは、カメラデモ、絵文字デモ、ペイントデモなど、100以上のクロスプラットフォームデモの一部です。

ソフトウェア開発における非同期とは

ソフトウェア開発における「非同期」とは、各コンポーネントが他のコンポーネントとは独立して進行できる、2つ以上のコンポーネント間の通信のタイプを指します。これは、各コンポーネントが続行する前に他のコンポーネントからの応答を待機する必要がある同期通信とは対照的です。非同期通信は、多くの場合、イベント駆動型システムで発生します。この場合、各コンポーネントは、他のコンポーネントからの入力を待たずに、発生したイベントに応答できます。このタイプの通信は、ボトルネックを削減または排除することで、パフォーマンスと応答性を向上させることができます。さらに、非同期通信は、コンポーネントがさまざまなワークロードを個別に処理できるようにすることで、より堅牢でスケーラブルなシステムを提供できます。

画面ショット

デモのソースコード

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, REST.Types,
  FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param,
  FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf,
  System.Rtti, FMX.Grid.Style, Data.Bind.EngExt, Fmx.Bind.DBEngExt,
  Fmx.Bind.Grid, System.Bindings.Outputs, Fmx.Bind.Editors, FMX.StdCtrls,
  Data.Bind.Components, Data.Bind.Grid, Data.Bind.DBScope, FMX.ScrollBox,
  FMX.Grid, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client,
  REST.Response.Adapter, REST.Client, Data.Bind.ObjectScope, FMX.Effects,
  FMX.Controls.Presentation, FMX.Memo, FireDAC.Stan.StorageJSON, FMX.Memo.Types;

type
  TForm1 = class(TForm)
    MaterialOxfordBlueSB: TStyleBook;
    ToolBar1: TToolBar;
    ShadowEffect4: TShadowEffect;
    Label1: TLabel;
    RESTClient1: TRESTClient;
    RESTRequest1: TRESTRequest;
    RESTResponse1: TRESTResponse;
    RESTResponseDataSetAdapter1: TRESTResponseDataSetAdapter;
    FDMemTable1: TFDMemTable;
    Button1: TButton;
    Memo1: TMemo;
    FDStanStorageJSONLink1: TFDStanStorageJSONLink;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Clear;

  RESTRequest1.ExecuteAsync(
    procedure
      begin
        Label1.Text := 'Complete!';
        Memo1.Lines.Append('Userid: ' + FDMemTable1.FieldByName('Userid').AsString);
        Memo1.Lines.Append('id: ' + FDMemTable1.FieldByName('id').AsString);
        Memo1.Lines.Append('title: ' + FDMemTable1.FieldByName('title').AsWideString);
        Memo1.Lines.Append('body: ' + FDMemTable1.FieldByName('body').AsWideString);
      end,
    True,
    True,
    procedure (Sender: TObject)
      begin
        Label1.Text := 'Error!';
      end);
end;

end.

クロスプラットフォームアプリのプログラミング手法を学ぶには

今すぐ Coding Boot Camp 2022に登録してください。ゲーム、JavaScript、Web、Python、SQL、データベース、iOS、MacOS、Android、モバイル、Linux、Windows、デスクトップ、サーバー、Arduinoなど、プログラミングに関するさまざまなトピックを学ぶことができます。


RAD Studio、Delphi、C++Builderを用いれば、開発時間を短縮し、より早く市場に投入可能!
Design. Code. Compile. Deploy.
トライアル版をダウンロード   いますぐアップグレード!

   Delphi Community Edition(無料)   C++Builder Community Edition(無料)