Sunday, October 2, 2016

Sunsetting

This blog was created to provide the content for a Windows Phone 8 application, also called How to Create Apps.  Unfortunately, that application used Yahoo Pipes to compose the blog entries and other content for use in the app.  Since Yahoo Pipes went offline I had to remove the app from the store.

Wednesday, December 11, 2013

Submit Your App to the Store - Windows Phone


The final step is to submit your app to the store.  Let's talk about the Windows Phone Store first.

Create a Windows Phone Store account.

  • Register as an app developer.  This will cost $19 and require providing your address and other information.  If you wish to register as a company the cost increases to $99 and you must provide some corporate information.  Additional information is available here.

    You may need to create a Windows Live account as well if you don't already have one.  The whole process does not take too long. Please provide a working e-mail address and cell phone number: Windows Live will use the e-mail address to authenticate your account, and the Windows Phone Dev Center will send texts to your cell phone for two-factor authentication when registering as an app developer.
Submit the app.

This is a relatively simple process if you prepared properly.  You'll use the screen shots you prepared earlier, and you'll need to supply some information about your app such as name, price, category and markets in which to distribute the app (some countries have more restrictions than others, making it more difficult to get your app submission approved).  You'll also need to upload your app's XAP file.  You can find this in your Phone project's XPlatformCloudKit.Phone8\Bin\Release directory.

When you submit your app it goes through a review process before it makes it to the store.  This process takes a few days.  You can track the progress of your app in review by going to the Dashboard.

[Update - I submitted the app on 13 December 2013, and it was approved and placed on the store here on 18 December 2013.]


Prepare the App for Submission to the Windows Store

You're almost ready to submit your app to the Windows Store and Windows Phone stores.  Now check your app to make sure it follows the submission guidelines for each store.  When you submit your app to each store it gets reviewed.  If the app has issues it will not appear on the store and you will be notified about those issues.

Since XPlatformCloudKit targets both the Windows Store and Windows Phone Store, there are different resources for preparing your app for submission.

Windows Phone 8

Review the checklist.
Run the Windows Phone Store Test Kit.

Windows 8

Review the checklist.
Run the store test.


Create the App

Here is a short checklist of things to do to create your app.  This is only a list of things to do without doing into the details of how to do them.  Remember, Google and Bing are your friends.  See also the videos on the [XPlatformCloudKit site] for more detailed walk-throughs.

Get the XPCK zip file.

Unzip it where you want to do your software development.

Open the XPlatformCloudKit.sln file in Visual Studio.

Try it out - see what it does out of the box.
  • Select first the XPlatformCloudkit.Phone8 project as the startup project.  Select an emulator or attach a phone (registered for development) and then Run the project using the Debug | Start Debugging command.  This will run the phone version of the app.
  • Now try the XPlatformCloudkit.Win8 project.  Set it as the startup project and Run the project.  This runs the Windows 8 Metro version of the app.
Add your content to the app.  You do this in two places.
  • Edit the AppSettings.cs file in the XPlatformCloudKit.PCL project.  
    • Change the ApplicationName near the top of the file to be the name you want for your app.  This shows up at the top of your app when it is running.
    • For simplicity's sake, I recommend you turn off the Azure Mobile Services code until you are ready to write your own. 
    • Add some RSS feeds for the content you want to display.  Comment out the examples, but take a look at the sorts of things they suggest you can put in an app. Make sure that you have permission to use the content in your app.
    • If you don't want to use the local items file, make sure EnableLocalItemsFileService is set to false.
    • Take a look at the sections near the bottom of the file.  Play with the settings as you will - try things out and see how they work for you.
    • Note that the Group field in the RssSource class is used to arrange the groups of RSS content items.  This is done by alphabetical order, including the Group values in the Local Items File below.
  • Edit the LocalItemsFile.xml file if you want to include content there.  The example format shows examples of what you can do.  Here are some other tips.
    • You may omit the title, subtitle and group as you like.  
    • Realize that the Group value in each item is used in combination with the Group fields in the RssSource entries in the AppSettings.cs file to arrange the content, in alphabetical order.
Configure the Windows Phone 8 project.
  • Icons and picture assets.
  • WMAppManifest.xml settings.  ApplicationUI and Packaging tabs, leave the others alone for XPCK.
Configure the Windows 8 project.
  • Icons and picture assets.
  • package.appxmanifest.xml settings.  Application, Visual Assets, Packaging tabs.
Test the apps.  A lot.  Use a phone if you have one to test the phone app; the emulator only goes so far.


Collect Your Tools

Now that you have decided to create an app and figured out what you want to put in that app, you'll need the tools to make that happen.

Necessary tools
  • Computer running Windows 8 or 8.1.  If you want to run an emulator, you'll also need a computer that supports Hyper-V, such as most any Intel Core i3/i5/i7 machine.

    If you don't have a Windows Phone device, you'll need a computer that can run an emulator; otherwise, you won't be able to develop Windows Phone Apps. 
Nice to have tools
  • A Windows 8 Phone - the emulators in Visual Studio only go so far.  Many kinds of testing come more naturally on a physical device.

    If you don't have a computer that can run the emulator, you can still run and debug Windows Phone Apps if you have a real Windows Phone.
  • Yahoo Pipes - for doing all kinds of cool things with RSS feeds, especially picking parts of a feed and reordering a series of blog posts or videos.
The rest of this series is based on the idea that you are modifying a copy of XPlatformCloudKit to be your app.

This is vitally important for two reasons.  First, XPCK uses a Portable Class Library so you only develop the code once for it to run on both Windows 8 and Windows Phone 8 -- two apps for the price of one development effort (sort of).  The downside is that Portable Class Libraries require the Professional version of Visual Studio (or better).  PCLs won't work with the free Express versions of Visual Studio.  I will add another series to this blog later on that talks about starter kits you can use with Visual Studio Express versions to create apps, but for now you need Visual Studio Professional 2013 (or 2012 Update 3).

[VS Pro costs money].  If you have that lying around, more power to you.  It's a great tool and well worth the investment if you don't already have it.  If you don't have the money, you have some options.  As a student you can sign up for DreamSpark and then get VS Pro for free.  If you are not a student but are willing to fill out some paperwork and go through a mini-startup process, you can sign up for BizSpark and get VS Pro and other tools for free as well.

The other importance of XPCK is due to the nature of the apps you can develop with it.  I repeat this from the last post, but it's worth the repetition.
The essence of an XPlatformCloudKit app is to display content in a list of groups.
This means that you either create some content yourself or find some content somewhere else.  Content in this case means text, pictures, music and videos.  The content is organized in groups and shown in lists, showing a picture and a title for each item of content.



Design an App



The next step is to decide what kind of app you want to build.

General ideas for apps are not hard to come by.  Scratching an itch works very well for generating ideas, as does supporting an interest or passion.  Scratching an itch just means making an app like one you already know that works right for a change or doing something that no one has done before (that needs doing). Supporting an interest or passion is also good and provides motivation as well.

The good news here is that XPlatformCloudKit is already designed to be a certain kind of app, and already implements good basic design principles.

The essence of an XPlatformCloudKit app is to display content in a list of groups.

This means that you either create some content yourself or find some content somewhere else.  Content in this case means text, pictures, music and videos.  The content is organized in groups and shown in lists, showing a picture and a title for each item of content.



You can use a local items file to embed HTML content in the application.  You can serve up content from Azure Mobile Services if you wish (we won't get into that in this series).  Or you can show content from RSS feeds.

RSS feeds give you considerable flexibility and power and allow you to take advantage of content that already exists if you can find it and obtain permission to use it.  You can show YouTube playlists, blogs, Flickr images, Amazon items and many other kinds of content.  Web pages, videos, pictures may all be shown in an XPlatformCloudKit app using RSS.

Later, should you go beyond XPlatformCloudKit and use a different starter kit or design your own apps from the ground up, remember to plan to support touch and phone...I'll leave the finer points of app design to sites such as those listed below.  
XPlatformCloudKit is already designed with many of these ideas in mind, but a couple of general comments will help here.

Touch

Remember to support the different gestures and to leave extra room for larger controls that you tap with your finger instead of click with your mouse.

Phone and Tablet

The screen is smaller than on a PC, some controls look and behave differently and you ought to consider both portrait and landscape orientations for your apps.  Phones and tablets may also have other capabilities: accelerometer (tilt and shake and so on), cell phone communications including location services, cameras, the ability to send SMS texts, and others.  These are all things you can use in your apps as you learn the techniques for doing so.



Decide to Become an App Developer

So you decided to become an app developer?  Good!  Skip to the next post and move forward.

If you're still thinking about it, read on.

This post speaks to motivation; it may help you to come up with a reason for spending some time (not too much) to build an app for Windows 8 and Windows Phone 8.

Why do this?

Perhaps you're already a Windows 8 or Windows Phone 8 developer, but you've only worked on apps for your employer.  It can't hurt to work on your own apps on the side.  You can use the skills you developed at work for things that truly interest you, and you can pick up additional skills through the extra practice of writing your own.  It looks good on a resume (internal or external) and can only help your career.  Who knows, you might create a bunch of apps and hit one or two out of the park.  Just remember to do the work in accordance with your employer's intellectual property rules so you own your apps.

You might be a developer but not a Windows 8 or Windows 8 Phone developer.  Dive in, the water is warm!  Windows 8 and Windows Phone 8 represent a great outlet for you development talents, and this series shows you how to quickly put some of your ideas on the store.  All the arguments for experienced developers apply here.  You already have the mindset and core competencies to do well.  Give it a shot and you won't be disappointed.

So what if you're not a hard-core developer: if you blog and tweet, you're on facebook, and you can generally get around on the internet you can do this, too. This a great opportunity for you to gently get your feet wet while producing some worthwhile apps for relatively little study and effort.  Of course, the more you put in the more you get out. Take advantage of the free resources out there such as the Microsoft Developer Network, Channel 9, Microsoft Virtual Academy, and many more.  Just do things a bit at a time.  I recommend following this series of blog posts to the end...let it guide you in a useful direction.  Obtaining the necessary tools to follow along could be a bit problematic unless you are a student or are motivated to create a small, simple startup company.