So you’ve got a bunch of people together to form a cross-functional team (developers, testers, BAs, etc.), you create you backlog, create a few columns on a wall and throw some cards on it.
Agile complete. Not.
If your company is currently in the process of upgrading to Windows 8, do they see it as a simple OS upgrade to keep up to date; or, do they see it as an enabler to re-imagine how the business operates?
Windows 8 offers the potential to streamline business processes, lower costs, and offer additional customer service opportunities
With an internal app store, domain-joined tablet PCs and innovative leadership, Windows 8 can offer the potential to streamline business processes, lower costs, and offer additional customer service opportunities.
Multiple Internal Apps
Refactoring Legacy Applications
Most companies without excellent software development practices and management end up with big, kitchen-sink. costly-to-maintain software systems.
Internal-facing corporate Windows 8 apps offer a solution to this problem.
This article outlines an approach to getting started building you first Windows 8 app, but rather than focus on the technology aspects it focus on the pre-coding activities.
So you have a few ideas for your first app, but how do you decide which one to build? It depends on what you want to get out of it. If you want to use your first app as a learning experience or to get some app building experience on your CV then you may not be concerned with monetisation.
Monetising you App
If you are attempting app building as a means of income generation then you’ll want to consider what monetisation options Windows 8 gives you:
- Paid app
- Free app with adverts
- In-app purchases*
*You can also use in-app purchases with paid or free apps and with or without ads.
Regardless of app type, you should offer a version of the app without ads for those people who really dislike them.
The Appeal Spectrum
One way of deciding which app idea to build is to think of its potential appeal. If you imagine this appeal as a spectrum from widest appeal (think Facebook, Twitter, etc.) to those with limited appeal (specialist niche apps, etc.).
On top of this spectrum we can add some potential income factors: will millions of people pay hundreds of dollars for the app, or will millions of people pay a dollar for the app?
This is a bit of a brain-dump, in no particular order, of things I learned building my first 4 Windows 8 (C# XAML) apps:
- Countdown To
- Big Screen Countdown
- Code Retreat Countdown
Adding Microsoft Ads to your App
- Sign up here: PubCenter
- Create a Windows 8 Ad Unit (note the different ad sizes)
- Install the Advertising SDK
- Add a reference to the ad assembly
- Ads the AdControl to your XAML, set the application ID and Ad Unit Id properties to those specified in you ad unit in PubCenter (for testing ads before publication see this DZone article)
- Ensure your ad unit control has it’s width and height set to that of your ad unit
- Ensure that the app capabilities have Internet enabled (otherwise you wont see any ads show up).
Certification Failure when your App has internet capability
With Windows 8 and the
metro "Modern Windows New UI Store Experience Style" version of Internet Explorer 10, you can pin a web site to the start menu and provide a hi-res image to be displayed on the tile. This is a nice little touch to "delight the user" and requires very little effort.
There are also some cool things you can do to enable your pinned tile to display notification badges, though this requires a little extra work.
Customising the Pinned Site Tile Image
By default the tile that gets pinned to your start menu will either appear with the site favicon or the default Internet Explorer logo.
Either way it doesn't look super great.
You can create a larger PNG image and tell Windows 8 to use this hi-res image rather than the small lo-res favicon or default IE logo. The image must be 144px high and 144px wide and it's recommended by Microsoft that you use a transparent background.
Sass (Syntactically Awesome Style Sheets) tries to make CSS fun again.
It's a set of "extensions" on top of standard CSS that make it easier to write and maintain style sheets.
A Sass file compiles down to regular CSS so it doesn't require any special browser plug-ins.
This article is aimed at Microsoft developers but the Sass language sections apply to anyone wanting to get an overview of Sass, regardless of the web programming platform or IDE you're using.
Deciding between writing native apps or "cross platform" HTML5 apps is hard. It's an increasingly relevant debate as mobile and tablet usage continues to increase.
As the usage of mobile devices is increasing, so too is the user expectation of an awesome experience
Some people will only ever access your service and brand via a mobile phone or tablet device.
As the usage of mobile devices is increasing, so too is the user expectation of an awesome experience.
(This article does not deal with games as they provide their own look and feel and interaction patterns.)
From an engineering perspective we judge code by its complexity, test coverage, etc. These are all empirical measurements that give us an indication of the qualities that the code base possesses.
We say things like: "we have 90% code coverage and 2764 unit tests".
We may give ourselves targets such as:
- No class longer than 100 lines of code;
- 100% code coverage for new tests;
- Treat all compiler warnings as errors;
- and so on...
These are all mechanical, empirical, engineering type things and there is nothing wrong with that.
I think there may be another aspect to the way we think about software; a more human-centric way - Compassionate Coding.
All human beings are the same. We all want happiness and do not want suffering.
Compassionate Coding has two aspects: compassion for the end-user and compassion for the next developer who has to understand our code.
Disclaimer: some of the software used below is pre-release, use at your own risk...
This article assumes basic knowledge of writing C# and using Visual Studio - it doesn't assume any prior knowledge of Raspberry Pi or Linux.
My Parts List
You can find a list of verified peripherals here, below are the specifics of what I'm using successfully:
- Raspberry Pi Model B (from element14 Australia)
- 1 metre high speed HDMI lead (from element14 Australia)
- Microsoft Comfort Curve 3000 USB keyboard;
- Logitech M100 USB mouse;
- SanDisk 16GB Ultra SDHC Card, Class 10, "up to 30 MB/s 200X"
- Nokia AC-USB phone charger (output: DC 5 volt 1 amp*)
- Cat 5 Ethernet cable (wired to Belkin wireless bridge/extender)
* It's important to have a sufficiently powerful supply.
Preparing the Operating System
Download Soft-float Debian “wheezy” image from http://www.raspberrypi.org/downloads.
Extract the .img from the zip file.
Download Win32 Disk Imager http://www.softpedia.com/get/CD-DVD-Tools/Data-CD-DVD-Burning/Win32-Disk-Imager.shtml (make sure you get the correct link as there's lots of advertising and other download links on the page).
I've authored three Windows Phone 7 mobile apps. This is not a huge number I know but I would like to share how I think about mobile app design. The workflow below is not limited to any particular platform and can be applied to Windows Phone, iOS, Android development or at a push Blackberry ;)
Step 1: Stop and Think
It's so easy to break open an IDE and start hacking together your app, especially if you're using great developer tools such as Visual Studio and Expression Blend. Shutdown your computer, grab a cup of coffee, sit down and think.
thinking does equal working
As a developer I have to force myself to do this, which is why shutting down your computer is a necessity!