Android application which monitors Bitcoin, cryptocurrencies, cryptoassets and derivatives, triggering alarms according to user settings.
Supports 2 alarm types:
- Price Hit - Triggered when price crosses the alarm's upper or lower limit. One limit may be left empty to create an alarm with a single trigger.
- Price Change - Triggered when price changes more than X amount (in currency or percentage) in a specified time frame (e.g. 15 min). It uses a rolling time frame: price is fetched with a given update interval (e.g. 30 s) and compared with the price fetched one time frame ago (e.g. 15 min ago).
Sound and vibration are configurable globally, and individually for each alarm. Lists of exchanges, pairs and alarms are fully searchable, allowing quick setup and configuration. The alarm list behaves as your ticker, where you can reorder your alarms and directly change their limits. Alarms can also be set to snooze automatically on price retrace. Triggered alarms ring, displaying their status, until you turn them off. Just like an alarm clock.
Market data is retrieved directly from the exchanges via Wi-Fi or Mobile Data (if allowed). libdynticker is used to interface with the exchanges. Thus, Boilr supports all exchanges available on libdynticker, as all their pairs.
To create alarms Boilr uses libpricealarm.
Other libraries we use: changeloglib and UndoBar.
Check Boilr's website to see it in action: http://boilr.mobi Website source-code is available at boilr-site.
Bug reports, feature requests and general help questions should be submitted on Boilr's GitHub issues. Try being specific when choosing the right title and label for your issue.
You can browse through a FAQ by checking all issues labeled as questions.
Trouble | Solution |
---|---|
Alarm not updating when phone is sleeping. | Set Settings > Wi-Fi > Advanced > Keep Wi-Fi on during sleep to Always |
Permission | Reason |
---|---|
Read the contents of your SD card | Used to fetch your custom ringtones. |
Disable your screen lock | So you can turn off a ringing alarm without unlocking your device. |
Full network access | To fetch data from the exchanges. |
View network connections | To know whether you're using Wi-Fi or Mobile Data, allowing Mobile Data restriction. |
Run at startup | To grab your active alarms and start updating them. |
Control vibration | Allows vibration when an alarm is triggered. |
Prevent phone from sleeping | Used to keep showing the alarm triggered activity until you press the turn off button. |
New translations and reviews are much appreciated. If you have 10 minutes to spare just open Boilr @ Hosted Weblate and start editing. More info at CONTRIBUTING.md.
If you know how to program take a look at the open issues. Check for bugs or features you find interesting and feel free to take them into your hands. If you have any doubt just post your questions on the issue's comments. When done, open a pull request. We promise to review it quickly.
If you would like to add more exchanges to Boilr check libdynticker's contributing guide.
- Fill out the prerequisites for Android Maven Plugin.
- Install Android API 26 SDK and Android Support Repository.
mvn install:install-file -DgroupId=android -DartifactId=android -Dversion=8.0.0 -Dpackaging=jar -Dfile=$ANDROID_HOME/platforms/android-26/android.jar
mvn install:install-file install:install-file -Dfile=$ANDROID_HOME/extras/android/m2repository/com/android/support/support-annotations/22.1.1/support-annotations-22.1.1.jar -DpomFile=$ANDROID_HOME/extras/android/m2repository/com/android/support/support-annotations/22.1.1/support-annotations-22.1.1.pom
For now on you can use:
mvn package -P debug
to build an apk in debug mode.mvn package -P release
to build an apk in release mode, which will be optimized, signed and aligned.mvn android:deploy
to install the generated apk in any connected phones or emulators.
Note: mvn package
with no profile associated builds an unsigned release mode apk, unsuitable for deploy. It is meant for further processing by downstream projects like F-Droid.
adb logcat "ActivityManager:I AndroidRuntime:E Boilr:D *:S"
runs logcat with a nice filter to debug Boilr.
If you are no vi or emacs ninja you can use Eclipse to ease your work in Boilr.
- Install and configure the ADT plugin.
Install m2e-android.(Eclipse Mars already ships with Maven.)- Clone changeloglib.
3.1 Checkout tagv.1.5.2
withgit checkout v.1.5.2
.
3.2 Go toFile->Import->Existing Android Code Into Workspace
, import just what's in theChangeLogLibrary
directory and name the new project asChangeLogLibrary
.
3.3 In the project's Java Build Path remove source foldersrc
and addjava
. - Clone UndoBar.
4.1git checkout fcb99913808ee47a3803d3f800cbee6b7678ba21
4.2 Go toFile->Import->Existing Android Code Into Workspace
, import just what's in thelibrary
directory and name the new project asUndoBar
.
4.3 Right click in the project, go toAndroid Tools
and runAdd Support Library...
- Go to
File->Import->Existing Projects into Workspace
and select Boilr's git root directory.
Use Eclipse only for writing code. Always compile in the shell using Maven.
Note: we do plan to migrate to a Gradle build system and Android Studio IDE in the near future.
Boilr follows Semantic Versioning with the API being the user-interface.
Boilr code licensed under GNU GPL v3 or later. Copyright belongs to André Filipe Santos, David Ludovino and other contributors listed on GitHub, unless otherwise stated.
Concept, design, icon and artwork by Algazarra. Icon and artwork dual licensed under CC-BY-SA 4.0 International or GPLv3+. Third-party graphics' authorship and license information in AUTHORS.md.
Translators:
- Chinese: Jan Xie, Song and YFdyh000
- Czech: Jaroslav Lichtblau, Michal Čihař and Jirka Daněk
- French: Tuux, M for Momo and therealmarco
- German: Luca Rui
- Italian: Francesca Mautone and Mario Frasca
- Japanese: naofum
- Polish: Michal Pleban and agilob
- Russian: ryna Pruitt
- Spanish: Mariona Martinez and Luis Garcia
In case you wanna pay us a beer ;)
- BTC: 1PHuSWfuAwR6oz9qV93rTdMVozfM85Qqxx
- XMR: 43KcTwXw5D43YRE8MSG4D7X3S2kjU6ehBABucyKAVNYnKbNxpGWZ8zGbEhCq79N4ZGDtefU5w4AGoeR6eNB5yMbEPhAw3FT
- LTC: LUC5BRtvrJRTcp2LAP1XJe2h718rchQXuR
- ETH: 0xBFD1802F928db59324b67689D1186661a124FBcA