This course takes the learner through a complete and in-depth lap around building a Windows 8 Store app. Areas covered include planning an app, designing and creating a store-ready user experience, handling the application lifecycle and hooking into key Windows integration mechanisms, accessing data in the cloud, downloading files and performing work in the background, working with live tiles and toast notifications, interacting with a custom cloud service, and more. By the end of this course, you should be proficient in the platform and ready to build or improve your own apps.
Yacine has been involved in the development of database-driven, n-tier web applications for over 10 years. Over time he has taken on various roles, including development, project management, offshore platform management and technical consulting. He has helped build a few solutions for Microsoft North Africa.
Lessons 1-3 Yacine Khammal: Welcome to the first module of this Windows 8 hands-on course. In this talk, we introduce the Jamendizer app. We define what the app will be and its value proposition, its focus and its scope. We'll make decisions about the features we'll be building throughout the course. And we start planning our app's user experience in agreement with the Windows 8 design principles and guidelines. So, to begin with, we perform some brief planning work for our app by putting together a vision statement, from which we'll derive a few core scenarios for the app. And from these core scenarios, we can list some of the key features that will participate in our app's unique value proposition. Then we'll take a step back and take a high-level overview of the key design principles that are inherent to Windows 8 store apps, since we'll be applying many of these principles throughout the course. And finally, we'll start planning our app's user experience. And as a starting point, we'll examine Visual Studio's application templates, and that will help us sketch out the type of experience that we want for the app. So let's jump right in.
Lessons 4-5 Hello, this is Module 2 of Windows 8 apps hands-On. In Module 1, we did some planning for app and user experience and we reviewed Windows 8's key design principles. In this talk, we dive in and actually start building our apps user experience using Visual Studio and Blend. This module will be 100 percent hands-on learned by coding. In the first lesson, we'll implement the UI for our apps main view, and in doing so, you'll learn key techniques and concepts such as design data, data binding, data templates and styles, resource dictionaries, list controls, value converters, and more. And in lesson 5, we design and build the apps music listening view which is based on the SplitPage template. Here, we'll introduce Windows application view states, XAML visual states, and theme animations. So buckle up and let's get started.
Lessons 6-8 Hi and welcome back. This is module 3 of this Windows 8 hands on series. In the first module we learned the basics of planning and creating a Windows 8 user experience. And we put together the views of our Jamendizer app. In this talk we start building our apps functionality by leveraging the Windows platform. First, we'll learn how to access a web service to retrieve music data in our app and consume that data to the user experience we've created in module one. So we'll discuss Windows Http API's as well as the asynchronous pattern that we use to work with this and many other Windows API's. In order to avoid getting eventually overwhelmed in all the service calls and UI logic, we'll introduce the MVVM pattern and we'll talk about using it to structure our code and make it more maintainable and testable. And finally, we'll move onto a key aspect of Windows store apps. The Windows 8 process lifetime management or app lifecycle. And we'll do what it takes for Jamendizer to provide a seamless user experience when our app is switched away from or otherwise deactivated.
Lessons 9-10 Yacine Khammal: Hi. This is Module Four, Windows 8 hands-on. In this module we'll discuss application data storage and background audio. In Lesson Nine we look at application data, which is data that our app creates and maintains at runtime. And we'll learn to use the built-in storage mechanisms available to us in Windows. We illustrate these concepts by creating our app's favorite track feature. Then we explore adding audio capability to our Windows to our app and letting our app play music in the background. These features will help our music app come to life.
Lessons 11-12 Yacine Khammal: Welcome back to Windows 8 hands-on. In previous lessons, we designed and implemented our apps user experience. We accessed data from the web. We restructured our app using MVVM. We handled the application lifecycle, and we added background audio to the app. In this module, we start integrating with the Windows ecosystem by implementing the search contract and by lining up our app with live tiles. In the next module, we'll implement additional Windows contracts and extensions. So in Lesson 11, we add search capability to our Jamendizer app by implementing the Windows search contract, and we extend a basic phrase-based search functionality through a set of filters that will enable more refined searching while preserving the standard Windows experience. Then in Lesson 12, we seek to leverage Windows tiles in our app. We start by customizing our app's own tile and at run time, we update the tile with fresh content as the user interacts with the app. We also allow a user to bookmark music by pinning a track to the start menu using secondary tiles and to later go back to that track directly from the pinned tile.
Lessons 13-15 Yacine Khammal:This is Module 6 of Windows 8 apps hands-on. In the previous module we implemented the search contract and interacted with Windows live tiles. In this module, we'll look at app-to-app data sharing, network connectivity, outputting to network device, and playlist file activation. In the first lesson, we add to our app the ability to easily share music data with other apps through the Windows share contract. Our user will be able to share a song not only through its cloud Uri but also by sharing the MP3 file itself. So another app can take the file and send it or store it elsewhere. We'll also examine our app's behavior in the face of a fluctuating network and we'll use the connectivity API to improve the way our app anticipates and reacts to network changes. And finally, we'll let our user send a tracks audio stream out to an external device on a home network. We'll also add the ability to open a playlist file with Jamendizer from anywhere in Windows simply by double clicking on the file. So let's get started.
Lessons 16-17 Yacine Khammal: Hi. This is module seven of Windows 8 hands-on. In previous lessons, we connected our app to its operating environment by implementing key Windows contracts and extensions and by working with live tiles. In this module we'll look at two other key Windows runtime features: background downloads and toast notifications. So in Lesson 16 we learned to download music files in the background while our user is working in the app. We learned to persist user downloads across the lifecycle states and to monitor download progress from the app. As always, we'll use MVVM to implement the feature, and in Lesson 17 we take a close look at toast notifications, and we add a simple feature to notify the user when a new album's been released since the app's last launch.
Lessons 18-20 Yacine Khammal: This is the last module of this Windows Aid Hands-On Series. In the last two lessons we explored background downloads and task (assumed spelling) notifications. In this module we'll take a look at background tasks, the file open picker contract, and periodic notifications. So Lesson 18 we'll introduce Windows 8 background tasks, and in this lesson we will implement a simple task that will update the user's downloaded music file metadata in the background every 15 minutes. And in Lesson 19 we take a look at file sharing through the file open picker contract, which lets other apps pick files from our app, in our case music files, and we'll look at two different scenarios - sharing files that are stored in a cloud, and sharing local files. And, finally, in the final lesson we'll create a simple alert service that will send badge notifications to our app, and we'll schedule our store app to regularly poll the service using periodic notifications. Hopefully, this menu got you excited. So let's jump right in.