バージョンアップでFacebook投稿機能などを追加する

2012年4月27日(金)
PROJECT KySS

前回までの3回で、俳句アプリ「一日一句 Ver.0.8」の開発方法について解説しました。

今回からは、facebookへの投稿や翻訳支援などの機能を追加した、バージョンアップ版「一日一句 投稿対応版 Ver.1.0」の開発方法を取り上げます。

本連載の関係上、マーケットプレイスでは旧バージョンの公開を継続したまま、新バージョンも公開しています。

このように、旧バージョンも据え置く場合は、実質的にはバージョンアップであっても新規のアプリと同じ手順で申請を行います。

申請準備から公開までの手順については、第1回第2回で詳しく解説していますので、そちらを参照してください。

追加・変更点のリストアップ

まずは、今回のバージョンアップ版の企画を固めていきます。今回も旧バージョン同様、日本語版で、国内公開とします。ただし、このバージョンアップは、英語版開発への布石です。そこで、英語化に向けて機能を追加してページ構成も見直していきます。バージョンアップで実装する機能は、表1のようになります(第5回の表2も参照)。

主な変更点は、次のとおりです。

「季節」単位から「月」単位に変更する

旧バージョンでは季語を重視して「季節」をひとつの単位としていました。しかし、海外では日本と季節が異なりますから、季語検索・ファイル保存・データの表示・ファイルの削除は月単位に変更します。これに伴い、表示と削除処理では、処理対象とする年月を選択する画面を追加します。

「facebookへの投稿機能」を追加する

俳句を実機内に保存するだけでなく、facebookに投稿する機能を追加します。この実装には、ShareLinkTaskを使います。

「翻訳機能」を追加する

日本語の着想を英語で表現できるよう、翻訳機能を追加します。この実装には、第7回で述べたとおり、Microsoft Translatorを使います。訳した結果は、韻文ではなく散文、文芸作品ではなく日常会話やビジネス会話のようになりますので、俳句の形にするには、編集が必要です。

「横書き」に変更する

英文俳句を表示する関係上、簡易縦書きから、横書きに変更します。表示ページには、早送り・巻き戻し・先頭ジャンプの機能ではなく、登録日時での昇順・降順のソート機能を追加します。

表1:バージョンアップで追加・変更・削除する機能

※画像をクリックすると拡大表示します。

今回のバージョンの課題

今回追加・変更する機能によって生じる課題を見ておきましょう。主だったところでは、次の3つが考えられます。

  1. ネットワーク非接続下での使用への対応
  2. Facebookへ投稿しないユーザーへの対応
  3. 俳句入力方法の決定(改行と字数制限)

1. ネットワーク非接続環境での使用への対応

今回のアプリで、まず問題になると考えられるのは、ネットワーク非接続下でのMicrosoft Translatorを用いた翻訳とfacebookへの投稿処理です。実機のネットワーク接続の設定をオフに変更している環境での動作によっては(図1)、マーケットプレイス認定条件の5.1.2にある「ユーザーに分かりやすいエラーメッセージを提供」をしなければなりません。

そこで、プログラムを記述した後、実機の設定をオフにして動作を確認します。

翻訳処理については、実機の設定がオフの場合は、「The remote server returned error. NotFound. At System.Net.Browser.AsyncHelper…」といったエラーが画面につらつらと表示されます。これは、Visual Studioを使っていないユーザーにとっては非常に面くらうエラーです。そこで、図2のように、メッセージ表示の処理を追加しておく必要があります。

一方、facebookへの投稿については、実機の設定がオフの場合、エラー処理を追加していなくても、現在では図3のように、自動的に投稿できない旨のメッセージが表示されます。

 図1[左上]:au IS12Tの設定画面のイメージ。ユーザーがネットワーク接続をオフに変更していて、動作に支障が生じる場合は、エラーメッセージを提供する必要がある
図2[右上]:Microsoft Translatorについては、この図のようにエラーメッセージを表示させる必要がある
図3[左下]:facebookへの投稿については、ネットワーク接続がオフの場合は、自動的にメッセージが表示される(クリックで拡大)

2. facebookへ投稿しないユーザーへの対応

Windows Phone を持つすべての俳人が、facebookの友人に作品を伝えたいかどうかは分かりません。オフラインで応募作品を練りたい場合もあるでしょう。にもかかわらず、俳句を詠む度にfacebookへの投稿画面が表示されるのでは、ユーザーはうっとうしいと感じるはずです。

投稿したいユーザーに対しては、保存処理に続いて投稿処理を実行し、投稿したくないユーザーに対しては保存処理にとどめて投稿機能を実行しないという、どちらにも都合のよい構成にしたいと思います(図4)。

そこで、facebookへの投稿可否を設定する画面を追加します。

デフォルトでは投稿しない設定にしておきます。投稿したい場合は、タイトルとリンク先(ブログやTwitterや句会のWebサイトなどのURI)を設定します。この設定は随時変更できるようにします。

投稿設定後に、投稿をとりやめる場合は、「投稿不要」ボタンのタップにより、設定情報を破棄できるようにします。つまり、設定ファイルの有無により、投稿機能の実行を判断させるようにします。

この方法であれば、もし、ユーザーが誤って設定情報ファイルを削除した場合でも、再度投稿設定を行うだけで済みます。

 図4:facebookへの投稿設定の流れ(クリックで拡大)

3. 俳句入力方法の決定(改行、字数)

日本語句は1行で表示できますが、英語俳句は基本的に3行から成るそうです。そこで、3つのTextBoxを作り、3行を分けて入力するという方法が考えられます。

しかしながら、3つに分けてしまうと、ユーザーに入力ボックスの移動という手間をかけさせてしまいます。また、英語俳句は自由詩のようなものですから、絶対に4行になってはいけないといった明確な決まりはないようです。

そこで、ごく普通にテキストエディタで詩を書く時のように、1個のTextBox内に、「Enter」キーで改行しながら入力する方法を採用します。また、字数制限も設定せず、検証も行わないものとします(図5)。

 図5:入力ボックスは3つに分けずに、右図のように改行しての入力とする。字数も制限しない(クリックで拡大)
  • ロゴとボタンのExpression Designファイル

四国のSOHO。薬師寺国安(VBプログラマ)と、薬師寺聖(デザイナ、エンジニア)によるコラボレーション・ユニット。1997年6月、Dynamic HTMLとDirectAnimationの普及を目的として結成。共同開発やユニット名義での執筆活動を行う。XMLおよび.NETに関する著書や連載多数。最新刊は「Silverlight実践プログラミング」両名とも、Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。http://www.PROJECTKySS.NET/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています