Despite the rise in popularity of Single Page Applications (SPAs) and supporting frameworks like Angular in the Web Development world, it might be nice if we had more than one page in our app, or at least had the option to. Our app so far is contained within a single page, MainPage.xaml. A common pattern is to have different pages for Settings or Publisher contact information. Navigation has moved on since Windows Phone 7.5 when it was URI based, we will look at how it now works with Universal Apps with typing and the MVVM Light implementation of INavigationService. Continue reading “Universal App Tutorials Part 10 : MVVM Light NavigationService”
One of the most important skills in leadership, is knowing how and when to say ‘no’. It might sound trivial but it’s really far from it. There’s an excellent chapter in The Clean Coder by Uncle Bob Martin. I was fortunate enough to read this prior to having been put in a situation where I needed to say no and I found it invaluable in hindsight, would highly recommend.
As a fresh Lead you will no doubt have a number of challenges in managing client expectations, and at points they will inevitably ask too much of both you and your team. It’s times like these when you will gain the respect of the client for your honesty and integrity and the gratitude of your team for not putting them in awkward situations.
It’s easy to say yes, don’t fall into that trap, but just remember there’s a right way to do it. Continue reading “Development Team Leadership : First Steps Part 5”
As we saw when we migrated our Universal Windows App to Windows 10 targetting Phones and PCs with the same set of markup presents us with a challenge…
This UI is less than usable! There are a new set of User Controls made available as part of Windows 10, for example the Relative Panel. In this post we’ll look at ways we can make our UI adaptive based on the screen size we are targeting.
By the end of this post we will have a single app that is usable on PCs, tablets, and Phones. We’ll be looking into Visual State Triggers in order to alter the size of the text presented in our Input and Output TextBox and TextBlock controls. Visual State Triggers apply transformations to the base XAML defined, we’ll be using this method to make our app responsive.
Don’t be afraid to tackle situations that will push you out of your comfort zone, you’ll always be better for it. If you’re :
- nervous about a presentation, do it;
- putting off an awkward conversation, have it;
- unfamiliar with a technology, learn it.
…you get the picture.
There are of course limits, be sensible. Start small, Rome wasn’t built in a day and so on, but each time you tackle something new your horizon has expanded slightly, you’ll be unstoppable. Have confidence.
I’m sure you’re probably all aware that Windows 10 is out, (if not in the news then the nagging to upgrade), I recently took the plunge and upgraded my PC and tablet and have to say I’m rather impressed. Along with the Operating System I also upgraded my development environment to Visual Studio 2015 Community to start taking a look at Windows 10 Apps, (and maybe start dabbling in Xamarin now that it’s so accessible). In light of this, now seems as good a time as any to start looking at implementing our Morse Coder App as a Windows 10 Universal App.
Windows 10 Universal Apps differ from Windows 8.1 and Windows Phone 8.1 apps in that they require only a single Project for the UI, where the 8.1 apps would have had Windows, Windows Phone, and a Shared Project; Windows 10 requires only a single project. By the end of this post we should have a functioning Windows 10 app, with all the current functionality from the existing Desktop Version, running on both the Phone Emulator and the Desktop (and everything in between).
In certain circumstances Visual Studio will quite happily suggest to add namespaces into Shared Projects that will then fail to compile. It’s an obvious issue to resolve, with the bottom line being that the Namespaces must exist in all Platform Projects in order for it to be referenced by the Shared Project.
Continue reading “Universal App Gotchas : Namespaces must exist in all Platform Projects”
User controls offer a way to abstract common areas of your User Interface in a reusable package, allowing you to simplify your views and push some of the complexity of your UI into more manageable pieces. This tutorial will focus on Data Binding to Properties on a User Control from a ViewModel.
By the end of this post we should have a basic User Control bound against some Commands living in the MainViewModel to manipulate the content of the Input, in our case, we’ll offer a way to input Morse Code (dots/dashes) outside of needing to use a Keyboard in preparation for extending the App to translate both ways from the User Interface.
Continue reading “Morse Coder Part 7 : Data Binding User Controls”
A few years back I signed up on https://dvlup.com. An incentive site to build on the Windows Phone platform ran by Nokia. Subsequently (along with the rest of the Nokia Lumia brand), it’s been bought under the Microsoft Banner and is now known as MSDN Rewards and can be found at https://rewards.msdn.microsoft.com.
Raising the Alarm
I’m a big believer in the proverb:
A stitch in time saves nine
This holds true across so many scenarios in software development, perhaps most notably if your project is veering off course the worst thing you can do is sit on the problem and not tell those around you.
If you have a problem, talk about it, another quote:
A problem shared is a problem halved
If you’ve made a mistake, be honest and get on with it. If you try to cover it up, chances are:
- you won’t be able to;
- it will become infinitely worse.
Today I published a new app on the Windows Phone Store. It’s written as a Universal App as I’m intending to extend it to publish on the Windows Store.
It feels good getting a new app on the store as it’s been quite a while since I got round to finishing something new, the process has changed a bit since last time so it took a little while to get my head around it!