How I built Progress App – Time Tracker

Identify the Problem

I’d like to think that I’m no different than most of the developers out there. We identify a problem that we encounter and automatically begin thinking of possible solutions.

My problem was a simple one, this time. I wanted to start a side-project ( if you must know – it failed half way through ), but this time, after reading a couple of articles about side-projects, I decided to pay attention to how much time I spend on my side-projects. And I’ve always wanted to know just how much time does something take up exactly. It’s easy to think “ohh it will take me just 3 days”, then spend almost 2 weeks on a project (like when building this application), and finally just loose track of your time completely ( for example now I have no idea how long did it actually take me to build the Progress App ), sure I can do some simple date-hour-calculation “I worked from A date to  B date about C hours a day, which means that I worked D hours”, but that is just not good enough, and it gets even worse when you have a very flexible schedule (like I’ve always had), because you manage your own work. I don’t want to repeat the “3 days to 2 weeks” mistake ever again! Without simple time tracking, I know that I will get lost again and again. This just had to stop!

Search for a Time Tracker

If I would build an application for each problem that I encounter, I would have a lot of problems and close to no solutions. Instead I use the search and gladly buy solutions. My initial search was on the Android Market, because I own a Samsung Galaxy S3 ( we’ll come to the “How did an Android app become an iPhone app?” question later ), and I was confused. Not a single application did that seemingly simple thing. Sure, there are time trackers for all sorts of things, egg timers, running-tracker buddies, freelancer time trackers (like harvest), etc. I didn’t need all that complexity. I wanted a couple of labeled chronometers. Was it too much to ask ? I guess so.

I must admit, that I might have ignored a couple of applications out there. But even if I have, it just means that I reached a certain level of frustration and decided not to bother anymore. Moreover, they probably didn’t fit to my “Simple application” criteria,  because really, I was going to give somebody a 1$ for a simple application, nobody wanted my $.

Define a Solution

After all the frustration, the defining the solution was easy. A simple application that lets me  time my projects/tasks. Emphasis on simple. And of course I should be able to delete tasks, edit the labels and reset their timers.

Right now I’m timing how long does it take me to write this article. I called the timer “Writing Article”. When I’m done with writing, I’ll just stop the timer and see how long did it take me to write all this. The next time I’ll write an article, I’ll reset the timer and see how long is that article going to take. And so on. This was the solution I was looking for.

Fixing The Problem

For the past year I’ve been building applications with Appcelerator Titanium, which has been a very… let’s say “dynamic” experience, but I’ll talk about that another time. For now – all you need to know is that Titanium promises a solution to build cross-platform applications, and because I’m no good in Objective-C (and because I have an Android phone) I decided to build my application in Titanium (with JavaScript). So I did.

Android Idea, iPhone App

What started out as an idea for the Application for my Android phone had just shifted into an iOS Application idea. How? It’s simple, really.

From my experience Android market is a poor place (in comparison with Apple App Store). Applications just don’t sell, users are dissatisfied a lot more, and paid applications aren’t popular. Even further (I know I said I wouldn’t talk about it here) Titanium is just no good for Android. All that combined, and I just didn’t see the value of investing another 25$ for a marketplace membership (which isn’t expensive at all, after Apple’s 99$). 

Even further. Android applications require a lot more work, not just because of Titanium, but because of Android. Android is a nice, open operating system, but it comes with it’s own set of problems. For example if you think responsive design is hard, try doing responsive apps, that have to account for all the different screen sizes and systems that the application should be run on. I have no idea how real android developers actually get by.

So I had an idea for Android App, I built it for iOS, and I’m using it alone (with 2 other peeps) on my Android, because after all, I wanted to track my time!

 

Conclusion

My girlfriend is a Designer/Illustrator, so I had it easy. I asked her to make a nice icon/splash screen and the UI Design. We gave the design a lot more thought than I initially anticipated, but in the end, I think we built a nice little application.

At this point, I’m not sure if I am ever going to publish the application on Google Play store, because of (again) Appcelerator Titanium, the application isn’t just as responsive as I’d like it to be (as in – you have to wait a few ms until a tap event is registered) . I believe that the application should provide value if it’s being sold, and I think that the slight lag (that I’m okay with, but I didn’t buy the application from someone else) defeats the feel of the application a bit. But releasing it for free on Android market wouldn’t just be fair to iOS users, so – Android, you lost yet another app.

It took 6 days for App Store to approve my application, so here it is:

Progress App Icon 

Progress App: https://itunes.apple.com/us/app/progress-app/id594906155?ls=1&mt=8

 

8 thoughts on “How I built Progress App – Time Tracker

  1. So, you are trying to use a tool (Appcelerator Titanium), which doesn’t do what you want, yet you blame Android (” Android, you lost yet another app.”). What???

    Obviously, you ARE “different than most of the developers out there”. Most devs would have used native tools, not some wannabe everything to everyone tool.

    1. The tool does exactly what I want. I built an application with it. The problem is that the tool turned out to be too slow for Android (not blaming Android on the performance at all, I am not going to build an application in Titanium again).

      I’m not blaming Android itself for anything. I’m just saying, that I don’t see the benefits for me to create all the graphics, sign up and publish for Android because of the state of Android ecosystem. Which is sad, because I own an Android myself.

      Now everyone has a right to their opinion, but you don’t even have the guts to use a real name/nick name, so my guess is that you’re yet another Android crazy person, who just runs around the net ranting about everything. And well – that exactly proves my point. Users are the same (although I’m unsure if you’re a developer or not, but then again, I don’t really care).

  2. I don’t use my real name because I don’t want one of the crazies you mention to come after me IRL because I hurt his feelings.

    I’m not one of those crazies. I just don’t understand how you can be upset with Android or the Android ecosystem if some tool that _you_ want to use doesn’t do what you want it to do.

    “At this point, I’m not sure if I am ever going to publish the application on Google Play store, because of (again) Appcelerator Titanium, the application isn’t just as responsive as I’d like it to be (as in – you have to wait a few ms until a tap event is registered) .”

    Clearly, you’re blaming the tool.

    Look, I’m not being a jerk, I’m just saying, you cannot blame the ecosystem if it really is a problem with titanium. If you’re not happy with the ecosystem (Android users, not buying apps, etc…) that’s fine. But don’t blame it because your tool sucks.

    1. You’re a bit crazy to think some crazy is going to go after you IRL after a comment on some blog :D

      Anyhow. You’re right, I am blaming the tool – for the most part. I clearly have to practice my writing to be more structured and easier to understand.

      What I mean was this – I am definitely blaming the tool for it’s responsiveness (in ms) in Android system. No doubt about it. But in addition of the responsiveness errors of the tool, there is the Android ecosystem.
      Which means that I have to spend hours on trying to find out whether or not I can help the responsiveness on Android side, if It can be helped, I have to fix it ( which would be okay, if people would be as willing to buy apps in the market ), but I also have to provide all kinds of graphics for all kinds of screen sizes (for the app to look nice on all devices), and Android users are generally more furious and less willing to pay. This is way I said that I don’t know how real Android (with Java) developers get by. They have to produce all that for such variety of devices and users who are not willing to pay (in comparison with Apple users at least). I admire Java developers for their skill and patience.

    1. Thanks for that, but Titanium isn’t like PhoneGap, where I can just use any JS, Titanium is compiled and uses real and native android APIs. I’ve learnt my lesson really, you can’t build apps for Android with Titanium. Well technically you can, and I could probably refactor my code a lot, and maybe (just maybe) get it working properly, but I don’t think I’m going to do that.

      But I’ll definitely take a look at it if someday I decide to build with PhoneGap :)

  3. Hey, just wanted to say thanks for the app! Very simple and it does exactly what I need to track time for later entry into the company PPM system.

  4. Also I am very statisfied with the Progress App for time tracking. Please allow me to share my thoughts about some improvements to make without making it less userfriendly or making it more complex. I’d like to have the following features added:
    - The possibility to change the order of activities like is e.g. common in many TODO-Apps. I’d always like to have the most important activity/activities at the top which is not possible in the current version than by removing all that are in between.
    - The possibility to delete an activity via a ‘swipe’, similar to the way you can delete an email in the iOS email-App.
    I hope you are able to implement these features in a next version. Thanks in advance!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">