Subscribe to the RSS feed then follow me on twitter at @mrlacey

Tuesday, December 01, 2015

Raisin' up app news with AppRaisin

Are you a Windows [Phone] app developer who wants another way to tell potential users of an app about it's launch or major update?
Or
Are you interested in hearing about new and updated Windows 10 apps?
Or maybe you're both.

If any of the above apply to you then you should check out AppRaisin by AdDuplex.


It's like a social news site focusing on Windows app news.

Users decide what news rise to the top by "raising" the apps they like and ignoring the noise. This way enthusiasts get to make sure that top of the crop apps get the attention they deserve and less active users get a curated list of just the best app news.

If you want to discover some of the best new apps then check it, and them, out now.

Download the universal Windows 10 app from the store now.

If you've built Windows Phone or Windows Store apps you can cross-promote them with AdDuplex to get more users.

Tuesday, November 24, 2015

5 signs you're thinking about testing your code incorrectly

Test runner output showing both passing and failing tests

Having code that can be tested in an automated way is essential when it comes to making software that you can support and update quickly. Unfortunately there are still many developers for whom testing isn't a priority or even a consideration :(

Here are five indications that you're not prioritizing testing appropriately as a developer, and the consequences thereof:


If you've built Windows Phone or Windows Store apps you can cross-promote them with AdDuplex to get more users.

Tuesday, November 10, 2015

Windows 10 developers need help!

I guess that's why there's so many helper classes!

Here are a few links to MSDN:



And here are a few others:

  • System.Runtime.CompilerServices.RuntimeHelpers
  • System.Runtime.InteropServices.ComEventsHelper
  • System.Runtime.CompilerServices.CallSiteHelpers
  • System.Runtime.CompilerServices.ContractHelper
  • System.Reflection.Emit.OpCode,System.Reflection.Emit.SignatureHelper
  • System.Reflection.Emit.SignatureHelper
  • Windows.ApplicationModel.DataTransfer.HtmlFormatHelper
  • Windows.Security.Cryptography.Certificates.KeyAttestationHelper
  • Windows.UI.ColorHelper
  • Windows.UI.Xaml.CornerRadiusHelper
  • Windows.UI.Xaml.DurationHelper
  • Windows.UI.Xaml.GridLengthHelper
  • Windows.UI.Xaml.PointHelper
  • Windows.UI.Xaml.RectHelper
  • Windows.UI.Xaml.SizeHelper
  • Windows.UI.Xaml.ThicknessHelper
  • Windows.UI.Xaml.Controls.ListViewPersistenceHelper
  • Windows.UI.Xaml.Controls.Primitives.GeneratorPositionHelper
  • Windows.UI.Xaml.Markup.XamlBindingHelper
  • Windows.UI.Xaml.Media.MatrixHelper
  • Windows.UI.Xaml.Media.VisualTreeHelper
  • Windows.UI.Xaml.Media.Animation.KeyTimeHelper
  • Windows.UI.Xaml.Media.Animation.RepeatBehaviorHelper
  • Windows.UI.Xaml.Media.Media3D.Matrix3DHelper




And probably more...





If you've built Windows Phone or Windows Store apps you can cross-promote them with AdDuplex to get more users.

Friday, November 06, 2015

Don't throw away cached data just because it might have expired

Following on from my post about etags, earlier this week, there's something related to caching that I've seen many apps do wrong.

It basically comes down to this: just because the timespan that a server says content can be cached for has expired doesn't mean that the content will be changed.

Let me demonstrate by way of an example.

Imagine this scenario:

- App want to display an image from the web.
- App requests the resource
- Server returns resource and also an expiry header saying it's good for 24 hours
- App displays the image and recognises the header so saves a copy of the image for later reuse. (That it recognises the header and caches a copy of the image is already better than many but let's keep going.)
- App is closed after two minutes of use
- App is reopened six hours later
- App shows image from cache as it hasn't expired.
- App is next opened two days later
- App ignores the cached image, as it's expired, and so goes to the server to get it again.

Notice that last point.
What if the image hasn't changed?

Was the best thing the app could have done to:
- briefly show a space/placeholder while the image is downloaded again?
- waste data downloading the same thing again?

Wouldn't it be better to:
- keep showing the original image
- check if the image is still valid. (using, for example, etags or if-modified-since headers)
- if it is still valid, then update the expiry time/TTL stored locally
- if it is no longer valid then update the locally cached and displayed image.

Yes, it's a little bit more work but it's a better experience.
- less, duplicate, content need be downloaded
- consistently display images that haven't changed

It may not by the right approach for every image and is dependent upon server support but definitely worth considering.





If you've built Windows Phone or Windows Store apps you can cross-promote them with AdDuplex to get more users.