[収集中]日本の開発者が作ったWindows Phone 7アプリ一覧
2011/12/28(Wed)
2011/12/01(Thu)
もっとタイルを更新しよう - 端末の中での競争に打ち勝つために -
Windows Phone Advent Calender 2011 Day 1
いきなり出遅れてしまいましたが、Windows Phone Advent Calendar 2011 1日目です。技術的な話を最初からやっちゃうと後ろの人がネタかぶりしちゃうかもなので、ちょっと最近考えてることを書いてみようと思います。
スタート画面という表舞台で活躍する or リストで眠り続ける
Windows Phone のアプリはインストールされると、アプリ一覧に入ります。
この中からユーザーは使いたいアプリを「スタート画面に追加」します。
使われるアプリは「スタート画面に固定」されるわけです。そして、スタート画面にいるアプリと、アプリ一覧で眠り続けるアプリの2つに大きく分けられてしまいます。インストールしてあっても使われるアプリと使ってもらえないアプリというのはあると思うのですが、iPhoneやAndroidみたいに、アプリ一覧で自由な並び替えができないWindows Phoneは「アプリ一覧で眠り続ける」アプリの数は相対的に多くなってしまうのではないでしょうか。
アプリを長く使ってもらうためにはユーザーに「スタート画面に追加」させないといけないのです。
いかにして「スタート画面に追加」させるか
では、スタート画面に追加したくなるアプリとは何でしょうか。
アイコンがきれい
アイコンがきれいなアプリは単純に並べておきたくなりますね。アイコンはアプリの顔ですので、みなさんこだわりを持って作られていると思います。
その中でもとくにきれいで、ユーザーに気に入られるものがここに該当するわけです。
よく使う
アプリの機能が特によく使われる場合は、ホームにおいておきたくなります。たとえば路線検索などの生活密着系のアプリが該当するでしょう。
情報を提供してくれる
Windows Phoneではアプリのタイルを更新できます。定期的に新しい情報を提供してくれるアプリはスタート画面においておきたくなります。この機能はタイルである必要があるので、この機能を使うためにはユーザーは必然的にスタート画面に追加せざるを得ません。
ソラダスお天気予報はとてもよいお手本です。僕はこのアプリをあまり起動しないのですが、常に最新の天気情報を更新してくれるのでずっと固定しています。
iPhoneやAndroidにない、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
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






