Win8 on Intel Programming Course Modern UI : Features Cédric Andreolli paul.guermonprez@intel.com...

Preview:

Citation preview

Win8 on Intel Programming CourseModern UI : Features

Cédric Andreolliwww.Intel-Software-Academic-Program.com

paul.guermonprez@intel.comIntel Software

2013-03-20

Application Style

Change the application style

Change the application styleWindows 8 comes with a set of interesting designsIt is very easy to changeThe HTML5/Javascript applications use CSS files

Change the application style

Change the application styleOpen the References in the Solution Explorer

The WinJS library provides 2 styles.You can point to the ui-light css instead of the ui-dark css.

Create your application style

Create your application styleRemember, by default Visual Studio associates a HTML file with Javascript and CSS filesIf your HTML file is the default file, you should have :

You can modify the style in “default.css”

Create your application style

Create your application styleModern UI offers an elegant UI but to help you,Microsoft would like you to :

Use a 120 pixels left marginUse at least a 50 pixels bottom marginThe content area must be 140 pixelsfrom the top of the screenThe bottom line of the titlemust be 100 pixels from the top of the screen

More informationhttp://msdn.microsoft.com/en-us/library/windows/apps/hh872191.aspX

Create your application style

Forms

Forms

Forms

Use VS autocomplete to list available types

Controlling Forms

Forms / Javascript

Javascript controlSome controls are not accessible in HTML5They belong to the Windows Javascript Library

WinjS.UI.ListViewWinJS.UI.DatePickerWinJS.UI.FlipView

Those elements must be included in a div

Forms / Javascript

Javascript control example : DatePickerHere’s aWinJS.UI.DatePicker :

Add a div in your HTML file, and a listener on the div :

Forms / Javascript

Javascript control example : FlipViewVery useful to display pictures

Forms / Javascript

Javascript control example : FlipView

Forms / Javascript

Javascript control example : FlipViewFirst add the pictures to the image folderTo add an existing item, right click on the image folder, select “Add” → “Existing item...”Then create an array like this :

Forms / Javascript

Javascript control example : FlipViewThen create a template like this in your html file :

Forms / Javascript

Javascript control example : FlipViewThen add the control in your html file :

Forms / Javascript

Javascript control example : ListViewWorks just like FlipViewAllows to display small tiles on the same pageA full example is available in the lab

Blend

Blend

What is blend ?Blend is a visual editor that helps you create User InterfacesQuickly add content such as titles, images, etcYou will still need to manipulate CSS sometimes

Blend

Blend

How to use blend ?You can drag and drop elements from the assets view to the art board viewYou still have access to HTML and CSS code

Navigation

Navigation

More than just FlipView and ListViewWe saw how to display some components through FlipView and ListViewBut sometimes we need to display some completely new pages, with a new layoutLet’s see how to create complex applications

Navigation

Application.PageControlNavigatorAllows you to define the page to display in your applicationYou can dynamically change the page through JavascriptYou can use the AppBar !Windows 8 maintains a navigation stack for you

Navigation

Application.PageControlNavigatorCreate a new project with theNavigation Application template

Navigation

Application.PageControlNavigatorOpen “home.html” and uncomment the app bar :

Navigation

Application.PageControlNavigatorWhat you need to understand is the following :

On load, the page contains a PageControlNavigator

Its attribute home is set to the home.html pageThe application will display the contentof the home.html page

The App bar will help us to navigate throughthe 2 views that we will useJust follow the same templateif you need to add more pages

Navigation

Application.PageControlNavigatorWe want to navigate between two pages,so lets create one more pageCreate a new folder as child of the folder “page”Name it “other”Create 3 files inthis new folder :

other.htmlother.cssother.js

Navigation

Application.PageControlNavigatorEdit “other.html” :

Navigation

Application.PageControlNavigatorEdit “default.js” :

Navigation

Application.PageControlNavigatorEdit “default.js” to call “registerEvents()” :

Navigation

Application.PageControlNavigatorYou can run your application nowTo make the app bar appear :

Mouse : right click in a blank spaceTouch : swipe from top/bottom border to the

screenThe following pictures will show youa very similar application with some CSS changes

Navigation

Navigation

Navigation

Navigation

Application.PageControlNavigatorThe lab contains a full example using PageControlNavigator

Note : you don't have to display the back button if you don't want to. Just remove the line in your HTML file :

Animation

Animation

AnimationsWindows 8 provides a set of animationsthat you can apply on HTML elements :

FadeIn/FadeOutPage transitionCrossfadeReposition…

You can find the list of available animations at : http://msdn.microsoft.com/en-us/library/windows/apps/hh465165.aspx

Animation

An example animation :Change the handler of the previous example (PageControlNavigator)The next example creates a fade out effect followed by a fade in effect when you try to go on the home page

Animation

An example animation :Lets focus on the AnimationIt returns a WinJS.Promise object that let you add some behavior when the animation is done

App Lifecycle

Lifecycle

3 states :Running : You are currently using the applicationSuspended : The application is still alive in the background but you are not using itNot running : You or the OS closed the application

Lifecycle

State changes and data persistence :It's the developer's job to handle persistence

When you are not using your application,the OS can decide to shut it downWhen the user quit the application,unsaved data are lost

But windows 8 gives you a set of functionalitiesto avoid data lossJust remember that it is the developer's job

Lifecycle

Test state changes in Visual Studio :

Data persistence

State changes and data persistence :The application's data

Data that you want to be rememberedevery time your application is usedApplication's settings, best scores, etc

The session's dataData that you don't want to loose when theapplication is in pause (running in

background)Current opened project, etc

Data persistence

State changes and data persistence :The best way is to save your data when it changes :

Best way to avoid forgetting some dataWhen you exit the application, you have a

limitedtime before the application is closed

Add handlers on change events

Data persistence

An app with handlers on data changes :

Data persistence

An app with handlers on data changes :

Data persistence

An app with handlers on data changes :

Data persistence

An app with handlers on data changes :

Data persistence

Retrieve stored data during the launch :

Data persistence

State changes and data persistence :Now you can try it :

Open your applicationPut some content in the inputClose your applicationRe-open your application

Your data should be saved and reloaded

Session data :Just like stored data, but for a session only.

Views

Views

Use Blend to simulate view changes :

Views

Edit your CSS :Supporting the different views provides a better user experience. Keep in mind that you have to support all the views to fill the Microsoft store expectations.

Views : Landscape

Views : Filled

Views : Snap

Views : Portrait

License Creative Commons – By 3.0

You are free:• to Share — to copy, distribute and transmit the work • to Remix — to adapt the work • to make commercial use of the work Under the following conditions:• Attribution — You must attribute the work in the manner specified by the author or licensor (but

not in any way that suggests that they endorse you or your use of the work).With the understanding that: • Waiver — Any of the above conditions can be waived if you get permission from the copyright

holder. • Public Domain — Where the work or any of its elements is in the public domain under applicable

law, that status is in no way affected by the license. • Other Rights — In no way are any of the following rights affected by the license:

– Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; – The author's moral rights; – Rights other persons may have either in the work itself or in how the work is used, such as publicity or

privacy rights. • Notice — For any reuse or distribution, you must make clear to others the license terms of this

work. The best way to do this is with a link to this web page.

http://creativecommons.org/licenses/by/3.0/

Recommended