Passionate application developer

Windows 10 is here. There is no better time to start developing apps for the Windows 10 ecosystem.

If you are new to Windows 10 app development (or even 8.1 if you want to target Windows 8.1 / Windows Phone 8.1 users), there are some basic concepts that you need to learn: reactive design, application lifecycle, navigation, and so on.

This article is about one important property related to navigation (please continue to read!). If you develop an application that only has one page, you don’t have to worry about navigation. However, if your application has more than one page, you will need to use some navigation methods.

To illustrate the default behaviour of basic navigation, let’s create a Super Calculator application. You can download the sample here.

1- Open any version of Visual Studio 2015 and go to “File \ New \ Project…” and select the template “Visual C# \ Windows \ Universal \ Blank App (Universal Windows)”. You can name the project “Super Calculator” and click OK.

Here Frame.GoBack will return to the previous page in the stack. In our case, it returns to the MainPage.

7- Run the application and put numbers in the 2 fields and click on the button Calculate.

You will see the expected result. However, what do you think will happen if you click on the Back button? There are 2 possibilities:

a) Navigation to the MainPage will include the numbers that you entered.b) Navigation to the MainPage will reset the numbers that you entered.

If you are familiar with the Silverlight model, you know that returning to the MainPage will include the numbers. However, in Windows 10, the MainPage will be instantiated again and the numbers will be reset. The decision is debatable, but we have to deal with it and fortunately, Microsoft offers the property NavigationCacheMode if you want to override the default behaviour of instantiating the page again.

For the pages that you want to preserve in memory, you only have to add NavigationCacheMode=”Required” to the page declaration.

Note: don’t try to change the NavigationCacheMode outside the page declaration in XAML or in the constructor, it will not work.

The NavigationCacheMode offers the “Enabled” value that will preserve the page in memory if the cache limit of the frame is not exceeded. Personally, I prefer to set the value to “Disabled” or “Required” value.

There are lots of scenarios where you will set the NavigationCacheMode to Required. One example is when a page contains a GridView or a ListView with many items. If a user clicks on an item to consult the details on another page, don’t make him scroll again when he returns. Not only will the user’s experience be better, the page will return faster because there is nothing to load as everything is in memory.

If you want to know more about Windows 10, here is a list of great resources from Microsoft (all free):

There is no secret that the world of programming is huge. You can make applications for enterprises, you can create games, websites and so on. Microsoft has invested a lot in in their Virtual Academy over the last two years. The best part is that all the classes are FREE.

With the arrival of the Windows Phone platform in 2010, I fell in love with mobile app development. After two years, I was creating professional looking applications and was confident enough to contemplate creating my own company. However, there was always an excuse to not pursue this goal.

In summer 2013, the timing was perfect and I decided to go ahead and create a company and, more precisely, to incorporate it.

In this article, I want to share my experiences, my feelings and some tips.

First step: Find a name for your company

It might sound easy to do, but finding the name of my company was the hardest part in the process of incorporation. I literally spent a week figuring out a name.

The challenges to finding a company name are:

Find a cool/unique name or combination of words.

Make sure that the web address is available. You have no idea how hard is to find an available web address. It is even harder when your company name is short. Pro tip: buy your domain name as soon as you decide on your company name and before you tell anyone.

Make sure that the name doesn’t violate any international or national copyrights.

Verify that the name is legit in your city. I live in a place where the company name should start with a French word.

I ended up with “AppVenture Solutions Inc.” in English and “Solutions AppVenture Inc.” in French. Don’t look for my website, I haven’t built it yet.

Second step: Fill out the paperwork

When you want to incorporate a company, filling the paperwork is a complex and error-prone process. It is not a mandatory to incorporate, but my research and my friends’ recommendations led me to the decision to incorporate.

You have essentially three choices:

Do it yourself. You can go to the local government employment office and they can help you out a bit, but they won’t fill out everything for you. You will have to do your own research beforehand. This option costs about $400 to $500.

Hire a lawyer or a notary to complete your incorporation. It costs about $1100 to $1500.

Proceed with online private services.

I choose to fill the paperwork with a lawyer. In Montreal, I attended a (paid) workshop at SAJE en Affaires about incorporating a company that included the actual incorporation by a lawyer. I was able to ask any questions I wanted. I found it very valuable.

The price is higher when you incorporate with a lawyer/notary, but the service is #1 for three reasons:

You can get your incorporation in two days, because they have special access to a government portal.

You can ask to set up the company to optimize your family situation. I will explain more below.

You can get a binder with all the legal structures such as administrator roles, company rules, stocks, conventions and so on.

Third step: Find a contract

When your company is registered, you’re ready to start. Finding a contract is like finding a full time job. There are plenty of websites that offer contract work. However, when you have contacts and a good community around you, they can help you find work. One piece of advice is to stay engaged in the community and meet people live or online.

Always stay professional, you never know if a previous client would want to hire you again or even recommend you to other clients.

Last step: Closing your year

I don’t know the legislation in every country, but I suspect that most counties require you to do your annual report. Here again, you can fill your tax reports out yourself, but that’s another bumpy road. My advice is to hire an accountant for the first few years, so you can concentrate on what you are good at and be confident that your annual tax reports will be error-free. I suggest that you set aside $2500 to $3000 for the service of an accountant.

Observations

After my first year, I’m very pleased with the results and I don’t regret a second of it. As if creating a new company was not enough, I survived my first year being a daddy to a beautiful daughter. Like every job situation, there is a good side and a bad side to being a consultant. Here are some advantages and disadvantages when you are independent and/or working remotely.

Advantages of being independent

There is no secret that being independent will give you a big boost in salary.

You have more flexibility when managing your personal finances. When you have an incorporation, you are a shareholder by default. You can also be an employee of your own company. Depending of your strategy, you have full control on the amount that you want to give yourself as dividends and salary. This way you can reduce the amount of personal taxes that you need to pay to the government. You can also do income splitting with a member of your family.

If you bill your client per hour, your overtime will also be paid. This is a big advantage, because when you are an employee of someone else, your overtime is not paid. You might be compensated later, but it will not be a one-for-one equivalent.

If you don’t like working on the same product for years, being independent will offer you the freedom to choose the contracts based on duration.

Between contracts, you can take as many weeks of vacation as you like.

Items related to work as computers, tablets, phone, office furniture are treated as expenses and are tax-free (the taxes are deducted from the amount that you bill to your clients). It is good excuse to renew your equipment more often.

Disadvantages being independent

You might feel insecure about what’s next. There is no 100% secure job in the world, but there are some companies where jobs are more secure than others. When you are on your own, you find your own contracts. Also, at any time, a client can abort a project.

Between contracts with different clients, they might be a delay that you don’t want. Also, you might get many interesting offers at the same time, but less opportunities in other periods of time. You can’t control when contracts appear.

You need to take care of your own benefits. If you want medical insurance, you need to find yourself an insurance company.

You need to be more responsible regarding your expenses and revenues. You need to be prepared to justify every penny of your company at any time.

Advantages working remotely

When you work remotely, most of the time, you can have a flexible work schedule. This is very useful when you need it.

You don’t waste any time in traffic or transport. You have more quality time for yourself.

If you have a family at home, you can spend some time with them at lunch and say hi during the day. I was happy to be able to see my baby growing up in her first year.

You can work in any type of clothing.

Disadvantages working remotely

If you are someone who likes meeting people in person in your day to day life, being a remote worker might not be the ideal situation for you. However, you can still create your company and be independent. In fact, most jobs are in the client’s offices.

You need to be more disciplined at home than at the office due to the fact that there are more distractions in your home than in an office.

You might feel guilty when there is a holiday and you want to take a day off. Since holidays are different from country to country, your client or team may not have a holiday on the same day as you. No work means no money for that day.

If you don’t do sports after work, you exercise much less because you walk less in your day.

Special shout-outs

Thanks to my friends at RedBit that offered me my first contract. It was a fun and busy three months working in C# and WPF.

My second contract started at the beginning of this year and at the time of writing this article, the contract is still going on for a minimum to end of the year. I’m working for the mobile app development company Lextech, based in Chicago. This company is headed by technology strategist Alex Bratton who also wrote the book Billion Dollar Apps.

Aside from my great teammates and the awesome Windows project that I’m working on, I like that Lextech is using Sococo as a virtual office tool. It helps to increase communication within the team and you can easily see the availability of your coworkers. A big thumbs up to Lextech for treating their contractors as employees; we attend their weekly meeting with employees and have access to their internal documentation.

Pssst: Lextech is growing fast and they have open positions. App mobile development is the place to be.

Conclusion

Creating your company is very exciting and a great challenge. The future might be a little bit scary, but work a day at a time and everything will be alright. If it turns out that it is not your thing, you can always go back to being an employee. Don’t hesitate to ask for advice from friends or mentors. There are plenty of entrepreneurs that succeeded and you can be one too.

Last year on April 10th, I released App Spotlights. The primary goal of App Spotlights is to help developers; the app notifies them when their apps are in the spotlight in any of the 129 markets worldwide. The app also helps to analyze the competition. In addition, you can obtain the history of when your apps have been in the spotlight since February 17th, 2013.

After one year, my database has more than one million spotlighted apps. Throughout the year, the #1 complaint from users was that sometimes they saw their apps spotlighted on their phone, but App Spotlight was not reporting their apps. I explained to each user that Nokia had their own spotlighted apps (for Nokia phones only), and that I did not have access to this data.

In order to access the Nokia data from Microsoft, you must log in with a Nokia phone. As Microsoft Azure is a cloud service, it is impossible for it to log in as a Nokia phone, and therefore I am unable to fetch the Nokia spotlight data. I should write: “I was unable to fetch”… please read on.

Featured applications

Recently, I had an interesting discussion. I learned that each day Nokia can choose up to half of the featured apps for their Windows Phones in each market. Please note the word featured: when I started fetching the spotlighted app data, I was aware of featured apps, but I was a bit confused about the difference between featured and spotlighted. Now I know the difference.

The Spotlighted apps are a combination of the Featured apps and Featured games. You can see the links (you can replace the en-ca with any market code:

The spotlighted apps use the first few apps from the featured apps and featured games. As you can imagine, the big tiles on the spotlight page generate way more downloads for the first few apps than the last few apps.

When you open the Store application on Windows Phone, there is a major spotlighted app.

This app is not featured anywhere on the Windows Phone website. This spot will have the biggest impact on your download count than any spotlight spot. Good luck getting there!

With more than one hundred markets, it is hard work for Microsoft and Nokia to decide on the featured apps. For key markets such as USA, UK and France, the featured apps are chosen manually. For small markets such as Kenya, the featured apps are based on an algorithm.

What’s new for App Spotlights

I’m pleased to announce that I have found the secret to obtaining the data for both the Microsoft and Nokia featured apps and featured games along with the big spotlight in the Windows Phone Store without relying on the Windows Phone website.

Starting today, App Spotlights fetches and displays the full list. The change has been applied on the backend only, so your app doesn’t need an update. Every day, you will have all the information about when and where your apps are featured. For the moment, App Spotlights doesn’t tell you if your apps are featured with Microsoft, Nokia or in both places. This feature might come later!

Since the arrival of the Windows Phone, the Canadian evangelist team has offered great promotions each year to entice developers to create apps. In my opinion, their promotions for Canadian developers are the most attractive worldwide. This year the Developer Movement is back. To make things a little bit different, they have a new theme: Don’t just code… Code Kwondo.

If you need convincing that apps will give you money, please take a look at the rewards list. The list is quite impressive. If you didn’t click the link: what about an Xbox One, Surface 2, ASUS Zenbook, GoPro HD, Dell Ultrasharp, etc…

If this is not enough, I have more good news for you: you can also participate in the DVLUP challenges. In other words, it is perfectly legal to do one Windows Phone application and submit it to the Developer Movement and DVLUP.

Masters of Code Kwondo

Now that my introduction about the Developer Movement is done, I can introduce you to the application Masters of Code Kwondo. In truth, it is two applications: one for Windows Phone and one for Windows. The purpose of the application is to showcase the list of applications that Canadian developers have made during the Developer Movement. The Canadian population is small compare to the United States, but we have good developers like Brock (over 600 000 XP on DVLUP) and Atley Hunter (over 400 apps), just to name two. In the app, you’ll also discover “Code Masters”, those people can help you if you have development issues.

Message to the Canadian developers: if you made applications any time after November 2013 and they are available in the store, please give me the name of your applications using my contact form. It will be a pleasure to showcase your apps in Masters of Code Kwondo.

At the beginning the list of apps will be short, but don’t worry, the Masters applications will notify you when new apps are added.

Two weeks ago, I submitted a Windows Phone app for certification. Twenty minutes later, I received an email saying my app had passed certification. I shook my head and couldn’t believe it. When the app was available in the store an hour later, I thought that Microsoft must have had a bug in the certification process. For months, the processing time for apps had been 4-5 days. The next day, the Windows Phone blog published a post explaining the new process. It cleared up my confusion.

For every change that Microsoft does, there are always people who will complain. Personally, I was extremely happy with this change. When I submitted my first app in January 2011, it took me a full week to obtain the certification result. Unfortunately, my first submission didn’t pass. I’ll always remember that the failure was due to an issue that occurred after 17 steps. The tester actually wrote those 17 steps down for me. I was impressed that they were so thorough. I knew they were also attentive to whether an app would work well in the light and dark theme and that the hardware back button needed to work perfectly.

Many updates and new apps later, I found myself getting more and more impatient to get the certification results. It is always wonderful when certification is successful, but when it fails, I had the impression I was losing two weeks. The wait was sometimes even more problematic if an app had a recurrent crash that users were facing and the testers didn’t catch it. It is stressful and you feel powerless. Contacting Microsoft to speed up the process was impossible, because an external agency deals with app certification.

If a developer is serious about marketing a new app, he will be careful and he is most likely to beta test his app with users/testers. If he doesn’t care about testing his app, he might get punished in reviews and ratings. It is not because an app is free that users decrease their expectations. Users don’t hesitate to raise their voice when issues arise.

For these reasons, I prefer that apps get approved quickly and I feel it is the responsibility of the developer to make his app shine with few or no hiccups!

What are your thoughts?

PS: The process doesn’t to apply to every new app and update yet, but it will soon. Be patient!

One of the challenges of a developer is to promote his applications. For the last three years, I have been active with the developers especially with the Windows Phone expertise. I have seen countless of Windows Phone links. Last year, on my favourite social network Twitter, they introduced a feature that lets you preview an image with a fixed size directly on your twitter feed. In January, I was pondering how to take advantage of this new feature. I came up with a simple idea, which became App Promo.

App Promo has two goals. The first one is to help developers promote their applications in a more attractive way than simply providing a download link. The second is to help people download an app more quickly. I find that downloading an app via a QR Code is both convenient and fast.

I have created two applications one for Windows and one Windows Phone. Both applications have the goal of creating a promotional picture for a Windows Phone app. Each version has its own advantages.

App Promo for Windows

Features • Share the promotional pictures using the Share charm • Share the promotional pictures into disk • Background color can be changed • A custom URL can be used in the QR-Code

The process of creating an application does not only involve developing it. As discussed in a previous blog post, the marketing is a crucial aspect. There is another important aspect that we tend to avoid or not taking seriously enough: the testing phase, which I call the beta phase.

No matter which platform you build your app for, you need to test your app at some point. Yes, you worked really hard for many weeks and months on your app. Yes, you know your app by heart. Yes, it is bug free.

I don’t want to disappoint you, but there is always a little something that you didn’t think of, or a special usage scenario you didn’t pay attention to.

I speak from experience. I have submitted apps without doing a beta phase. I have also submitted an app where a crash could be easily reproduced. It is nothing to be proud of, but at least now, I do a beta phase.

Advertise on social networks that you are looking for testers. In my case with DualShot, I tweeted about it at two different times.

Believe me, you’ll get testers pretty easily. People are curious. Depending on how well known you are, you can keep track of the emails manually like I do or you can share an Excel sheet or use MailChimp like one of my friends does.

Unless you pay the testers, don’t expect to get feedback from everyone. This is normal, so don’t take it personally. Sometimes it is just not the tester’s type of app, or perhaps they are just too busy.

Tip: I use BugSense to keep track of crashes and I use Flurry for the analytic events. I highly recommend using these services (or any equivalent services) during the beta phase. As I previously mentioned, you might not get written feedback from all the testers, but at least you’ll receive traces of what they did with your app.

During the beta phase, the tester can provide feedback about the user experience (UX). As a concrete example, in DualShot, Vincent designed the following page:

I really liked this page and I didn’t see a problem using it. When I submitted the beta to my testers, in the same evening, three users complained that the UX was really bad. It was clear to us that we needed to put more work into that view. We ended up with the following design:

Unless you have the complete Windows Phone collection at home, you are most likely going to have only one or two devices to test with. When you have testers, you increase the chances that the app will be tested with many different Windows Phones. Don’t assume that all Windows Phone 8s from different manufactures behave the same. In DualShot, the image capture with some HTC 8XT (only this model) does not work. We didn’t have a tester with this rare device and Murphy’s Law struck again.

Not only will the testers find bugs/crashes and give you feedback, they will often give you two thumbs up. It will give you the extra energy to polish your app before certification.

Windows Phone

If you are developing a Windows Phone app, you are lucky because the Windows Phone team developed a feature in their portal where it is easy to run a beta phase. Essentially, you publish an app as if you were submitting it for certification. However, the app is kept private for the testers that you have specified and the certification passes automatically in the subsequent two hours.

In the Windows Phone developer portal, you need to select Beta as the Distribution channel, then you enter the list of tester email addresses (using a ‘;’ between addresses).

After that you can fill out all the info and screenshots.

Tip: avoid flooding your testers with daily emails if you submit a new beta every day. If you submit an update, the tester will be notified via the Store Live Tile. Take advantage of this automatic notification to enter all the new features/bugs into the app description. The first time that you send the deep link of the beta app, you can tell your tester to check the app description when a new update is available.

Windows 8/8.1

Unfortunately, in the current Windows developer portal, it is not possible to easily distribute an app to testers. You need to create a package and send the package to your testers. The testers then need to manually install the app. Hopefully the Windows team will soon mirror the awesome work of the Windows Phone team.

Conclusion

I know the feeling when an app is finally complete and ready to be submitted for certification. It is so tempting to submit it right away in order to see it live in the store ready to be downloaded. Please resist this temptation and do a beta phase. It is better that your friends find the problems than strangers, as strangers will most likely give you a 1-star review if they find a bug or a crash.

My friend designer Vincent and I decided to share the story of our latest app DualShot. The goal is not to be show-off. We want to show diverse statistics that can help analyze the Windows Phone market and encourage other developers and designers to continue providing quality apps.

Before starting, DualShot has two restrictions:

It is only available to Windows Phone 8 devices.

It requires a back and front face camera. In other words, the most popular devices the Nokia Lumia 520 and 521 cannot download the app, because they don’t have a front face camera.

Statistics

The launch date was September 16th. The download count surpassed 100 000 on October 15th.

Data from the Windows Phone dashboard

It’s not a big surprise that the peak arrived close to the launch date. DualShot received a lot of good press from many Windows Phone websites.

Here is the top 30 markets. We were quite surprised that India and Thailand arrived on the second and third spot despite the fact that DualShot was available in English and French only at launch. The two biggest continents with the most users are Europe and Asia.

Here is the percentage usage per device. There is no doubt that Nokia is dominating the Windows Phone market. The non-Nokia device with the biggest market share is HTC with 5.3%. Looking forward, I’ll be curious to see how the Lumia 1020/925 will evolve. Their percentages are low because they are new and not available worldwide yet.

Data from Flurry analytics service

Concerning the reviews, there is a clear relation between the number of reviews and the downloads. The American were the most critics about our app!

Developing an app is one step, but advertise an app is another step. I’m not a firm believer that submitting an app without talking about it that the app will become popular.

The day before the app went live, we contacted a lot of editors and friends. A full day can be easily spent sending all the information.

For those who noticed, we created a little teaser on September 26th. It turned out that the one-day teaser worked well.

Post-launch

At this point, this is where the team has less control. It is the turn to the public to decide about the success of the app. It is also on the hands of the editors if they want to talk or not about the app. This is the most exciting and stressful period where the team awaits the result.

In the case of DualShot, we were very happy with the first days following the launch. In reality, it surpassed our expectations.

Having a lot of tractions at launch caused a positive domino effect. The more an app is downloaded, the more it appears on different categories. At some point DualShot was the top New+Rising app in USA.

A week later, the download count probably caused a trigger on the algorithm of Microsoft to display the spotlights. With the help of my app App Spotlights, I was able to detect that DualShot was on the spotlight of many markets on October 4th.

Later on, we had one occasion with the big spot in the USA spotlight page. We can see the effect on the graphic at the top of the blog post.

So far, we had a lot of exposures:

Conclusion

While we didn’t make any money from releasing DualShot because we made it free, we had so much fun following the launch. It surely motivates us to create more Windows Phone apps. Now that the Windows Phone market is not small anymore, we see a lot of opportunities and we encourage developers and designers to jump in. You can also be surprised with the result.

Have you create a DualShot photo yet? If not, go download and share your creation!

Your app is feature complete, here is what you should consider before sending it to the certification. Add a page that contains at least three sections:

About

What’s new

Credits

About

The first goal of an about section is providing a way to your users to connect with you. For DualShot, I provide diverse links. The important one is Support & Feedback. It opens the mail editor. I take the opportunity to enter information that might help like the current version of the app, language and the phone model.

Providing a way to contact you won’t prevent all bad ratings, but it will save you some if you respond accordingly.

In the list above, there is another interesting link called User Voice. User Voice is a website that provides a (free) service where user can enter anonymous feedback or bugs. Their website is very easy to setup and use. I have seen a lot of apps having a User Voice link. Even the Windows Phone developer team has a User Voice page.

What’s new

There are a lot of applications that provide updates, but often we are not aware of what’s new. Sometimes, they put the update description into the app’s description, but the second you click update you don’t have access to the description in one click, you need to find the app into the store. Starting with my app DualShot, I will provide a what’s new section for my future apps. Not only it tells the user what’s new, but it can help the user to discover features that are maybe not obvious at first sight.

Credits

Open your Windows Phone solution and check the references for each project. Do you see a lot of 3rd party libraries? The answer is most likely yes. Would you be able to release your app without using any free 3rd party libraries? I’m sure you can, but it would take a lot more time. Reinventing the wheel is probably not your motto neither. That’s been said, with my latest applications, I took the decision to thank the people bind the libraries. It doesn’t cost a dime to give a two thumbs up for the creators. For each library and translator, I put a link to their website or Twitter handle. After I released my app, I tweeted to each of time and 80% replied back.

You never know what you can expect: four gentlemen offered us to translate the app for free. It was my pleasure to put their names into the credits section.

Don’t worry, you won’t get hurt in the rating for putting a credits section. I have receive a lot of good and very bad reviews, but I never receive something related to: “Huh, your app suk and your credits too”.

Conclusion

Take the extra 2-3 hours to provide for your users to connect with you and thank the person who helps build your application directly or indirectly. If you provide updates, add a what’s new section.