読者です 読者をやめる 読者になる 読者になる

書くことないです。

ayamadoriが独り言を呟く日記。

こんなこともやってます。(が、もはやあまりやる気は無かったりする)

【Nothing to release./携帯電話向けSoftware】

ソーシャルフィードをPeopleアプリに表示する方法。

Programming Windows 10 Windows Phone

Peopleアプリ(People Hub)でTwitterとかFacebookの新着情報をまとめて表示する機能のこと。
ウェブ/クライアント、サービスベンダ/MSの境目が変わってる。

Windows Phone 7~8, Windows 8/8.1

www.microsoft.com
どうやらActivity Streamsという規格を使っているらしい。

www.slideshare.net

Activity Streams / Windows-Live-Activity-Streams

osdn.jp

Atomフォーマットの拡張版という感じらしい。

ソーシャル・オブジェクトを Atom フォーマットで表現する

これを使ってウェブ上のWindows Liveに情報を集約したうえで、端末のPeopleアプリに配信する形。

しかしあまり流行らなかったのか、サービス側の仕様変更で使えなくなったりした。

Windows 8/8.1 の People アプリでは、Facebook および Sina Weibo のネットワークとの統合は、両サービスの接続先ソフトウェアに加えられた変更によりサポートされなくなりました。つまり、People アプリから Facebook または Sina Weibo の情報にアクセスしたり、これらのサービスに直接シェアすることはできなくなります。
https://support.microsoft.com/ja-jp/help/14103/windows-8-people-app-help

裏を返せばMSが仕様変更に付いていかなかったということでもある。
この時期にはもうWindows 10が見えていて、そこでPeopleアプリに手を入れることが決まっていたからだろうか。(推測)

しかしこのActivity Streams、今でも使ってるサービスあるんだろうか。一応バージョン2.0を作ろうとしているようだけど。。。

Activity Streams 2.0

Windows Phone 8.1

自分の知る限り、TwitterFacebookなどの特定のサービスベンダにしか仕様が公開されていなかったため詳細は不明。
ただし、動作を見る限り後述するWindows 10と似た仕様になっていたと思われる。

Windows 10

基本的にはこの記事が全て。
サービスベンダのアプリにバックグラウンドで情報を取得させて、それをPeopleアプリがAppServiceで取得するような形か。
https://msdn.microsoft.com/en-us/windows/uwp/contacts-and-calendar/integrating-social-feeds-into-contact-cards?f=255&MSPPError=-2147217396msdn.microsoft.com

(追記:2016/10/24)
上のリンクが消えている。

メインとなるSocialInfo APIを見ると、Device familyが

Mobile, introduced version 10.0.10240.0
Universal, introduced version 10.0.14393.0
Windows.ApplicationModel.SocialInfo.SocialInfoContract - Windows app development

となっているので、Windows Phone 8.1の仕様をまずビルド10240で公開したということだろうか*1(推測)
それをビルド14393(いわゆるAnniversary Update)でUniversalに移動している。
ターゲットをPCにしても当然ビルド/デプロイ可能だが、Peopleアプリがまだソーシャルフィードの表示に対応してない模様。

公式サンプル。14393での変更が織り込まれてないので早く更新してほしい。
github.com

チラシの裏

Twitterさんは早く公式アプリをこれに対応してほしい。自分ではやる気がない。

*1:ただし、Windows 10 Mobileの最初の公式リリースはビルド10586

UWPアプリのタイルアイコンを作るのは苦行。(Visual Studio 拡張機能編)

Programming Windows 10

前回の続き。せっかく拡張機能が使えるVisual Studio Communityを使ってるので、探してみたら2つ見つかった。

UWP Tile Generator

visualstudiogallery.msdn.microsoft.com
MSの中の人が作ってるっぽい。公式ブログでも紹介されてる。
ソースファイルを右クリックするだけでappxmanifestまで設定してくれてすごく楽。
今までは一部のファイルがガイドライン通りに生成できない不具合があったけど、最新バージョンで解決した模様。
Syncfusion Metro Studioで生成したSVGをソースファイルにすると図形が崩れる気がする。PNGなら大丈夫なのであまり気にならない。

UWP Visual Assets Generator

visualstudiogallery.msdn.microsoft.com
UWP Tile Generatorの不具合が直るまではこちらを使ってた。
基本的な機能はUWP Tile Generatorとほぼ同じだけど、別途ウインドウを出す必要があって少し手間がかかる。
その代わり生成するファイルを選択できたり、あえてガイドラインを外れたアイコンサイズにできたりと、設定の柔軟性が高め。
生成するファイルの数が多い(基本解像度以外のファイルも生成する)ためか、全てのファイルを出力するのにやや時間がかかる。

UWPアプリのタイルアイコンを作るのは苦行。

Windows 10 Programming

公式ガイドラインを見てみる

基本的には、以下のサイトにすべて書いてある、と思う。

Tile and icon assets

それに加えて、拡張子の関連付けをしたい場合にはこちらも対応しなければいけない*1

Handle file activation

さまざまなフォームファクタに対応するためか、必要な画像ファイルの種類がとても多い。
さらにネックになるのが、
『画像サイズだけでなく、画像に占めるアイコンの割合がアイコンの種類によって異なる』
という点。画像の高さ基準で100%/75%/66%/50%/33%の割合にアイコンサイズを調整しなければならない*2。画像サイズだけなら単純な拡大/縮小で対応できるのだけど、アイコンサイズを考え始めるとトリミングする必要もあって、作成に非常に手間がかかる。

拡張子の関連付け用のアイコンについては

Match the look of the app tile logo and use your app's background color rather than making the icon transparent. Have the logo extend to the edge without padding it. Test your icons on white backgrounds.

とあるけど、正直言ってることがよく分からない。エクスプローラで確認する限り、アイコンの背景は透過でも問題ない*3し、パディング無し(すなわちアイコン割合100%)だと、他のアイコンと比較して大きくなりすぎる。
というわけで結論として自分は『背景白色、前景ダークグレー、アイコン割合75%』とした。これが正解かはわからない。

タイルアイコンを作る

上記したようにサイズとアイコン割合の異なる非常に多くの種類の画像を用意する必要があるので、そういうのが自動で行えそうなソフトを探した。
その結果、もともとアイコン作成が面倒でSyncfusion Metro Studioを使っていたということもあり、Xamarin Logo Makerを使うことにした。
www.microsoft.com
もともとはXamarin用にiOSAndroidをも含めたアイコン画像を自動生成するソフトのようだけど、Metro StudioからエクスポートしたXamlファイルをそのまま読み込めるので、UWP用だけで使ってもとても便利。
ただし使用にあたっていくつか注意点というか、自分がつまづいたところがあるので覚書。

  • ディスプレイスケーリング100%の環境で使用すること。
    • アプリ上でプレビューされているアイコン画像をそのまま出力するようで、ディスプレイスケーリングが100%でないとそれに合わせてアイコン画像の出力サイズが変わってしまう。
  • 設定可能なアイコン割合は3種類。
    • 上記したように、ガイドライン上では100%/75%/66%/50%/33%の5種類のアイコン割合が必要だが、このアプリでは3種類しか設定できないので、一部のアイコンはガイドラインに適合しない。僕の場合は基本的に100%/75%/33%で設定している。別途調整・出力しなおせばもちろんガイドラインに厳密に一致させることは可能だがめんどくさい。

詳細は上記リンクを参照するとして、とりあえずこの設定で小タイルが75%になる(正しくは50%)以外はガイドラインに適合するはず。
f:id:ayamadori:20160216001942p:plain

チラシの裏

ホント、もうちょっと何とかならなかったんですかね。。。表示されるアイコン割合の種類自体を減らすか、自動トリミング使うとかしてもう少し種類を減らしてほしい。まあ今更変わってもそれはそれで面倒なことになりそうだけど。。。

Visual Studio 拡張機能編(完結編)を追記。
ayamadori.hatenablog.com

*1:しなくても一応動作はする

*2:100%と66%はどちらもターゲットベースのアセットに必要で、いずれか一方があれば良いのかもしれない

*3:もちろん背景透過+前景1色だとアプリ側の背景によってはアイコンが見えなくなることがあるので、最低2色使用するなどの調整は必要

Nokia Asha 230のXpress BrowserをOpera Miniに更新した@カンボジア

Diary Trip Mobile Phone

http://www.opera.com/blogs/mobile/2015/02/how-to-upgrade-from-xpress-opera-mini/www.opera.com

by December 2015, all browsers will be updated to Opera Mini.

とあり、12月までに通知は来なかったし更新もできなかったので不安だったのだけど、1月に入ってからでも無事にできた。
更新方法は適当にいじっていたので曖昧なのだけど、端末内のXpress Browser上でどこかのURLにアクセスしようとするか、他のブラウザで http://m.opera.com/nokia にアクセスすればOpera Miniがダウンロードされてくるはず。
なお上記リンク中には言及がないけど、Asha 230に適用されたのはVersion 8.0.40377だった。

このOpera MiniOpera Mobile Storeでダウンロードできるものと違って、ちゃんとAsha Platform向けにカスタマイズ*1されていて、僕が今までOpera Miniに対して持っていた不満がかなり解消されている。
具体的には以下。

  • 文字のインライン入力(ストア版Opera Miniもアプリ内蔵キーボードでは可能だった)
  • ハードウェアバックボタン対応
  • FastLane対応
  • [Share]メニュー対応(ストア版Opera MiniではTwitterFacebookにしか共有できないけど、システムの共有に対応することでメールやメッセージング、自作の翻訳アプリなどにも共有できる)
  • ローカルに置いたhtmlファイルの表示
  • ブックマークはXpress Browserから引き継ぎ(そのかわりサービス終了したOpera Linkも、新しい同期サービスにも非対応。新しい同期サービスは、 https://sync.opera.com/web/ にアクセスすれば項目編集以外の作業は可能)
  • ホームスクリーンへのウェブサイトのショートカット作成(ただしこれについては作成できても実際に開こうとするとファイルブラウザが起動してしまう。バグ?)
  • プラットフォーム側へのOAuth認証対応

ちゃんとデフォルトブラウザとしての機能は押さえてる。まあどれもXpress Browserでは普通にできてたことだし、複数タブを開けない*2ところまで真似しなくても良いのにな。。。とは思う。

おかげで、写真のTwitterへのインスタントアップロードもできたし、


自作の日本語入力アプリを使って日本語ツイートもできた。

とりあえず、Asha PlatformもOpera Miniもサポートは一応まだ終わってない*3ので、これで引き続き使い続けられそう。とても気に入っているので嬉しい。

チラシの裏

ツイートのクライアント名が"Nokia"から"Microsoft Connect"に変わってる。当然と言えば当然だけど寂しい。

公式Twitterアプリはなぜかログインできなかった。サポートはまだ続いているはずだし、フィンランドではログインできたので、回線側の問題か?


本屋にカンボジア版六法全書のようなものが売っていたけど、それを買ってまで調べるモチベーションはなかった。

*1:システムインテグレートと言うべきか

*2:Asha Platform端末のうちAsha 230のみ、リソースの問題なのかこういう仕様になっている

*3:Opera Miniは次いつアップデートするんだ。。。って感じの放置っぷりだけどw

UWPアプリを作ってみた。

Windows 10 Programming

手元のPCはもうWindows 10になったし、MADOSMAももうすぐなりそうなので、練習を兼ねてとりあえず今わかってる困り事を何とかしようとした。
まずはハンズオンの資料を使って練習。

最初に作ったのは、ブラウザで開いたGoogle Mapsなどの地図サイトと同じ場所を、Windows 10標準マップアプリで開きなおすアプリ。
www.microsoft.com
Get it on Windows 10
ブラウザでレストランやホテルを探すとだいたいGoogle Mapsで表示されているので、それをマップアプリで開けばお気に入りに登録したりルート案内できるなーと。海外であればさらにオフラインマップが使えるというメリットもある。
ルート案内については、ウェブで検索した結果をそのまま開きなおすのが難しそうだったので、スタートとゴールだけをコピーしてる。Googleとbingの検索結果の違いがわかってちょっと楽しい。
一応bing Maps(web)とYahoo! Maps(日本)にも対応してみたけど、まあ微妙ですな。
とりあえず、UIがほぼ不要だったのであっという間にできたし*1、『アプリを作ってストアに通す』という一番基本的なところだけを体験できたのは良かったかな。

お次はOutlook Expressなどで使われる、EMLファイルを開くだけのアプリ。
www.microsoft.com
Get it on Windows 10
301Zからサーバメール転送をすると、本文がEMLファイルとして添付されて送られてくるので、それを開けるようにするのが目的。Windows 10標準のメールアプリでは開けないのだけど、PCならWindows 8.1向けのアプリが使えるし、Windows Phone 8.1の標準メールアプリではそのまま開けるので、今は特に困ってない。ただ近い将来にMADOSMAがWindows 10 Mobileになると困るなと。
一番肝心なEML(MIME形式)のパースは外部ライブラリにお任せなので特にやることがなかった。UIとかファイルハンドラのいい勉強になったかな。ドラッグ&ドロップなんかはUWPで初対応のはずだし。


Windows 10 Mobileはまだ実機を使ったことないからね。

*1:実働2日くらい?

Microsoft Edge の同期設定が有効にできなかった。(解決)

Diary Gadget Windows 10

Windows 10 のメジャーアップデートがついにやって来た。
blogs.windows.com
ということで、うちのPCもアップデートした。


ここで1つ不具合が出たので覚書。

不具合

  • Edgeの同期設定がグレーアウトして無効から有効に変更できない
  • [設定]にて行うOSの同期設定はすべて有効にしてある
  • Edge上に『同期するには、[設定]でWindowsの同期を有効にします。』という文言と[設定]へのリンクが表示される(しかしリンク先に飛んでも上記の通りすべて有効になっている)

Edgeの設定同期は今回のアップデートの目玉の一つで、個人的にも期待していた機能なので使えないのは痛い。

対策

http://answers.microsoft.com/en-us/insider/forum/insider_internet-insider_spartan/favorites-not-syncing-build-10565/359f9428-e485-4b4d-b127-292f18423a34

1. Edgeを終了する
2. レジストリエディタで以下のキーを削除する

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\SettingSync\SyncPolicy

3. Edgeを起動し、同期設定を有効にする

もしかしたらアップデートをメディア作成ツール経由で行ったのが原因かもしれないけど、不具合が発生したのはWindows 8からアップデートしたPCで、Windows 7からアップデートしたPCでは再現しなかったのでよく分からない。

超簡易Ustreamアプリを作った。

Programming Windows Phone Mobile Phone


Ustreamのライブ動画を再生するだけのアプリ。
去年だかおととしだかにテスト的に作ったんだけど、MADOSMA使ってたら出したくなった。
やってることはUstream*1公式の自動トランスコードシステム

Ustream Asia Inc.|お知らせ
HTMLでiPad用のUstreamViewerを作ってみた- hoelog

を使用してHttp Live Streaming(HLS)に変換されたライブ動画を、
Windows Phone Streaming Mediaphonesm.codeplex.com
を利用して再生しているだけ。

トランスコードを利用している関係でライブ動画しか再生できない。
それだけじゃなーってことでWebBrowserコントロールにウェブ版のソーシャルストリーム画面をそのまま貼り付けて、とりあえずコメントがリアルタイムで見られるようにはなっているのだけど、コメント投稿は基本的にはできない。ストアでもそう明記している。

しかし実はTwitterアカウントでだけはコメントできるかもしれない。いったんログインした後チャンネル検索画面に戻って再度開くと、ログイン状態が維持されていてコメントできることがある。たぶんWebBrowserコントロールの初期化とCookieの扱いに問題があると思ってるのだけど、原因がよく分からないのでしばらく放置。

どうせWindows 10 MobileになればHLSがネイティブでサポートされるし、たぶんこんなアプリがなくても見られるようになると思ってるのでこれ以上のやる気がもはや無い。。。

以下は開発時の覚書。

*1:おそらくUstream Asiaだけ?

続きを読む