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’:

Wow1

From here you can configure

  • Use of NFC
  • Start Tab
  • Bottom Navigation Bar

Defaults look like this:

Wow2

… and can be changed per example to this:

Wow3

NFC

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.

WowNFC

Removing or showing a Tab is easy stuff:

function manageNfcTab() {
    if (! app.useNfcTags() || ! app.createNfcTags()) {
        if (activeTab == nfcTab) {
            activeTab = homeTab
        }
        remove(nfcTab)
    } else {
        add(nfcTab)
    }
    if (app.useNfcTags()) {
        app.nfcAction.connect(onNfcAction)
    } else {
        app.nfcAction.disconnect(onNfcAction)
    }
}

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.

Screenshots:

WowBottomNav

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:

WowNoBottomNav

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

Settings

User

 Personal Edition

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

Settingsuserpersonal

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:

permissions_tt_device

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();
if(mDeviceID.startsWith("0x")){
    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.

Settingsuserenterprise

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.

Settingsuserenterprise2

Hint: Testing TimeTracker Enterprise Edition is free.

Back to Settings Main Page

Settings

Permissions (Settings)

The two most important settings are Permissions and Categories.

Permission Settings are grouped into these parts:

02_settings_permissions

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.

02_settings_permissions_strict

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.

02_settings_permissions_insert

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

ab_open_no_add

ab_open_add

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

open_marked_added_dark

open_marked_added_bright_de

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

02_settings_permissions_delete

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.

02_settings_permissions_start_stop

Modify Tracked Time

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

02_settings_permissions_modify

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

Modified entries are colored orange:

open_marked_modified_dark

Back to Settings Main Page

Settings

Categories

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:

Z30_what

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:

04_settings_categories_enable_checkbox

Here are all properties you can set for a Category:

04_settings_categories_0

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 :

04_settings_categories_dd_cal_status

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

04_settings_categories_dd_tracking

‘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

Settings

Accounting

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’.

03_settings_account_1_begins

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

03_settings_account_1_begins_specific

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

Addionally you can also create daily reports or weekly reports:

03_settings_account_2_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 ?

03_settings_account_3_split

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

03_settings_account_3_split_dd

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

03_settings_account_4_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.

03_settings_account_4_history_dd

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.

03_settings_account_5_reminder

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

03_settings_account_5_reminder_dd_day

also you can set the exact time on that day:

03_settings_account_5_reminder_dd_time

Back to Settings Main Page

Settings

Connections

Time Tracker is deeply integrated into the System.

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

05_settings_connections

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

Settings

Signature

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:

06_settings_signature

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

Back to Settings Main Page

Settings