ズートピアみてきた。
これは面白い。新しいことやろうとして、なんか組織として面倒なとこだったりする人は、ぜひ。
こんな単純じゃねーよと思いつつもリフレッシュできるよ!
MSNDサブスクリプションダウンロードから
Visual Studio Enterprise 2015 with Update 3
Visual Studio Professional 2015 with Update 3
などがダウンロードできるようになりました。
Update 3の内容は(いまはまだRCと表示されますが)リリースノートに詳細があります。
https://www.visualstudio.com/news/releasenotes/vs2015-update3-vs
でも、Update 3の目玉はリリースノートには記載がないようです。
Update 3と同時に、.NET Core 1.0 SDKもリリースされていて、これを使うにはVisual Studio 2015 Update 3が必要になります。
.NET Coreって何?
という人もいるかもしれません。
.NET Coreは、.NET Frameworkを軽量化したサブセットでオープンソースとして公開されています。Windowsだけではなく、Mac OSやLinuxでも動作します。
弊社アプリをスマホで使いたいとWindows 10 Mobile機をご購入していただけたり、短期間であれば弊社からお貸出ししてトライアルしてもらう場合が最近増えております。
自社保有機器といっても開発用なので手持ち機器だけではどうしても対応しきれず(予想外の引き合いの多さで緊急で予算確保のための折衝中→なんとかある程度の台数を購入できそう)端末メーカーさんにご協力いただきトライアル用端末を貸していただいていたりもします。
そんなお客様の中でも特にWindows 10 Mobileを気に入っていただき、UWPアプリの作り方などもご質問頂いたお客様からこんなことを言われました。
「Windows 10 Mobileはすごくよいし、自分たちもアプリを作っていくけれど、あとは心配なのはマイクロソフトの方針だね。」
最初、何をおっしゃっているのかと聞き返そうと思いましたが、思い当たる節があったので次のように回答しました。
「マイクロソフトがスマホ事業を縮小したのは、自社でつくらなくても様々なメーカーがWindows 10 Mobile機を作り出荷し始めたので、Lumiaから移籍した技術者を元の鞘に戻しただけですよ。Mobile First, Cloud Firstって方針は変わっていません。Windows 10とWindows 10 MobileはOSコアは同じですし、そのうえで動作するFrameworkも同じ.NET Coreだし、UWPアプリもどちらでも動くし、あえてデスクトップとモバイルと分けて情報発信しないでいいのでモバイルって言葉が話されなくなっているだけですよ。」
この説明には、すごくご納得頂けたようで、Windows 10 MobileがなくならないこととUWPやっていって無駄にならないことがわかってすごく満足な笑顔を頂いた。
2016/05/24~25にザ・プリンス パークタワー東京で開催されたde:code 2016に参加してきました。
サンフランシスコで開催されたbuild 2016参加直後から「de:codeはbuildの雰囲気をよく出している」という話をしてきました。
de:code 2016もその期待を裏切らないすばらしいものでした。
そして、同時に「違和感と期待感」という感想を私に抱かせました。
違和感の発端は初日キーノートです。
すでにキーノートはネットにも公開されているので、まだ視聴してない方はぜひ視聴してみてください。
参加された方や視聴された方は、もうなぜ私が違和感を感じたのか共感していただけるのではないでしょうか。
今までの日本マイクロソフトの技術系年次イベント(TechEd、Windows Developer Day、過去のde:code)でこれほどまでに開発者に対して
自分たちの技術を楽しみ、そして開発者に対して『一緒に楽しみましょう』どうですか?
と語りかけてくれたことはあったでしょうか。
マイクロソフトだけではなく多くのベンダーのイベントでは、最新の技術をわかりやすく、かっこよく、それこそ驚かせるように示してくれます。
しかし、今回のキーノートでは、まず自分たちが楽しみ本当に価値観を理解し、だから、みんなもよかったらどうぞとお裾分けしてくれるようなすがすがしいくらいに押しつけがましさがない内容だったのです。
他にも違和感はありました。
buildにはなくde:codeにだけあるぎゅうぎゅうづめの通路(通路の幅は4倍くらい違う)ですれ違う中に、マイクロソフトのイベントで見かけたことがない知り合いの顔ぶれが多く見られたことです。
そして、その表情は「きてやったけど、まあ、マイクロソフトだよなぁ」のような敵対する勢力の変わらぬ姿勢をみてやれやれというった表情ではなく、同じ開発者という枠組みの中で同じ価値観を見出して、同じテンションでワクワクしているそういった表情をしているのです。
OSの違いやオープンソースかどうかなんて小さいこと。
キーノートでも日本マイクロソフトCTOの榊原さんがおっしゃってました「良いものかそうじゃないか。世の中の役に立つのか立たないのか。」まさに言葉通りに、まるで我々にお手本をしますようにマイクロソフトは
「開発者にとって良いもの、世の中の役に立つもの」
を選択する会社に変わったということなのでしょう。
そこには、そういった判断以前にオープンソースかどうかで判断していたころのマイクロソフトの姿は微塵も感じられなかったのではないでしょうか。
Microsoft MVPとして、マイクロソフトの技術に注目してきたので「マイクロソフトノギジュツ チョットワカル」はずですし、buildも参加して米国本社の変わりようは知ってはいました。
そんな予備知識があったのに「日本マイクロソフトすげー!」と驚きの違和感、そして、ともすればマイクロソフトの技術に注目していなかった層をぐっと引き寄せた「そうだよ!わかっているね!」感はキーノート後のセッションでも様々なところで感じられました。
だって、スピーカーの人ってマイクロソフトの技術だからスゲーって感じじゃなくて
「この技術すごいでしょ?いや、これで開発したら楽しいでしょ?あ、これマイクロソフトの技術だけどね」
のような感じで、会社すげーというより、自分の推しメンのことを話すように技術のことを話しているのですもの。
一応、私が受講できた(満員ではいれなかったり展示会場サポートやコミュニティブースでみれなかったものを除く)セッションは
Day1
Day2
でした。
これ以外にも見たいセッションはたくさんあって、早く資料と録画公開が開始されないかと待っている状態です。
UWP、Cortana、Congnitive、Xamarinと好きな技術、注目してきた技術の最新情報に触れられて、本当に楽しくすごした2日間でした。
人は誰でもが、きっと誰かの役に立ちたいと思っていると思います。
組織や会社も同じではないでしょうか。しかし、組織や会社はともすれば成長という中で市場のオンリーワンになるがために競争相手を敵とみなして必要以上に恐れ憎み「役に立つ」というところの出発点からはずれて行ってしまう場合があります。
サーバーOSがUNIXだった時代、サーバーOS市場に食い込み拡大しようとしていたときに挑戦者としてのマイクロソフトがとった戦略がまさにそうでした。クライアントOSの覇者が闘志をむき出しにしてUNIXやそしてオープンソースを否定していく様は、まさに「悪の帝国」のように映ったのでしょう。
マスターヨーダの言葉を借りれば「Anger... fear... aggression. The dark side of the Force are they.」です。
時代は変わり、ポストPCと呼ばれる時代。マイクロソフトは再び挑戦者としての立場に立ちましたが、その戦略は前回と異なります。
「開発者にとって良いもの、世の中の役に立つもの」
それを提供することで共に歩んでいける信頼を得て進んでいく。そういったビジョンは、マイクロソフトの従業員にも、マイクロソフト製品を使って開発する開発者にも、そして世の中のすべての人にとってもより良き方向に進むための灯になるのではないかと考えます。
最後に、de:code 2016の最終セッションの最後の実例紹介で感じた自分のツイートを引用して終わりたいと思います。ここに期待感のすべてが詰まっています。
buildとde:code、アメリカと日本というイベントも地域も別なので偶然かもだけれど、技術とはこういったことに使うんだよ、その手助けをするのがマイクロソフトなんだよと言われたような気がします。#decode16
? はつね (@hatsune_) 2016年5月26日
Xamarin.FormsがサポートしているAndroidのバージョンをおさらいしてみましょう。
https://developer.xamarin.com/guides/xamarin-forms/getting-started/installation/#android
公式ドキュメントによれば
Android 4.0.3、つまり、「Ice Creame Sandwitch」以降をサポートしています。4.0.3は2011年12月16日に提供開始されています。
4.0.3以降ということであれば、世の中にあるAndroidデバイスのほぼ100%(残念ながらそれ以前のバージョンも多少は存在する)をカバーできます。
日本でいえば、ドコモのGalaxy SII SC-02Cなどが4.0.3ですが、2016年時点でキャリア2年縛りはすでに超えていますから、ほぼカバーしていると言っていいでしょう。
ただし、素直に4.0.3かといえば、若干違和感があります。
その違和感はXamarin.FormsとXamarin.Android.SupportとAndroid SDKの関係を表にしてみるとはっきりしています。
Xamarin.Forms | Xamarin.Android.Support | Android SDK | |
プロジェクト作成時 | v1.3.3.6323 | v4.21.0.3 | 4.0.3 (API1 5) |
nuget最新 | v2.2.0.31 | v4.23.3.0 | 5.0 (API 21) |
このように最新のXamarin.Forms v2.2が要求するXamarin.Android.Supportはv4.23.3.0であり、v4.23.3.0が要求するAndroid SDKは5.0になるのです。
それではなぜ、公式ドキュメントには「4.0.3」以上となっているのでしょうか。
答えは同様に公式ドキュメントにあります。
つまり、ターゲットは最新(または少なくともXamarin.Android.Support.v4.23.3.0が要求する5.0以上)として、Minimum Android versionとして「4.0.3」を指定できることが、Xamarin.Formsの要求仕様がAndroid v4.0.3以上という意味だということです。
※Visual Studioならプロジェクトのプロパティの[Application]-[Application properties]
違和感の原因は、4.0.3以上ということで、では自分たちの作ったアプリも4.0.3以上としようとしたときにターゲットフレームワークを「4.0.3」ではなく「5.0」としてMinimum Android versionで「4.0.3」としていいのかという点にあります。Visual StudioならTarget frameworkが「Complie using Android version」となっているのでさらに不安を感じます。
これらのバージョンはどのような意味があるのでしょうか。
注意しないといけないのは、これは、Xamarin固有の話ではなく、Android開発の基本的な話となります。Android StudioでJavaで作成したときもbuild.grableに同じように描くことになります。
結論を先に書けばWindowsアプリに比べたらかなりおおざっぱというか、これでいいの?という感じがAndroidアプリ開発なんだなぁと。
Target framework (targetSdkVersion) |
|
Minimum Android version (minSdkVersion) |
指定したバージョン以上にインストールできる宣言 |
これ、トラディショナルジャパニーズカンパニーで開発やっていると、Target framework = Minimum Android versionとして、アプリの動作要件の○○以上とする一番古いバージョンに合わせてコンパイルして、それより上位のOSでも下位互換性確認の意味で動作チェックしてって感覚だと思うのです。
Target frameworkは最新にして、Minimum Android versionにアプリ動作要件の○○以上とするというのがAndroidスタイルだって納得して、きちんとシステムテストで4.0.3 (Ice Cream Sandwich)/4.3 (Jelly bean)/4.4 (KitKat)/5.1 (Lollipop)/6.0 (Marshmallow)とテストするしかないのでしょう。このあたり、Androidで業務アプリを作っていたり、それよりもGoogle Playで人気アプリ配信している個人開発者さんあたりにお話をお聞きしたいですね。ほんと、どうしていらっしゃるのだろうか。
まあ、そんなときに心強い味方と言ったら、Xamarin Test Cloudですよね。
例えば、月額249$のBUILDなら、こんな感じにテストができます。
4.0.3 (Ice Cream Sandwich)/4.3 (Jelly bean)/4.4 (KitKat)/5.1 (Lollipop)/6.0 (Marshmallow)の5バージョンでそれぞれ代表的なデバイスを1つづつテストするのであれば、もう一つ安いSTARTプラン=月額$99でもテストできそうですね。
1日1回しかテストできないの?と思うかもしれませんが、手元の実機やエミュレータでテストしたあとの仕上げテストですから、毎日1回とかで十分と言えるでしょう。
そうそう、Visual Studio Enterpirse使っているなら上記の金額から25%引きで利用できますので、さらにお得ですね。