1. Modifying Your Application
When you finally get your application out to
the Store, you might find a bug, decide on a brand-new feature, or just
want to change the price of your application. The Dev Center makes this
process simple. On the application details page (mentioned earlier),
you can click the Update App link to upload a new version of your
application. When you do this, you’ll get the Update App page, shown in
Figure 1.
This process is the same as when you initially submitted your app,
although the certification process is somewhat abbreviated from the
full submission process of a new app.
FIGURE 1 Application actions
Although you can update the .xap to
send a new version of the application to users, you can also edit the
App info to simply change pricing, distribution, and other metadata
about your app without submitting a new .xap file to the store.
2. Dealing with Failed Submissions
If your application submission fails,
Microsoft attempts to give you as much information about the failure as
possible so that you can fix it. You can retrieve the failure report
from the website, or you can have it sent to the email of record for
the Dev Center account.
The process of certifying
your application consists of testing the way the application functions
(for example, does it run or lock up) and testing it against the
Windows Phone Application Certification Requirements.5
These include stability, performance, resource consumption, and content
requirements. An application could be rejected for a variety of reasons
based on the requirements. If your application is rejected, Microsoft
gives you a detailed report of why it failed and to which section of
the certification requirements the failure is related. It’s important
to read the Application Certification
Requirements document because there are a lot of reasons failures
occur. It is an actively changing document, but some of the major pain
points that seem to bite developers submitting applications include the
following:
• Stability: Your application can’t crash or hang. (Handling Application.UnhandledException
is important.)
• Launch: Your application must show its landing page within five seconds. It must be responsive to user input within 20 seconds.
• Memory consumption:
Your application cannot take more than 90MB of memory at any time (when
the phone has a minimum of 256MB of memory). It’s not clear what this
limitation is for phones with more memory. You can test this using the DeviceExtendedProperties
class.
• Running under lock:
You can enable your application to run while the phone is locked (if
the phone was locked when your application was running). You must have
the user opt in to running under lock and have an option to disable
this functionality.
• Back button:
You need to be careful about the navigation pattern and make sure that
“Back” always takes you to the previous page and that “Back on the
landing page” exits the application.
• Using push notifications:
If you’re going to use any push notifications, you must tell the user
when you first enable this capability and allow the user to disable it
in the UI (usually via a Settings or Options page).
• Size: The maximum size of a .xap file is 225MB.
• Age requirements:
If your application enables person-to-person communication (for
instance, chat, IM, SMS), you must have a way to verify that the user
is more than 13 years old.
• Location service:
You must allow the user to enable or disable use of location
information. You also must have a privacy policy to let the user know
how you’re using the location information.
• Personal information: If you publish or share any personal information (for instance, photos, phone numbers, contacts, SMS, or browsing history), you must make the user opt in to use the functionality.
• Content: You cannot use nudity, sexual content, violence, or hate speech in your applications.
3. Using Ads in Your Apps
Although you’ve read that you can charge for
your applications and that this can help you make money, it’s also
fairly common to create free applications that contain advertising
instead. Several options exist and all have their pros and cons, as
shown in Table 2.
TABLE 2 Advertising Vendors for the Phone
The big players in in-app advertising are
shown in the table, but there are some details you’ll need to determine
before you decide which platform to use. By far, Microsoft’s pubCenter
is the most attractive because it pays per impression with bonuses for
click-throughs. Also, the SDK is fairly drop-in usable (although there
have been reports of crashing problems). Although this is the most
profitable of the advertising choices, it only works for U.S. users, so
non-U.S. users applications won‘t have advertising.
The other vendors all use
a per-click model (which means you get paid only if the user clicks on
the ad). This generally means less money, but these vendors do offer
ads internationally, and most support paying developers who are outside
the United States. So, there is no magical best offering for
advertising inside your application.