Rename drip to drip.

This commit is contained in:
BloodyMarie
2022-06-19 16:41:52 +02:00
parent 52094573e2
commit 670857f5ff
8 changed files with 114 additions and 82 deletions
+25 -20
View File
@@ -1,4 +1,4 @@
# drip, the open-source cycle tracking app # drip. the open-source cycle tracking app
A menstrual cycle tracking app that's open-source and leaves your data on your phone. Use it to track your menstrual cycle and/or for fertility awareness! A menstrual cycle tracking app that's open-source and leaves your data on your phone. Use it to track your menstrual cycle and/or for fertility awareness!
Find more information on [our website](https://bloodyhealth.gitlab.io/). Find more information on [our website](https://bloodyhealth.gitlab.io/).
@@ -29,11 +29,9 @@ Install [Android Studio](https://developer.android.com/studio/) - you'll need it
Make sure you are running Node 10 and npm 6.x (newer versions won't work). It's easiest to switch Node versions using `nvm`, here's how to do it: Make sure you are running Node 10 and npm 6.x (newer versions won't work). It's easiest to switch Node versions using `nvm`, here's how to do it:
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
$ nvm install v10 $ nvm install v10
#### 3. Get this repository #### 3. Get this repository
Clone it with SSH Clone it with SSH
@@ -58,16 +56,19 @@ Open Android Studio and click on "Open an existing Android Studio project". Navi
Either start a [virtual device in Android Studio](https://developer.android.com/studio/run/emulator) or [set your physical device like your Android phone up](https://developer.android.com/training/basics/firstapp/running-app) to run the app. Either start a [virtual device in Android Studio](https://developer.android.com/studio/run/emulator) or [set your physical device like your Android phone up](https://developer.android.com/training/basics/firstapp/running-app) to run the app.
1. Open a terminal and run 1. Open a terminal and run
``` ```
$ npm run android $ npm run android
``` ```
2. To see logging output, run the following command in another tab: 2. To see logging output, run the following command in another tab:
``` ```
$ npm run log $ npm run log
``` ```
3. Run the following command and select enable hot reloading (see https://facebook.github.io/react-native/docs/debugging.html): 3. Run the following command and select enable hot reloading (see https://facebook.github.io/react-native/docs/debugging.html):
``` ```
$ adb shell input keyevent 82 $ adb shell input keyevent 82
``` ```
@@ -77,52 +78,57 @@ Either start a [virtual device in Android Studio](https://developer.android.com/
#### 6. Run app on iOS #### 6. Run app on iOS
Minimum system requirements to run iOS app are as follows: Minimum system requirements to run iOS app are as follows:
- MacOS 10.15.7 for Mac users - MacOS 10.15.7 for Mac users
- Xcode 12.3 (I assume, that only command line tools might be enough) - Xcode 12.3 (I assume, that only command line tools might be enough)
1. Install XCode dependencies by running the following command from the root project directory: 1. Install XCode dependencies by running the following command from the root project directory:
``` ```
$ cd ios && pod install && cd .. $ cd ios && pod install && cd ..
``` ```
2. To run app either open drip workspace ('drip.xcworkspace' file) with XCode and run "Build" or run the following command: 2. To run app either open drip workspace ('drip.xcworkspace' file) with XCode and run "Build" or run the following command:
``` ```
$ npm run ios $ npm run ios
``` ```
3. If you are building the app with XCode make sure you are running this as well: 3. If you are building the app with XCode make sure you are running this as well:
`$ npm start` `$ npm start`
### Troubleshooting ### Troubleshooting
#### [MacOS] Java problems #### [MacOS] Java problems
Make sure that you have Java 1.8 by running `java -version`. Make sure that you have Java 1.8 by running `java -version`.
If you don't have Java installed, or your Java version is different, the app may not work. You can try just using Android Studio's Java by prepending it to your `$PATH` in your shell profile: If you don't have Java installed, or your Java version is different, the app may not work. You can try just using Android Studio's Java by prepending it to your `$PATH` in your shell profile:
``` ` $ export PATH="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin:${PATH}" `
$ export PATH="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin:${PATH}"
```
Now, `which java` should output `/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java`, and the correct Java version should be used. Now, `which java` should output `/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java`, and the correct Java version should be used.
#### [MacOS] Ninja #### [MacOS] Ninja
If `npm` says `CMake was unable to find a build program corresponding to "Ninja".`: If `npm` says `CMake was unable to find a build program corresponding to "Ninja".`:
``` ` $ brew install ninja `
$ brew install ninja
```
### [MacOS] adb not on the path ### [MacOS] adb not on the path
If you get error messages about `adb` not being found on your path: If you get error messages about `adb` not being found on your path:
``` ` $ ln -s ~/Library/Android/sdk/platform-tools/adb /usr/local/bin/adb `
$ ln -s ~/Library/Android/sdk/platform-tools/adb /usr/local/bin/adb
```
### [MacOS] and XCode 12.5 ### [MacOS] and XCode 12.5
If you run XCode 12.5, more likely you'll have problems building app for iOS. Please use the following fix: https://stackoverflow.com/a/67320887. If you run XCode 12.5, more likely you'll have problems building app for iOS. Please use the following fix: https://stackoverflow.com/a/67320887.
If you experience any further issues, please feel free to check out the following threads: If you experience any further issues, please feel free to check out the following threads:
- [react-native run-ios build failure on XCode 12.5 beta](https://github.com/react-native-community/cli/issues/1365) - [react-native run-ios build failure on XCode 12.5 beta](https://github.com/react-native-community/cli/issues/1365)
- [Xcode 12.5 troubleshooting guide (RN 0.61/0.62/0.63/0.64)](https://github.com/facebook/react-native/issues/31480) - [Xcode 12.5 troubleshooting guide (RN 0.61/0.62/0.63/0.64)](https://github.com/facebook/react-native/issues/31480)
### Clearing project cache ### Clearing project cache
If you would like to clear project cache and/or re-install project libraries, you can run clear script as follows: If you would like to clear project cache and/or re-install project libraries, you can run clear script as follows:
$ npm run clear $ npm run clear
@@ -141,12 +147,12 @@ For example, if you would like to clear android part of the project and re-insta
## Tests ## Tests
### Unit tests ### Unit tests
You can run the tests with: You can run the tests with:
``` ` $ npm test `
$ npm test
```
### End to end tests ### End to end tests
1. Check what testing device is specified in [package.json](https://gitlab.com/bloodyhealth/drip/blob/master/package.json) under: 1. Check what testing device is specified in [package.json](https://gitlab.com/bloodyhealth/drip/blob/master/package.json) under:
``` ```
{"detox": {"detox":
@@ -160,11 +166,7 @@ You can run the tests with:
4. Use the emulator on your machine to run it without heavy Android Studio, e.g. in `~/Android/Sdk/emulator` OR chose to run the emulator within Android Studio 4. Use the emulator on your machine to run it without heavy Android Studio, e.g. in `~/Android/Sdk/emulator` OR chose to run the emulator within Android Studio
4.1 Here run: `$ ./emulator -avd NEXUS_DEVICE_OR_WHATEVER_SPECIFIED_DEVICE` 4.1 Here run: `$ ./emulator -avd NEXUS_DEVICE_OR_WHATEVER_SPECIFIED_DEVICE`
4.2 You might need to specify the following environment variables in your zsh or bash file according to where you have it installed. You can find exact path in Android Studio (Android Studio Preferences → Appearance and Behavior → System Settings → Android SDK). After adding environment variables, you might need to restart your terminal or source the modified bash profile (i.e. "source ~/.bash_profile"). 4.2 You might need to specify the following environment variables in your zsh or bash file according to where you have it installed. You can find exact path in Android Studio (Android Studio Preferences → Appearance and Behavior → System Settings → Android SDK). After adding environment variables, you might need to restart your terminal or source the modified bash profile (i.e. "source ~/.bash_profile").
``` ` export ANDROID_HOME="/home/myname/Android/Sdk" export ANDROID_SDK_ROOT="/home/myname/Android/Sdk" export ANDROID_AVD_HOME="/home/myname/.android/avd" `
export ANDROID_HOME="/home/myname/Android/Sdk"
export ANDROID_SDK_ROOT="/home/myname/Android/Sdk"
export ANDROID_AVD_HOME="/home/myname/.android/avd"
```
5. For the first time you need to get the app on the phone or if you run into this error: 5. For the first time you need to get the app on the phone or if you run into this error:
`'app-debug-androidTest.apk' could not be found` `'app-debug-androidTest.apk' could not be found`
--> open a new 2nd tab and run (in your drip folder): `cd android and ./gradlew assembleAndroidTest` --> open a new 2nd tab and run (in your drip folder): `cd android and ./gradlew assembleAndroidTest`
@@ -174,12 +176,14 @@ Otherwise just open a new 2nd tab to run (in your drip folder) `npm run android`
Hopefully you see the magic happening clicking through the app and happy test results on your console :sun_with_face: ! Hopefully you see the magic happening clicking through the app and happy test results on your console :sun_with_face: !
## Debugging ## Debugging
In order to see logging output from the app, run `npm run log` in a separate terminal. You can output specific code you want to see, with: In order to see logging output from the app, run `npm run log` in a separate terminal. You can output specific code you want to see, with:
`console.log(theVariableIWantToSeeHere)` `console.log(theVariableIWantToSeeHere)`
or just a random string to check if this piece of code is actually running: or just a random string to check if this piece of code is actually running:
`console.log("HELLO")`. `console.log("HELLO")`.
## NFP rules ## NFP rules
More information about how the app calculates fertility status and bleeding predictions in the [wiki on Gitlab](https://gitlab.com/bloodyhealth/drip/wikis/home). More information about how the app calculates fertility status and bleeding predictions in the [wiki on Gitlab](https://gitlab.com/bloodyhealth/drip/wikis/home).
## Adding a new tracking icon ## Adding a new tracking icon
@@ -194,4 +198,5 @@ More information about how the app calculates fertility status and bleeding pred
5. You should be able to use the icon now within drip, e.g. in Cycle Day Overview and on the chart. 5. You should be able to use the icon now within drip, e.g. in Cycle Day Overview and on the chart.
## Translation ## Translation
We are using [Weblate](https://weblate.org/) as translation software. We are using [Weblate](https://weblate.org/) as translation software.
+2 -2
View File
@@ -1,4 +1,4 @@
{ {
"name": "drip", "name": "drip.",
"displayName": "drip" "displayName": "drip."
} }
+30 -3
View File
@@ -1,7 +1,7 @@
{ {
"labels": { "labels": {
"bleedingPrediction": { "bleedingPrediction": {
"noPrediction": "As soon as you have tracked 3 menstrual cycles, drip will make predictions for the next ones." "noPrediction": "As soon as you have tracked 3 menstrual cycles, drip. will make predictions for the next ones."
}, },
"home": { "home": {
"cycleDay": " day of your cycle", "cycleDay": " day of your cycle",
@@ -16,8 +16,35 @@
}, },
"settings": { "settings": {
"license": { "license": {
"title": "drip is an open-source cycle tracking app", "title": "drip. an open-source cycle tracking app",
"text": "Copyright (C) {{currentYear}} Bloody Health GbR\n\nThis program 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: https://www.gnu.org/licenses/gpl-3.0.html\n\nYou can contact us by drip@mailbox.org." "text": "Copyright (C) {{currentYear}} Heart of Code e.V.\n\nThis program 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: https://www.gnu.org/licenses/gpl-3.0.html\n\nYou can contact us at drip@mailbox.org."
},
"privacyPolicy": {
"title": "Privacy Policy",
"intro": {
"title": "Introduction",
"text": `This Privacy Policy sets out how the iOS app 'drip.' uses and protects your personal data that you generate and store within the app.`
},
"dataUse": {
"title": "Data use",
"text": `Drip respects and celebrates your privacy. There is no collection of usage data or personal information, no ads, no spyware. Drip can store data related to menstrual health locally on your device.
This includes:
settings
menstrual cycle tracking data
The data is used to display statistics and apply fertility awareness rules. This data cannot be accessed by other apps.
If you wish to delete all your app data you can do so by navigating to Settings, Data and Delete app data. This can also be done by uninstalling the app.`
},
"permissions": {
"title": "Permissions",
"text": "For using reminders in drip you need to allow push notifications. If you don't want to use this feature you simply don't allow notifications for the app."
},
"transparency": {
"title": "Transparency",
"text": "You can read through the source code of drip to ensure the given information is correct. The source code is like a recipe: It tells you how much and what kind of ingredients you need and how you prepare them to cook a tasty meal or program a funky app.\n\nBuon appetito!"
}
} }
} }
} }
+14 -14
View File
@@ -11,10 +11,10 @@ export const generalInfo = {
3. and menstrual bleeding 3. and menstrual bleeding
the app helps you identify in which phase of the menstrual cycle you are. the app helps you identify in which phase of the menstrual cycle you are.
drip makes period predictions for you and helps you apply NFP fertility awareness rules. But please remember that this app is made by humans, and humans make mistakes. Always think for yourself: "Does this make sense?" Remember, you don't need an app to understand your cycle! However, drip wants to support you and make period tracking easier, more transparent and secure. drip. makes period predictions for you and helps you apply NFP fertility awareness rules. But please remember that this app is made by humans, and humans make mistakes. Always think for yourself: "Does this make sense?" Remember, you don't need an app to understand your cycle! However, drip. wants to support you and make period tracking easier, more transparent and secure.
Please find more info on the sympto-thermal method in ${links.wiki.url}.`, Please find more info on the sympto-thermal method in ${links.wiki.url}.`,
noNfpSymptom: `The app allows you to track this symptom for your information, it is not taken into account for any calculation. On the chart you can check how often you track this symptom.` noNfpSymptom: `The app allows you to track this symptom for your information, it is not taken into account for any calculation. On the chart you can check how often you track this symptom.`,
} }
export default { export default {
@@ -22,7 +22,7 @@ export default {
title: `Tracking menstrual bleeding`, title: `Tracking menstrual bleeding`,
text: `Tracking menstrual bleeding allows you to know the beginning and the end of a menstrual cycle. text: `Tracking menstrual bleeding allows you to know the beginning and the end of a menstrual cycle.
After tracking at least 3 menstrual cycles, drip will give you an overview of After tracking at least 3 menstrual cycles, drip. will give you an overview of
· how long your cycles last on average (in "stats"), · how long your cycles last on average (in "stats"),
· whether the length of your cycles varied significantly (in "stats" and in bleeding predictions) · whether the length of your cycles varied significantly (in "stats" and in bleeding predictions)
· and predict your next 3 cycles with a range of 3 or 5 days (on home screen and "calendar"). · and predict your next 3 cycles with a range of 3 or 5 days (on home screen and "calendar").
@@ -42,13 +42,13 @@ Tracking how open or closed and how firm or soft the cervix feels can help deter
By default, the secondary symptom the app uses for NFP evaluation is cervical mucus, but you can change it to cervix in "Settings" -> "NFP Settings". By default, the secondary symptom the app uses for NFP evaluation is cervical mucus, but you can change it to cervix in "Settings" -> "NFP Settings".
· How to identify a fertile cervix? · How to identify a fertile cervix?
A fertile cervix is open and feels soft like your earlobes. In contrast, an infertile cervix feels closed and hard, like the tip of your nose. If the cervix feels anything other than closed and hard, drip takes it as a sign of fertility. On the chart, a fertile cervix is colored in dark yellow, and infertile cervix is colored in light yellow. A fertile cervix is open and feels soft like your earlobes. In contrast, an infertile cervix feels closed and hard, like the tip of your nose. If the cervix feels anything other than closed and hard, drip. takes it as a sign of fertility. On the chart, a fertile cervix is colored in dark yellow, and infertile cervix is colored in light yellow.
${generalInfo.chartNfp} ${generalInfo.chartNfp}
${generalInfo.excludeExplainer} ${generalInfo.excludeExplainer}
${generalInfo.nfpTfyReminder}` ${generalInfo.nfpTfyReminder}`,
}, },
desire: { desire: {
title: 'Tracking sexual desire', title: 'Tracking sexual desire',
@@ -58,7 +58,7 @@ ${generalInfo.cycleRelation}
${generalInfo.noNfpSymptom} ${generalInfo.noNfpSymptom}
${generalInfo.curiousNfp}` ${generalInfo.curiousNfp}`,
}, },
mood: { mood: {
title: 'Tracking mood', title: 'Tracking mood',
@@ -68,7 +68,7 @@ ${generalInfo.cycleRelation}
${generalInfo.noNfpSymptom} ${generalInfo.noNfpSymptom}
${generalInfo.curiousNfp}` ${generalInfo.curiousNfp}`,
}, },
mucus: { mucus: {
title: 'Tracking cervical mucus', title: 'Tracking cervical mucus',
@@ -77,7 +77,7 @@ ${generalInfo.curiousNfp}`
By default the secondary symptom the app uses for NFP evaluation is cervical mucus. By default the secondary symptom the app uses for NFP evaluation is cervical mucus.
· How to identify fertile cervical mucus? · How to identify fertile cervical mucus?
Tracking the feeling and the texture of your cervical mucus on a daily basis helps you identify changes of the quality of the cervical mucus. The values you enter for both feeling and texture of your cervical mucus are combined by drip into one of five NFP-conforming values. Tracking the feeling and the texture of your cervical mucus on a daily basis helps you identify changes of the quality of the cervical mucus. The values you enter for both feeling and texture of your cervical mucus are combined by drip. into one of five NFP-conforming values.
From lowest to best quality: From lowest to best quality:
· t = (dry feeling + no texture), · t = (dry feeling + no texture),
· ∅ = (no feeling + no texture), · ∅ = (no feeling + no texture),
@@ -87,13 +87,13 @@ From lowest to best quality:
On the chart, cervical mucus is colored in blue: the darker the shade of blue the better the quality of your cervical mucus. On the chart, cervical mucus is colored in blue: the darker the shade of blue the better the quality of your cervical mucus.
Please note that drip does not yet support "parenthesis values": According to NFP rules, you can qualify a cervical mucus value by putting parentheses around it, to indicate that it doesn't fully meet the descriptors of one of the five categories, and instead is in between. This functionality will be supported in the future. Please note that drip. does not yet support "parenthesis values": According to NFP rules, you can qualify a cervical mucus value by putting parentheses around it, to indicate that it doesn't fully meet the descriptors of one of the five categories, and instead is in between. This functionality will be supported in the future.
${generalInfo.chartNfp} ${generalInfo.chartNfp}
${generalInfo.excludeExplainer} ${generalInfo.excludeExplainer}
${generalInfo.nfpTfyReminder}` ${generalInfo.nfpTfyReminder}`,
}, },
note: { note: {
title: 'Notes', title: 'Notes',
@@ -101,7 +101,7 @@ ${generalInfo.nfpTfyReminder}`
${generalInfo.noNfpSymptom} ${generalInfo.noNfpSymptom}
${generalInfo.curiousNfp}` ${generalInfo.curiousNfp}`,
}, },
pain: { pain: {
title: 'Tracking pain', title: 'Tracking pain',
@@ -111,7 +111,7 @@ ${generalInfo.cycleRelation}
${generalInfo.noNfpSymptom} ${generalInfo.noNfpSymptom}
${generalInfo.curiousNfp}` ${generalInfo.curiousNfp}`,
}, },
sex: { sex: {
title: 'Tracking sex and contraceptives', title: 'Tracking sex and contraceptives',
@@ -119,7 +119,7 @@ ${generalInfo.curiousNfp}`
${generalInfo.noNfpSymptom} ${generalInfo.noNfpSymptom}
${generalInfo.curiousNfp}` ${generalInfo.curiousNfp}`,
}, },
temperature: { temperature: {
title: 'Tracking body basal temperature', title: 'Tracking body basal temperature',
@@ -140,6 +140,6 @@ ${generalInfo.chartNfp}
${generalInfo.excludeExplainer} ${generalInfo.excludeExplainer}
${generalInfo.nfpTfyReminder}` ${generalInfo.nfpTfyReminder}`,
}, },
} }
+1 -1
View File
@@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>en</string> <string>en</string>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
<string>drip</string> <string>drip.</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string> <string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
+6 -6
View File
@@ -1,4 +1,4 @@
Menstrual cycle tracking can help you understand your body symptoms and gives you insights into your menstrual health. Use drip for tracking your menstrual cycle and for fertility awareness. Unlike other menstrual cycle tracking apps, drip is open-source and leaves your data on your phone, meaning you are in control. Menstrual cycle tracking can help you understand your body symptoms and gives you insights into your menstrual health. Use drip. for tracking your menstrual cycle and for fertility awareness. Unlike other menstrual cycle tracking apps, drip. is open-source and leaves your data on your phone, meaning you are in control.
Key Features Key Features
• Track your bleeding, fertility, sex, mood, pain, and more if you want • Track your bleeding, fertility, sex, mood, pain, and more if you want
@@ -6,14 +6,14 @@ Key Features
• Get notified about your next period and required temperature measurements • Get notified about your next period and required temperature measurements
• Easily import, export and password protect your data • Easily import, export and password protect your data
What makes drip special What makes drip. special
• Your data, your choice. Everything stays on your device • Your data, your choice. Everything stays on your device
• Not another cute, pink app. drip is designed with gender inclusivity in mind • Not another cute, pink app. drip. is designed with gender inclusivity in mind
• Your body is not a black box. drip is transparent in its calculations and encourages you to think for yourself • Your body is not a black box. drip. is transparent in its calculations and encourages you to think for yourself
• Based on science. drip detects your fertility using the sympto-thermal method • Based on science. drip. detects your fertility using the sympto-thermal method
• Track what you like. Your period only or fertility symptoms, and more • Track what you like. Your period only or fertility symptoms, and more
• Open source. Contribute to the code, the documentation, translations and get involved with the community • Open source. Contribute to the code, the documentation, translations and get involved with the community
• Non-commercial. drip doesnt sell your data, no ads • Non-commercial. drip. doesnt sell your data, no ads
SPECIAL THANKS TO: SPECIAL THANKS TO:
• All the condriputors! • All the condriputors!
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"name": "drip", "name": "drip.",
"version": "1.2102.28", "version": "1.2102.28",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"name": "drip", "name": "drip.",
"version": "1.2102.28", "version": "1.2102.28",
"contributors": [ "contributors": [
"Julia Friesel <julia.friesel@gmail.com>", "Julia Friesel <julia.friesel@gmail.com>",