{"id":216,"date":"2017-01-30T21:05:27","date_gmt":"2017-01-30T20:05:27","guid":{"rendered":"https:\/\/thomasebert.net\/en\/?p=216"},"modified":"2026-03-30T20:07:45","modified_gmt":"2026-03-30T18:07:45","slug":"intuitive-time-tracking","status":"publish","type":"post","link":"https:\/\/thomasebert.net\/en\/pieces\/intuitive-time-tracking\/","title":{"rendered":"Intuitive time tracking"},"content":{"rendered":"<div class=\"imagebox\" data-theme=\"featured\">\n<div id='gallery-1' data-sliderid='gallery-1' class='gallery galleryid-216 gallery-columns-3 gallery-size-hero-small'>\n<figure class='gallery-item te-slider-slide te-slider-active'>\n<div class='gallery-icon landscape'>\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Welcome-1280x720.jpg\" srcset=\"https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Welcome.jpg 1536w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Welcome.jpg 1920w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Welcome-764x430.jpg 764w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Welcome-1280x720.jpg 1280w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Welcome-1920x1080.jpg 1920w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Welcome.jpg 1920w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Welcome-430x242.jpg 430w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Welcome-250x250.jpg 250w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Welcome-580x326.jpg 580w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Welcome-795x447.jpg 795w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Welcome-350x350.jpg 350w\" \/><\/p>\n<div class=\"te-slider-prev te-slider-nav\" data-teslider=\"gallery-1\"><\/div>\n<div class=\"te-slider-next te-slider-nav\" data-teslider=\"gallery-1\"><\/div>\n<\/div>\n<\/figure>\n<figure class='gallery-item te-slider-slide'>\n<div class='gallery-icon landscape'>\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Day-1280x720.jpg\" srcset=\"https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Day.jpg 1536w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Day.jpg 1920w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Day-764x430.jpg 764w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Day-1280x720.jpg 1280w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Day-1920x1080.jpg 1920w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Day.jpg 1920w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Day-430x242.jpg 430w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Day-250x250.jpg 250w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Day-580x326.jpg 580w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Day-795x447.jpg 795w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Day-350x350.jpg 350w\" \/><\/p>\n<div class=\"te-slider-prev te-slider-nav\" data-teslider=\"gallery-1\"><\/div>\n<div class=\"te-slider-next te-slider-nav\" data-teslider=\"gallery-1\"><\/div>\n<\/div>\n<\/figure>\n<figure class='gallery-item te-slider-slide'>\n<div class='gallery-icon landscape'>\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Task-1280x720.jpg\" srcset=\"https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Task.jpg 1536w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Task.jpg 1920w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Task-764x430.jpg 764w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Task-1280x720.jpg 1280w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Task-1920x1080.jpg 1920w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Task.jpg 1920w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Task-430x242.jpg 430w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Task-250x250.jpg 250w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Task-580x326.jpg 580w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Task-795x447.jpg 795w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Task-350x350.jpg 350w\" \/><\/p>\n<div class=\"te-slider-prev te-slider-nav\" data-teslider=\"gallery-1\"><\/div>\n<div class=\"te-slider-next te-slider-nav\" data-teslider=\"gallery-1\"><\/div>\n<\/div>\n<\/figure>\n<figure class='gallery-item te-slider-slide'>\n<div class='gallery-icon landscape'>\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Diagram-1280x720.jpg\" srcset=\"https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Diagram.jpg 1536w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Diagram.jpg 1920w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Diagram-764x430.jpg 764w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Diagram-1280x720.jpg 1280w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Diagram-1920x1080.jpg 1920w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Diagram.jpg 1920w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Diagram-430x242.jpg 430w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Diagram-250x250.jpg 250w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Diagram-580x326.jpg 580w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Diagram-795x447.jpg 795w, https:\/\/thomasebert.net\/en\/wp-content\/uploads\/sites\/2\/2017\/10\/TimeManager-Time-Tracking-App-Screen-Diagram-350x350.jpg 350w\" \/><\/p>\n<div class=\"te-slider-prev te-slider-nav\" data-teslider=\"gallery-1\"><\/div>\n<div class=\"te-slider-next te-slider-nav\" data-teslider=\"gallery-1\"><\/div>\n<\/div>\n<\/figure><\/div>\n<div class=\"slide-controller slide-controller-gallery\">\n<div class=\"te-slide-dot\" data-teslider=\"gallery-1\"><\/div>\n<div class=\"te-slide-dot\" data-teslider=\"gallery-1\"><\/div>\n<div class=\"te-slide-dot\" data-teslider=\"gallery-1\"><\/div>\n<div class=\"te-slide-dot\" data-teslider=\"gallery-1\"><\/div>\n<\/div>\n<div><script>\n\t\t\t\tsliders.push(\"gallery-1\");\n\t\t\t<\/script><\/div>\n<\/p><\/div>\n<h2 class=\"p2\">TimeManager<\/h2>\n<p class=\"p1\">Now there are dozens of apps in the category of productivity in all the app stores. For sure some of these apps can track your time while working on projects, in your free time or freelance. Yet, sometimes as a user I feel that an app is missing something or doesn\u2019t really fit my workflow as it\u2019s supposed to do. For this reason I created my own time tracking app.<\/p>\n<div class=\"imagebox\" data-theme=\"light\">\n<h3 class=\"responsive\">Implementation of the project list as seen in iOS<\/h3>\n<div style=\"width: 2044px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-216-1\" width=\"2044\" height=\"1580\" poster=\"https:\/\/thomasebert.net\/wp-content\/uploads\/2017\/09\/TimeManager-Time-Tracking-App-Poster.png\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/thomasebert.net\/wp-content\/uploads\/2017\/09\/TimeManager-Time-Tracking-App-Demo.mp4?_=1\" \/><a href=\"https:\/\/thomasebert.net\/wp-content\/uploads\/2017\/09\/TimeManager-Time-Tracking-App-Demo.mp4\">https:\/\/thomasebert.net\/wp-content\/uploads\/2017\/09\/TimeManager-Time-Tracking-App-Demo.mp4<\/a><\/video><\/div>\n<\/p><\/div>\n<p>Starting as a small exercise to program a simple app for Windows 8, I developed the app to a resilient companion for my daily time tracking of work time. A central synchronization (with Nextcloud) was added, to enable the app to be run in the browser as well. In 2016 I created a native mobile app for iOS \u2013 again as a learning exercise. The app currently runs on iPad and might also come to the Appstore at some point.<\/p>\n<div class=\"nutshell\">\n<h3>Project details<\/h3>\n<div class=\"nutshells\">\n<div class=\"nutshell-left\">\n<h2>Tools and Technology<\/h2>\n<ul class=\"single-content-taglist\">\n<li data-tagslug=\"ios\"><a href=\"https:\/\/thomasebert.net\/en\/tag\/ios\">iOS <\/a><\/li>\n<li data-tagslug=\"mongodb\"><a href=\"https:\/\/thomasebert.net\/en\/tag\/mongodb\">MongoDB <\/a><\/li>\n<li data-tagslug=\"nodejs\"><a href=\"https:\/\/thomasebert.net\/en\/tag\/nodejs\">NodeJS <\/a><\/li>\n<li data-tagslug=\"rest-api\"><a href=\"https:\/\/thomasebert.net\/en\/tag\/rest-api\">REST-API <\/a><\/li>\n<li data-tagslug=\"swift\"><a href=\"https:\/\/thomasebert.net\/en\/tag\/swift\">Swift <\/a><\/li>\n<li data-tagslug=\"xcode\"><a href=\"https:\/\/thomasebert.net\/en\/tag\/xcode\">XCode <\/a><\/li>\n<\/ul><\/div>\n<div class=\"nutshell-right\">\n<h2>Independent project<\/h2>\n<p>This work was partly created in the context of a module at the University of Applied Science Osnabrueck called \u201cMobile Application Development\u201d as an individual project.\u00a0Areas of work: Interface Design, web development, app development, API design, design of a synchronization algorithm.<\/p><\/div>\n<\/div>\n<\/div>\n<h2>Personal conclusion<\/h2>\n<p>Regarding the creation of the app for iOS I was very pleased with the quick familiarization with XCode and especially Swift. Swift\u2019s syntax is refreshingly familiar, because it looks like JavaScript, notably ES6: For-in-loops, mutable and immutable variables and the missing semicolons \u2013 perfect. Looking at some Objective-C examples seemed painful in contrast.<\/p>\n<p>A nice moment was the development of my own <em>Card Deck View Controller<\/em>. After a lot of trial and error with available controllers and a first attempt to implement it myself, I nearly quit on this task. But after a short break and some then obvious changes here and there the problem disappeared and the UI behaved as I wanted it to behave.<\/p>\n<p>Interestingly, this project also was a reminder for me that like with every new language and environment it can be helpful to read the documentation available and only begin to experiment after that \u2013 to not get frustrated right at the start. Reading the docs is something one might forget easily in days of StackOverflow and Google.<\/p>\n<p>&nbsp;<\/p>\n<div class=\"single-content-tags\">\n<div class=\"responsive\">\n<div class=\"single-content-tags-icon\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/thomasebert.net\/en\/wp-content\/themes\/porto-folia\/images\/te_tag-symbol.svg\" class=\"single-tags-icon\" \/>\n\t\t\t\t\t<\/div>\n<div>\n<h3>Category<\/h3>\n<p><a href=\"https:\/\/thomasebert.net\/en\/pieces\/\" title=\"View all projects in category Pieces\" >Pieces<\/a> <\/p>\n<h3>In online portfolio since<\/h3>\n<p>2017<\/p>\n<h3>Time frame complete project<\/h3>\n<p>2012 \u2013 now<\/p>\n<h3>Time frame app development<\/h3>\n<p>August 2016<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Reliable time tracking giving you insights on iOS and in the browser.<\/p>\n","protected":false},"author":1,"featured_media":225,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[46,27,28,29,30,31],"class_list":["post-216","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pieces","tag-ios","tag-mongodb","tag-nodejs","tag-rest-api","tag-swift","tag-xcode"],"acf":[],"_links":{"self":[{"href":"https:\/\/thomasebert.net\/en\/wp-json\/wp\/v2\/posts\/216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thomasebert.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thomasebert.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thomasebert.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thomasebert.net\/en\/wp-json\/wp\/v2\/comments?post=216"}],"version-history":[{"count":12,"href":"https:\/\/thomasebert.net\/en\/wp-json\/wp\/v2\/posts\/216\/revisions"}],"predecessor-version":[{"id":294,"href":"https:\/\/thomasebert.net\/en\/wp-json\/wp\/v2\/posts\/216\/revisions\/294"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thomasebert.net\/en\/wp-json\/wp\/v2\/media\/225"}],"wp:attachment":[{"href":"https:\/\/thomasebert.net\/en\/wp-json\/wp\/v2\/media?parent=216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thomasebert.net\/en\/wp-json\/wp\/v2\/categories?post=216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thomasebert.net\/en\/wp-json\/wp\/v2\/tags?post=216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}