[Basic for Absolute Beginner] – [Part 4] – Basic Steps for a new app

[Basic for Absolute Beginner] – [Part 1] – Layout with XAML
[Basic for Absolute Beginner] – [Part 2] – Layout with XAML
[Basic for Absolute Beginner] – [Part 3] – App’s Structure and how to customize it
So you now know how to lay out a UI with XAML and how an app is structured. Now let’s move on to the basic steps for creating a new app
Hold on — in those 2 parts you already created quite a few “New Projects”, right? Now you’ll get to know it properly
In the same series:
[Basic for Absolute Beginner] – [Part 1] – Layout with XAML 1
[Basic for Absolute Beginner] – [Part 2] – Layout with XAML 2
[Basic for Absolute Beginner] – [Part 3] – App’s Structure and how to customize it
[Basic for Absolute Beginner] – [Part 4] – Basic Steps for a new app
[Basic for Absolute Beginner] – [Part 5] – Analytics for your apps
[Basic for Absolute Beginner] - [Part 6] - Source Control
Table of contents
1 Coming up with the idea
The idea shapes your app. Never start writing a new app when you have no idea what your app is going to do
Out of ideas? Go to the google play store or the Apple App Store and learn from the nice apps there — but don’t copy them. Take their idea, improve it, make it better, using the method below
1.1 Sharpening your idea
Once you have an idea, the next thing you do is judge that idea.
It sounds pretty funny, but I recommend writing this sentence down on paper:
“[App name] is the best app of its kind in [main feature], [standout point]“
For example: “Karaoke Online Free is the best app of its kind in singing karaoke on windows phone, it helps people singing at most 2 taps”
App name: Karaoke Online Free (search the store and you’ll find this app has over 4000 reviews, averaging 4.3 stars)
Main feature: singing karaoke on a windows phone
Standout point: extremely simple to use, only 2 taps and you’re singing
1.2 Stick to the plan
You have a powerful “review” sentence you just wrote — stick to it. Suppose that once you’re done it takes 3 taps, or 4 taps, before you can sing: then your app is still not finished.
The worst thing is when the “main feature” your app provides isn’t perfect. If the plan was singing karaoke on the phone and in the end all you built was looking up songs or lyrics, then the idea failed completely, because the app you wrote isn’t for that purpose.
2 Creating the project
Creating a new Project — way too easy by now, right?
2.1 Installing the Nuget packages you need
Your app will need some external libraries, and those libraries can be installed through Nuget: [Visual Studio] NUGET the Magician
A few nice Nuget packages:
- HTMLAgilityPack: for working with HTML strings
- JSON.NET: for working with json data
- Windows Phone Toolkit: a toolkit of extra controls and utilities for your app
2.2 Creating the main folders
Put every page you create in a folder named PageGroups. This makes managing the code easier, editing easier, and you always know where a piece of code lives. If the app gets more complex, create a folder inside PageGroups for each content area, for example “LoginGroup” or “SettingGroup”
Put all the shared code in a folder named Utilities. Shared code can be a unit conversion method or a method that fetches data from an API — they can be called from any page in the app (those methods are “Static”, of course)
Create a folder for the Data or Database. You don’t want the Database sitting right outside the Project
Create a Folder for the Data Models, and a folder for CustomControl
Bottom line: create a folder for everything you can group together. Remember, a folder can hold more folders. Keep them tightly organized
2.3 You need a file for the ViewModel, or StaticData
If you already know MVC or MVVM, you know that in the examples they usually create the ViewModel classes right inside App.xaml.cs
So why not create a dedicated file just to hold those classes?
Create a new file named “ViewModelInstances” to hold the ViewModels, and declare the ViewModels the same way as before
You will also need a file called StaticData, to store intermediate data that lives for the whole runtime of the app
3 The basic Pages you must have
3.1 About
About talks about you and your app. An About page takes about 5 minutes to build, but it gives you an impressive app
An about page can even do the following:
- Remind users to Rate and Review your app
- Let users send feedback, or UserVoice
- Show the change log
- Advertise your other apps
3.2 Setting
Setting is the page where users can tweak some settings in your app. This page gives users the feeling that they “control” the app the way they want
If your app has nothing to configure, this page isn’t needed. But think it through — apps written in a rush are usually low quality and have no options
4 Preparing the data
4.1 Creating the Model
The Model is your data structure. Usually you have to create it by hand.
However, if you receive data as Json, there is a more fun way to automate this: JsonUtils

- Pick C# as the language
- Use Pascal Case for the property names
- Use JsonProperty as the Property
- Paste your json data here
- Hit Submit
Also, if you use the Binding mechanism, you’ll want to inherit from the INotifyPropertyChanged Interface
And the Resharper toolset will help you out
Read more about Resharper here: [Windows Phone – Silverlight] Layout with XAML – Basic for Absolute Beginner – Part 2, section 2.1
4.2 Where in the code behind do you Load Data?
Loading data is something you must do. But where do you load it? Put it in the wrong place and your app responds slowly to the user, and you get bad reviews
And there is a whole blog post about it: [Windows Phone] Where to put load data method?
That’s it — use the knowledge from the Layout with XAML posts and start designing and building your first real Windows Phone app
Have fun ;)