Hatena::ブログ(Diary)

backyard of 伊勢的新常識 RSSフィード Twitter

[収集中]日本の開発者が作ったWindows Phone 7アプリ一覧

2011/12/28(Wed)

冬コミ出展します。たぶん。

まもなく冬コミです。普段はお手伝いばかりのところ、今回は自分サークルとして出すことになりました。

id:tmyt と一緒に、普段紹介したくても紹介できない真っ黒ネタ本をここぞとばかりにお届けする予定です。んが、仕事充してて実はまだ影も形もありません。。。これからがんばって作る感じです。うまくいけば当日あるかもです。

3日目(31日(土)) 東ヒ-34a 伊勢的新常識 です。諸般の事情で早々に切り上げる予定ですが、もしよければお立ち寄りください。

2011/12/30(Fri) 追記

f:id:iseebi:20111228170326p:image:small:right

ちゃんとでそうです。予価500円です。


2011/12/01(Thu)

もっとタイルを更新しよう - 端末の中での競争に打ち勝つために -

Windows Phone Advent Calender 2011 Day 1


いきなり出遅れてしまいましたが、Windows Phone Advent Calendar 2011 1日目です。技術的な話を最初からやっちゃうと後ろの人がネタかぶりしちゃうかもなので、ちょっと最近考えてることを書いてみようと思います

スタート画面という表舞台活躍する or リストで眠り続ける

Windows Phoneアプリインストールされると、アプリ一覧に入ります

f:id:iseebi:20111201023759j:image:medium

この中からユーザーは使いたいアプリを「スタート画面に追加」します

f:id:iseebi:20111201023758p:image:medium

使われるアプリは「スタート画面に固定」されるわけです。そして、スタート画面にいるアプリと、アプリ一覧で眠り続けるアプリの2つに大きく分けられてしまいますインストールしてあっても使われるアプリと使ってもらえないアプリというのはあると思うのですが、iPhoneAndroidみたいに、アプリ一覧で自由な並び替えができないWindows Phoneは「アプリ一覧で眠り続ける」アプリの数は相対的に多くなってしまうのではないでしょうか。

アプリを長く使ってもらうためにはユーザーに「スタート画面に追加」させないといけないのです。

いかにして「スタート画面に追加」させるか

では、スタート画面に追加したくなるアプリとは何でしょうか。

アイコンがきれい

アイコンがきれいなアプリは単純に並べておきたくなりますね。アイコンアプリの顔ですので、みなさんこだわりを持って作られていると思います

その中でもとくにきれいで、ユーザーに気に入られるものがここに該当するわけです。

よく使う

アプリ機能特によく使われる場合は、ホームにおいておきたくなります。たとえば路線検索などの生活密着系のアプリが該当するでしょう。

情報提供してくれる

Windows Phoneではアプリタイル更新できます。定期的に新しい情報提供してくれるアプリはスタート画面においておきたくなります。この機能タイルである必要があるので、この機能を使うためにはユーザー必然的にスタート画面に追加せざるを得ません。

ソラダスお天気予報はとてもよいお手本です。僕はこのアプリをあまり起動しないのですが、常に最新の天気情報更新してくれるのでずっと固定しています

iPhoneAndroidにない、Windows Phoneならではの機能です。端末の中での競争に打ち勝つために、ぜひ活用したい機能です。

タイル情報更新するために

タイル情報更新するためには以下の3つの方法が使えるのではないでしょうか。

アプリ起動中に更新

アプリ起動中にデータを受信してタイル更新する方法です。好きなタイミングに更新することはできませんが、ユーザーアプリを起動する回数が特に多いことが考えられる場合には、一番手間のかからないよい方法となります

プッシュ通知

タイルを外部のサーバーから書き換えることのできる機能です。一番強力ではありますが、アプリとは別にサーバープログラムを用意する必要があるので実装のコスト結構あがるのと、サーバー運用コストもかかります

また、Windows Phoneのプッシュ通知は使えるアプリの数が限られているので競争率が高いです。

しかし、外的要因に基づいて柔軟に指定することができますし、自由なタイミングで更新したいのであればこの方法しか考えることができません。ソラダスお天気予報などがこれにあたります

Background Agent

バックグラウンド実行の定期実行を使えば、プッシュよりも手軽に、任意のタイミングでタイル更新することができます。ただし、実行可能時間が15秒とにかく短いので、キャッシュ処理をうまく活用して表示を更新しないといけません。

宝塚市ごみの日カレンダーで使っているのはこの方法で、一度アプリを起動すると、2ヶ月分のカレンダーを先読みします。あとはキャッシュ情報で処理できるので1秒かからず処理が終わります

まとめ

2011/11/15(Tue)

Subversionのログを一括で修正する

Subversionログに書いてあるURL移転とかで変わったけど全部正しいURL差し替えたい…!とかそういうニッチなことをするの、こんな感じでどうでしょうか。

1.リポジトリダンプして、一時リポジトリを作ってそこにインポートする

$ svnadmin dump repos/fromrepo > dump.dump
$ svnadmin create repos/workrepo
$ svnadmin load repos/workrepo < dump.dump

2.ログXMLで出力し、出力されたXMLコメントをお好みに編集する

$ svn log --xml file:///Users/ebina/work/svn_comment/repos/workrepo/ > logs.xml

3.以下のRubyスクリプトを実行

require 'rexml/document'

svnpath = ARGV[0]
xmlpath = ARGV[1]

if svnpath == nil || xmlpath == nil
  puts "Usage: ruby svn_comment_import.rb [Subversion repositry] [log xml]"
  exit
end

doc = File.open(xmlpath) {|fp| REXML::Document.new fp }
doc.elements['/log'].each do |l|
  if l.class == REXML::Element && l.name == "logentry"
    rev = l.attributes['revision']
    msg = l.elements['msg'].text
    File.open('work.txt', 'w') do |f|
      f.puts msg
    end
    system( "svnadmin setlog --bypass-hooks #{svnpath} -r #{rev} work.txt")
    File.delete('work.txt')
  end
end
$ ruby svn_comment_import.rb /Users/ebina/work/svn_comment/repos/workrepo/ logs.xml

4.正しくログが反映されてるかをsvn logとかで確認して、本ちゃんのリポジトリに持って行く