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

古事連記帖

趣味のこと、技術的なこと、適当につらつら書きます。

Windows 10 Mobile の未来とは

おことわり: すべて憶測に基づく雑な記事です。参考にしたものはなく、僕が普段 Windows 10 Mobile 端末を使っていて思ったことなどから導き出した話です。ただのたわごと・ポエムだと思って雑に見てください。



土曜日はさわやかに、日曜日は Foursquare Meetup に参加していて気付いてませんでしたが、土曜日に新しい Insider Preview が発表されてから、W10M クラスタがちょっとだけザワザワしてるのを月曜に知りました。

blogs.windows.com

例えばおでさんが記事にするくらいに気にされてるところが、今後の Insider Preview 対応の端末についてです。

・ HP Elite x3
・ Microsoft Lumia 550
・ Microsoft Lumia 640/640XL
・ Microsoft Lumia 650
・ Microsoft Lumia 950/950 XL
・ Alcatel IDOL 4S
・ Alcatel OneTouch Fierce XL
・ SoftBank 503LV
・ VAIO Phone Biz
・ MouseComputer MADOSMA Q601
・ Trinity NuAns NEO

日本で発売されている、ドスパラの Diginnos Mobile DG-W10M や、ヤマダ電機の EveryPhone に、FREETEL の…なんでしたっけ。といった、2016 年に相次いで登場した電話たちは非対応となりました。

Creators Updateの配信端末は限定されるようですod10z.wordpress.com


また、pnp0a03 さんが Windows 10 Mobile に対して悲観的な記事を書いています。

ddlgjp.blogspot.jp


これらを勘案して、僕が思う Windows 10 Mobile の未来を考えてみます。

Windows 10 MobileWindows 10 ARM 版に統合される

…というのは、Windows まわりを追っている人にとってはわかりきった未来かなと思うところです。2016 年 12 月には正式に ARM 版の Windows 10 OS が発表になっています。

pc.watch.impress.co.jp

ARM 版 Windows 10 は、Windows 8 のころ登場した Windows RT ができなかった、ARM で x86 のアプリ (特に Win32 アプリ) が動作するとあって、「真の Windows スマートフォンになるのでは」と期待を込めた記事もありました。

www.itmedia.co.jp

この点から、ARM 版の Windows 10 に Windows 10 Mobile は統合されるものだと強く思っています。ARM の上で Win32 アプリが動作できるようになると、今後 Win32 アプリが動かない Windows OS すなわち Windows 10 Mobile はただただ不利なだけのものになってしまいます。
これで、電話もできて、これまでの Win32 アプリも動く、今までになかった新しい価値のスマートフォンとして今後展開されていくものだと思っています。


ただひとつ懸念もあります。

Windows 10 を搭載したスマートフォンは日本で登場しなくなるのではないか

ARM 版 Windows 10 が出ることにより、Atom 搭載で動いていた Windows タブレットが ARM 版 OS に切り替わっていく可能性もあります。最初はタブレットスマートフォン両方が出るかもしれませんが、スマートフォン上で Win32 アプリを動かすのが難しいまたは Continuum でないとダメなどの制約があると、徐々にタブレットにシフトし、スマートフォンは発売されなくなるという未来も考えられます。
この点をおでさんはかなり気にしているような気がします。


僕も気にしてます。

この点は、今後の UWP の普及次第かなというところもあります。
UWP であれば、スマートフォン版・PC 版など分け隔てなく、その端末の画面サイズに応じた UI を、ひとつのバイナリで提供できますし開発者にとっては UI にさえ注意すれば開発は容易なはずです*1。したがって、UWP で作られたアプリが普及すれば、普段は UWP アプリで事を済ませ、どうしてもだめなときは Continuum などで接続し Win32 アプリを立ち上げる…といった流れになったりで、ポケットサイズの端末の優位性は格段に上がります。
ただ現状を考えると、Win32 アプリの優位な状況は変わらず、このままなら上記のような未来は避けられないかな…なんて思ったりしています。
この辺は米国 Microsoft もそうですが、MSKK仕事しろといった感じ。UWP での開発のしやすさ向上、UWP の安定性向上と、UWP を開発するメリットをもっと高めてほしいです。

*1:実際僕自身が開発してるときも、UI だけ気にすれば簡単に実装出来ました

Microsoft Flow で遊んでみたはなし

今更ながら、Microsoft Flow で遊んでみました。

flow.microsoft.com

要するに IFTTT を業務向けにしました的な。IFTTT 使ったことがないので形容が間違えているかもしれませんが、そんな感じだと認識してます。


業務向けを意識すると、Microsoft は日本語化に力を入れるんだなっていうのがわかるくらい、日本語化がしっかりしています。
もちろん個人でも使うことはできます。無料で使うことができて、15 分に 1 回発動できるかの自動チェックが走り、月 750 回まで実行することができます。
有料だともうちょっとチェック間隔は短く、実行回数も増えます。意外とお安いので気に入ったらお金払ってもいいかなあなんて思ってます。

基本的な登録の仕方や、Flow の作り方は id:kazuakix が書いてましたので紹介します。およそ1年前で、まだベータ的な感じの頃のですが、基本的なところは今も変わっていません。

blog.kazuakix.jp

ちなみに、無料のみ利用可能となりますが、Microsoft アカウントでも登録ができるようになっています。必要に応じて企業アカウント (Azure AD) を取ると、有料プランへの移行もできるようになります。
Azure AD 自体は無料で、僕の場合は Windows デベロッパーセンターで Azure AD を新規作成できる場所があったので、そこで作りました。Azure ポータルでも作れるかと思いますが、ごめんなさい、その辺まで調べ切れていないです。
デベロッパーセンターで Azure AD を作る方法は以前記事で書いていました。

ayano.hateblo.jp


今回やったことはひとつ。
JR東日本アイステイションズが提供している「鉄道運行情報」のメールを、Slack に転送する機能を作ってみました。

www.jikokuhyo.co.jp

Flow のいいところは、Outlook.com に対応しているところ。Outlook.com のメールを扱うサービスがあまりないので、この点はとてもありがたいです。
IFTTT だと Gmail には対応していますが、Outlook.com には対応していませんでした。

id:kazuakix の記事ではテンプレートを利用していましたが、今回は一から作ります。
f:id:ChiiAyano:20170407232731p:plain
f:id:ChiiAyano:20170407232939p:plain

Outlook.com を選んで、はじめて使うときはどのアカウントを使うか、ログインを求められるので、指示通りログインを進めて下さい。
登録できると、どんな条件で発動するかを設定できます。「開始」に差出人のアドレスを入れれば、特定のアドレスにだけ反応することができます。
f:id:ChiiAyano:20170407232945p:plain

次に Slack を追加します。
f:id:ChiiAyano:20170407233003p:plain

このときも、どのチームで使うかを聞いてきますので、設定しログインして下さい。
登録できると、どこにどうやって送信するかを設定できます。「メッセージテキスト」にメール本文、「ボット名」に件名を入れることで、簡易的なメール確認にも使えたりします。
f:id:ChiiAyano:20170407233139p:plain

これでひとまずはできあがり…ですが、メール本文は余計な文があったりして、必要な情報だけほしいと思ったとき、Flow の機能だけではうまくできませんでした。
そこで、半ば仕方なくですが Web API を作って一度そちらを経由し、メール本文を加工して使えるようにしました。

Visual StudioASP.NET Web アプリケーションを選んで…
f:id:ChiiAyano:20170407233911p:plain
今回は Azure API App を選びました
f:id:ChiiAyano:20170407233936p:plain
Azure API App は Swagger と呼ばれるフレームワークを積んだテンプレートになっています。Swagger はとりあえず作るにはかなり簡単なフレームワークで、サーバー初心者でも扱いやすかったです*1

今回はこのドキュメントを参考にしました
Azure App Service で API Apps、ASP.NET、Swagger を使用する

できあがったプロジェクトの Controllers に、受け口となる実装をしていきます。既に「ValuesController」がありますので、それを見ながら作っていくと楽かと思います。
こんな感じでコントローラーを書いてみました。

using System;
using System.Net;
using System.Web.Http;
using Swashbuckle.Swagger.Annotations;
using WebApplication2.Models;

namespace WebApplication2.Controllers
{
    public class HogeController : ApiController
    {
        [SwaggerResponse(HttpStatusCode.OK)]
        public HogeResponseModel Post(HogeRequestModel request)
        {
            var body = request.Body;
            var response = new HogeResponseModel();

            // なんか処理
            response.CreatedAt = DateTimeOffset.Now;
            response.Message = body;

            return response;
        }
    }
}

リクエストを受けるためのモデルとなるクラスはこんな感じ。これを Models の中に入れます。

namespace WebApplication2.Models
{
    public class HogeRequestModel
    {
        public string Body { get; set; }
    }
}

レスポンスを渡すためのモデルとなるクラスも同様に Models に入れます。

using System;

namespace WebApplication2.Models
{
    public class HogeResponseModel
    {
        public DateTimeOffset CreatedAt { get; set; }
        public string Message { get; set; }
    }
}

実際、これだけだとただ左から来たものを右へ受け流すだけの API になっていますが、実際はもうちょっといろいろ書いてます。

これで作れましたが、実際に動くかどうかも Swagger では試すことができます。
App_Start にある「SwaggerConfig」を開き、190 行目ほどにある

/*
    })
.EnableSwaggerUi(c =>
    {
*/

のコメントを外してあげると、ダッシュボードにアクセスできるようになります。
ひとまずデバッグ実行して、Web ブラウザーが立ちあがったら、そのアドレスに「/swagger」を足して下さい。

http://localhost:59819/swagger

とやると、ダッシュボードが立ちあがります。ここで、どんなエンドポイントで、どういうメッセージを送れば、どう返ってくるかがわかります。
f:id:ChiiAyano:20170408000051p:plain
試しに適当な JSON を流し込んでやると、ちゃんとレスポンスが作られることがわかると思います。
f:id:ChiiAyano:20170408000239p:plain

これでできあがりです。あとは Azure に投げるなり、自前のサーバーなどに置いてインターネットアクセスができる環境において下さい。
今回認証などのアクセス制限まわりに触れていませんが、おそらく必要になるケースは出てくると思います。その辺はまた時間があれば書きたいところ。


さて Flow に戻ります。
先ほど作ったフローに、今公開した API を使ってもらうようにします。
メールと Slack の矢印あたりをポイントすると「+」が表示されるので、それをクリックすると間に処理を追加することができます。
f:id:ChiiAyano:20170408000726p:plain

アクションは今回「HTTP」を選びました。Swagger が使えそうなアクションがありますが、HTTPS 通信でないとダメだったりしたので、地道に HTTP で作ります。

設定はこんな感じ。「本文」は JSON チックにし、メール本文の間にダブルクオーテーションを挟むのがポイントです。
f:id:ChiiAyano:20170408001108p:plain

次に JSON を解析します。Flow では JSON 解析するアクションがあるので、それを利用します。
「HTTP」の下の「+」をクリックして処理を追加します。

f:id:ChiiAyano:20170408001519p:plain
コンテンツは HTTP で受けた「本文」を入れて下さい。
スキーマはちょっと特殊ですが、こんな感じで書けると思います。

{
  "type": "object",
  "properties": {
    "CreatedAt": {
      "type": "string"
    },
    "Message": {
      "type": "string"
    }
  }
}

これで Web API を通してメッセージの加工ができるようになりました。

最後に Slack に投稿する設定を変更します。
パースした JSON の情報が使えるようになったので、それを「メッセージテキスト」に流し込みます。
f:id:ChiiAyano:20170408005424p:plain

これで以上です。

いろいろ設定して、実際に使うとこんな感じで動かしています。
f:id:ChiiAyano:20170408005547p:plain


Flow はモバイルでも動かすことができます。
これまでなぜか iOSAndroid のみアプリが提供されていましたが、つい先日 Windows 10 Mobile でもリリースされました。
www.microsoft.com
Flow のアクションを促すことができるボタンを用意して、モバイル端末から実行することができたり、既存のフローを編集したりすることができます。
f:id:ChiiAyano:20170408010242p:plain

で、試しにやってみたのですが…

リプライ飛ばしたはずなのに @ がついてない…だと…。

どうやらスパム防止としてあえて @ をフィルターしているようでした。
powerusers.microsoft.com
正しいっちゃ正しい。仕方ないですね。


そんなわけで長々と書いてしまいましたが、こんな感じで遊んでます。
他にも面白そうな遊び方があったら紹介したいです。


参考記事
blog.daruyanagi.jp

*1:個人の感想です

Windows 10 Insider Preview の Outlook メールで新着通知が表示されなくなったら

もうすぐ Creators Update がきますね
ここまでくる間に、Outlook メールも更新が何度かおこなわれました。で、気づくと PC と Mobile 共に新着メールの通知がこなくなっていました。Outlook メールの設定も、システムの設定も確認してみましたがすべてオンになっていて、オンとオフを繰り返してみたものの、全然通知がきませんでした。

Mobile のフィードバック Hubにはひとまず報告はしてありました。
Feedback Hub - Windows Insider Program


その後何度か OS のアップデートや Outlook メールのアップデートがきていましたが、一向に直る気配がなかったのですが、今になって解決方法を見つけました。


アカウントの設定をし直すと通知がきました


なんとあっさりでした。今までなぜ試さなかったのか…。
PC も Mobile も同じようにアカウントの設定をやり直すだけで通知が復活します。


お試しあれ。

Nintendo Switch を買いました

Nintendo Switch 一般予約開始日の争奪戦に Amazon で勝利し*1、3月3日の発売日にちょうど買うことができました。

Nintendo Switch Joy-Con (L) / (R) グレー

Nintendo Switch Joy-Con (L) / (R) グレー


f:id:ChiiAyano:20170303112555j:plain
自分用と、家族の用で2つあります。家族用のはヨドバシで予約が再開したタイミングでポチってます。

買ったのはもちろん、ゼルダの伝説 ブレス・オブ・ザ・ワイルド

ほぼ毎日寝る間も惜しむレベルで楽しんでますが、なかなか進められません(自分が下手という説も)

今回、自室に 3 枚あるモニターのうち 1 枚を、PC と Switch とで共用することにしました。
以前スプラトゥーンの記録を取るためにビデオキャプチャーデバイス AVT-C875 を買っていたので、これを利用することに。
このデバイスHDMI-OUT があり、モニターにパススルー接続ができるとあって、しばらくはこれを使っていたんですが、モニター側で認識がうまくいかないケースが結構ありました。
キャプチャーデバイスも活用して動画も撮りたかったので、結局別で HDMI スプリッターを買うことにしました。

これを利用して、モニターにはほぼ直接接続、キャプチャーデバイスも共用できて、かつ、モニター側の認識も正しくおこなわれるようになりました。


動画撮れるのは結構楽しいです。


Nintendo Switch では、ニンテンドー e ショップからダウンロードしたゲームは「ニンテンドーアカウントに紐付け」られているようです。
ただし、ニンテンドーアカウントでログインし、最初にダウンロードしたデバイス 1 台のみでダウンロード・プレイができ、他のデバイスで遊ぶ場合、「最初にダウンロードしたデバイス」を解除する必要があります。
www.nintendo.co.jp


Nintendo Switch は総じて満足度が高いです。
そこまで重くないので、持っても苦にならず、カバンにいつも入れることができて、すぐ遊べるし、ドックと接続してモニターでも遊べるしで、外で据え置き型ゲームが遊べたら良いのにがようやく実現したなあと感じています。
このあたりはスマートフォンでも、ジョイパッドの接続などで同じ体験ができるのは確かです。ただ、純粋にゲームだけができるデバイスで、ゲームメーカーが出しているというところが大きな違いかなと思います。スマートフォンだと割り込みが多いので不安定になりがちだったり、端末が熱くなったりすることが多いですが、Switch は動作が重くなったりせず*2、端末はほんのり暖かくなるレベルで落ち着いていました。
ただ、本体の画面、携帯モードだとちょうどいいんですが、テーブルモードだと画面が小さく感じます。これは割と仕方ない感じはありますが、1 画面を 4 人で共有する場面では割と窮屈になりがちです。複数のデバイスを使って、ひとり 1 台ないし 2 人グループごとに 1 台などしないといけないなあと感じました。
ひとりでもくもくプレイするなら、Joy-Con をくっつけて携帯モードで遊んだ方がだいぶ楽だなあと思います。スタンドは Surface RT と同じく 1 段階しかないですからね。


スプラトゥーン2 やマリオオデッセイに期待を寄せつつ、頑張ってゼルダ攻略します…。矢が足りない…。


Nintendo Switch Proコントローラー

Nintendo Switch Proコントローラー

モニター出力しているときはプロコンあった方が確実に楽です。

*1:残念ながらマイニンテンドーストアでは敗北

*2:モニター接続で処理落ちは割とありますが

Windows ストアに公開しているアプリが後から審査落ちした話

以前、位置情報共有アプリ「Mikaboshi」のお話をしました。

ayano.hateblo.jp

www.microsoft.com


これを公開してしばらく経ったある日、ふとアプリの更新をするべくデベロッパーセンターを開いたら、審査レポートが表示されていました。

f:id:ChiiAyano:20170310234134p:plain

10.2 Suspicious File Download

ストアポリシーで言う

10.2.3
望ましくないソフトウェアと悪意のあるソフトウェアに関する Microsoft の条件で定義されているマルウェアを、アプリに含めたり、アプリで有効にしたりすることはできません。

だと思うのですが、その辺あまり思い当たる節がなく、なんだろうなあ…というところ。
一つ考えられるのは、地図表示が WebView で、Google Maps を利用しているので、そのあたりだろうかと思ってはいます。
しかも期限内に申請しないと自動で取り下げられる上に、再公開にはメールで問い合わせろということが書かれています。こわい。

ひとまず何も考えずに次のバージョン 2.2 を更新申請しました。何かあったらまた記事書く予定です。


そういえば、最近は審査パスしたとかその辺の通知がメールで飛んできません。ちょっと困ってます。
これに気づくのもおとといとかそんな感じでした。ちょっとー。

あけましておめでとうございます

今週のお題「2017年にやりたいこと」

2017 年になりました。あけましておめでとうございます。
今年こそ音楽を頑張っていきたいと思っています。プログラミングも色んな事にチャレンジしていきたいですね。
せっかく UWP 触ってるので、Xamarin ちょっとやりたくないですか?地獄?今年 1 年あれば何かできるかな?

とにかく毎年言ってますがいろんなチャレンジをしていこうと思います。
今年 1 年よろしくお願いします。


f:id:ChiiAyano:20170101004220p:plain

このブログを作って4年が経ったらしいのと、冬コミのはなし

はてダも含めるともっと長い気がしますが(何年前だっけ…)
メールがきてました。メールしかよこさないらしく、なんかそれをこの記事に埋め込むとかそういうのができるのかなと思ったらそうじゃないらしいです?


今後もきっと気が向いたら書く、そんなブログになると思います。
今は冬コミの仕込みまっただ中です。頑張ります。ある程度形になったら告知します。いつも遅くてすんません。


一応お伝えできることだけ。
AncientChronicle は C91 の 1 日目、東レ-28b にて頒布します。
今回は初めてのアルバム CD を出します。C90 で頒布したものより 1 つ前までの曲を厳選したり、今回初めて入れる曲とかも入れてお届けする予定。あれもこれも詰め込んだら、2 枚組になるっぽいです。2 枚ですけど手焼きします。
細かいことはまた後ほど?