搜索插件、代码仓与 APP 分类

GitHub 代码仓nyxkn/meditation

冥想

Android 的必备冥想计时器

冥想 项目封面
星标
58
复刻
9
最近推送(UTC)
2024年12月6日
项目状态
未归档

原始 README

以下为英文项目原文快照,最新内容请访问 GitHub。

Meditation

This is a meditation timer. Minimalistic, reliable, and truly elegant.

Get it on F-Droid

Get it on Google Play

Or download the APK directly from GitHub:

Features

Shield: GitHub version Shield: F-droid version

  • Simple, elegant, and intuitive
  • No distractions - only the essential features
  • Beautiful assortment of bell and gong sounds
  • Custom volume adjustment of the bell sounds
  • Reliable countdown timer
  • Pre-meditation delay
  • Intermediate meditation intervals
  • Free and open-source software

Screenshots

     

Description

Meditation is a truly minimalistic countdown timer for meditation, with a clean user interface and no clutter. The minimalism of the app embodies meditation's actual purpose.

A notable feature of the app is the ability to customize the volume of the notification bells independently of system volume. This allows you to set a predefined volume so that the sounds will reliably play at the same loudness every time. No more mid-meditation worrying that you remembered to turn the volume up!

Another important feature is for the timer to be as reliable as possible, to ensure an accurate meditation time and prompt ending sound notification. This is achieved by starting a foreground service and disabling battery optimization.

Reliability is of extreme importance to a meditation tool in order to eliminate all possible worries about the timer not behaving correctly. Just press the button and start!

Donations

If you find this project helpful and you feel like it, throw me some coins!

And drop a star on this repo :)

Buy me a coffee

Liberapay

Support me on ko-fi

Paypal

Bitcoin: bc1qfu5gk78898zdcxw372unmwua0yd5luf3z60sgq

Technical notes

An important feature to implement was to have the volume of the notification bells be consistent and reliable. In other apps, the volume is tied to the system volume, implemented either as using the system volume setting directly, or as a modifier thereof. Both approaches are flawed and will lead to inconsistent volumes if the system volume changes or if you had forgotten to set it to the desired level before starting the timer. With my approach the app makes use of a configurable absolute value, so that the sounds play consistently at the same volume no matter what.

Another issue to solve was the reliability of the timer timeout event, making sure it happens at exactly the right time. For whatever reason, this is a ridiculously complex problem on mobile devices. There are continuous "improvements" to attempt to extend battery life, that make it really hard to ensure that a time-critical task happens at the right time. This app will make use of all possible tricks to ensure it is reliable. What I settled on was a combination of a foreground service and disabling battery optimization. This allows notifications to be sent reliably at the correct time. If that still doesn't work, you also have the option of keeping the screen on through wakelock.

Credits

Audio files

Here's a listing of the original audio files that each asset was derived from. They were all modified to improve cohesion.

Other
  • Enso.svg (CC0): used in the making of the app icons.

License

Source code

All source code is licensed under the GPL-3.0-only License.

This program 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, version 3.

Assets

All assets (images and audio files) are licensed under the CC-BY-SA 4.0 License.

This includes everything in the assets and media folders and in android/app/src/main/res.

Third-party

This project is developed using the Flutter framework, which is licensed under the BSD 3-Clause License.

Additional licensing information on all of the Flutter modules that are being used can be found in the in-app About screen.

nyxkn GitHub avatar
GitHub 作者

nyxkn ↗

语言DartKotlinRubySwiftObjective-C

依赖Flutter组件

使用的依赖

依赖清单 17 项

App 分类

如何选择适合项目的代码仓?

先按使用场景筛选,再比较项目活跃情况,最后到原始仓库核对使用要求。

  1. 通过仓库名、作者或描述搜索,再按技术分类缩小范围。
  2. 结合星标、复刻与最近推送比较项目;星标反映社区关注,不代表质量保证。
  3. 使用前在 GitHub 核对 README、许可证与 Issues。

来源与维护

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗