連載
» 2011年09月12日 00時00分 公開

スマートフォンとクラウドをつなぐ技術カタログ(1):スマホ×クラウドの可能性をAzure×iOSで試す (1/3)

[福田寅成,クラスメソッド株式会社]

スマホ×クラウドなアプリの新しい開発スタイル

 本連載では、スマートフォンクラウドコンピューティングの技術を組み合わせた際に、アプリ開発を効率化できるToolkitやSDKを取り上げていきます。スマートフォンとしてiPhoneAndroidWindows Phoneの3つ、クラウドとしてはWindows Azure(以後、Azure)、Amazon Web Services(以後、AWS)などを取り上げ、連載ごとにそれぞれの組み合わせを1つ取り上げ、クラウドベンダから提供されているツールを利用した開発スタイルを紹介していきます。

 第1回はWindows Azure Toolkit for iOS(以下、iOS Toolkit)を紹介しますが、その前に、スマートフォンとクラウドを組み合わせたアプリ開発の筆者の考えるスタイル一覧を紹介しておきたいと思います。

 スマートフォンとしてiPhone、Android、Windows Phone、クラウドとしてはAzure、Amazon Web Servicesを採用する場合の開発スタイルの組み合わせは下記のようになります。

表 スマホ×クラウド開発スタイル
スマホ クライアント開発技術 クラウド Toolkit/SDK
iOS Objective-C Azure Windows Azure Toolkit for iOS
Android Java Windows Azure Toolkit for Android
Windows Phone Silverlight Windows Azure Toolkit for Windows Phone(以下、WP Toolkit)
iOS Objective-C AWS AWS SDK for iOS
Android Java AWS SDK for Android
Windows Phone Silverlight AWS SDK for .NET

  • Windows PhoneはWindows Phone 7.5(OSはWindows Phone 7.1コードネーム「Mango」)のことを表す
  • クライアント開発技術に関してAndroid開発でのNDK(C++)の利用やWindows Phone開発でのXNAなどは除く
  • クライアント開発技術に関してHTMLHTML5含む)を利用したWebアプリ、HTML5のアプリキャッシュを利用したスタンドアロンアプリは本連載では取り上げない
  • クラウドに関してGoogle App Engineやその他のクラウドプラットフォームも本連載では取り上げない
  • AWS SDK for .NETはPC向けSilverlightおよびWindows Phone向けSilverlightでは動作しない。個人の責任において必要なAPIに関する処理を修正しつつSilverlight用に移植する必要がある

コラム Adobe AIR 3のNative Extensionでアプリ開発が変わる

さらに、ここにクライアント開発技術としてAdobe AIR 3(のNative Extension)が登場することにより、「特に、iOSとAndroid向けのアプリ開発が劇的に変化する」と筆者は考えています。画面の開発はAIR 3が担当、デバイスのリソースやクラウドへのToolkit/SDKを経由したアクセスなどはObjective-CやJavaが担当するという開発スタイルが可能になります(Windows PhoneはSilverlight内でToolkitを叩くので、分離開発する必要なく同等のアーキテクチャになります)。

図1 AIR 3とネイティブアプリとクラウド 図1 AIR 3とネイティブアプリとクラウド

画面開発はAIR 3やSilverlightを使い、高い生産性で非常にリッチなものを開発、ネイティブリソースを処理する部分はプラットフォームごとの言語で開発、WebRoleAmazon EC2へはRESTなどでAIR 3から直接アクセス、AzureストレージAmazon S3などにはToolkitやSDKを通じてアクセスするというスタイルです。このような流れでのサンプルも機会があれば、紹介したいと考えています。


 スマートフォン×クラウド開発連載の第1回となる本稿では、iPhoneとAzureをつなぐiOS Toolkitに関して取り上げます。

Windows Azure Toolkit for iOSとは

 iOS ToolkitはAzure向けの開発ツールの1つで、iOS向けアプリ、特にiPhone/iPadアプリとAzureを組み合わせたアプリを開発する際に、iOSからAzureの機能を簡単に利用できるようにしてくれるツールです。

 本記事執筆段階ではiOS Toolkitの最新バージョンは2011年7月26日にリリースされた1.2.0です。iOS Toolkit 1.2.0で利用可能なAzureの機能は以下になります。

  • Azureストレージ(Table、Blob、Queue)へのアクセス
  • プッシュ通知
  • iOSなのでAPNS(Apple Push Notification Service)を使う
  • Azure AppFabricのACS(Access Control Service)を使ったフェデレーション認証
  • Windows Live、Google、Yahoo!などのユーザーによる認証が使える

 iOS ToolkitはAzureに対して2種類の方法でアクセスできます。

  1. iOSからToolkitを利用して直接Azureにアクセス
  2. iOSからプロキシサーバを経由してAzureにアクセス

 後者のプロキシサーバはiOS Toolkitでは「Cloud Ready Packages for Devices」と呼ばれていて、あらかじめパッケージされたAzureアプリ(CloudReadyPackageForDevices.cspkg)と設定ファイル(ServiceConfiguration.cscfg)が提供されています(以後、「for Devices」を省略)。このCloud Ready Packagesは以下の4通りが提供されています。

  1. Cloud Ready Package ACS+APNS版
  2. Cloud Ready Package ACS版
  3. Cloud Ready Package Membership+APNS版
  4. Cloud Ready Package Membership版

 ここでのMembershipはユーザー認証をACSではなく、ユーザーIDとパスワードで行うバージョンです。Cloud Ready PackageのプロキシサーバにユーザーIDとパスワードを投げて認証します。

図2 iPhone/iPadからAzureへのアクセス方法 図2 iPhone/iPadからAzureへのアクセス方法

 このプロキシサーバはWP Toolkitで提供されているものと同等でAzureへの認証をプロキシサーバが行うので、Azureのアクセスキーをクライアントアプリに埋め込んだり、プロキシサーバを自作する必要はありません。

 また、前者のiOSから直接Azureにアクセスする場合は、ACSを使った認証を現在利用できません。

 iOS Toolkitの構成は以下です。

 これらのライブラリやサンプルはGitHubで管理されています。いつも筆者はSilverlightやWindows Phone関連ライブラリをCodePlexで落とすので、新鮮でした。

図3 iPhone用サンプルアプリ 図3 iPhone用サンプルアプリ
図4 Cloud Ready Configuration Utility 図4 Cloud Ready Configuration Utility

 次ページでは、iOS Toolkitのサンプルアプリを動かす準備をします。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。