Giter VIP home page Giter VIP logo

uhabits's Introduction

Loop Habit Tracker

Loop is a mobile app that helps you create and maintain good habits, allowing you to achieve your long-term goals. Detailed graphs and statistics show you how your habits improved over time. It is completely ad-free and open source.

Get it on Google Play Get it on F-Droid

Screenshots

Main screen Edit habit Habit strength Habit history and streaks Widgets Night mode

Features

  • Beautiful, minimalistic and lightweight interface. Loop has an elegant and minimalistic interface that is very easy to use, even for first-time users. Highly optimized for speed, the app works well even on older phones.

  • Habit score. Loop has an advanced formula for calculating the strength of your habits. Every repetition makes your habit stronger and every missed day makes it weaker. A few missed days after a long streak, however, will not completely destroy your progress, unlike many other don't-break-the-chain apps.

  • Flexible schedules. In addition to daily habits, Loop supports habits with more complex schedules, such as 3 times per week or every other day.

  • Reminders. Schedule notifications to remind you of your habits. Each habit can have its own reminder, at a chosen time of the day. Easily check or dismiss your habit directly from the notification.

  • Widgets. Be reminded of your habits whenever you unlock your phone. Colorful widgets allow you to track your habits directly from your home screen, without even opening the app.

  • Take control of your data. If you want to further analyze your data, or move it to another service, Loop allows you to export it to spreadsheets (CSV) or to a database file (SQLite). For power users, checkmarks can be added through other apps, such as Tasker.

  • No limitations. Track as many habits as you wish. Loop imposes no artificial limits on how many habits you can have. All features are available to all users. There are no in-app purchases.

  • Completely ad-free and open source. There are no advertisements, annoying notifications or intrusive permissions in this app, and there will never be. The app is completely open-source (GPLv3).

  • Works offline and respects your privacy. Loop doesn't require an Internet connection or online account registration. Your confidential data is never sent to anyone. Neither the developers nor any third-parties have access to it.

Installing

The easiest way to install Loop is through the Google Play Store or F-Droid. You may also download and install the APK from the releases page; note, however, that the app will not be updated automatically. To build this app from the source code, see build instructions.

Contributing

Loop is an open source project developed entirely by volunteers. If you would like to contribute to the project, you are very welcome. There are many ways to contribute, even if you are not a software developer.

  • Report bugs, suggest features. The easiest way to contribute is to simply use the app and let us know if you find any problems or have any suggestions to improve it. To report a problem, please create a new bug report. To request a new feature or vote on existing feature requests, please visit our GitHub Discussions page. If you would like to receive the newest versions of the app earlier than everyone else, join our open beta on Google Play.

  • Spread the word. If you like the app, share it with your family, friends and colleagues. You can also rate and review the app on Google Play Store, to help other users find it more easily.

  • Translate the app into your own language. If you are not a native English speaker, and would like to see the app translated into your own language, please join our open translation project. If the translation is already completed, you are also very welcome to join and proofread it.

  • Write some code. If you are an Android developer, you are very welcome to contribute with code. Please see the guidelines.

License

Copyright (C) 2016-2021 Álinson Santos Xavier [email protected]

Loop Habit Tracker is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Loop Habit Tracker is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

uhabits's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uhabits's Issues

Add option to only count as streak checked days

If we have a habit to be checked 1 time for X days, and we check that habit one time only, we will see on the streak graph that we will have an X days streak for that habit. I think it will be more accurate to count as streak only the checked days.

For example: we have a habit to be checked 1 time for 7 days. I check that habit one time. I would expect a 1 day streak not a 7 day streak.

What do you think?

Repeating interval

A "repeat every X days" interval would complement the current one, since it's better suited for some habits, as the one we have now.

Import data from HabitBull

HabitBull is one of the most popular habit apps on Android and iOS. It does allow to export habits into a .csv file. Would be great, if Loop could import them.

Add "reasons" on habit creation

Reading the reasons that we wrote when we created the habit would help to avoid skipping them. For example, Rewire adds three fields and a + button to add more.

photo_2016-03-20_16-34-03

Allow user to pick Monday or Sunday as the first day of the week

The individual habit statistics would look more familiar to Europeans, if the "saturday" and "sunday" would be at the bottom and "monday" at the top (see here for clarification). A setting, to specify the beginning of the week, could easily correct that.

The calendar view is also somehow irritating, because the months name isn't above the column, where the month actually starts, as shown in the picture above.

suggestion: add habit behavior (positive, negative)

A feature where you can add positive or negative habits. You also can filter/group your habits. Negative habits maybe get an achievment for not doing this habit for X days..

example: achievment for not "smoking" since may (habit of user), or for 3 days etc.

Please add it to F-Droid

Seems like a wonderful app that screams to be published on F-Droid! 🙀
Please also add a button with the F-Droid link like done for GooglePlay.

App crashes when checking tasks

The app crashes for me when trying to check a task as done. There's no option to send an error report so I'm not sure what else I can add, but I'm running on CM13 on the nexus 10.

Reset habits

Reseting the progress of habits through multiple selection (like it's already implemented with colors) would be nice to have.

Implement some basic automated user interface tests

Loop currently has no automated testing whatsoever. It would be nice to have some basic user interface tests for the most common actions performed on the app, such as creating a new habit and toggling repetitions.

Display year in all graphs

Currently, years are only displayed in the history view. It would be nice to have them displayed also in other graphs.

Changes are not saved after screen orientation change

Test case:

  • open "Create habit" or "Edit habit" dialog,
  • trigger configuration change (screen rotation, h/w keyboard appearance, etc.),
  • input parameters and press "Save".

Result:
The dialog disappears, no changes saved, no errors shown.

Name of the month does not match column

Currently, the name of the month is displayed in the column immediately after the one that contains the first day of the month. It would be better if the name of the month were displayed in the column that contains that day instead. See this screenshot.

Allow user to specify which days of the week should a habit be repeated

Great App!
I have suggestion:
It would be great to have additional schedule for active days of the habbit tracking- example to create a habit to write status report for a day - work week (Mon-Fri) by 9pm. It would have a reminder like current ones but it would track this every day only in selected days of a week.

Import data from CSV

It is currently possible to export data to CSV, by long-pressing a habit, then selecting the appropriate option from the menu. It would be nice to also be able to import data, using the same format. I would prefer not having a new permission on the app, if possible.

Error when displaying widgets for deleted habits

Currently, after a habit is deleted, its widget keeps displaying old information. Clicking the widget sometimes makes the app crash. After a habit is deleted, the app should display a message on the widget saying "habit not found".

Steps to reproduce:

  1. Create habit
  2. Create a checkmark widget for the habit
  3. Delete habit
  4. Tap the checkmark widget

Description of a habit

It would be very handy to have a way to add a small description of a habit, when adding it. F.i. the habit "meditation" could have the description "15 mins after getting up", to specify it more and keep the habit name as short as possible.

Add achievements

I suggest adding achievements with google play services.
Example: The user completes a habit for a whole week

This would also allow for saving progress and using the app across multiple devices.

Import data from other habit-tracking apps

Many potential users of this app have already been using other popular habit-tracking apps for a long time, and might not want to switch unless they can migrate their data over. It would be interesting if, in addition to importing data using our own native format, we could also import data generated by other popular apps.

Mark previous day habit has done

Hi!

First of all, thanks for developing this great app!

Could it be possible to add one or two days in the past in the main window, so that if you forgot to tick an activity the day before, you can still do it in the morning of the following day for instance?

I'm used to check my habits done for the day the following morning, and I realized it's currently impossible to do so with current version of the app (1.2.0 in F-Droid).

Thanks!

Add quick selections for commonly used habit frequencies, such as "every day" and "every week"

The current "create habit" dialog asks the user for a period of time and how many repetitions should be performed. For new users, it is not immediately clear how does this work. Also, for most of the habits, this much flexibility is not really necessary.

As suggested in #1, the dialog could have some quick selections, such as "every day" or "every week", in addition to a "custom" option. Selecting "custom" would then hide the quick selections, and reveal the current, more advanced "x repetitions in x days" form.

Add an option on the settings screen to export all data as CSV

If a user wants to export data for all the habits, they must manually select each of the habits, and then press the menu. It would be better if there was an option on the settings screen where the entire habit data could be exported with one click.

Allow users to export data from the statistics screen

Currently, to export data, the user must select the habit on the main screen by long-pressing, then open the overflow menu. This selection operation is somewhat unusual and can be hard to find. It would be better if there was an entry on the statistics screen menu, where it can be easily seen.

Import data from Rewire App

The Rewire App in the official Android store is very much alike this app. I've used it for a couple of weeks and now that I discovered this free alternative I'd like to have a way of importing Rewire's data, so that I don't have to start at 0 with my streaks.

Global reminder

Besides habit specific reminders, a global one, to tick off habits at a user specified time, would greatly improve the chance of using Loop on a regular basis.

Allow other apps to put checkmarks

In many situations, other automation apps, such as Llama or Tasker, could add the checkmarks automatically for the user. For example, a user could create a location-based trigger on Llama or Tasker that would add a checkmark on a certain habit every time they arrive the gym.

This would require us to implement custom intent filters in our app, and write some documentation on the wiki, explaining how to set everything up.

I can't import project!

Hi, thanks for this great project but i can't import this and show me this error 😞 please help me. i need this project for many tutorials.
error image :
17

How to fix it?

Date is incorrectly incremented in History view

In the morning (and most of the day?) the view is ok (the first image), but in the evening the dates are incremented (the second image):
correct
incorrect
A history editor is shown, but 'History' view looks the same.

My guess is that happens at UTC midnight (which is 4 hours before my local midnight - my timezone is UTC+4), but I forgot to check it at 8 p.m..
After my local midnight a new grey square appears and everything goes back to normal.

Display more information on checkmark widget

Currently, the checkmark widget shows only a checkmark and the name of the habit. It would be nice to show additional information, such as the current streak length, or the current habit score. This could also be implemented as a separate widget.

Write unit tests and documentation for all models

The app is currently lacking unit tests and documentation for most classes. It would be nice if the models, at least, were covered by tests before the next release.

  • Checkmark
  • CheckmarkList
  • Habit
  • Repetition
  • RepetitionList
  • Score
  • ScoreList
  • Streak
  • StreakList

Increase width of name column according to screen size

If in the main overview the name of a habit is too long to fit one line, then it should be trimmed with an indicator like "…" at the end of a word to maintain consistency throughout all habits.

Currently, the normal view on my device shows 4 days, the widescreen view entire 11! I think, that it would be more practical to expand the space for the habit's names in the widescreen view, so that only 7 days, instead of the 11, are shown. As a result, you'll get a better overview over habits with longer names.

The space for a habit's name is in my case (OnePlus X with FullHD Resolution) in the widescreen view a little bit smaller than in the normal view. Is this by design?

Improve streak view

The current streak view could use some improvement. For example, it could display both the beginning and the end date of each streak, along with the length. Also, long streaks are eventually pushed back and disappear from the main screen. The best streaks should be permanently visible.

Circumstantial habit support

There are some examples of habits that only occur on certain conditions:

  • Taking the stairs instead of the lift
  • Arrive early to a meeting...etc

You probably cannot predict how many meetings will you have every week, or how many chances to take the stairs will you have in a week (or even in a day). What would be great is the possibility to check a habit when it occurs. Habitica makes it easy to track this kind of habits, here's an example:

1 _099

"Puntaje" in this context means "habit strength". In this example the habit label could be "take the stairs", we would tap + if we decide to take the stairs or - if we take the lift. Each tap on + or - modifies habit strength.

Do you think this is a good way to support this kind of habits? I've been using it for a few months and I like it a lot.

Allow data to be stored externally, so that other apps can sync it

This would allow apps like Syncthing to sync the data across devices.

The idea here is not making backups or exporting the data (which will be nice too, but that would be for another issue), the idea is having all the habits data on a directory we choose. That way, when Syncthing (or another app) notices the changes, it will update the files on the other devices automatically and because the data is not in an exported format we won't have to import it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.