スマホ×クラウドなアプリの新しい開発スタイル
本連載では、スマートフォンとクラウドコンピューティングの技術を組み合わせた際に、アプリ開発を効率化できるToolkitやSDKを取り上げていきます。スマートフォンとしてiPhone、Android、Windows 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を採用する場合の開発スタイルの組み合わせは下記のようになります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
- Windows PhoneはWindows Phone 7.5(OSはWindows Phone 7.1コードネーム「Mango」)のことを表す
- クライアント開発技術に関してAndroid開発でのNDK(C++)の利用やWindows Phone開発でのXNAなどは除く
- クライアント開発技術に関してHTML(HTML5含む)を利用した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を叩くので、分離開発する必要なく同等のアーキテクチャになります)。
画面開発はAIR 3やSilverlightを使い、高い生産性で非常にリッチなものを開発、ネイティブリソースを処理する部分はプラットフォームごとの言語で開発、WebRoleやAmazon 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種類の方法でアクセスできます。
- iOSからToolkitを利用して直接Azureにアクセス
- iOSからプロキシサーバを経由してAzureにアクセス
後者のプロキシサーバはiOS Toolkitでは「Cloud Ready Packages for Devices」と呼ばれていて、あらかじめパッケージされたAzureアプリ(CloudReadyPackageForDevices.cspkg)と設定ファイル(ServiceConfiguration.cscfg)が提供されています(以後、「for Devices」を省略)。このCloud Ready Packagesは以下の4通りが提供されています。
- Cloud Ready Package ACS+APNS版
- Cloud Ready Package ACS版
- Cloud Ready Package Membership+APNS版
- Cloud Ready Package Membership版
ここでのMembershipはユーザー認証をACSではなく、ユーザーIDとパスワードで行うバージョンです。Cloud Ready PackageのプロキシサーバにユーザーIDとパスワードを投げて認証します。
このプロキシサーバはWP Toolkitで提供されているものと同等でAzureへの認証をプロキシサーバが行うので、Azureのアクセスキーをクライアントアプリに埋め込んだり、プロキシサーバを自作する必要はありません。
また、前者のiOSから直接Azureにアクセスする場合は、ACSを使った認証を現在利用できません。
iOS Toolkitの構成は以下です。
- Objective-C用ライブラリ
- iOS向けサンプルアプリ
- Cloud Ready Packages(プロキシサーバアプリ)
- Cloud Ready Packageの設定ファイルを作成できるMac OS X用コンフィグユーティリティ
これらのライブラリやサンプルはGitHubで管理されています。いつも筆者はSilverlightやWindows Phone関連ライブラリをCodePlexで落とすので、新鮮でした。
次ページでは、iOS Toolkitのサンプルアプリを動かす準備をします。
Copyright © ITmedia, Inc. All Rights Reserved.