WikiGuide-ウクライナの観光名所のAndroid百科事典

ウィキガイド

6月、HTCの支援により、ウクライナでAndroidアプリケーション開発者を対象にしたコンテストが開催され、私も参加しました。 コンテストに提出したアプリケーション、その作成方法、遭遇したAndroidプラットフォームの問題についてお話したいと思います。



まず、プログラムの簡単な説明:

ウクライナ各地からのアトラクションの百科事典。 ロシア語およびウクライナ語のウィキペディアからの詳細情報。 他のユーザーの写真、ビデオ、レビュー。 旅行日記とソーシャルネットワークとの統合。



まだAndroidフォンを持っていない人のために、カットの下でアプリケーションのビデオレビューを行いました。





アイデア





私はウクライナを旅行して新しい場所を発見するのが大好きなので、競争について知ったとき、アイデアは自然に生まれました。 なじみのない都市で尋ねる2つの主な質問に答えるアプリケーションを作成します。 「どこへ行くのですか?」「これはどんな場所ですか?」



競争のルールとプログラムを評価するため基準を (ウクライナ語で)注意深く読んで、選択したトピックが完全に適合することを認識しました:ウクライナ市場にとってメリットは明らかであり、「Androidプラットフォームテクノロジー」-カメラとGPSを使用するのが非常に適切です。



当初、競争の申請は6月10日まで受け付けられることが示されていました。 あまり時間がなかったので、私はクリミア半島の景色に身を任せることにしました。 その後、競争は6月末まで延長され、これによりプログラムのデータベースにウクライナ中の興味深い場所が追加されました。



前の段落で、ウィキペディアへのリンクには理由がないわけではありません。 この素晴らしい百科事典を少し勉強した後、ガイドと一緒に訪れた場所についても、多くの興味深い新しい事実を見つけました。 各アトラクションについてウィキペディアの記事を表示することが決定されました。 さらに、ウィキペディアには、Androidブラウザーで見栄えの良いモバイル版があります。



たまたま私が扱っているJuickマイクロブログサービスでは、地理位置情報と写真/ビデオのサポートがあるため、Juick APIに基づいてアプリケーションのソーシャル機能を作成することにしました。 特にWikiGuideでは、APIのJSONバージョンが追加されました(サードパーティの開発者にはまだ公開されていません)。 また、Juickを使用したおかげで、プログラムは自動的にFacebookやTwitterと統合されて登場しました。



開発



私はすでにJava全般、特にAndroidでの開発経験があったため、特別な問題はありませんでした。 しかし、わずかな困難がありました。



私が直面しなければならなかった最初の難しさは、Android用の既製のグラフィックスがほとんど完全に欠けていることと、システムアイコンの非常に乏しいセットでした。 プラットフォームにはかなり具体的な要件があるため、出会う無料のアイコンセットを取得することはできません。 また、Android UIガイドラインを使用して描画されます-片手の指で数えることができます。 すべてを自分で描く必要があります。 これから難易度2が出てきます。



私はLinuxで働いており、アプリケーションは通常のNetBeansで開発されました。 公式のLinux Android SDKは問題なく動作し、苦情も発生しません。他のOSをインストールする必要はほとんどありません。 しかし、これはプログラミングにのみ適用されます。 上記のリンクを付けたUIガイドラインでは、デザイナーに対する差別がすでに始まっています。すべてのテンプレートと例はPSD形式であり、マニュアルの設定とスクリーンショットはAdobe Photoshop専用です。

もちろん、WindowsやPhotoshopのアイコンをいくつかセットアップしたり、QEMU / Wineで苦労したりするつもりはなかったため、GIMPを使用して設定で指定された効果を適用しようとしました。 不快な驚きが私を待っていました:GIMPの場合、「インナーシャドウ」と「インナーベベル」を実装するプラグインが1つしか見つかりませんでした。このプラグインは、サイズ0のベベルの作成を拒否しました。 誰かが出会って解決策を見つけた場合に備えて詳細を説明します。 この効果なしでアイコンを残す必要がありました。



私にとっての主な問題は、アプリケーションをテストするために電話が必要だったことです。 エミュレータのみを使用して簡単なプログラムをチェックできる場合、私の場合(カメラとGPSを使用)、持っていない電話が必要でした。 :)さらにいくつかの異なるデバイス。 たとえば、スマートフォンのモデルだけでなく、ファームウェアのバージョンにも依存するAndroidカメラのバグに遭遇しました。



一部の場所では機能がまだ不十分であり、いくつかの欠陥があるにもかかわらず、一般的に、Androidプラットフォームは良い印象を与えます。 たとえば、Base64アルゴリズムの実装はバージョン2.2でのみ登場しましたが、古いファームウェアバージョンのデバイスの割合が大きすぎるため、これを使用することはできませんでした。



結論として、プログラムデータベースの自動更新の基になっている興味深いソリューションを共有したいと思います。 私の場合、最後のチェック以降にデータベースに変更があるかどうかを知ることだけが必要でした。 したがって、HTTPプロトコルの標準機能を使用しました。応答のLast-Modifiedヘッダーと、要求のIf-Modified-Sinceです。 ファイルを最後に変更した日付を確認し、チェック時にサーバーにそれを示します。 変更がある場合、サーバーはファイル全体を提供し、そうでない場合はコード302のみを提供します。これにより、サーバー上でスクリプトは不要であり、データベースは通常の静的ファイルとしてすべてのホスティングにアップロードできます。



結果



ウィキガイドウィキガイドウィキガイドウィキガイド







ダウンロードする



このプログラムは、Androidマーケットで入手でき、コンテストWebサイトで APKとして入手できます。

QRコード



競争



コンテストWebサイトのプログラムページ: WikiGuide-コメントを残して、プログラムの印象を伝えることができます。

主催者は、コンテストの結果を7月11日までに投稿することを約束します。 :)



All Articles