The Kind of Apps That You Are Not Building, and Should
Mobile apps have taken over the world, there’s no denying that.
Web applications are also super popular, and as customers we judge brands and businesses based on the quality (and availability) of their apps.
But there is one kind of app, a very important one, that businesses still require and use every single day that you may not be offering to your clients: the desktop app.
Think about apps that are offered as desktop apps simply because it makes sense, we spend a lot of our time, especially at work, on our computers. Evernote, Slack, iTunes, Photoshop, AutoCAD, Chrome, Visual Studio, Word, PowerPoint, Excel, 1Password…
These are some examples of apps that are built for the masses to download, but for desktop, there is an almost unique demand for custom applications – applications with some very specific functionality required by the eventual users.
Maybe the receptionists across the entire company require a custom software to keep track of appointments; maybe a custom CRM is needed, or HR may want to keep track of employees in a unique way that common software doesn’t allow them to do.
When the power of a PC is necessary for an app, or the app needs to run on a local PC, desktop apps are the ones to build.
With Windows being the second most popular Operating System in the planet (only after Android), it is Windows Presentation Foundation the platform that you should target when building desktop apps.
WPF allows you to build apps that will run on Windows 7, 8 and 10 (which account now for about 93% of Windows computers according to Stat Counter), with almost no limitations. You could even still target Windows XP, but I don’t recommend you do.
WPF has been used for years to create very powerful applications since there is virtually no limit to what you can do with it. This is unlike apps that need to be downloaded through an App Store, which are built with an entirely different architecture and are executed in a sandbox.
WPF applications could then access native functionality that store applications may not, or use more resources while store applications are limited to what Microsoft, or Apple or Google dictate.
How Are WPF Apps Created?
If you are interested in creating this kind of applications, you will first need a Windows computer, or of course a Windows VM, and install Visual Studio 2017 making sure you install the tools for Windows desktop development. From there you will need to use a couple of languages to create your apps.
So let’s talk about those languages: XAML and C#. There is an added benefit to learning those languages that I’ll talk about later in this post, for now let’s focus on how will you be using them both, and why the combination of both makes for an amazing development process.
XAML
The eXtensible Application Markup Language, or XAML, is a markup language that you will use to define the interfaces of your apps. Similar to how you would use HTML (another markup language) to define the interface of a website, you can use XAML to define your windows and pages and any element that WPF applications have.
Of course, there is a way to not use XAML at all – by simply dragging and dropping elements from a toolbox into a designer. But – spoiler alert! – learning XAML will improve the quality of your apps enormously; not because they will look better (I guess you can achieve the same result by dragging and dropping), but because the code will be more elegant, efficient, and eventually you can use your XAML skills for greater things (more on that in a second). So, take my advice and learn this language as you build your WPF apps.
Use XAML Right!
As you start using XAML you will probably feel like it’s a ton of work, and that you should simply use the designer and drag and drop elements to it. Resist these thoughts. At the beginning of course it will take a bit more time to do so the right way, but eventually you’ll know XAML like the back of your hand, and then is when you unlock so much more potential.
When using XAML right, you can use it not just as the code that defines how your apps look, but also how the interface connects to your data, works with the required formats, and reacts to user interactions.
I won’t go into more detail, but achieving this will make working with designers so much easier (they can see in real time as they create the UI, the sample data that you can see, in design time with no need to run the app, retrieving from some sample data source) and help you separate the elogic from the graphic interface entirely.
C#
This is the language that you will use to create the logic of your application, its functionality. As with any other language, there is a learning curve if you are coming from another language, but if you know how to code, you can easily adapt to C#’s syntax and start falling in love with its elegancy.
C# is often described as a very powerful high level language, dragging some benefits from C and C++ to a modern language that is super easy to understand. Some joke that with C# you don’t need to document or comment your code (that’s wrong, always do that).
The Hidden Benefits Of Creating WPF Apps
While adding desktop app development to your resume is a great idea, it will greatly expand the kind of applications that you can create and increase the problems that you can solve for your clients, learning to build WPF apps also comes with a “hidden” benefit.
Like I said, WPF apps are built with XAML and C#, and it turns out that with those skills you will acquire as you create your desktop apps you can build iOS and Android apps as well. Actually, even Windows store and macOS apps as well.
These two languages are the same ones that are used to create Xamarin apps (which I have talked about in a different post), and Xamarin allows you to build entirely native apps using these languages. Suddenly, you only have to learn two languages to build native applications for all kinds of apps.
Perhaps then, as you add desktop app development to your list of skills, you should decide to focus and learn those two languages fully since they will be so useful no matter the app you are building.
Few language combinations offer such versatility, so learning them could be one of the best investment decisions you make!
Why not take a look at my Windows presentation foundation masterclass on Udemy? It’s designed to help you learn and get up to speed with building WPF quickly.