Why did we make a new Android app from scratch?

Comparison of old vs new android

Long story short: We just had to.

I am old enough to have used the 3.5-inch floppy drives. That also means that I have been around when the World Wide Web was a toddler. Then there was the internet access through the 56k modem that would block your telephone line during the whole ordeal.

Those were the days when browsers had no tabs.

At that time, I was mostly using the internet to communicate with friends across the country (or sometimes outside of it) via email. I would open several windows of the Internet Explorer, type in the desired addresses, dial-up, quickly click `Refresh` in all of them and then waited for them to load. Some of the windows were pointed to the ``. In those, I would click `New Mail Message` and waited for the forms to appear. Quickly, I would then disconnect from the Internet. After all, I was charged by minutes.

At Toggl, we believe that every minute counts.

Now, it was time to write some emails. Emails were not like chats those days. Emails were long. Full sentences. No emoji. And I used to write a lot of long ones. And every once in a while, after writing a page or two, I would unknowingly remove the focus from the input field and then press the `backspace` key, thinking I am erasing the last of my words. This accidental mistake effectively sent the last 15 minutes of my email into the abyss. No local storage, no backup on disk. Nothing.

Complete and utter data loss.

And that’s exactly why we had to make a new Android app from scratch. There is no worse feeling than have an app waste your time. Or data.

We take users’ data and time seriously.

And in all honesty, we’ve had some issues with synchronizing user data in our old Android app. I promise you, we’ve had devs working tirelessly round-the-clock trying to fine tune the synchronization cogs to prevent any future data loss.

Thomas Bertram once said:
If it ain’t broke, don’t fix it.

But it was broken. At least to a degree. The technical debt was too high. And in the meantime, the mobile team experienced some internal movement and so, in the end, it was just a few developers of which none has been a part of the old app. The decision had to be made. Either invest a lot of time in understanding and hopefully refactoring the old app, or just do it from scratch. When doing things from scratch, you get an opportunity to change things drastically. Maybe use another framework, or improve the architecture. Such changes are much harder when there is already a codebase to maintain. Especially not a good one.

By making the new Android app from scratch, not only did we make things work better, but we also made the app more intuitive to use. Not every user is the same and our app will never be able to appease everyone at the same time. But we are constantly trying to see what works for the majority of our users and we do that by listening. Every bad review is an opportunity for us to improve.

And what about my data?

During all that time, we haven’t fixed the old app’s syncing algorithm. Instead, we wrote a new one – a better one. From scratch. We sat together, analyzed down the pain points of the old one and devised a safer, more robust solution that does a much, much better job of data synchronization.

Rest assured, we really did our best to minimize the chance for you to lose any data.

And in the long run, I believe we have made a good choice.

Sticking to the old app would be like running across a minefield. You could maybe pull it off, but are you willing to take the chance?

A whole new world

As we said, doing a new Android app from scratch gave us another chance to make everything about our app better. Sure, in the beginning, the new app did lag behind a bit (feature-wise), but with the last update, which brought Undo & Notifications, it’s certainly up to par.

There’s also an easier way to add projects & tags to your entries using shortcuts, and we’re also working on a brand new Calendar Integration feature, allowing you to connect your calendar with the Toggl app and directly import your events as time entries.

But not only that, all of the old features have vastly improved too – Syncing is much better, Reports are cleaner, and overall, the app is quite more stable and easier to use.

And this is just the beginning.

The all-new Toggl for Android 


By On October 17, 2018

  1. Surface design it nicer and clearer now but … I allways feel lost with the job entry function (popup window) on the smartphone. Also an option for showing start time / end time instead of duration would be very nice. Just a suggestions, though.

  2. To bad the app still loads really slow.

    Also when I use multiple devices and open it android app at the end of the day, to stop my most recent task, there is an annoying bug.
    1. I open the app, it takes a while to load and the app still lists an older task ask active.
    2. I press stop, the endtime for the older task is altered and the app shows the most recent task as active and runnnig. So I press stop again.
    3. I have to edit the endtime of the older task manually.

    Sometimes when I open the app, I have to manually refresh it, otherwise it keeps showing the old task.

  3. Well.. I *still* waste time on your *new* app because of the color schema. It’s so washed out, that it’s hard to identify things I’m looking at.
    Make it more contrasty. Very light grey background with white items on top doesn’t really work.
    Currently actively running item is not standing out of the list that is in the background.
    Day separators just blend with time entries too much.

    You should have a flag to switch those balloons/tips off. super annoying, and intrusive.
    At the moment, it’s impossible to enter time entries manually while running the time.

  4. What will happen to the Android Wear app? One of the main reasons why I chose toggl was that I could use it from my watch – I’d love to see it supported by the new app.

  5. Understandable. The new app is good! My main suggestion is you adopt a more ‘material’ design scheme inline with other Google apps.

    • Hi there! Glad you like the new app 🙌 This is actually something we’re thinking of doing for some parts of the new app that could use a bit of a makeover – stay tuned!

  6. Out of curiosity, why did you make it an entirely new package in the Play Store? Is there a limitation on how different the code can be for an update?

  7. Yes, this is all good and understandable. But why *exactly* is there a new app? Why not replace the old version with the new one. Yes, this is a big step, but doable. There are beta channels for this. The version jump can be resolved.
    So, this blog post is well written, but it just does not explain, why there is a new app in the store.

  8. Whilst overall I like the new app, the lack of a widget in this version is a deal breaker, so I’ll continue using the old one as long as I can.
    With the new one, I noticed at least one thing I didn’t like: the animations are too slow. I enjoyed the post either way.

    • Hey Ben, really glad you like the new app (even though it still has some shortcomings) 🙌. And yeah, the widget is still missing unfortunately, but do know that the team does have plans for it, though they are pushed to next year. Same goes for animations, they are slower (and not smooth enough) than we would like them to be, and we’re definitely going to change that next year. Btw, since you’ll be using the old app, please take note of the first paragraph of this page, so you can avoid problems when (or if) switching to the new app and potential syncing issues!

  9. Yeah, but the new one sucks. You’ve killed out the ability to see any useful breakdown of hours in reporting tab. All you show is a big ugly pie chart. The click path seems longer to get an activity going and it just seems sluggish compared to the previous version. I had been an ardent Toggl user since 2016, recommended it to others for the great experience both mobile and desktop but the new version has sent me packing.