SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

EDN CodeZine出張所(AD)

アルバムアプリをモバイル対応するためにDelphiサーバーアプリを作成してみる

コンポーネントを使ってスマホから閲覧できる写真アプリのサーバー機能をすばやく実装

  • X ポスト
  • このエントリーをはてなブックマークに追加

スマートフォンで撮影した写真をアップロードする

写真をアップロードするコード

 これの反対の操作を行えば、スマートフォンで撮影した写真をEMSサーバーにアップロードできます。RAD Studioでは、スマートフォンのカメラを使って写真を撮影したり、ロールにある写真を選択したりといった操作を、「アクション」と呼ばれるあらかじめ定義されたコマンドによって簡単に実行できます。アクションは自分でも作成できるので、さまざまなメニューにコマンドを割り当てるときに便利です。

 さて、取得した写真をサーバーにアップロードするコードは、次のようになります。ダウンロードのときに使ったのと同じオブジェクトに写真データを割り当て、JSON形式に設定します。

  item := TPhotoItem.Create;
  stream := TMemoryStream.Create;
  try
    // 写真データを写真アイテムにセット
    imgPhoto.Bitmap.SaveToStream(stream);
    PhotoItem.SetPhotoData(stream);
    // 出来上がったオブジェクトを JSON テキストに変換
    jsonText := TJson.ObjectToJsonString(item);
    // EMS エンドポイントを呼び出し
    BackendEndpoint1.ClearBody;
    BackendEndpoint1.AddBody(jsonText, TRESTContentType.ctAPPLICATION_JSON);
    BackendEndpoint1.Execute;
  finally
    FreeAndNil(item);
    FreeAndNil(stream);
  end;
図12 写真を撮影して保存

まとめ

 モバイルアプリでサーバーにアクセスするコードを書くのはなかなか大変です。RAD Studioには、今回紹介したEMSのほかにも、HTTPをはじめとした通信プロトコルをサポートしたコンポーネントが用意されています。

 コンポーネントを使うとコードが少なくて済む。これは直接的な開発生産性向上のメリットですが、同時にコードが複雑にならないのでバグが少なくなる、また、将来にわたってメンテナンスがしやすくなるというメリットがあります。

 また、データベースアクセスなどもコンポーネントによって抽象化されるため、どのデータベースを選択しても、同じ開発スタイル、同じコーディングで済むというのも効率的です。

 サーバーアプリの構築は、UI設計と違ってイメージしづらい部分も多いと思いますので、最後にこの辺を解説したビデオをいくつか紹介しておこうと思います。

 また、EMSも試すことのできるDelphi(RAD StudioおよびC++Builder)のトライアル版は、こちらからダウンロードできます。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
EDN CodeZine出張所連載記事一覧

もっと読む

この記事の著者

EDN編集部(イーディーエヌ編集部)

エンバカデロ・デベロッパーネットワーク(EDN)は、ソフトウェア開発者とデータベース技術者のための技術情報サイトです。Delphi、C++Builderをはじめとする開発ツールやER/Studioなどのデータベースツールに関連する技術記事、ビデオなどを提供しています。EDN編集部は、EDN記事と連携...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9168 2015/12/24 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング