SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
안녕하세요
김주아입니다.
Dongduk Women’s University
Microsoft Student Partners 5th
Student + Woman + Developer
Microsoft R&D Intern
Who am I ?




Imagine cup 2012
Windows Metro style App Challenge 3rd Place
http://dev.windows.com/apps
public class FeedData                          public class FeedItem
{                                             {
    public string Title { get; set; }              public string Title { get; set; }
    public string Description { get; set; }        public string Content { get; set; }
    public DateTime PubDate { get; set; }          public DateTime PubDate { get; set; }
    public ImageSource Image { get; set; }         public Uri Link { get; set; }
    public List<FeedItem> Items { get; set; }      public ImageSource Image
}                                             }
private async Task<FeedData> GetFeedAsync(string feedUriString)
{
     // using Windows.Web.Syndication;
     SyndicationClient client = new SyndicationClient();
     Uri feedUri = new Uri(feedUriString);
     public async Task GetFeedsAsync()
     SyndicationFeed feed = await client.RetrieveFeedAsync(feedUri);
    {
    FeedData feedData = new feed1 =
         Task<FeedData> FeedData();
     feedData.Title = feed.Title.Text;
             GetFeedAsync("http://cartoon.media.daum.net/webtoon/rss/koala");
     feedData.Description = feed.Subtitle.Text;
         this.Feeds.Add(await feed1);
     feedData.PubDate = feed.Items[0].PublishedDate.DateTime;
    }
    foreach (SyndicationItem item in feed.Items)
    {
         FeedItem feedItem = new FeedItem();
         feedItem.Title = item.Title.Text;
         feedItem.PubDate = item.PublishedDate.DateTime;
         feedItem.Content = item.Summary.Text;
         feedItem.Link = item.Links[0].Uri;
         feedItem._imagePath = item.Summary.Text.Substring(10, item.Summary.Text.Length - 10 - (item.Title.Text.Length + 2)

         feedData._imagePath = item.Summary.Text.Substring(10, item.Summary.Text.Length - 10 - (item.Title.Text.Length + 2)
         feedData.Items.Add(feedItem);
    }
    return feedData;
}
<ResourceDictionary>
    <local:FeedDataSource x:Key="feedDataSource"/>
</ResourceDictionary>



ItemPage.xaml.cs Loadstate에 추가
 FeedDataSource feedDataSource =
(FeedDataSource)App.Current.Resources["feedDataSource"];
if (feedDataSource != null)
{
    if (feedDataSource.Feeds.Count == 0)
    {
        await feedDataSource.GetFeedsAsync();
    }
    this.DefaultViewModel["Items"] = feedDataSource.Feeds;
}
ItemsPage.cs
void ItemView_ItemClick(object sender, ItemClickEventArgs e)
{
    this.Frame.Navigate(typeof(SplitPage), e.ClickedItem);
}
SplitPage.xaml

<Grid
x:Name="itemDetailGrid">
    <WebView
    x:Name="contentView"
    Grid.Row="1"
    Margin="0"/>
</Grid>
SplitPage.xaml.cs

protected override void LoadState(Object navigationParameter, Dictionary<String,
Object> pageState)
{
    FeedData feedData = navigationParameter as FeedData;
    if (feedData != null)
    {
        this.DefaultViewModel["Group"] = feedData;
        this.DefaultViewModel["Items"] = feedData.Items;
    }

}
SplitPage.xaml.cs

void ItemListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    Selector list = (Selector)sender;
    FeedItem selectedItem = (FeedItem)list.SelectedItem;
    if (selectedItem != null)
    {
        this.contentView.Navigate(selectedItem.Link);

    }
    else
    {
        this.contentView.NavigateToString("");
    }
}
http://msdn.microsoft.com/ko-
kr/library/windows/apps/xaml/br211380.aspx
김주아
Jua Alice Kim
Microsoft Korea R&D Intern
Hitchhiker's guide to the win8

Weitere ähnliche Inhalte

Was ist angesagt?

Indexing and Query Optimisation
Indexing and Query OptimisationIndexing and Query Optimisation
Indexing and Query OptimisationMongoDB
 
Rx 101 Codemotion Milan 2015 - Tamir Dresher
Rx 101   Codemotion Milan 2015 - Tamir DresherRx 101   Codemotion Milan 2015 - Tamir Dresher
Rx 101 Codemotion Milan 2015 - Tamir DresherTamir Dresher
 
Data Binding Intro (Windows 8)
Data Binding Intro (Windows 8)Data Binding Intro (Windows 8)
Data Binding Intro (Windows 8)Gilbok Lee
 
Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...
Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...
Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...Lviv Startup Club
 
Appengine Java Night #2a
Appengine Java Night #2aAppengine Java Night #2a
Appengine Java Night #2aShinichi Ogawa
 
Test and profile your Windows Phone 8 App
Test and profile your Windows Phone 8 AppTest and profile your Windows Phone 8 App
Test and profile your Windows Phone 8 AppMichele Capra
 
Indexing and Query Optimization
Indexing and Query OptimizationIndexing and Query Optimization
Indexing and Query OptimizationMongoDB
 
Architecture Components
Architecture Components Architecture Components
Architecture Components DataArt
 
Appengine Java Night #2b
Appengine Java Night #2bAppengine Java Night #2b
Appengine Java Night #2bShinichi Ogawa
 
Whats New for WPF in .NET 4.5
Whats New for WPF in .NET 4.5Whats New for WPF in .NET 4.5
Whats New for WPF in .NET 4.5Rainer Stropek
 
WaveEngine 3D components
WaveEngine 3D componentsWaveEngine 3D components
WaveEngine 3D componentswaveengineteam
 
WaveEngine 2D components
WaveEngine 2D componentsWaveEngine 2D components
WaveEngine 2D componentswaveengineteam
 

Was ist angesagt? (19)

Backendless apps
Backendless appsBackendless apps
Backendless apps
 
Ajax chap 3
Ajax chap 3Ajax chap 3
Ajax chap 3
 
Ajax chap 2.-part 1
Ajax chap 2.-part 1Ajax chap 2.-part 1
Ajax chap 2.-part 1
 
Indexing and Query Optimisation
Indexing and Query OptimisationIndexing and Query Optimisation
Indexing and Query Optimisation
 
Servlets intro
Servlets introServlets intro
Servlets intro
 
Rx 101 Codemotion Milan 2015 - Tamir Dresher
Rx 101   Codemotion Milan 2015 - Tamir DresherRx 101   Codemotion Milan 2015 - Tamir Dresher
Rx 101 Codemotion Milan 2015 - Tamir Dresher
 
Data Binding Intro (Windows 8)
Data Binding Intro (Windows 8)Data Binding Intro (Windows 8)
Data Binding Intro (Windows 8)
 
Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...
Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...
Lviv MDDay 2014. Ігор Коробка “забезпечення базової безпеки в андроїд аплікац...
 
Appengine Java Night #2a
Appengine Java Night #2aAppengine Java Night #2a
Appengine Java Night #2a
 
Test and profile your Windows Phone 8 App
Test and profile your Windows Phone 8 AppTest and profile your Windows Phone 8 App
Test and profile your Windows Phone 8 App
 
Indexing and Query Optimization
Indexing and Query OptimizationIndexing and Query Optimization
Indexing and Query Optimization
 
Architecture Components
Architecture Components Architecture Components
Architecture Components
 
Appengine Java Night #2b
Appengine Java Night #2bAppengine Java Night #2b
Appengine Java Night #2b
 
Javascript 2
Javascript 2Javascript 2
Javascript 2
 
Whats New for WPF in .NET 4.5
Whats New for WPF in .NET 4.5Whats New for WPF in .NET 4.5
Whats New for WPF in .NET 4.5
 
Url programming
Url programmingUrl programming
Url programming
 
WaveEngine 3D components
WaveEngine 3D componentsWaveEngine 3D components
WaveEngine 3D components
 
WaveEngine 2D components
WaveEngine 2D componentsWaveEngine 2D components
WaveEngine 2D components
 
Android crashcourse
Android crashcourseAndroid crashcourse
Android crashcourse
 

Ähnlich wie Hitchhiker's guide to the win8

Data binding в массы! (1.2)
Data binding в массы! (1.2)Data binding в массы! (1.2)
Data binding в массы! (1.2)Yurii Kotov
 
MVM - It's all in the (Implementation) Details
MVM - It's all in the (Implementation) DetailsMVM - It's all in the (Implementation) Details
MVM - It's all in the (Implementation) DetailsFlorina Muntenescu
 
The Full Power of ASP.NET Web API
The Full Power of ASP.NET Web APIThe Full Power of ASP.NET Web API
The Full Power of ASP.NET Web APIEyal Vardi
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web APIhabib_786
 
Oleksandr Tolstykh
Oleksandr TolstykhOleksandr Tolstykh
Oleksandr TolstykhCodeFest
 
Михаил Анохин "Data binding 2.0"
Михаил Анохин "Data binding 2.0"Михаил Анохин "Data binding 2.0"
Михаил Анохин "Data binding 2.0"Fwdays
 
Taming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, MacoscopeTaming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, MacoscopeMacoscope
 
"Android Data Binding в массы" Михаил Анохин
"Android Data Binding в массы" Михаил Анохин"Android Data Binding в массы" Михаил Анохин
"Android Data Binding в массы" Михаил АнохинFwdays
 
Architecture components - IT Talk
Architecture components - IT TalkArchitecture components - IT Talk
Architecture components - IT TalkConstantine Mars
 
CDI e as ideias pro futuro do VRaptor
CDI e as ideias pro futuro do VRaptorCDI e as ideias pro futuro do VRaptor
CDI e as ideias pro futuro do VRaptorCaelum
 
Java Configuration Deep Dive with Spring
Java Configuration Deep Dive with SpringJava Configuration Deep Dive with Spring
Java Configuration Deep Dive with SpringJoshua Long
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotationjavatwo2011
 
create-netflix-clone-04-server-continued.pdf
create-netflix-clone-04-server-continued.pdfcreate-netflix-clone-04-server-continued.pdf
create-netflix-clone-04-server-continued.pdfShaiAlmog1
 
create-netflix-clone-05-client-model.pdf
create-netflix-clone-05-client-model.pdfcreate-netflix-clone-05-client-model.pdf
create-netflix-clone-05-client-model.pdfShaiAlmog1
 
The Principle of Hybrid App.
The Principle of Hybrid App.The Principle of Hybrid App.
The Principle of Hybrid App.musart Park
 
10 sharing files and data in windows phone 8
10   sharing files and data in windows phone 810   sharing files and data in windows phone 8
10 sharing files and data in windows phone 8WindowsPhoneRocks
 
Dicoding Developer Coaching #27: Android | Membuat Aplikasi Support Online Ma...
Dicoding Developer Coaching #27: Android | Membuat Aplikasi Support Online Ma...Dicoding Developer Coaching #27: Android | Membuat Aplikasi Support Online Ma...
Dicoding Developer Coaching #27: Android | Membuat Aplikasi Support Online Ma...DicodingEvent
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android InfrastructureAlexey Buzdin
 

Ähnlich wie Hitchhiker's guide to the win8 (20)

Data binding в массы! (1.2)
Data binding в массы! (1.2)Data binding в массы! (1.2)
Data binding в массы! (1.2)
 
MVM - It's all in the (Implementation) Details
MVM - It's all in the (Implementation) DetailsMVM - It's all in the (Implementation) Details
MVM - It's all in the (Implementation) Details
 
Android workshop
Android workshopAndroid workshop
Android workshop
 
The Full Power of ASP.NET Web API
The Full Power of ASP.NET Web APIThe Full Power of ASP.NET Web API
The Full Power of ASP.NET Web API
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Oleksandr Tolstykh
Oleksandr TolstykhOleksandr Tolstykh
Oleksandr Tolstykh
 
Михаил Анохин "Data binding 2.0"
Михаил Анохин "Data binding 2.0"Михаил Анохин "Data binding 2.0"
Михаил Анохин "Data binding 2.0"
 
Taming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, MacoscopeTaming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, Macoscope
 
Androidppt 1
Androidppt 1Androidppt 1
Androidppt 1
 
"Android Data Binding в массы" Михаил Анохин
"Android Data Binding в массы" Михаил Анохин"Android Data Binding в массы" Михаил Анохин
"Android Data Binding в массы" Михаил Анохин
 
Architecture components - IT Talk
Architecture components - IT TalkArchitecture components - IT Talk
Architecture components - IT Talk
 
CDI e as ideias pro futuro do VRaptor
CDI e as ideias pro futuro do VRaptorCDI e as ideias pro futuro do VRaptor
CDI e as ideias pro futuro do VRaptor
 
Java Configuration Deep Dive with Spring
Java Configuration Deep Dive with SpringJava Configuration Deep Dive with Spring
Java Configuration Deep Dive with Spring
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotation
 
create-netflix-clone-04-server-continued.pdf
create-netflix-clone-04-server-continued.pdfcreate-netflix-clone-04-server-continued.pdf
create-netflix-clone-04-server-continued.pdf
 
create-netflix-clone-05-client-model.pdf
create-netflix-clone-05-client-model.pdfcreate-netflix-clone-05-client-model.pdf
create-netflix-clone-05-client-model.pdf
 
The Principle of Hybrid App.
The Principle of Hybrid App.The Principle of Hybrid App.
The Principle of Hybrid App.
 
10 sharing files and data in windows phone 8
10   sharing files and data in windows phone 810   sharing files and data in windows phone 8
10 sharing files and data in windows phone 8
 
Dicoding Developer Coaching #27: Android | Membuat Aplikasi Support Online Ma...
Dicoding Developer Coaching #27: Android | Membuat Aplikasi Support Online Ma...Dicoding Developer Coaching #27: Android | Membuat Aplikasi Support Online Ma...
Dicoding Developer Coaching #27: Android | Membuat Aplikasi Support Online Ma...
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android Infrastructure
 

Hitchhiker's guide to the win8

  • 1.
  • 2. 안녕하세요 김주아입니다. Dongduk Women’s University Microsoft Student Partners 5th Student + Woman + Developer Microsoft R&D Intern
  • 3. Who am I ? Imagine cup 2012 Windows Metro style App Challenge 3rd Place
  • 4.
  • 5.
  • 6.
  • 7.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. public class FeedData public class FeedItem { { public string Title { get; set; } public string Title { get; set; } public string Description { get; set; } public string Content { get; set; } public DateTime PubDate { get; set; } public DateTime PubDate { get; set; } public ImageSource Image { get; set; } public Uri Link { get; set; } public List<FeedItem> Items { get; set; } public ImageSource Image } }
  • 18. private async Task<FeedData> GetFeedAsync(string feedUriString) { // using Windows.Web.Syndication; SyndicationClient client = new SyndicationClient(); Uri feedUri = new Uri(feedUriString); public async Task GetFeedsAsync() SyndicationFeed feed = await client.RetrieveFeedAsync(feedUri); { FeedData feedData = new feed1 = Task<FeedData> FeedData(); feedData.Title = feed.Title.Text; GetFeedAsync("http://cartoon.media.daum.net/webtoon/rss/koala"); feedData.Description = feed.Subtitle.Text; this.Feeds.Add(await feed1); feedData.PubDate = feed.Items[0].PublishedDate.DateTime; } foreach (SyndicationItem item in feed.Items) { FeedItem feedItem = new FeedItem(); feedItem.Title = item.Title.Text; feedItem.PubDate = item.PublishedDate.DateTime; feedItem.Content = item.Summary.Text; feedItem.Link = item.Links[0].Uri; feedItem._imagePath = item.Summary.Text.Substring(10, item.Summary.Text.Length - 10 - (item.Title.Text.Length + 2) feedData._imagePath = item.Summary.Text.Substring(10, item.Summary.Text.Length - 10 - (item.Title.Text.Length + 2) feedData.Items.Add(feedItem); } return feedData; }
  • 19. <ResourceDictionary> <local:FeedDataSource x:Key="feedDataSource"/> </ResourceDictionary> ItemPage.xaml.cs Loadstate에 추가 FeedDataSource feedDataSource = (FeedDataSource)App.Current.Resources["feedDataSource"]; if (feedDataSource != null) { if (feedDataSource.Feeds.Count == 0) { await feedDataSource.GetFeedsAsync(); } this.DefaultViewModel["Items"] = feedDataSource.Feeds; }
  • 20. ItemsPage.cs void ItemView_ItemClick(object sender, ItemClickEventArgs e) { this.Frame.Navigate(typeof(SplitPage), e.ClickedItem); }
  • 21. SplitPage.xaml <Grid x:Name="itemDetailGrid"> <WebView x:Name="contentView" Grid.Row="1" Margin="0"/> </Grid>
  • 22. SplitPage.xaml.cs protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) { FeedData feedData = navigationParameter as FeedData; if (feedData != null) { this.DefaultViewModel["Group"] = feedData; this.DefaultViewModel["Items"] = feedData.Items; } }
  • 23. SplitPage.xaml.cs void ItemListView_SelectionChanged(object sender, SelectionChangedEventArgs e) { Selector list = (Selector)sender; FeedItem selectedItem = (FeedItem)list.SelectedItem; if (selectedItem != null) { this.contentView.Navigate(selectedItem.Link); } else { this.contentView.NavigateToString(""); } }
  • 24.
  • 25.
  • 26.
  • 27.