Upload
-midorikawa
View
373
Download
0
Embed Size (px)
Citation preview
WP7 は死んだ!もういない!
~最後に残った道しるべ~
Q: 誰だお前
A: ただのしがない WP 信者です
名前:OD-10Z職業:プログラマ ⇒ ホームセンター店員 ⇒ プログラマ ⇒ 情シス (プログラマ歴 < 情シス歴)
作ったアプリケーションとか◆ なな字引◆ Y!乗換案内※Android ? iOS ?いえ、知らない子ですね……
人生で初めてのセッションです。
I’m not ‘Syachiku’
全ての発言は個人に依存するものであり、所属する団体・企業等を代表するものではありません。
OK?
の前に・・・
本 題
私は先日、 MetroStyle は WP で生まれたと言ったな?あれはウソだ。
私は先日、 MetroStyle は WP で生まれたと言ったな?あれはウソだ。
携帯音楽機器 Zune のほうが先でした。誤った情報を発信してしまったこと、ここに深くお詫び申し上げます。
あらためて本 題
◆Agenda
・現在の日本における WP の状況・今後のアプリ開発方針的な・ WP8.1 アプリ開発で、便利になった箇所 1.タイルのテンプレート 2.スケジュールでの更新 3.グローバル(多言語)対応
◆ 現在の日本における WP の状況
◆ 現在の日本における WP の状況
日本で出ている「最新」 WindowsPhone 端末……
IS12T
◆ 現在の日本における WP の状況
日本で出ている「最新」 WindowsPhone 端末……
IS12T
WP7 は死んだ!もういない!!
◆ 現在の日本における WP の状況
IS12T の OS 「 WindowsPhone 7.8 」は、9/9 でサポート期限切れを迎えてお亡くなりに……
突然延長となり、 10/14 までサポート期限が伸びました!
また、 10/2 に「 de:code 」シークレットセッションが開催され、急遽 Microsoft CEO サティア・ナデラ氏が登壇することに!!
「 Hey Jap 、長らく待たせたが WP8 を日本でも 発売するぜ。 HAHAHAHA !!」
◆ 現在の日本における WP の状況
IS12T の OS 「 WindowsPhone 7.8 」は、9/9 でサポート期限切れを迎えてお亡くなりに……
突然延長となり、 10/14 までサポート期限が伸びました!
また、 10/2 に「 de:code 」シークレットセッションが開催され、急遽 Microsoft CEO サティア・ナデラ氏が登壇することに!!
「 Hey Jap 、長らく待たせたが WP8 を日本でも 発売するぜ。 HAHAHAHA !!」
そんな発表は、残念ながらありませんでした。そしてそのまま 10/14 でサポート切れとなりました。( 何のための延長だったんだ…… )
◆ 現在の日本における WP の状況
現在、日本で使える端末は何があるの?
FZ-E1
◆ 現在の日本における WP の状況
現在、日本で使える端末は何があるの?
Windows Embedded 8.1 Handheld なので、 WP ではない
◆ 現在の日本における WP の状況
現在、日本で使える端末は何があるの?
=サポート切れとなった IS12T ( WP7 )以外、国内で 使用可能な WP は存在しない状況に
◆ 現在の日本における WP の状況
現在、日本で使える端末は何があるの?
=サポート切れとなった IS12T ( WP7 )以外、国内で 使用可能な WP は存在しない状況に
WP7 の開発者アンロックも
2014/12/31 までで終了!
◆ 今後のアプリ開発方針的な
◆ 今後のアプリ開発方針的な
こんな状況じゃ、アプリ作るのなんて意味がないじゃない!
◆ 今後のアプリ開発方針的な
こんな状況じゃ、アプリ作るのなんて意味がないじゃない!
◆ 今後のアプリ開発方針的な
・日本以外でなら、それなりに端末所持者もいる
2014/10 にマーケティングリサーチ会社 Kantar が発表した OSシェア によれば……
イタリア: 15% ( iOS : 10.4% ) フランス: 10.6% ( iOS : 15.4% ) イギリス: 9.6% ( iOS : 31.0% )
といったように、北欧ではそれなりに浸透 一部ではイタリアのように、既に iOS のシェアを抜いている国も
◆ 今後のアプリ開発方針的な
・ Windows8.1 と WindowsPhone8.1 では、「 Univesal App 」 としてコードを共通化
グローバル展開を狙っている場合、一緒に WindowsPhone にも 対応することで、より訴求力を上げることができます。
◆ 今後のアプリ開発方針的な
・まだま謎に包まれた「 Windows 10 」での可能性
Windows10 では、 OS ファミリーは WP も Windows へ統合され、 ストアも 1 つになると言われています。 そのときに国内でも再度、動き(発売)があるかもしれません。
◆ 今後のアプリ開発方針的な
・つまり?
お願いしますから、 WP 日本再上陸を祈りながら、 一緒にアプリを作っていただけないでしょうか……?
◆WP8.1 アプリ開発で、 便利になった箇所
◆WP8.1 アプリ開発で、便利になった箇所(1)
WP で最大の特徴といったら、何を思い浮かべるでしょうか僕は、やはりホーム画面に羅列されたタイルを最初に思い浮かべます
◆WP8.1 アプリ開発で、便利になった箇所(1)
WP のタイルも、 7や 7.5 の頃は 2 つのサイズ (中 /大 ) しかありませんでした。
7.8や 8 の登場に伴って、 3 つのサイズ (小 /中 /大 ) になり、 WP8 GDR3 以降は列幅も増え、より一層大量のタイルが並ぶように。➡より一層、タイルに表示する情報が重要に
WP7 WP8 WP8.1( 代理 )
◆WP8.1 アプリ開発で、便利になった箇所(1)
WP7 では、タイルに指定できる情報は少なく、自由度も高くありませんでした。
Title :タイトル(表)Count :右上に表示する数値( iOS のバッヂ的な)BackgroundImage :タイルの背景画像(表)BackTitle :タイトル(裏)BackContent :タイルの裏に表示する文章BackBackgroundImage :タイルの背景画像(裏)
◆WP8.1 アプリ開発で、便利になった箇所(1)
WP8 では、「 Flip 」「 Iconic 」「 Cycle 」というテンプレートが追加され、多少柔軟性が増しました。( Flip は元々のタイルが横長にも対応したようなものなので、省略)Iconic
Cycle
◆WP8.1 アプリ開発で、便利になった箇所(1)
では、 WP8.1 では……?
◆WP8.1 アプリ開発で、便利になった箇所(1)
では、 WP8.1 では……?
小・中・大 あわせて、
全部で 44種類になりました。
◆WP8.1 アプリ開発で、便利になった箇所(1)
・どういうことだってばよ
例えば、 150x150 サイズの 4角形タイル ( 表側のみ ) の一例として、
こんなにあります。
TileSquare150x150Image
TileSquare150x150Block
TileSquare150x150Text01
TileSquare150x150Text02
TileSquare150x150Text03
TileSquare150x150Text04
TileSquare150x150IconWithBadge
◆WP8.1 アプリ開発で、便利になった箇所(1)
※一部、違いがよくわからないレベルのものなどもあります
全てのタイルテンプレートは ↓http://msdn.microsoft.com/ja-jp/library/windows/apps/hh761491
ここで参照可能になっております。どんなものがあるか、見てみましょう。
◆WP8.1 アプリ開発で、便利になった箇所(1)
・タイルテンプレート を いじる
// テンプレートを取得する( XML )var MyTileXml = TileUpdateManager.GetTemplateContent (TileTemplateType.TileSquare150x150Block);
// 先ほどのページを参考にして、 XML を編集するMyTileXml.GetElementsByTagName("text")[0].InnerText = " な ";MyTileXml.GetElementsByTagName("text")[1].InnerText = " !すでの ";
// タイルをアップデートするvar TileMaster = TileUpdateManager.CreateTileUpdaterForApplication();TileMaster.Clear();TileMaster.Update(new TileNotification(MyTileXml));
◆Demo
◆WP8.1 アプリ開発で、便利になった箇所(1)
・タイルテンプレート を いじる (あんまりスマートじゃない・・・)
// テンプレートを取得する( XML )var MyTileXml = TileUpdateManager.GetTemplateContent (TileTemplateType.TileSquare150x150Block);
// 先ほどのページを参考にして、 XML を編集するMyTileXml.GetElementsByTagName("text")[0].InnerText = " な ";MyTileXml.GetElementsByTagName("text")[1].InnerText = " !すでの ";
// タイルをアップデートするvar TileMaster = TileUpdateManager.CreateTileUpdaterForApplication();TileMaster.Clear();TileMaster.Update(new TileNotification(MyTileXml));
◆WP8.1 アプリ開発で、便利になった箇所(1)
もっとスマートに、直感的にわかる書き方をしたい……
そんなあなたにオススメするのが、
「 NotificationsExtensions 」です。( Nuget から簡単に導入できます)
◆WP8.1 アプリ開発で、便利になった箇所(1)
・タイルテンプレート を いじる( NotificationsExtensions編)
// テンプレートを取得する( NotificationsExtensions を使用)var MyTileObj = NotificationsExtensions. TileContent.TileContentFactory. CreateTileSquare150x150Text02 ();
// プロパティを設定するMyTileObj.TextHeading.Text = " めとべや! ";MyTileObj.TextBodyWrap.Text = " はやく日本で WP が出るのをお待ちしております ";
// タイルをアップデートするvar TileMaster = TileUpdateManager.CreateTileUpdaterForApplication();TileMaster.Clear();TileMaster.Update(new TileNotification(MyTileObj.GetXml()));
◆WP8.1 アプリ開発で、便利になった箇所(1)
・タイルテンプレート を いじる( NotificationsExtensions編)
// テンプレートを取得する( NotificationsExtensions を使用)var MyTileObj = NotificationsExtensions. TileContent.TileContentFactory. CreateTileSquare150x150Text02 ();
// プロパティを設定するMyTileObj.TextHeading.Text = " めとべや! ";MyTileObj.TextBodyWrap.Text = " はやく日本で WP が出るのをお待ちしております ";
// タイルをアップデートするvar TileMaster = TileUpdateManager.CreateTileUpdaterForApplication();TileMaster.Clear();TileMaster.Update(new TileNotification(MyTileObj.GetXml()));
◆Demo
◆WP8.1 アプリ開発で、便利になった箇所( 2 )
タイルと言えば……
WP 開発者の中でよく聞く不満の 1 つとして、
「バックグラウンドでのタイル更新間隔が 30分に 1回、 というのは頻度が低すぎて不便」
というものがありました。
◆WP8.1 アプリ開発で、便利になった箇所( 2 )
このような制限がある理由は、安定性のためだとかバッテリー持ちのためだとか色々とあると思いますが、
WP8.1 からは一部制約が緩和されております。 ※重要
◆WP8.1 アプリ開発で、便利になった箇所( 2 )
タイルを更新する方法として、
「 ScheduledTileNotification 」
を使用します。
◆WP8.1 アプリ開発で、便利になった箇所( 2 )
タイルを更新する方法として、
「 ScheduledTileNotification 」 ← WinRT の API
を使用します。ストアアプリ開発者の中にはご存知の方もいらっしゃるでしょう。【指定した時間に、指定した内容でタイルを更新】することが出来るようになります。
◆WP8.1 アプリ開発で、便利になった箇所( 2 )
・ ScheduledTileNotification の 簡単な解説
// セットしたいタイルのテンプレを編集する( NotificationsExtensions を使用すると楽チン)var MyWideTileXML1 = NotificationsExtensions.TileContent.TileContentFactory. CreateTileWide310x150Image(); // ワイドタイルMyWideTileXML1.Image.Src = " 進捗 01.png";
◆WP8.1 アプリ開発で、便利になった箇所( 2 )
・ ScheduledTileNotification の 簡単な解説
// セットしたいタイルのテンプレを編集する( NotificationsExtensions を使用すると楽チン)var MyWideTileXML1 = NotificationsExtensions.TileContent.TileContentFactory. CreateTileWide310x150Image(); // ワイドタイルMyWideTileXML1.Image.Src = " 進捗 01.png";
// 同じ手順で、複数のタイル通知を作成しておく
◆WP8.1 アプリ開発で、便利になった箇所( 2 )
・ ScheduledTileNotification の 簡単な解説
using Windows.UI.Notifications;// 通知キューを有効化するvar TileMaster = TileUpdateManager.CreateTileUpdaterForApplication();TileMaster.EnableNotificationQueue(true);
// スケジュールされたタイル通知を作成する (10 秒間隔 )var StartTime = DateTimeOffset.Now;var MyTileNotification1 = new ScheduledTileNotification( MyWideTileXML1.GetXml(), StartTime .AddSeconds(10) );
// タイルの有効期間を設定MyTileNotification1.ExpirationTime = StartTime.AddSeconds(20);
◆WP8.1 アプリ開発で、便利になった箇所( 2 )
・ ScheduledTileNotification の 簡単な解説
using Windows.UI.Notifications;// 通知キューを有効化するvar TileMaster = TileUpdateManager.CreateTileUpdaterForApplication();TileMaster.EnableNotificationQueue(true);
// スケジュールされたタイル通知を作成する (10 秒間隔 )var StartTime = DateTimeOffset.Now;var MyTileNotification1 = new ScheduledTileNotification( MyWideTileXML1.GetXml(), StartTime .AddSeconds(10) );
// タイルの有効期間を設定MyTileNotification1.ExpirationTime = StartTime.AddSeconds(20);
// タイル通知をキューの中に、シュゥゥゥゥゥゥゥゥゥト!// 超!エキサイティング!!TileMaster.AddToSchedule(MyTileNotification1);
◆Demo
◆WP8.1 アプリ開発で、便利になった箇所( 3 )
冒頭で述べた通り、 WP は海外ではそれなりにシェアがあるので、今は海外向けにアプリを作ることをオススメします。
➡アプリのグローバル対応が必要になってきます
◆WP8.1 アプリ開発で、便利になった箇所( 3 )
WP7/8 での多言語対応の不便な点
・日本語と英語で文字数が異なるため、レイアウト調整が難しい
「 WindowsPhone 日本で発売」 「 WindowsPhone released in Japan 」 といったように、文字数が異なるため、英語で表示すると幅が足りずに 表示されない部分や、意図しない位置で改行されてしまうことが。 →コードで文字サイズ等調整……面倒くさい
◆WP8.1 アプリ開発で、便利になった箇所( 3 )
WP7/8 での多言語対応の不便な点
・リソースの切り替えはコーディング頼り……?
画像の中に文字が入っていたりする場合など、 言語ごとに文字以外のリソースファイルを用意してやる必要がある場合、 結局コード側で対応しないといけない。
◆WP8.1 アプリ開発で、便利になった箇所( 3 )
WP8.1 では、簡単にこんな感じのことが出来るようになりました!
◆WP8.1 アプリ開発で、便利になった箇所( 3 )
WP8.1 では、こんな感じに出来るようになりました!
◆WP8.1 アプリ開発で、便利になった箇所( 3 )
WP8.1 では、こんな感じに出来るようになりました!
◆WP8.1 アプリ開発で、便利になった箇所( 3 )
・真面目な解説 その1.文字以外の要素にも対応できるようになりました
文字の色やサイズ、または座標などの要素も定義出来るようになりました。
XAML で、「 x:Uid 」を指定しておきます。<TextBlock x:Uid=“任意の UID” … />
◆WP8.1 アプリ開発で、便利になった箇所( 3 )
・真面目な解説 その1.文字以外の要素にも対応できるようになりました
文字の色やサイズ、または座標などの要素も定義出来るようになりました。
言語ごとのリソースファイルに、以下のように記述します。名前 値
UID.Text 目を星に向け、 ....
UID.FontSize 21.333
UID.FontWeight Bold
UID.Foreground White
名前 値
UID.Text Keep your eyes....
UID.FontSize 14.333
UID.FontWeight Normal
UID.Foreground LightGreen
◆WP8.1 アプリ開発で、便利になった箇所( 3 )
・真面目な解説 その 2 .画像リソースも簡単に切り替えられるようになりました
この画像は、同じ Imageオブジェクト に Source=“image.jpg“ で指定しています。
◆WP8.1 アプリ開発で、便利になった箇所( 3 )
・真面目な解説 その 2 .画像リソースも簡単に切り替えられるようになりました
ファイル名 image.lang-ja-jp.jpg image.lang-en-us.jpg
◆WP8.1 アプリ開発で、便利になった箇所( 3 )
・真面目な解説 その 2 .画像リソースも簡単に切り替えられるようになりました
ファイル名 これだけで自動的に切り替えてくれます image.lang-ja-jp.jpg image.lang-en-us.jpg
◆WP8.1 アプリ開発で、便利になった箇所( 3 )
多言語対応が、コーディングなしでもできることの幅が大分広くなってまいりました!
◆ まとめ
・日本でまだ WP8.1 は出ていませんが、 海外ユーザーはそれなりに多い + ユニバーサルアプリで、 Windows8 ストアとあわせて狙っていける
・不便だった点も少しずつ改善され、ユニバーサルアプリの登場により、 出来ることの幅は大きく広がった
・まずは一度試してみて、そして出来れば、すばらしい WP アプリを 作りながら、 WP が日本で出るのを一緒に待ちませんか。
・ MS は一刻も早く日本で WP8.1 を出してください
◆参考にさせて頂いたページ
・ Office365 の WindowsPhone のブログ 「 kazuakix の日記」 http://kazuakix.hatenablog.jp/entry/2014/10/07/003559 http://kazuakix.hatenablog.jp/entry/2014/10/09/000818
・カレーが嫌いなスマートフォンアプリプログラマのブログ 「酢ろぐ!」(すろぐ) http://blog.ch3cooh.jp/entry/20121225/1356374341
・@ IT 業務アプリ Insider より、 「 Metro TIPS :タイルに現在時刻を表示するには?」 http://www.atmarkit.co.jp/ait/articles/1302/14/news058.html
ご清聴頂き、ありがとうございました!