Universal App Tutorials Part 15 : MVVM Light Messaging

It’s often necessary to “inform” other areas of an application of changes that have occurred.  This can be achieved through Messaging.  In the previous tutorial we created a Settings page and made the TranslationDirection Configurable.  It would be nice if the Main View Model knew about our new Translation Direction setting, let’s look at how we can achieve this.

Outcome

By the end of this tutorial we should have implemented a SettingsChangedMessage, subscribed to it from our MainViewModel and Published it from our SettingsViewModel. Continue reading “Universal App Tutorials Part 15 : MVVM Light Messaging”

Universal App Tutorials Part 14 : Settings Page

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.

Outcome

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”

Universal App Tutorials Part 13 : Custom Enum Attributes

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.

Outcome

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”

Universal App Tutorials Part 12 : Universal App Reviews

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”

Development Team Leadership : First Steps Part 8

Constructive Criticism

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”

The Star Wars / Software Development Paradigm

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”

Universal App Tutorials Part 11 : Value Converters

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.

Outcome

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”

Development Team Leadership : First Steps Part 7

Honesty

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”

Review : Write Modern Web Apps with the MEAN Stack by Jeff Dickey

I recently decided to push myself and delve into a new stack to broaden my horizons, having heard a lot from friends about how great JavaScript is and how it’s taking over the world, I decided it was finally time to get to grips with it, and an opportunity to have a play with Visual Studio Code at the same time.  I picked the MEAN stack to look into, for anyone not in the know, MEAN stands for :

  • MongoDB
  • Express
  • Angular
  • Node

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”

Development Team Leadership : First Steps Part 6

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”