IntelAcademic_Win8_05_Modern_Features

advertisement
Win8 on Intel Programming Course
Modern UI : Features
Cédric Andreolli
www.Intel-Software-Academic-Program.com
paul.guermonprez@intel.com
Intel Software
2013-03-20
Application Style
Change the application style
Change the application style
Windows 8 comes with a set of interesting designs
It is very easy to change
The HTML5/Javascript applications use CSS files
Change the application style
Change the application style
Open 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 style
Remember, by default Visual Studio associates a HTML file
with Javascript and CSS files
If 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 style
Modern UI offers an elegant UI but to help you,
Microsoft would like you to :
Use a 120 pixels left margin
Use at least a 50 pixels bottom margin
The content area must be 140 pixels
from the top of the screen
The bottom line of the title
must be 100 pixels from the top of the screen
More information
http://msdn.microsoft.com/enus/library/windows/apps/hh872191.aspX
Create your application style
Forms
Forms
Forms
Use VS autocomplete to list available types
Controlling Forms
Forms / Javascript
Javascript control
Some controls are not accessible in HTML5
They belong to the Windows Javascript Library
WinjS.UI.ListView
WinJS.UI.DatePicker
WinJS.UI.FlipView
Those elements must be included in a div
Forms / Javascript
Javascript control example : DatePicker
Here’s a
WinJS.UI.DatePicker :
Add a div in your HTML file, and a listener on the div :
Forms / Javascript
Javascript control example : FlipView
Very useful to display pictures
Forms / Javascript
Javascript control example : FlipView
Forms / Javascript
Javascript control example : FlipView
First add the pictures to the image folder
To 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 : FlipView
Then create a template like this in your html file :
Forms / Javascript
Javascript control example : FlipView
Then add the control in your html file :
Forms / Javascript
Javascript control example : ListView
Works just like FlipView
Allows to display small tiles on the same page
A full example is available in the lab
Blend
Blend
What is blend ?
Blend is a visual editor that helps you create User Interfaces
Quickly add content such as titles, images, etc
You 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 view
You still have access to HTML and CSS code
Navigation
Navigation
More than just FlipView and ListView
We saw how to display some components through FlipView
and ListView
But sometimes we need to display some completely new
pages, with a new layout
Let’s see how to create complex applications
Navigation
Application.PageControlNavigator
Allows you to define the page to display in your application
You can dynamically change the page through Javascript
You can use the AppBar !
Windows 8 maintains a navigation stack for you
Navigation
Application.PageControlNavigator
Create a new project with the
Navigation Application template
Navigation
Application.PageControlNavigator
Open “home.html” and uncomment the app bar :
Navigation
Application.PageControlNavigator
What you need to understand is the following :
On load, the page contains a PageControlNavigator
Its attribute home is set to the home.html page
The application will display the content
of the home.html page
The App bar will help us to navigate through
the 2 views that we will use
Just follow the same template
if you need to add more pages
Navigation
Application.PageControlNavigator
We want to navigate between two pages,
so lets create one more page
Create a new folder as child of the folder “page”
Name it “other”
Create 3 files in
this new folder :
other.html
other.css
other.js
Navigation
Application.PageControlNavigator
Edit “other.html” :
Navigation
Application.PageControlNavigator
Edit “default.js” :
Navigation
Application.PageControlNavigator
Edit “default.js” to call “registerEvents()” :
Navigation
Application.PageControlNavigator
You can run your application now
To make the app bar appear :
Mouse : right click in a blank space
Touch : swipe from top/bottom border to the screen
The following pictures will show you
a very similar application with some CSS changes
Navigation
Navigation
Navigation
Navigation
Application.PageControlNavigator
The 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
Animations
Windows 8 provides a set of animations
that you can apply on HTML elements :
FadeIn/FadeOut
Page transition
Crossfade
Reposition
…
You can find the list of available animations at :
http://msdn.microsoft.com/enus/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 Animation
It 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 application
Suspended : The application is still alive in the background
but you are not using it
Not 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 down
When the user quit the application,
unsaved data are lost
But windows 8 gives you a set of functionalities
to avoid data loss
Just 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 remembered
every time your application is used
Application's settings, best scores, etc
The session's data
Data that you don't want to loose when the
application 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 data
When you exit the application, you have a limited
time 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 application
Put some content in the input
Close your application
Re-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/
Download