Since the release of one of my UWP apps, the top crash was hang_quiesce.
Clicking on this failure, I was in confronted by a sea of nothing. I.E. nothing meaningful from my app and all Windows code.
I did a little survey among other UWP developers and some of them also confessed that this crash was quite common. It is good practice to fix crashes because if you have a high number of crashes, it affects the search ranking in the Microsoft Store.
I reached out to my friends at Microsoft. Stefan Wick was kind enough to tell me the possible causes: the app is hung or it forgot to release the deferral. Also, Brandon Paddock suggested a solution to the deferral issue: add the notion of duration of the App.OnSuspending event to force quit the execution after X time.
Note: I don’t know exactly how long the OS gives to the deferral before it takes the execution as hanging. This is probably not a good idea to do tons of database operations for example.
My simple solution was to introduce a delay task of 2 seconds and used Task.WhenAny to make sure that that either the Delay or Suspend method finishes before 2 seconds. For my app, it is not crucial if the Suspend method does not finish.
After one month, I was pleased to see this crash at 1.44% instead of 22%!
I don’t guarantee that your “hang_quiesce” issue will be the same as mine, but it is definitely worth a try.
Update: There has been a bit of misunderstanding on how this works. The broadFileSystemAccess is a restricted capability that an application could be granted, it is not an API. As a developer as well, I have to opt-in to using the capability. Any application in the store with the capability goes through extra verification by the Store team before any user gets it and the user is aware they are granting the application the permission to use the capability as well.
Users of the application can turn off this ability at any time via their Privacy settings, a dev should check that it has the permission to access files since a user can turn on / off as shown on my screenshot below.
While reporting this to Microsoft, we discovered there was a documentation bug here as well. As every developer knows, this is something that does happen and they are proactively fixing it.
Recently, I learned that an UWP app can access the entire file system i.e. the app is not restricted to use the LocalStorage or files and folders via a Picker. You can find all the info from MSDN.
The moment that I implemented the feature, it was before the October 2018 Update. I noticed that the first time that I used an hardcoded file in “C:\myAppData”, I didn’t get any message and it just worked despite that MSDN said: “On first use, the system will prompt the user to allow access”. The app is a LOB app in an environment controlled by my client outside the MS store, so I was even more glad that the app does not ask any questions until the October 2018 Update arrived…
After I installed the October 2018 Update, I realized that my app was crashing at startup. I found out that accessing my file above was crashing the app. I thought that the manifest was altered, but no. I contacted my friends at Microsoft and they confirmed me two important info:
1- The Windows dialog that is supposed to be shown the first time a file is accessed does not trigger is a *bug*.
2- Because it is a privacy issue, Microsoft decided with the October 2018 Update to set to OFF the value of the broad access file system.
I actually learned that the list of applications that can have access to the file system resides in Windows Settings > Privacy > File system:
Fortunately, you can guide the user and force the display of this page settings with the following call:
When Microsoft released the Windows 10 April 2018 update, I installed it and I updated Visual Studio with the latest SDK. If you develop UWP apps where the min version is set to the latest Windows update (in this case Windows 10, version 1803, build 17134), you can stop reading here. However, if for example, the min version if the Fall Creators Update, please read on.
The other day, I was testing on my desktop machine the style that I modified of a simple TextBox. It was working well, until I deployed on my Dell Venue Pro 8. When I navigated to a page where I modified the TextBox, the app crashes every single time. I was wondering what was going on since Visual Studio didn’t warn me of anything.
If you add an TextBox and you click on “Edit Template”, the latest SDK will introduce the usage of the ThemeResource IsApplicationFocusVisualKindReveal. This resource does not exist in previous Windows 10 updates, so when the app runs on previous version, the app will crash.
What is worrisome is Visual Studio does not warn about anything (no warning message and no wiggle underline under the resource name).
I wrote an email to my XAML friends at Microsoft and they acknowledged what I found. They were actually surprised by that too. I will report back when they will find the solution for it.
In the meantime, I highly suggest that if you do an Edit Template with the April 10 SDK, go ahead and try in all of your supported Windows 10 updates.
PS: it’s been quite a long time from my previous blog. Having kids and a new passion (Magic the Gathering competition) took a lot of my free time. I still work full time on UWP projects for years and I enjoy this more than ever!
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.
2- Open the MainPage.xaml file and replace the Grid with:
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.
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.
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.
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.
Feel free to contact me if you have any questions.
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.
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 Windows Store version is FREE. You can pay to remove ads.
App Promo for Windows Phone
Features • Share the promotional pictures on Twitter and Facebook • Share the promotional pictures with installed applications • Retrieve the promotional pictures from your Camera Roll
The Windows Phone version is FREE. You can pay to remove ads.