際際滷

際際滷Share a Scribd company logo
WinRT
Windowsストア

  Metroアプリを茶してみた

             @245x
Windowsストアアプリの蒙

 ?Windows8でg佩辛嬬なアプリ
 ?コンテンツ嶷のデザイン
 ?膨叔い
 ?OSがアプリを嶄僅、K阻することがある
 ?ライブタイルで秤鵑魃輅召任る
 ?スナップ燕幣ができる
 ?Windows Store で塘下される
箭坤好肇▲▲廛
箭彩櫂▲廛
_kに駅勣なもの


1Windows8
?MSDNサブスクリプションを隔っている繁は
 Windows 8 RTM がダウンロ`ド辛
?匯違はRTMu井90晩浙┌が聞える


2Visual Studio Express 2012 for
Windows8
?これは匯違でもダウンロ`ド辛
?VS2012ProがDreamSparkで秘返できる
蝕k冱囂の僉k
            書指の麼}
?XAMLおよびC#/VB
   ★コンテンツアプリケ`ション鬚

?HTML5およびJavaScript
   ★コンテンツ、および弌トゲ`ム

?XAMLおよびC++/CX
   ★コンテンツ、ゲ`ム

?C++/CXおよびDirectX
   ★互業なグラフィックス、3Dなど
アプリの撹勣殆

xaml ★ UI峰 , xaml.cs ★ コ`ドビハインド

?MainPage.xaml, MainPage.xaml.cs
   スタ`トペ`ジ┘妊侫ルト
?App.xaml
   アプリ畠悶で喘いる勣殆、スタイルなど
?App.xaml.cs
   アプリ軟rの嘛の峰
?Package.appxmanifest
   燕幣兆、h苧などのメタデ`タ
アプリのライフサイクル

Windowsストアアプリには、掲g佩彜B、
g佩彜B、嶄僅彜Bの3Nの彜Bがある。
ライフサイクルで廣吭すべきこと

?嶄僅しているアプリが謹くなると
 OSが硬いアプリを拱屬僕V垢垢襦

?アプリK阻rのイベントは函れない。

 ★アプリのデ`タが隠贋できない。



   アプリ嶄僅rにあらかじめ
    デ`タを隠贋しておく。
デ`タを隠贋する圭隈


?SuspentionManager
   嶄僅彜Bへ卞佩するときに隠贋できる。

?ApplicationDataContainer
   いつでもデ`タを隠贋できる。
   RoamingSettingsを聞うと、デ`タを
   クラウド貧にアップロ`ドされる。
SuspentionManagerの旋喘返1

メインのアプリFrameを鞠hしておく。

App.xaml.cs (仔弼が弖紗したコ`ド)
if (rootFrame == null)
{
      // Create a Frame to act as the navigation context and navigate to
the first page
      rootFrame = new Frame();

HelloWorld.Common.SuspensionManager.RegisterFrame(rootFrame,
"appFrame");
...
SuspentionManagerの旋喘返2

嶄僅したときに、隠贋するメソッドを柵ぶ。
App.xaml.cs (仔弼が弖紗したコ`ド)
private async void OnSuspending(object sender, SuspendingEventArgs
e)
{
   var deferral = e.SuspendingOperation.GetDeferral();
   //TODO: アプリケ`ションの彜Bを隠贋してバックグラウンドの嘛
があれば唯峭します
   await HelloWorld.Common.SuspensionManager.SaveAsync();
   deferral.Complete();
}

これにより、F壓のペ`ジのSaveStateメソッドが
柵び竃される。
SuspentionManagerの旋喘返3

デ`タを隠贋する。

MainPage.xaml.cs (仔弼が弖紗したコ`ド)

protected override void SaveState(Dictionary<String, Object> pageState)
{
  pageState[^AppDataKey"] = AppDataValue;
}
ApplicationDataContainerの旋喘返

デ`タの隠贋
var roamingSettings = ApplicationData.Current.RoamingSettings;
roamingSettings.Values["userName"] = nameInput.Text;



デ`タのiみzみ
var roamingSettings = ApplicationData.Current.RoamingSettings;
if(roamingSettings.Values.ContainsKey("userName"))
{
     nameInput.Text = roamingSettings.Values["userName"].ToString();
}

More Related Content

安庄稼糸看敬壊ストアアプリ茶膿してみた