Time Tortoise: Working Around UWP Limitations

UWP 669

This is one in a series of articles about Time Tortoise, a Universal Windows Platform app for planning and tracking your work schedule. For more on the development of this app and the ideas behind it, see my Time Tortoise category page.

I decided to use the Univeral Windows Platform for Time Tortoise because I’m targeting Windows, and because UWP is the direction that the Windows user interface is moving (as of 2017). However, I knew from the beginning that UWP would not have all of the functionality of more established options like Windows Presentation Foundation. So as I make design decisions, I also look for ways to avoid getting stuck due to UWP limitations.

« Continue »

Time Tortoise: Creating an App Package

Package

This is one in a series of articles about Time Tortoise, a Universal Windows Platform app for planning and tracking your work schedule. For more on the development of this app and the ideas behind it, see my Time Tortoise category page.

Last week I covered some of the requirements for self-hosting Time Tortoise. The next step is to package and deploy a self-hosted version of the app, without disrupting the ability to run it in debug mode in Visual Studio.

« Continue »

Time Tortoise: Self-Hosting

Assets

This is one in a series of articles about Time Tortoise, a Universal Windows Platform app for planning and tracking your work schedule. For more on the development of this app and the ideas behind it, see my Time Tortoise category page.

As I mentioned last week, Time Tortoise is almost at the point where it could be used as a rudimentary time tracker. However, it still needs a number of improvements before I would want to use it instead of my regular time tracker.

As I’m adding features to Time Tortoise, it’s important to add them in priority order. In other words, add the most useful features first. This ensures the best use of time, and avoids throwing in features without a good reason.

« Continue »

Time Tortoise: An Early Fit and Finish Pass

Fit and Finish

This is one in a series of articles about Time Tortoise, a Universal Windows Platform app for planning and tracking your work schedule. For more on the development of this app and the ideas behind it, see my Time Tortoise category page.

Although far from done, Time Tortoise now has some basic functionality for tracking work time:

  • Add, remove, and edit activities (the things you work on).
  • Start and stop an activity timer, which creates a time segment (a start and end date/time).
  • Manually add, remove, and edit time segments.
  • Show the time segments associated with the selected activity.
  • Filter the list of time segments by start date.

You could in theory use these features for tracking real work, but there’s a lot missing. However, before moving on to add more features, I spent some time this week on fit and finish.

« Continue »

Time Tortoise: Unit Testing Update

Test Explorer

This is one in a series of articles about Time Tortoise, a Universal Windows Platform app for planning and tracking your work schedule. For more on the development of this app and the ideas behind it, see my Time Tortoise category page.

Last week, I added some functionality to filter time segments by start date. Since time trackers generate many time segments over time, it’s not practical to show all of them. The list view would slow down over time.

As always, adding new functionality provides an opportunity to learn more about how the Time Tortoise technology stack works, and I covered some of that last week. However, there’s an inherent conflict between investigating new aspects of the stack, and writing unit tests first. While writing unit tests can help clarify a design, getting a new feature to work sometimes requires some initial experimentation. Integrating this with a test-first approach can lead to a lot of re-writing.

For example, consider the Entity Framework code changes from last week. Because they modified the way time segments are loaded, they required numerous changes to unit tests. But the necessary changes were only apparent after some experimentation with the EF code.

As a result, this week has been focused on fixing unit tests, and adding new ones. Here are some unit test topics from this week’s work.

« Continue »