スマホ×Windows Azure開発講座(Windows Phone編)

第5回 Windows Phoneクライアントアプリケーションの作成

この記事を読むのに必要な時間:およそ 5 分

はじめに

今回は,前回作成したアプリケーションにアクセスするWindows Phoneアプリケーションを作成したいと思います。

前回までに作成したWindows AzureアプリケーションをWindows Azureにでデプロイするには,Windows Azureの無料お試しのアカウントをご用意していただく必要があります。

Windows Azureアプリケーションのリファクタリング

最初に前々回に作成したWebロールアプリケーションを少しリファクタリングしたいと思います。作成したプロジェクトを開いておいてください。

作成したアプリケーションでカードを引いても数値が返って来るだけだったのを,Cardオブジェクトが返って来るように変更します。

Cardクラスの作成

ソリューションエクスプローラのModelフォルダを右クリックし,追加>クラスでCardクラスを作成します。

Id,Name,FileNameの3つのプロパティを作成します(propと打ってTab押下すると楽です!)⁠

カードとしてintを利用していた部分をCardに置き換える

IGameServiceインターフェースのGetCardメソッドの戻り値の型をintからCardに変更します。また,同インターフェースのGetCardListメソッドの戻り値のGameServiceResponseを開き,中身のCardListプロパティの型をList<int>からList<Card>に変更します。

次に,サービスの実装クラスであるGameServiceを修正していきます。

GetCardメソッドの戻り値の型をintからCardに変更し,実際の処理も下記のように変更します。

public Card GetCard()
{
    Card newCard = DataHelper.GetCard();
    DataHelper.SaveCard(newCard);
    return newCard;
}

GetCardListメソッド側も下記のように修正します。

public GameServiceResponse GetCardList(GameServiceRequest request)
{
    GameServiceResponse response = new GameServiceResponse(); 
    List<Card> cardList = DataHelper.SelectCard();
    response.CardList = cardList;
    return response;
}

カードを引く処理を実際に行っているDataHelper側を下記のように修正します。ここではGetCardメソッド内でCardの名称と画像ファイル名を指定してカードを振り出すようにします。今回はWindowsのマイドキュメントのピクチャにあるサンプル画像をカードの画像として利用しています(C:\Users\Public\Pictures\Sample Picturesにあるサンプル画像)⁠

public static Card GetCard()
{
    Random random = new Random(); 
    int newCardNumber = random.Next(1, 8);
    Card newCard = new Card();
    newCard.Id = newCardNumber;
    switch (newCard.Id)
    {
        case 1:
            newCard.Name = "菊";
            newCard.FileName = "Chrysanthemum.jpg";
            break;
        case 2:
            newCard.Name = "砂漠";
            newCard.FileName = "Desert.jpg";
            break;
(カード3から7までの処理は省略)
        case 8:
            newCard.Name = "チューリップ";
            newCard.FileName = "Tulips.jpg";
            break;
        default:
            break;
    }

    return newCard;
}

DataHelper内の他のメソッドのintでやり取りしている部分もCardに修正します。修正が終わりましたら,動作を確認します。アプリケーションを起動し,ブラウザが起動したら,以前同様下記URLにアクセスします。

  • http://127.0.0.1:81/GameService/getcard

以前は数字だけ出ていたのですが,今回は下記のようなJSONフォーマットのカードデータが表示されます。

{"FileName":"Desert.jpg","Id":2,"Name":"砂漠"}

著者プロフィール

福田寅成(ふくだともなり)

クラスメソッド株式会社

RIAエバンジェリスト

RIAやクラウドに関する技術記事執筆やセミナーの開催を通じて,先進技術の啓蒙を行う日々。Flex/AIR/Silverlight/AWS/Azure/Android/iOS/Windows Phone/UXと幅広い技術を担当。

Twitter:@Cronoloves

コメント

コメントの記入