Applications generally have a settings page, or similar allowing the user to configure the application. We laid the groundwork for making the Translation Direction setting configurable in the previous post, let’s look at putting that in to practice.
By the end of this tutorial we’ll have a really basic Settings Page, 2 Buttons allowing the user to pick between Morse to Alphabet and Alphabet to Morse, and a TextBlock displaying the current Translation Direction. Continue reading “Universal App Tutorials Part 14 : Settings Page”
Most applications need a settings page to allow a user to configure how they wish to use your application. In this tutorial we’ll start to look at making the Translation Direction configurable. We’ll shortly be adding in a Settings page, but there’s some groundwork required before we begin.
By the end of this tutorial the Translation Direction Attribute should have a custom Display Attribute associated to it, allowing for the associated display string to be displayed on the view via a Value Converter, which will look up the display text for a given enum value. Continue reading “Universal App Tutorials Part 13 : Custom Enum Attributes”
One of the most compelling reasons to download an app is the number of Universal App Reviews in the store. This tutorial will look at adding a Review App Button to our completely empty About Page. There are various places you can surface the Review App Function, commonly it’ll be available on an About or Info page, or you may choose to have a Review Reminder. As with a number of things with UWP apps, the Universal App Review Method changed slightly from Windows Phone 8’s MarketPlaceTask, let’s take a look…
Continue reading “Universal App Tutorials Part 12 : Universal App Reviews”
Something I’ve seen many people struggle with is the ability to take constructive criticism, and inversely offer it.
Giving Constructive Criticism
I’ve previously recommended being free with advice. An extension to this, and a vital leadership skill is the ability to critique a colleague’s work without causing offence. Obviously being rude about someone’s work will alienate them and earn you no favours, but it’s often the case that a colleague won’t quite have understood the direction in which you wanted them to head with a certain task. There’s a couple of things personally you can take from this : Continue reading “Development Team Leadership : First Steps Part 8”
In preparation of Star Wars Episode VII – The Force Awakens, I, like many others are watching the other 6 films. An experience I am
inflicting on, sharing with my partner with mixed success.
123 vs 456
My partner had never seen Star Wars Episodes 1, 2 and 3 (lucky her you may say, I might agree), and was actively against the idea of “wasting time” doing so. As films in their own right, generally I could take them or leave them but I also understand the relative importance of knowing how Darth Vader came to be, and quite enjoy the completeness of watching them all in the correct order (that’s another story).
It occurred to me that in having this conversation, it was actually pretty similar to conversations I regularly find myself having at work… Continue reading “The Star Wars / Software Development Paradigm”
One of the rules of using MVVM is that your model shouldn’t need to know anything about the UI Layer, and your View should be decoupled from the Model via the ViewModel. It can often be necessary to have some form of conversion between what our Model understands and what the View would understand. A common example would be converting a boolean flag to a Visibility State, this is where Value Converters come in.
We’ll follow a slightly more domain specific example in this case, converting the TranslationDirection Enumeration Property to a Visibility State for our Morse Input User Control.
Continue reading “Universal App Tutorials Part 11 : Value Converters”
Honesty is the best policy…
…unequivocally. Trying to cover something up simply doesn’t work. Everyone makes mistakes, even your boss, and if they’re worth working for, they’ll know that.
As the lead you should be the first to admit when you:
- are not going to make a deadline;
- did something silly that broke the build;
- are wrong;
- simply don’t know the answer to a question.
The last one is really important.
Continue reading “Development Team Leadership : First Steps Part 7”
Coming predominantly from a .NET background (as you may have guessed) this was obviously quite a shift. Continue reading “Review : Write Modern Web Apps with the MEAN Stack by Jeff Dickey”
Pragmatism – Take your time
I’m sure you’ll have heard the saying :
Rome wasn’t built in a day…
…and it’s fair to say that 99% of the time, neither will your app be. Be realistic regarding what you can achieve and by when. Everything about the Agile methodology points to being able to work sustainably, and getting better at doing so along the way. There’s many articles about picking a vertical stripe or horizontal stripes through your architecture and delivering a concise set of functionality. My advice would be, don’t let your chosen stripe get too fat. If you can’t hit an imposed deadline, be honest and say ‘no’.
Continue reading “Development Team Leadership : First Steps Part 6”
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”