Final Thoughts on Windows 8 App Dev

There are a bunch of image sizes associated with Windows 8 apps. Your logo is 150 x 150 pixels. The small logo is 30 x 30. The splash screen is 620 x 300. And the store logo is 50 x 50. You should also have some promotional images. At the very least you should provide one that is 414 x 180.

Your app has to pass tests from the Windows App Certification Kit (ACK). This tool laucnhes your app. This must be the release version of your app. I use version 2.2 of the ACK to do my business. Don't worry too much. Visual Studio will guide you through running it before uploading to the Windows Store.

You must register as a Windows Developer to upload your apps to the Windows Store. Normally this costs $49 for an individual account. A corporate account will oost you $99. I think these are the yearly fees. I hear you can get a free account if you are a student and you can prove it. At least you used to be able to get a free student account.

Watch out. A human reviews your app for inclusion in the Windows 8 Store. You app has to "provide real value" or it could get rejected. At least one of mine got rejected. I gave up on that app. Other more worthwhile apps that initially got rejected eventually got through. Some I am still working on.

Windows App Basics

There is a new keyword called partial. It tells you a class definition is in multiple files. Next there is XAML for the UI. It stands for eXtensible Applicaiton Programming Language. It is based on XML. While we are talking about buzzwords, let's defined WPF. Previously this was called WinFX. It is part of the .NET framwork 3.0. It stands for the Windows Presentation Foundation. Whew.

Now let's talk about a Grid. This is a panel. In fact it is derrived from the Panel class. The thing acts as a container. You can like this to an HTML table. You build your apps with Visual Studio. That deploys them to Windows 8. Then you can launch them from the Start Screen.

You place elements on your UI. These are things like text blocks or images. They are not controls per se. You use the elements to build controls. XAML creates the controls for you. Or you could opt to do it just with code. Function MainPage() creates the controls. The XML gets parsed during compile time. That generates a source file.

Charles Petzold, in his book, recommends you use XAML. But you don't have to. You can create a new app. You must handle the OnLaunched event. You can just use the context yourself to handle everything. I never did though.

Wrting Windows 8 Apps

Initially I had some problems finding information about writing Windows 8 Apps. Well I had problems finding good information. Then I discovered "Writing Windows 8 Apps With C# and XAML" by Charles Petzold. I wished it was written with C++ in mind. However it was written by the master and I was happy about that.

I have mentioned before that you need a Windows 8 developer account to upload apps to the Windows 8 Store. Windows 8 apps run in a full screen normally. You can only get the apps from the Windows Store. You deploy the apps to the store using Visual Studio itself.

Windows RT runs the Windows Store apps. This is the Windows Runtime. It is a new object oriented API. Inside it is based on the Component Object Model (COM). Hey. Old goodies do not die. They just get repackaged. WinRT is kind of like SilverLight I hear. I could not say as I am not familiar with SilverLight. Apps are not managed code. The namespaces begin with Windows.UI.Xaml.

To recap your options, you can build a Windows 8 app with C++ and XAML, C# and XAML, VB and XAML, or JavaScript and HTML5. The C++ is C++/CX, which stands for C++ with Component Extensions. It is a special type of C++. On the JavaScript side, you use Win JS which stands for the Windows Library for JavaScript. Yep. Intuitive.

Writing Apps With C++

I consulted some MSDN pages to help learn how to write Windows 8 apps using C++. You need Visual Studio Express for Windows 8. This is also known as Visual Studio 11. It has Blend in it. This product is licensed to you. Be reminded that you cannot perform file input/output operations directly in your apps.

Windows Store apps are not managed. The user interface is defined using XAML. You will notice some files with a *.g extension on them. They are generated files and will get overwritten. Do not edit them.

There is a manifest file for your app that specifies the app capabilities. This file is an XML file. You can edit it with an XML Editor. Normally you use the Application Manifest Design part of Visual Studio. The user has to grant the resources that you request via the manifest. This is a security feature.

Windows App Limitations

To use JavaScript to write a Windows 8 app, you should choose the JavaScript template in Visual Studio. Make sure you choose the one destined for the Windows Store. You need to consider that there are different states that you app can be in. I personally use Visual Studio to develop apps. You could also use a product called Blend. I hear it is good for layout.

You must delcare what capabilities your app needs to access. This info goes into your manifest. Be warned that the default manifest for Visual Studio app projects has Internet Access checked. Your app will get failed if you leave this checked and do not provide a privacy policy for your app. If you app does not require Internet Access, disable this capability!

Active X control are not allowed in your apps. Plug-ins are also not aupported. File access is blocked. Windows alerts do not work. You also need some tricks to access innerHTML as well. The Windows prompt is unavailable.