Upload
emery-williamson
View
215
Download
0
Tags:
Embed Size (px)
Citation preview
Win8 on Intel Programming CourseModern UI : Features
Cédric Andreolliwww.Intel-Software-Academic-Program.com
[email protected] 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/