Your ‘Way of Work’

As a developer you probably already run into this: while developing the UI of your app you’re feeling great and you’re sure your users will love it. Some time later you meet you Beta Testers and ask for feedback and you have to realize that not all users like it the way you designed the app. Most times the story is more complex: some like it and others not and you can spend hours discussing the pros and cons. At the end you have to make decisions:

  • delete what users don’t need – even if it was such a challenge for you to provide this “cool” feature
  • make it customizable from Settings to allow users to go their own way

Running the TimeTracker Enterprise Edition ? In this case the flexibility to customize probably is only targeted to your IT Admin to guarantee that all employees are using the app the same way and HelpDesk can assist easier. To run the Enterprise Edition Employees will get a predefined Profile where some parts of Settings can be invisible or read-only. Read more here. (TBD)

From getting Beta-tester-feedback I removed some parts, added others and also made some parts configurable via Settings.

2014-08-25: added Settings → ‘Way of Work’:


From here you can configure

  • Use of NFC
  • Start Tab
  • Bottom Navigation Bar

Defaults look like this:


… and can be changed per example to this:



TimeTracker can be triggered by NFC Tags and you have the permission to write your own Tags and also allow your Tags to open TimeTracker if closed.

NFC is a great way to shorten the workflow to Start or Stop times. read more here.

If you have decided not to use NFC then there should be no NFC Tab available and TimeTracker shouldn’t be able to execute Actions by NFC.

If your company has decided to use NFC and to create all NFC Tags under control of IT, there should be no NFC Tab, but TimeTracker will accept them.

Here are the screenshots how a Tabbed Pane can look with or without the NFC Tab. Screenshot is from Enterprise Edition – if using Personal or Group Edition, there’s no ‘Server Queue’.

As always: TabTimeTracker only displays content you’re using.


Removing or showing a Tab is easy stuff:

function manageNfcTab() {
    if (! app.useNfcTags() || ! app.createNfcTags()) {
        if (activeTab == nfcTab) {
            activeTab = homeTab
    } else {
    if (app.useNfcTags()) {
    } else {

The TabbedPane will still own a Tab – even if the Tab was removed. So it’s possible to add the Tab again without creating a new one and makes it easy to dynamically show / hide if Settings are changed.

app.useNfcTags() and app.createNfcTags() are C++ methods marked as Q_INVOKABLE getting the values from settings. Removing / adding Tabs we have control how the UI will look like.

If no NFC Tags will be used we have to disconnect the UI from the Signal telling us that there’s an action triggered by NFC Tag.

First Tab

The first Tab visible after opening TimeTracker is the ‘Tracking Live’ Tab from where you can start / stop times easy and fast. There are two different workflows described here: strict mode and free mode. From one customer I learned that there are situations where employees never will start / stop times the ‘normal’ way: all tracked times will be inserted manually. This functionality is part of the ActionBar of your Open tracked Times list, so for this customer it makes sense to start directly with the ‘Open’ tab.

Here’s the code to change the first selected Tab:

 onCreationCompleted: {
    if (app.firstTabIsOpenTab()) {
        activeTab = currentTab
    // ...

All must be done inside onCreationCompleted{} of root TabbedPane. app.firstTabIsOpenTab() is a C++ method marked as Q_INVOKABLE getting the value from settings.

Bottom Navigation

There are many properties and informations available for tracked times, so we decided to use a Segmented TitleBar using 4 segments:

  1. Category
  2. Detail
  3. Time
  4. Geo

To switch between segments you have to tap on the specific part of the TitleBar. You can also use the Actions from OverflowMenu or if using a Q5 / Q10 / Passport there’s a keyboard shortcut.

If you device is a Z30 with 5″ screen size there’s a long distance between ActionBar at bottom and segmented TitleBar on top. So there are four Icons at the bottom: tapping on an Icon the corresponding segment will become visible and the selected Icon will be slightly larger. These Icons are only visible in Portrait mode on Touch Screens.

Read more about Navigation Concepts here.



This is a feature some really like and others not, because it’s not the default platform behaviour. So from now on you can switch them off:


Feel free to use TimeTracker’s BBM Channel to request customizations you’re missing. There’s already a feature request to us a ‘Quick Insert’ screen to enter all common data in a ScrollView from a single page and only switch on-demand to the more detailed Segmented – Titlebar – View.


Back to Settings Main Page



 Personal Edition

User Settings depend from the Edition you’re using. Here’s what you’ll get from free Personal Edition:


If you’re using the Personal Edition we don’t need your PIN – but if using the Group or Enterprise Edition the BlackBerry PIN is used as unique identifier to distinguish between devices.That’s the reason why TimeTracker needs the Permission ‘Device Identifying Information’.

If you plan later to upgrade from Personal Edition to Group or Enterprise, it’s also a good idea to permit this for TimeTracker Personal Edition:


From a developers POV geting the Device PIN is easy:

// don't forget in jour .pro: LIBS += -lbbdevice
#include <bb/device/HardwareInfo>
using namespace bb::device;
HardwareInfo* hwInfo;
hwInfo = new HardwareInfo();
mDeviceID = hwInfo->pin();
    mDeviceID = mDeviceID.right(mDeviceID.length()-2);

From User Settings you can also set the Home TimeZone, where the default is the current TimeZone from first start of the app.

To change the TimeZone tap on the Action in ActionBar – then to select the TimeZone a list will be pushed on top.

Learn more how TimeZones are used inside TimeTracker here.

Group Edition

… work in progress …

Enterprise Edition

From Enterprise Edition your IT Admin configures your settings – so it may look different.

On top you’ll find your company name. If testing the Enterprise Edition there’s a toggle. Enterprise testing is done from your BES10 accessing a TimeTracker Test Server at CoMo Solutions.


At the bottom some informations to access the TimeTracker Server: Domain and URL are needed to construct the REST endpoints to upload your tracked data.


Hint: Testing TimeTracker Enterprise Edition is free.

Back to Settings Main Page


Permissions (Settings)

The two most important settings are Permissions and Categories.

Permission Settings are grouped into these parts:


Workflow: Free vs Strict Mode

Strict Mode: if unchecked, you’re using the Free Mode, which means you can decide what times to track. Strict mode requires to start the working day, track all times the day until the end of day.


Detailed information can be found here:

Insert Data Manually

If unchecked, tracked times can only be tracked (free or strict mode) – there’s no other way to enter data.


Only if ‘Insert Data manually‘ is checked, there will be an Action to ‘Add‘ Times from List of ‘Open‘ Tracked Times.



Manually inserted Times are colorized using a small bar at the right site:



Not all colors are looking same on dark and bright themes. Here I’m using yellow on dark and magenta on bright themes.

HowTo create such bars ? It’s easy with QML. Take a look at UX Highlights.

Manually inserted data will also be marked inside the data sent to dispatcher, IT Admin or group manager.

Delete Tracked Data

If unchecked Users cannot delete Tracked Times – there will be no ‘Delete Action’ visible


If checked, Users can remove items from the list of tracked data.

Modify Start / Stop Time

At Start or Stop TimeTracker always used the current time from System.

If ‘Modify Start/Stop Time’ is unchecked, Users can only accept the System Time. If there’s the permission to modify tracked times they can change it later and modification is documentated.

There are different permissions to allow modifications at Start and/or Stop.

@Start it’s no problem to change the time into the future. (It’s 10:55 and User changes to 11:00) Going back (per ex. 10:30) permission can be set unlimited or you can set a maximum.

Same @Stop where you can go back with no limitations, but moving time forward can be unlimited or have a maximum of minutes.


Modify Tracked Time

Nobody is perfect, so it may make sense to limit modifications at tracking Start / Stop, but to allow modifications later:


TimeTracker stores modification timestamp, so Dispatcher or Admin can see that this item was modified.

Modified entries are colored orange:


Back to Settings Main Page



While tracking times the first question always is: WHAT kind of work are you doing ? Depending from the time of work it depends which data you need to be entered. TimeTracker makes this very flexible. There are 6 different Categories:

  • Working Time
  • Work Readyness
  • Stand-By Time
  • Travel Time
  • Rest / Break
  • Other Time

Talking with many customers we found out that most are only using 2 – 3 different Categories and these 6 Categories are covering all common use-cases.

To make it easy to recognize the selected Category TimeTracker uses some Icons:


Hint: If you’re using a customized Enterprise Edition you can use your own Icons.

The first Category ‘Working Time’ must always be there – all other are optional. There’s a checkbox to enable/disable Categories:


Here are all properties you can set for a Category:


There are many rules out there HowTo summarize times, some kind of work is always paid – others perhaps only in some countries or domains. Legal Time or not ? This decision is sometimes important – perhaps for Drivers and Co-Drivers where only a maximum of hours per day is allowed.

Check what fits your company rules best. TimeTracker already sums it up and displays some nice charts.

Billable is a flag you can use to get all tracked times for Invoicing.

As next there are some optional or required fields:

  • Project
  • Order
  • Task
  • Contact

Check what the user must enter and what is optional. Only fields checked as ‘available’ are visible on the Details Page. If ‘optional’ is checked TimeTracker displays the field but doesn’t check if there’s something entered. learn more about this in Chapter on Dynamic Pages.

If your backend system or Server needs a specific code for a Category you can enter this Code here.

If you have connected a Calendar, your tracked times are automatically entered as Calendar Events. BlackBerry Calendar Events have Status property – please select the corresponding one :


If needed, TimeTracker can not only track Times but also Locations.

TimeTracker can track locations:

  • Never
  • at Start
  • at Stop
  • at Start and Stop
  • Continously


‘No Location’ is important to guarantee privacy of User Data and should be used for Break / Rest.

Continuous doesn’t mean that TimeTracker is also a GPS Tracker where you’re getting an exact route. TimeTracker only tracks all 15, 30 Minutes or so which is enough to document tracked times. It’s also used together with reverse Geocoding to get the Country and to see when Country changes and to report ‘Border-Crossing’. Learn more in Chapter on Locations and Countries.

Back to Settings Main Page



There are different ways for accounting – TimeTracker tries to understand most of them. Here’s what you can configure from Settings Accounting.

Most important: When will your Accounting Period start every month ? In most cases this will be the first day. You can also easy select the 15th of a month or select ‘Specific Day’.


If ‘Specidifc Day’ is selected, a slider will become visible to select the day:


As a minimum of reporting the monthly Account Reports must be done.

Addionally you can also create daily reports or weekly reports:


There are some use-cases where tracked times can be overnight – perhaps tracking travel times.

In these cases it may happen that you’re traveling from July-31 to August-01 and your Manager needs the exactly amount of hours you worked in July.

No problem for TimeTracker: Tracked Times can be splitted at Midnight. But what to do if you’re travelling through TimeZones ? When is Midnight ?


You can configure this and decide:

  • No Split (Time will reported from Accounting Period where time ends)
  • Split at UTC (Midnight is always at TimeZone +00 – also known as GMT)
  • Split at your Home TimeZone (configured from User Settings)
  • Use TimeZone from TimeZone where User starts


As soon as an Account Period ends, the data will be moved to History.


There’s a minimum of 6 Months and a maximum of 1 Year. History will be stored locally on your device inside secure data from your applications sandbox, so no one can take a look at it.


If you have connected a Calendar (see also Settings Connections) TimeTracker can add a Reminder to be notified, so you never forget to create your Accounting Report done.


Select how many day / hours you want to be notified:


also you can set the exact time on that day:


Back to Settings Main Page



Time Tracker is deeply integrated into the System.

To enable this you must connect TimeTracker with Accounts from your BlackBerry 10 Device:


Calendar enables some cool features: Tracked Times are automatically added as Calendar Events, so the Dispatcher can immediately see what Employees have done. Also you can get a Reminder to be notified if next Accounting Report must be done.

Notebook adds a Notebook to the App. Users can add Notes, Images, Audio and TimeTracker connects them with tracked times. If Notebook is sync’ed via Evernote  these Notes are available at Desktop or in your Company for all Employees having access to your Notebook.

You must connect a Messages Account to be able to send Reports from inside TimeTracker as eMail messages to Customer or IT.

Back to Settings Main Page



TimeTracker can use the Touch Screen to get a signature and to store the signature together with a report or tracked time.

There are two options available:


Only if checked the Actions will be visible for the user. More Info here about Signatures.

Back to Settings Main Page


Location (Settings)

If you need GPS Coordinates for tracked times you must check the ‘Location requests enabled’ checkbox.

If you also need the address from tracked coordinates you can also check ‘Reverse Geocoding’

Hint: Only check this if really needed. Perhaps you can get the addresses from your Server easier and without draining your phone’s battery. TimeTracker only added this feature to get the Country from the tracked address and to be able to recognize if borders are crossed.


Here are some properties about Accuracy and max allowed retries:


Also you can configure what shoulkd happened in case ot Timeout.



Back to Settings Main Page


Transport Ways

There are different ways to transport tracked data to your Server or Group Manager.

Please select your prefered way:



Back to Settings Main Page


Sync Interval

We already know about the Accounting Period and Reports and HowTo transfer the data.

Last missing point is when data should be sync’ed:



Back to Settings Main Page