Faculty Connection is an online set of real-world resources and shared peer knowledge, the goal of the Faculty Connection site is to put relevant and applicable tools and information at the fingertips of technology educators.
The UK Academic Team is responsible for offering IT students and faculty members free access to software, for enhancing knowledge and skills by providing curriculum materials and other learning opportunities, for helping students achieve their dreams by organizing an international competition, and finally for assisting last year students through career resources and job opportunities at our customers and partners.
With this blog we want to inform you on our latest initiatives.
Enjoy reading and stay tuned!
Microsoft Press have a number of FREE Ebooks now available covering topics from SQL Server 2012, Office 2010 and Windows Phone, there is something here for everyone.
Many of our free ebooks are offered in three formats - PDF, Mobi (Kindle) and epub. Hope you find them useful!
This week I had a really interesting discussion/debate with a University lecturer on teaching user interface design and it took me back just to how things have changed since the mid-nineties.
When I was a student a lot of CS courses which looked at interface design had materials which referenced the following statement “The Evil’s of Rapid Prototyping,” and many slide decks contained reasons why rapid prototyping was a bad idea. Most of the reasoning centred around prototyping tools being so complex back then, they needed to be operated by developers; subsequently, the design process tended to be influenced by all design work needing to be interpreted through the lens of what a prototyper could actually achieve with the software available.
Fast forward to today and there’s been a rethinking on prototyping. Is this good or bad?
I recently blogged about how professional organisations are using tools such as OneNote for UI/UX design. Additionally there a lots of new prototyping tools have appeared over the past few years and they’re rapidly being adopted by interaction designers.
So we concluded that the creators of these tools never attended one of these courses!
So the question I now want to pose is.. how do go about teaching modern user interface design and application workflows on your courses and what tools and resources do you use?
As we know prototypes can be as simple or as complex as necessary for the project on which you are working.
What tools do you use?
Microsoft SketchFlow includes several tools to make your prototype interactive in order to more closely mimic the flow of a production application. For example, with SketchFlow, you can do the following:
Begin a prototype with just a site map and a few notes jotted on the application screens, and then continue to refine your prototype as you go along.
Either draw user interface (UI) elements, or import them from common drawing programs.
Animate your prototype, creating a visual representation of the interaction between the user and the application.
Use the full library of standard UI elements and custom controls.
Create sample data on the fly, easily build data-driven UI, and add styles to your data.
Create interactivity without writing code by using built-in behaviours. Behaviours are extensible, making it easy to add custom behaviours to your prototyping toolbox.
Either write code to create custom elements, or use pre-built elements from your development team
For more details on Sketchflow see http://msdn.microsoft.com/en-us/expression/ee215229.aspx
Tutorials on Sketchflow see www.microsoft.com/.../creating-navigation.aspx
But what about considering Modern design principles..
With Windows 8 and Windows Phone 8 we have the following key principles which need to be adhered
So the key things you need to consider when designing your apps for modern applications are..
Ensure that you weave platform features into your core scenarios and prototype design to leverage the power of the underlying platfom..
So lets think about the platform features available..
To help develop these scenarios here are list of the key resources.
Microsoft Design Guidelines for Windows Phone http://design.windowsphone.com
Microsoft Design Guidelines for Windows 8 http://design.windows.com
Microsoft User Experience Fundamentals and online training http://channel9.msdn.com/Events/Windows-Camp/Windows-8-UX-Fundamentals-Training-Workshop-2012
So where to start?
To help you get started on your app development here are some templates and guidance from http://channel9.msdn.com/Events/Windows-Camp/Windows-8-UX-Fundamentals-Training-Workshop-2012
Example of a completed template for a new app design/concept.
In summary, using any form of prototype technique makes it easy to sketch out a conceptual application and ensure the following are achieved.
So what are you waiting for? You can just create a series of screens and use the templates above and then begin to draw. As your idea progresses, you can add interactive elements that make your prototype as close to the finished product as you need it to be to communicate the design idea you want to convey.
Reviewers can use the tools such as SketchFlow, One Note to view the application flow, and then leave feedback directly in the project as annotations. Once the feedback has been incorporated and the prototype is complete, the prototype project can be handed off to a developer for conversion into a final application,
Today, Microsoft announced Windows Azure Toolkits for Devices, consisting of assets for Windows Phone, iOS and a preview of tools for Android.
Using the toolkits, developers can use the cloud to accelerate the creation of applications on the major mobile platforms.
Today announcement and the release of the API is a key goal to allowing developers to quickly develop and build apps that work with unique devices across a dozen platforms.
The toolkits leverage the Microsoft Azure cloud resources to simplify the complexity of supporting multiple devices. As a common back-end, developers can use cloud services to share common requirements like device notifications, authentication, storage and even higher-level services like leaderboards.
Developers can maximize the performance of each mobile device by writing client code that exploits each platform. As more and more mobile applications rely on back-end services, the Microsoft Azure cloud can become increasingly useful and strategic for developers.
A huge opportunity of the Windows Azure Toolkits for Devices to create applications on the major mobile platforms, specifically:
• Windows Azure Toolkit for iPhone (v1.0). Developers can download the package and quickly get started writing iPhone apps on the Windows Azure platform without having to have intimate knowledge of Microsoft tools, such as Visual Studio. Compiled iPhone code libraries to interact with Windows Azure, a sample iOS application, documentation, and a “Cloud Ready” Windows Azure deployment package are included.
Links to access the free toolkits are below:
https://github.com/microsoft-dpe/watoolkitios-lib https://github.com/microsoft-dpe/watoolkitios-samples https://github.com/microsoft-dpe/watoolkitios-doc
• Windows Azure Toolkit for Windows Phone (v1.2). Originally released last month, new developer features available in the next two weeks include integration with the Windows Azure Access Control Service (e.g., a wizard, automatic setup, tooling and code), full support for Windows Azure Storage Queues and an updated user interface for the supporting Web application.
Links to access the free toolkits are below:
Windows Phone 7:
• Windows Azure Toolkit for Android (Prototype Preview). With the forthcoming release this summer, developers will be able to extend the functionality now available for iOS and Windows Phone to the Android platform with the Windows Azure Toolkit for Android.
To simplify the process of setting up services in Windows Azure, we are also releasing a “Cloud Ready” package for the toolkit. This package is designed to allow someone to quickly get started using Windows Azure without having to open and modify the services.
Screencasts are available for developers seeking additional information: Getting Started with the iOS Toolkit and Deploying the Cloud Ready Package for Devices. Windows Azure Technical Evangelist Wade Wegner’s blog contains a more detailed technical review of the iOS toolkit.
By providing toolkits for Windows Phone 7, iOS, and Android, we are making it faster and easier for developers to use Windows Azure to provide services across device platforms
Techila is a middleware solution for High Performance Computing that enables existing applications to utilize more computing capacity. I believe that the key problem in business and operational computing is the lack of application performance. There are enormous amounts of computing capacity available using Windows Azure cloud service.
Techila allows applications to utilise all available computing capacity. To try demonstrate this a great example of the benefits of Techila and the Windows Azure with Techila integration is a case study, which Techila did with a leading cancer researcher. The researchers in question had a project, which would have taken 15 years. He had developed his research application in MATLAB. He used the Windows Azure with Techila integration to boost the performance of his application with the combined power of 1200 Windows Azure instances. This allowed him to complete the project in 4,5 days! Being able to do something in 4,5 days, which usually takes 15 years gives a real competitive advantage.
Techila develop the solution in close co-operation with end-users and system administrators from the very beginning.
Techila has selected Pharma, Economics/ Financial, and Universities/ Academia as the key markets because of the fact that they are strong on Techila's home market, Finland. But I want to emphasize that unlike many other distributed computing solutions, Techila is a fully horizontal middleware, which can be used in any segment and which can increase the performance of any application: The code can be a MATLAB application, or it can be R (or C/C++, Java, Perl, Python, Fortran,...) They also offer an open API, which can be used to connect any ISV application (3DSMax, SAS, COMSOL, Sungard,...) to the Windows Azure capacity.
Also please find below a demo of run a 2-day long computation in a couple of minutes using 500 Azure instances using MATLAB:
Techila with R language can be found here:
If you have been looking for an opportunity to develop curricula, work books, assessments or simply a walkthrough of a XAML/C# or HTML5/JS application step by step this it! Full source code and instructions are provided in both html and docx formats.
New Updates - What’s new
AppHub Integration: Linking your DreamSpark Account with a Microsoft Live ID
I’m very excited to inform you that we’ve completed our “AppHub Integration: Linking DreamSpark Account with Live ID”
This will now dramatically improve the experience of those students that were having difficulties with App Hub registration.
With the update to DreamSpark students and educators create a new DreamSpark account that is not a Windows Live ID. However for students who wish to produce application for Xbox or Windows Phone require a Windows Live ID, to create apphub accounts via http://create.msdn.com. We have now enabled the system, to enable educators or students to map their DreamSpark account to new or existing Windows Live ID.
Here is the workflow:
- Student/Educator visits the page https://www.dreamspark.com/Product/Product.aspx?ProductId=26 and sees [Map your Live ID] button enabled and [Register on AppHub] button disabled.
- Student/Educator Clicks on [Map your Live ID] button.
- Student/Educator Sign in on DreamSpark site with their Verified account (or get the account verified).
- Student/Educator then logs in using Windows Live ID account.
- Student/Educator is shown the message “Are you sure you want your map your DreamSpark login (email@example.com) with your Windows Live ID (firstname.lastname@example.org) with [Ok] and [Cancel] buttons.
- Student/Educator clicks on [Ok] button a Accounts will be mapped a User automatically signed out from Live ID account à User will be redirected to the page https://www.dreamspark.com/Product/Product.aspx?ProductId=26 with [Map your Live ID] button disabled and [Register on AppHub] button enabled.
If you have done any reading about Windows 8, one thing all the press is focusing on is Windows 8 offers and unprecedented opportunity to monetize your developer skills.
Combining the broad reach of Windows which already exists, a new developer platform in the form of Windows Store Apps, best-in-class developer tools Visual Studio 2012 and Team Foundation Server, a reimagined user experience with Windows Store, Metro Style Apps, support for new chipsets Intel and RTM, and a built-in Store with industry-leading business terms, with initial revenue share of 70% revenue for you 30 % for Microsoft and 100% in app purchase revenue to you.
Windows 8 is the largest developer opportunity, ever! So lets look at some of the reasons for developers to consider writing applications for the Windows Store.
There is more than 1.25 billion Windows users globally. The market potential for your selling your application is enormous. Clearly, the market for Windows-based applications far outnumbers anything else. Thinking about academia specifically, potential employers will be wanting to recruit students with the skills, experience and portfolio of existing Windows 8 apps to build their latest software releases.
2. The Scale of the Windows Opportunity
Simply put the Windows Store offers a marketplace for your application with a global reach of 200+ markets, 100+ languages, even distribution to enterprise customers. A generous revenue sharing model is in place. Imagine that you keep 70-80% of the revenue share from your application.
3. So what are we doing to help
4. So What type of App should I be building?
5. The Windows Store Ensures Visibility Strong support for search, category browsing, ranking lists, editorial content. The Windows Store features latest, most popular, and fast rising apps.
6. Enterprise Support Don’t limit yourself to consumer apps. Perhaps you have an idea for an Enterprise application. Luckily, the Windows Store will have rich support for deployment and management scenarios. Compliance and security is built in. There is support for direct control over the deployment of Metro style apps.
7. How you make money Your applications can be time-based and feature-based trials, paid apps, including in-app purchases. In-app purchases can help you customize the transaction flow with the customer. Sales analytics can also help you increase your reach.
8. Free Apps - Many choose to offer free applications + an ad model I personally think it makes the most sense to get your application out there as a trial. We have learned from the Windows Phone marketplace that trial versions get 70 times more downloads than paid versions. 10% of those convert to the paid version, typically within a few hours.
1. The Windows Dev Center
2. The Windows engineering and Windows Store teams are blogging regularly at the following sites
· Windows 8 app developer blog: Get coding and design best practices and tips, and updates on events and offers for developers.
· Windows Store for developers blog: Get all the latest news on doing business in the Windows Store.
For the last few weeks, I have been attending a number of final year project submission meetings across the UK. I have seen a number of amazing apps/games and projects from students across the UK many of these have been produced as part of their academic coursework and now being used to demonstrate the skills which the students have mastered to potential employers.
One of the key things which frustrates me is the number of students who have built amazing apps or games and simply haven't published these a app store! to simply demonstrate their understanding of app development and more importantly have a app/game which they can demonstrate to a potential employer as part of their portfolio.
So the following blog is to simply help you all understand how to publish and maintain your published app or games and ideally help you get started on the development of a real portfolio of apps and games in the Windows 8 store.
So get your completed course, assignment or module published.
Log in to the Windows Store
Before you can publish your app, you need a Windows Store account. Go to the Windows Store to register. If you haven't claimed your free Windows Store account via dreamspark go to https://www.dreamspark.com/Student/Windows-8-App-Development.aspx
After you log in to the store with your live ID (the one you used for your store account), go to “Dashboard”
If this is your first time logging in since you created your account, you may see a message that says
“Before we can list any of your apps in the Store, you’ll need to verify your payment method. Verify your payment method.”
When you created your account you entered credit card information. A small amount was charged and then reimbursed on your credit card to validate the card. You need to find your billing statement (or call your credit card company) to find out the transaction amount that was charged.
Select the Verify your payment method link and you will be taken to the Payment account verification screen. When you get there scroll to the bottom of the screen. using the information from your credit card billing statement, enter the amount that was charged or the 3 digit code from the transaction description and select Next.
Once you see the message saying “We successfully verified your payment account” You are ready to begin submitting your app!
From the top menu, select “Dashboard” then select “Submit an app” from the menu on the right.
Use the dashboard to see all the applications you submitted and their status in the store certification process. It can take as little as 2 days or as much as 2 weeks for an app to be published after you submit it.
Choose a Name for App/Game Your app/game name is important! It is the first thing a customer sees when they find your app in the store. Be creative! Make sure you don't use names that are trademarked by others or those who own the trademark could ask to have your app removed from the store.
So step1. is do some research, search the store for names, phrase, titles and ensure you pick a unique one.
Enter the app name you wish to use and select Reserve App Name. If you get a message back informing you your app name is already in use, you will have to enter a different app name.
NOTE: The app name you enter here must match the Display Name in your app manifest in your created app/game
TIP: You can just do this first step to reserve your app name before you have the code ready to publish. Your name will be reserved for 12 months.
Price - This is where you set the price of your app, and your free trial options. If you choose to charge for your app, pricing can start at £0.99. The price you select may include a sales tax that the customer must pay. Your proceeds will be based on the pretax amount.
TIP: Apps with free trials of some sort usually get more downloads, you can either limit the duration of the trial, or in your code you can limit the features available on the trial version. Use the license Information class to determine if a trial has expired, or if a user is running a trial version. You can find more information about handling trials in your code here.
Markets - Select the countries where you want your app to be available. Selecting a country does not guarantee your app will be published there. There is some content and features that is restricted to certain regions, you could be using a feature that is not available in a particular region yet. You might want to consider the primary languages spoken in a particular country when deciding which countries you select.
TIP: When publishing a game, the countries Korea, South Africa, Brazil, and Taiwan require a game to be rated by a rating board and certified to prove the age rating of the game. If you do not have certificate files to prove you have completed that process, make sure you do NOT select those markets or your app will fail certification.
Release Date - If you want your app to be published as soon as it is certified select the first option.
Category - Now, select the category that best matches your app, this will affect where your app will be listed in the store, so consider your choice carefully. If a Windows user was searching for an app like yours in the store, which category would they choose to search? It's important to make it as easy as possible for users to find your app in the store. Picking the wrong category can also result in failing certification, because the testing team may not feel the category is appropriate for your app.
Hardware requirements – If your app has minimum RAM or DirectX requirements, you can specify that here.
Accessibility – Only select this check box if you have gone through all the accessibility guidelines and tested your app to ensure it is accessible. Accessibility includes testing for users with low vision or screen readers.
Advanced features - You only need to complete this section if your application supports push notifications (often used to update tiles), connect services such as SkyDrive and Single Sign-On, or in-app purchases. In app purchases is a popular way of making money with apps, the app is free, but a user can make in app purchases improve their app experience. For example, there are games where players can purchase weapons or armour. If you have not implemented any of the above features you can just leave all the fields in this section blank.
Age rating and rating certificates - This section is to describe the audience for your app and upload your rating certificates. If you can't decide between two age ratings, for example your app has content you feel is suitable for 12 and older, but requires an account that can only be created by users 16 or older, choose the higher age rating. Some countries requires will also require that your app be rated through a ratings board, especially for games. So check the list to see if a market you selected requires a rating certificate. If you try to publish to a market that requires a rating certificate and you do not provide the certificate file, your app will fail certification.
Cryptography - You must declare whether your app calls, supports, contains or uses cryptography or encryption. There are US regulations regarding the exporting of technology that use certain types of encryption. Apps in the Windows store must comply with these laws because the app files can be stored in the US. These rules apply even if you are a developer in UK selling apps in the UK through the store. So if your app is doing some type of cryptography or encryption you should read up on the regulations to see if your app requires an Export Commodity Classification Number (ECCN).
Packages - Now it's time to upload your app to the Windows Store. But there are a couple of things you need to do first:Build your package and run the WACK test.
· In Visual Studio, change the Build type from Debug to Release and Build the solution by choosing Build | Build Solution from the menu.
· From the menu choose Project | Store | Create App Packages…
· When asked “Do you want to build packages to upload to the Windows Store”, select Yes. and then select Sign In.
· Sign in with the same email account you used for the Windows Store.
· Select the app name you reserved to indicate the app for which you are creating a package. If you are resubmitting after a failed attempt to publish or to update your app in the store, you will want to select the checkbox “Include app names that already have packages” so you can see your app in the list.
· After you select the app name, select Next.
· Now you must choose which platforms will be able to install your application. If you pick Neutral, you will get a single package with builds that will run on any Windows 8 hardware. If you select individual builds you will get a different package for each build type. NOTE: If you are building an app which requires a lot of memory and processing power and you have not tested it on ARM, you might want to consider selecting x86 and x64 specifically and not including ARM in your release.
· For the version number, I recommend using the Automatically increment. Otherwise you must make sure the version number in your app manifest file matches the version number on this page.
· Make a note of the output location, because you will need to upload the file from that location to the store after the package(s) is/are created.
· Select Create when you are ready for Visual studio to generate the app package.
After your package is created, you are prompted to launch the Windows App Certification Kit. This will run your app through a series of tests to check for issues that could cause it to fail certification. While it is running you will see the app occasionally launch and close. Do not interact with the app while the WACK test is running.
To start the WACK test select Launch Windows App Certification Kit. This process can take 10 minutes or so. You will know when it is complete because you will see the test summary page informing you if your app passed or failed. The results window does not automatically appear in the foreground, so you may want to occasionally check your task bar and desktop to see if the test is completed..
If your app failed, select “Click here to view full report” then investigate and resolve the issues that caused it to fail, then create a new package and try again. If your app passed, you are ready to upload the package to the store.
Once your package is created you will find a new folder called “AppPackages” inside your application folder. Inside the “AppPackages” folder is a file that ends with “.appxupload” extension. This is the file you will select when you upload your app.
If you made changes to your app and rebuilt the package, make sure you pick the most recent app package, the version number in the package file name or the date created can help you identify the most recent package(s).
Go to the Packages section in the application submission and then drag your package(s) to the app submission page. (remember if you chose to make separate builds for x86,x64 or ARM you will have multiple packages and you will need to upload all of them to the store.)
You will know when your package is uploaded because you will see it listed as an uploaded package.
App Description - This is where you describe what your app does and this is what users will see when they look at your app in the Windows store. If you want your app to be downloaded by a lot of people, make sure to take time to write a good description. Take a look at the descriptions of similar apps in the store, how will your description stand out? Make sure the first couple of sentences grab their attention. Make sure you have a short list of your app's best features. If you offer a free trial, this is a good place to explain how the trial works. There are some good tips on writing your app description here.
TIP: If your app will require anyone to log in to complete certain tasks, you must mention that in your description or you will fail certification.
Screenshots - After you add the description of your app, you will need to upload images of your app including a logo that the will be used to feature the app.
If you don’t have these images already, you can create them using the simulator in Visual Studio. Change the launch option to Simulator using the drop down key in the menu.
When the app launches, on the right side of the simulator is a button with a camera icon which will let you to take a snapshot of the screen and put it in your clipboard. Then you can open an app such as Paint paste it and save it as a .PNG file. If your image is larger than 2 MB you may have to use a tool like Paint .NET (which you can download for free) to save it at a lower resolution. You can’t just resize the image because it must be at least 1366 x768 pixels (landscape) or 768X1366 pixels (portrait).
Keywords – If someone was searching the store, what keywords would they use to find your app? Specify these as keywords to help users discover your app.
Copyright and trademark info – this is a mandatory field where you specify the copyright information for your application. Basically this is where you get to say, whose app is this.
Promotional Images – If you have a great app, make sure you include some extra images so your app has the potential to be featured in the store! Being featured always results in more downloads, so if you’ve done something amazing, make sure to include all the promotional images so your app could be highlighted!
Website – If you have a website for your app or other apps you have built, you can include a link to it here
Support Contact Info – you must provide a way for users to contact you if they have problems with the app. An email address, or a link to a website with a Contact Us option will suffice.
This is a place for you to add any notes you wish to share with the people who are testing your app for certification. For example, if your app requires a login to an online service, you must provide the login information for an account the testers can use. If your app is only intended for a limited audience, it is good to mention that in notes to testers as well, because your app can be rejected because it does not appeal to a wide audience. So, if you are making an app for a specific audience, make that clear in the description and notes to testers. The information you enter in this section is not seen by users of the app, it is only seen by the team who tests your app to see if it is suitable for the Windows Store.
After you have completed all the sections you should see a checkmark beside every section. If there is a section without a checkmark, go back to see if you either missed a mandatory field, or you have a field entered incorrectly.
If every section is marked as complete you can now select Submit for Certification.
Congratulations! You have just submitted your app to the store!
Once you submit your app, it will take up to 1 weeks to get certified, you can track the progress of your app in the main dashboard. You don’t have to keep coming back here to check the status. If you fail certification, you will receive an email and a detailed error report explaining why it failed so you can correct any errors and resubmit. If you pass certification, you will receive an email with a link to your app in the store!
The Windows team has created this great checklist to help you prepare and organize all the required info to make it easier to enter the info when you submit an app.
Your app is now live and ready for consumers to download and install.
But what happens when you make a update or find a bug that needs fixing or even adding extra functionality?
Here is how do you submit a new version of an app/game to the Windows store after you have made updates to the code
You’ve submitted your app, and now you’ve made some improvements based on comments or feedback from users, or maybe just because you had some time to improve it. Here’s how you do it.
Log in to the Windows Store at dev.windows.com and go to the Dashboard.
Select Details for the app you want to update
When you get to the Details page, select Create New Release
You will need to upload a new package to the store containing your new code.
Go to Visual Studio, open the .appxmanifest file, go to the Packaging tab and increase the Version number, so it indicates this is a new version of your app.
You decide how you want to increment the version numbers, but here is some general guidance:
Now go to the menu and choose Project | Store | Create App Package and follow the prompts to build your new app package. It’s always a good idea to launch the Windows Application Certification Kit on your updated app to make sure it still passes the tests with your updates.
After you have built your new package, return to your app submission screen, select Packages, and upload the new package from your Visual Studio project AppPackages folder (REMINDER: the package is the file with the extension .appxupload).
When you submit a new version of an app, you must indicate the contents of your update in the Description section.
Enter a description of the update in the Description of Update field.
Although it is not required, if you are adding new functionality to your app, consider updating other fields that describe your functionality to users. You want to ensure potential users are aware of the full functionality of your application when browsing the store. Attributes you might want to updated include the Description, the App features list, or the Screenshots.
If you wish you may change other attributes of your app such as price, age ratings, but that is not required to submit the update.
After you have uploaded your new package, completed the description of update and made any additional changes you wish to make, select Submit for Certification to submit your updated app to the store.
That's it you have just submitted an updated version of your app to the store.
Last weekend I went along to Hack to the Future, the idea of Alan O’Donohoe, Teknoteacher on Twitter. Alan is a Secondary School ITC teacher in Preston. However Alan really wants to make a difference for the next generation. Alan decided to setup up a unconference to support the development of Computer Science to young people in the form of a day of informal learning entitled – Hack to the Future or #h2df.
A direct quote from Alan
It is an un-conference that aims to provide young digital creators aged 11 – 18 with positive experiences of computing science and other closely related fields, ensuring that the digital creators of today engage with the digital creators of tomorrow. We plan to offer a day that will inspire, engage and encourage young digital creator
It is an un-conference that aims to provide young digital creators aged 11 – 18 with positive experiences of computing science and other closely related fields, ensuring that the digital creators of today engage with the digital creators of tomorrow.
We plan to offer a day that will inspire, engage and encourage young digital creator
I’m proud to say that Microsoft fully supports events such as so we involved Microsoft Research, MS Press and a number of other key partners to help support the event. Myself and Steven Johnston from Southampton University, who is also working with Microsoft Research as a Gadgeteer outreach manager developed a plan and we set off for Preston. The event was all about the young people and it was amazing to see over 350+ young people plus around 100 teachers and parents attending the various talks, workshops and sessions at H2df. I have to stress the workshops and sessions at H2df were all hands on, and code based and Steven and myself spent the day at Hack to the future #h2df getting attendees hands on with the Microsoft .NET Gadgeter and had a great day.
We ran 7 sessions each with 10 laptops/kits and were packed out each session. (each kit with 3/4 students, we had to turn some students away due to the demand so apologies if you did not attend). Below is a copy of the sessions which we completed. I have to state on the day we far more hands on with Visual Studio 2010 and C# and astounded by the skills of some of the younger developer (Hacklings, as Alan calls them)
During the session the attendees built the camera and those that completed early - built a cardboard case and mounted the components to create a a digital camera. Thanks to @coletteweston for these great pic of her daughter at the event who as you can see was very successful.
Overall the event was inspiring with children using Visual Studio 2010, some without any prior experience and writing C# and getting to play with the GHI Fez Spider Gadgeteer kits to build a fully working digital camera in around 30 mins – 45 mins. Hack to the Future was an amazing day and really well done to Alan and the team of Our Ladies High School.
To end the day, Alan put on some indoor fireworks and did his his famous #h2df rap. Well done to Alan and all the other volunteers at Hack to the Future and a great start to inspiring computer scientist of the future.
With the release of Unity 4.2, you can now take your Unity games and quickly port them to Windows Phone 8 and extend your reach to Windows users.
Getting started building a Windows Phone 8 game with Unity
To develop, compile and submit a Unity game to the Windows Phone store, you will need:
• Unity 4.2 . Either the Unity free version or Unity Pro will work. The add-ons to publish to Windows and Windows Store are free, even for Unity Pro users.
• Windows Phone SDK 8.0 The WP8 SDK includes a stand-alone version of Visual Studio Express 2012 - if you already have Visual Studio Premium or Ultimate, the SDK will work as an addin and you can continue to use your version-.
• Windows 8.0 or later. If you do not own a Windows 8 license, you can get a 90-day evaluation version. If you are running Mac OS X or will install on Apple hardware, check different options for installing using Boot Camp, VMWare , or Parallels.
• Windows Phone developer account. This is needed to “unlock” your phone so you can side load your game for developing and testing. It will also be needed to submit your game to the Windows Phone store.
• Windows Phone 8 device. In Unity 4.2, deploying and debugging to the Windows Phone emulator is not supported, so you will need a phone. Once you have a phone and your developer account, follow these instructions to register your phone for development.
Targeting a new platform always requires a few tweaks, such as using a few platform specific APIs (e.g. in-app purchase or application life cycle) and tailoring the game to the device’s hardware capabilities (e.g. a back button).
To create your game, you will still be using the Unity IDE. This will feel very familiar and keep your productivity high. That said, there is a significant difference that you should keep in mind: When running the game within Unity, it will run using the Mono run-time; however, once you build for Windows Phone platform and deploy to the phone, you will be running in the .NET for Windows Phone run-time.
Here are a few tips for dealing with this “dual run-time” environment:
1. If including script files that will run in Unity, use the #if UNITY_WP8 pre-processor directive to refer to code that should not run inside Unity.
2. For plugins, include Unity plugins to be used in the Unity editor in the Assets/Plugins directory and include the run-time plugins for Windows Phone in the Assets/Plugins/WP8 folder.
3. Make sure you test your game thoroughly on a device. If you are referencing a Mono API that is not on Windows Phone, it will work fine in the Unity player, and throw an exception on the phone.
4. Unity uses the Mono compiler to generate phone assemblies, as such you may find that once in a while you will call a Mono API that is not in phone and even the compiler (when you build for phone) will not catch it. These errors will lead to exceptions when running on the phone. A good tool to validate an assembly’s portability to Windows Phone is http://scan.xamarin.com. You should extend this practice of validating your assemblies to compiled plugins. If you purchase a plugin that ships as a binary, validate it to make sure it uses only Windows Phone APIs.
If you find errors or missing Mono APIs that you are using in your game, you should look at the .NET API for Windows Phone reference site to find alternates.
Windows Phone renders their UI using XAML. This infrastructure can be useful if you want to have UI that is not in your Unity game (such as a splash screen or ads). XAML UI and Unity UI can compose seamlessly. The way this composition works is via the DrawingSurfaceBackgroundGrid control. This control uses Direct3D to render what is effectively the background to the whole screen. Unity renders your game against this surface using hardware accelerated Direct3D. For more details on XAML + Direct3D composition, refer to the XAML and Direct3D apps for Windows Phone 8 write-up on MSDN.
The graphics composition with via the Unity engine will all be transparent to you. It is where you mix and match that you will need to remember these four details:
1. Within your app, you can include XAML UI controls and widgets (such as an ad control, buttons, etc.) that compose visually with your game.
2. If you add XAML UI, this will be in front of your game since your game is rendered as the background of the scene.
3. To maximize compatibility across screen sizes, XAML content is scaled. XAML content is 480 wide, and then scaled. [So on devices with 1280x768 resolution, Unity will see this resolution and XAML content will be 480x800, scaled 1.6 times. If you are trying to align a pixel-perfect composite of a scene that uses XAML and Unity content, you will need to scale down your Unity content. You can get the scale from the Appication.Current.Host.Content.ScaleFactor property.
4. XAML UI runs on a different thread than Unity, so you will need to dispatch messages to the right thread in order to access the respective UI components for each technology:
To tweak XAML UI from a Unity callback, use this:
1: Dispatcher.BeginInvoke(() =>
3: //access XAML UI elements here..
To call from within XAML UI thread onto the Unity thread, use:
1: UnityApp.BeginInvoke(() =>
3: //access Unity objets here..
Windows Phone games must declare some of the resources or APIs they will consume.
This is done via declarations in the application manifest (WMAppManifest.xml). If you are making network requests, accessing sensors, using push notifications, etc. you will need to declare these, else your app with get exceptions or failures with access denied.
Everything you need to know about capabilities is in the capabilities documentation page. Review that page and double click on the WMAppManifest.xml document in your Visual Studio project to declare the resources you will need; there is no coding required for any of these.
Process Lifecycle Management
The Windows Phone application model has one foreground app (the one that is visible) that has access to most of the OS resources (memory, CPU, networking); to enable fast app switching, the OS does keep recently used apps that the user has not explicitly closed in memory. All of this app model is explained to great detail in the “App activation and deactivation for Windows Phone” documentation.
For games where you are saving state as early as possible, the default mappings to Unity events should work well. If you want to optimize further, all these events are in App.xaml.cs and the default Unity generated code is subscribing to them, you can add extra logic in the event handlers on the C# side, and use a plugin to communicate with your game code.
Windows Phone 8 has a detailed minimum hardware spec that all devices must meet; you should expect high-degree of consistency across the devices.
Hardware acceleration with programmable GPU. Windows phone uses Direct3D with feature level set to 9_3. MSDN has a great table of the supported features by level. The two biggest take-aways to notice are shader model level 2 and max texture size of 4096.
Windows phone 8 devices come in three resolutions: 480x800(WVGA), 768x1280 (WXGA) and 720x1280(720p). To find the resolution of your device, you can query the Screen.width and Screen.height properties within your Unity scripts; you can then scale appropriately within the game. For static assets outside the game (tiles, splash image, etc.) supplying assets for the WXGA resolution often suffices, Windows Phone will scale these.
Memory comes in multiple configurations: 512 MB of RAM for the WVGA devices, and minimum of 1GB RAM for the 720p devices. The newest phones such as Nokia 1020 are up to 2GB.
The OS limits how much memory a single application can consume; for lower memory phones this is around 150MB for a single app, and it goes up to around 380MB for higher memory phones. There are capabilities you can declare in your manifest to opt into specific memory behaviours and to opt out of running on low-end devices.
The default Unity projects opt into the ID_FUNC_EXTENDED_MEM capability, which says your game will run in a lower memory device, getting up to 180 MB. You can opt out of lower memory devices by using the ID_REQ_MEMORY_300 capability; learn more about the limits and the capabilities from the App Memory Limits documentation.
Accelerometer is available on all phones and directly accessible from Unity APIs.
Magnetometer and gyroscope are optional on the hardware on the phone. Compass APIs are not implemented in 4.2, but they are in the upcoming 4.3 release.
Hardware Back button. All Windows Phones have a dedicated back button and there are specific guidelines on what an app should do when the back button is pressed:
• If you have implemented navigation within your app, pressing the back button should go back to the previous step in your navigation.
• If you are inside a modal dialog (e.g. settings or achievements, etc.) pressing back button should dismiss the dialog.
• If you are not in a dialog and you are at the root of the navigation game (or you do not have navigation in your game), pressing the back button should exit the game.
To handle the back button, use the same mechanism as android: listen for the Escape key.
Note that proper handling of the back button is a certification requirement. If you do not handle it, you will fail certification. The default code exported from Unity does not handle it, they do the work to suppress it, and expect you to handle Escape key. If you do not want to waste cycles on every update listening for the Escape key you have a game with a single screen and no modal dialogs where the back button would always exit the game, you can comment out the e.Cancel assignment from the
1: BackKeyPress event handler in MainPage.xaml.cs
2: private void PhoneApplicationPage_BackKeyPress(object sender,CancelEventArgs e)
4: //e.Cancel = UnityApp.BackButtonPressed();
As any mobile platform, performance is important and you should test for it. Most of the standard Unity guidance on optimizations for mobile devices applies. Most games should not need platform specific optimizations (outside of tweaking visual features to the GPU capabilities on phone). For those looking to get every drop of performance, interop cost on Windows is a bit higher than on Mono. You need to be smart about crossing the boundaries from your script (C# or UnityScript) to the unity engine (which is written in native code).
Unity support for Windows Phone is still growing so not all APIs have been ported, there is only a few missing,
• Compass support is not in Unity 4.2
• Location services is not in Unity 4.2
• Webcam support is not in Unity 4.2
• Microphone support is not in Unity 4.2.
• WWW is implemented but multiplayer networking APIs are missing. You can used .NET APIs or third party libraries (e.g. photon) as an alternative.
• GPU profiling is not available yet.
• Application.OpenURL is not implemented. You can use the Windows Phone WebBrowserTask for this.
Enhancing your game with some of the Windows Phone platform features
The Windows Phone Start screen is a signature and highly praised feature in Windows phone. Tiles are the ‘first impression’ your users will get about your app; when used effectively, tiles can be a differentiator that drives continuous engagement to your game.
Anyone shipping a game for Windows phone should read the introduction to tiles for Windows Phone and the tile design guidelines for Windows Phone.
At a minimum, your game should have beautiful tile that meets the design guidelines on all possible sizes – tiles come in 3 sizes: 159x159 (small), 336x336(medium) and 691x336(wide).
To configure and include the tiles for your app, you must use Visual Studio’s manifest editor and include the images in your VS project.
Once you have a beautiful static tile, consider how to “invite” your users to come and play often. If you have a turn-based game, you can use the tile to notify the user of their turn; if you have a game that can start at any level, let the user create a secondary tile that lets’ them pin their favorite level and start there every time. If you have any server-side features (high scores from peers, special offers, etc.) use Windows phone push notifications to let the user know about your offers or any other relevant data that invites your user to play a game. You can also do local notifications, and scheduled tiles. There is a lot of different options to keep your start screen alive.
Unity does not include APIs for tiles and since Unity uses the Mono compiler, you can’t just include a script in your project to access tiles (the compiler won’t be able to resolve this), you must do a plugin and compile it using Visual Studio. For details on the tile APIs for Windows Phone, refer to the ShellTile class.
A few seconds will pass between a user tapping to launch your game, and the Unity engine rendering it to the screen. Windows Phone allows you to configure an image that the OS will show between the time the user launches your app and when XAML UI is rendered to the screen. This image is a JPG and you can configure different sizes for the different phone resolutions:
Image size in pixels
Filename (you must use)
You can also just include a single image called SphashscreenImage.jpg, this is what the default Unity builds do; if you are shipping a single image, make it the WXGA size, the OS will scale appropriately.
The Unity 4.2 Player Settings dialog does not allow you to override the Splash Image with your own, so you must configure it in Visual Studio. Instructions on where to copy the images to and what resolutions to use are in this How to create a Splash Screen walk-through.
Having a splash screen is a must-do, but it is usually not enough. Windows Phone only shows the splash image while the app is getting started and once it is ready to show XAML UI, it transitions into this XAML UI. For some games, there are still a couple seconds between that and your Unity UI. To get around this, you can just edit your XAML to display your splash image (or any other UI you want to display) until Unity is ready. For details on how to accomplish this, look at the “Extending your splash image” in the common tasks section below.
Windows Phone offers different options for monetizing your game.
Beyond the one-time purchase of your game, Windows Phone offers trials (that you would need to convert to a full purchase), in-app purchase for durables and consumables and advertising.
To access the in-app purchase APIs you will need to write a Unity plugin. MSDN has a great overview of the in-app purchase APIs, most concepts will feel ‘familiar’ for those who have implemented in-app purchase in other platforms. The only ‘quirk’ you will encounter is that Windows Phone does not have a staging environment to test in app purchase. There is a Mock API library that you can use for your development; if you feel that testing the in-app purchase APIs (not just the mock library) is absolutely required before submitting to the store, then do a beta for your game. This would allow you to test inapp purchase using the real APIs before you submit to production.
If you prefer to purchase a plugin instead of writing one, here are vendors that have plugins. RobotoWP for Windows Phone , BitRave and Prime31 have Microsoft Store plugin and lots of other useful Windows Phone and Windows store plugins such as Microsoft ads plugin, and an essential plugins that includes a lot of sharing tasks
Submitting to the store
To submit to the store, you will need your Windows Phone developer account and a licensed version of Unity. The trial version of Unity, will produce a water mark in the build that says “development build” on the bottom right of your game, and this will not pass certification. The Unity addins for Windows Phone are free for Unity basic and even Unity Pro users, so just contact Unity to get your free license.
When you are ready to submit to the store, follow these steps.
1. Check out the App certification requirements for Windows Phone 2. Become familiar with Windows Phone app product submission process.
3. Run your app through the Windows Phone Store Test Kit. The Windows Phone Store test kit is a suite of automated tests and manual tests for your game. The kit will identify and help you fix issues that Microsoft testers will find during certification; by finding them early, you will save a lot of time. The store kit can be executed from within visual studio (under the project tab), this walkthrough gives you step-by step- instructions and details on running the kit.
You will be tempted to just run the automated tests and ignore the manual ones; this is a bad idea; you can learn a lot about the platform and about making your game better from looking at what the Microsoft certification folks are testing for; give the manual tests a try and see how your game fares.
4. We recommend you go through a beta submission. More details at the “Beta testing your app” page , on MSDN
5. Submit your master configuration. Unity will create a debug, release, and master configuration for your visual Studio project. Make sure you submit the master, not the release one.
Other useful references
• Unity’s Windows Phone 8: Getting Started guide is a must read.
• The getting started with Windows Phone will walk you through downloading the tools, registering your phone for development (aka unlocking the phone) and writing a basic app that walks you through Visual studio project structure.
• The Windows Phone SDK samples collection has hundreds of coding samples to accomplish specific tasks.
Unity has instructions on debugging with visual studio.
Unity has instructions on profiling Windows phone apps