Compare commits

...

16 Commits

Author SHA1 Message Date
tina f4fa2a7c57 Reverts changes to app-modal and changes input window for notes on iOS 2024-10-01 21:24:30 +02:00
tina 4de32e3801 Merge branch 'main' into '650-long-text-in-note-hides-behind-keyboard-1.2402.16'
# Conflicts:
#   android/app/build.gradle
#   ios/drip/Info.plist
#   package.json
2024-10-01 15:20:11 +00:00
Lynn ae5f31015b Update README.md for M1 installations, fixed typo 2024-09-18 10:02:11 +00:00
Lynn c7104f7758 Update README.md for M1 installations 2024-09-18 10:00:33 +00:00
bl00dymarie 5bc6be7849 Merge branch 'Chore/Finetune-release-documentation' into 'main'
Chore: Clean up TOC and add fdroid documentation

See merge request bloodyhealth/drip!679
2024-04-10 16:01:52 +00:00
bl00dymarie e6c253f2cb Merge branch 'Chore/Update-run-script-for-which-iPhone-simulator' into 'main'
Chore: Update run script for which iPhone simulator

See merge request bloodyhealth/drip!680
2024-04-08 10:47:54 +00:00
bl00dymarie 06fab6d2ca Chore: Update run script for which iPhone simulator 2024-04-08 12:39:36 +02:00
bl00dymarie b44d4c57e1 Update file RELEASE.md 2024-04-02 11:57:53 +00:00
bl00dymarie f741562496 Merge branch 'main' into '650-long-text-in-note-hides-behind-keyboard-1.2402.16'
# Conflicts:
#   android/app/build.gradle
#   package.json
2024-02-19 16:02:40 +00:00
bl00dymarie a23278b9b2 Update version to 1.2402.16 2024-02-16 17:45:34 +01:00
bl00dymarie f170bf608b Differentiate keyboardavoiding behavior based on ios/android 2024-02-16 17:43:38 +01:00
bl00dymarie 1979005ca0 Allow more lines for "other" under mood, pain, sex 2024-02-16 17:43:32 +01:00
bl00dymarie 8badf0cabb Limit lines to 3 for symptom day boxes 2024-02-16 17:43:26 +01:00
bl00dymarie 216a6b73ee Add multiline to notes in edit view 2024-02-16 17:43:20 +01:00
bl00dymarie 90ad1cb12f Add KeyboardAvoidingView for visible TextInput 2024-02-15 17:38:08 +01:00
bl00dymarie 010cabcefb Allow scrolling in note text field 2024-02-15 17:37:15 +01:00
5 changed files with 108 additions and 44 deletions
+31 -1
View File
@@ -34,13 +34,31 @@ or clone it with HTTPS
git clone https://gitlab.com/bloodyhealth/drip.git git clone https://gitlab.com/bloodyhealth/drip.git
### 2. Node & yarn version ### 2. Node version
Make sure you are running Node 14 and classic yarn (v.1). It's easiest to switch Node versions using `nvm`, here's how to install NVM: https://github.com/nvm-sh/nvm#installing-and-updating. After installing nvm close the terminal and open it again to be able to use nvm. Make sure you are running Node 14 and classic yarn (v.1). It's easiest to switch Node versions using `nvm`, here's how to install NVM: https://github.com/nvm-sh/nvm#installing-and-updating. After installing nvm close the terminal and open it again to be able to use nvm.
Once you have nvm running you can install node 14: Once you have nvm running you can install node 14:
nvm install v14.19.3 nvm install v14.19.3
#### On Apple Silicon M1
NodeJS 14 does not compile on the M1 architecture, so it has to be installed through Rosetta: https://devzilla.io/using-nodejs-14-with-mac-silicon-m1 .
To activate Rosetta and switch to intel emulation run:
arch -x86_64 zsh
Run
arch
again to verify that it returns "i386".
Now install node 14:
nvm install v14.19.3
### 3. Yarn version
use npm to install yarn: use npm to install yarn:
npm install --global yarn npm install --global yarn
@@ -127,6 +145,18 @@ iii. If you are building the app with XCode make sure you are running this as we
### Troubleshooting ### Troubleshooting
#### [MacOS M1] Flipper problems
If a bug in the currently used Flipper version prevents building the project, comment out the respective line in the podfile, like so:
#use_flipper!()
Run
pod install
from the ios directory again to reload the dependencies.
#### [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`.
+61 -36
View File
@@ -7,27 +7,38 @@ drip is developed in React Native for iOS and Android and is released on 4 diffe
3. [F-Droid](https://f-droid.org/packages/com.drip/) 3. [F-Droid](https://f-droid.org/packages/com.drip/)
4. [drip Website](https://dripapp.org) 4. [drip Website](https://dripapp.org)
In an ideal world the app version is the same across platforms. In reality this has never been the case. In an ideal world the app version is the same across platforms. In the past this has never been the case. The release v1.2403.19 is the first to be up to date on all 4 platforms!
Releasing a new version is very exciting and brings happy changes like fixing a bug, improving a feature, updating dependencies or adding a new functionality to the app. It is more than just pressing the button "publish new version". Releasing a new version is very exciting and brings happy changes like fixing a bug, improving a feature, updating dependencies or adding a new functionality to the app. It is more than just pressing the button "publish new version".
_Note_: You need the release-key for Android to bundle a signed release that can be uploaded and published via the Google Play Store. A similar process for Apple requires a certificate to upload and publish the app to the App Store. _Note_: You need the release-key for Android to bundle a signed release that can be uploaded and published via the Google Play Store. A similar process for Apple requires a certificate to upload and publish the app to the App Store.
### Release steps ## Release steps
1. [Version updating](#version-updating) ### 1. [Code](#code)
2. [Android builds](#android-builds) - 1.1 [Version updating](#version-updating)
3. [iOS builds](#ios-builds) - 1.2 [Android builds](#android-builds)
4. [User testing](#user-testing) - 1.3 [iOS builds](#ios-builds)
5. [Changelog](#changelog) - 1.4 [User testing](#user-testing)
6. [Release notes](#release-notes) - 1.5 [Release tag](#release-tag)
7. [Release tag](#release-tag)
8. [Phone screenshots](#phone-screenshots)
9. [Publishing](#publishing)
10. [Communication](#communication)
11. [Self care](#self-care)
## Version updating ### 2. [Documentation](#documentation)
- 2.1 [Changelog](#changelog)
- 2.2 [Release notes](#release-notes)
- 2.3 [Releases on Gitlab](#releases-on-gitlab)
- 2.4 [Phone screenshots](#phone-screenshots)
### 3. [Publishing](#publishing)
- 3.1 [Google Play Console](#google-play-console)
- 3.2 [Apple App Store Connect](#apple-app-store-connect)
- 3.3 [F-droid](#f-droid)
- 3.4 [drip website](#drip-website)
- 3.5 [Communication](#communication)
- 3.6 [Self care](#self-care)
## Code
### Version updating
When you are done with a chore, a feature or a bugfix, you may want to share it with testers and eventually publish a release. In order to identify a specific app version we can update the version name, which is created based on the following format: `1.yymm.d` e.g. `1.2311.7`. If you want to upload a new app version to Google Play you also need to update the version code. When you are done with a chore, a feature or a bugfix, you may want to share it with testers and eventually publish a release. In order to identify a specific app version we can update the version name, which is created based on the following format: `1.yymm.d` e.g. `1.2311.7`. If you want to upload a new app version to Google Play you also need to update the version code.
@@ -112,42 +123,50 @@ Once the archiving process has completed you can chose to do the following:
- TestFlight & App Store for when you want to upload it for external testing and/or production release - TestFlight & App Store for when you want to upload it for external testing and/or production release
- TestFlight Internal Only for when you want to upload it for internal testing - TestFlight Internal Only for when you want to upload it for internal testing
## User testing ### User testing
To enable external testing you need to remember that Google Play and Apple App Store might take up to 1 day for their review process. "External testing" for iOS allows testing drip on Testflight anonymously via a public link. "Open testing" for Android allows testing drip on Google Play as beta tester below the normal production listing. To enable external testing you need to remember that Google Play and Apple App Store might take up to 1 day for their review process. "External testing" for iOS allows testing drip on Testflight anonymously via a public link. "Open testing" for Android allows testing drip on Google Play as beta tester below the normal production listing.
For a quick and easy way to share an apk to testers who are willing to sideload drip onto their Android phones, do this: Upload a signed apk to the Gitlab repository of the drip website under `/release` https://gitlab.com/bloodyhealth/bloodyhealth.gitlab.io/-/tree/main/release and maybe adapt the name of the apk with a more specific name than "app-release.apk". Now you can simply share a direct link to download your newly bundled apk, e.g. [a download link for v1.2311.14](https://gitlab.com/bloodyhealth/bloodyhealth.gitlab.io/-/blob/main/release/v1.2311.14.apk). For a quick and easy way to share an apk to testers who are willing to sideload drip onto their Android phones, do this: Upload a signed apk to the Gitlab repository of the drip website under `/release` https://gitlab.com/bloodyhealth/bloodyhealth.gitlab.io/-/tree/main/release and maybe adapt the name of the apk with a more specific name than "app-release.apk". Now you can simply share a direct link to download your newly bundled apk, e.g. [a download link for v1.2311.14](https://gitlab.com/bloodyhealth/bloodyhealth.gitlab.io/-/blob/main/release/v1.2311.14.apk).
## Changelog ### Release tag
[Tags](https://gitlab.com/bloodyhealth/drip/-/tags) can mark a specific point in the coding/commmit history and helps us identify the version status of a released app. They are named "iOS-v1.2401.17" or "Release-v1.yymm.d".
Any tag starting with "Release" or "Android" will be checked by https://gitlab.com/fdroidci
## Documentation
### Changelog
The [changelog](https://gitlab.com/bloodyhealth/drip/-/blob/main/CHANGELOG.md) should reflect the technical / code changes between a previous and the new version. Please update the changelog file with any relevant additions, fixes and changes in the following format: The [changelog](https://gitlab.com/bloodyhealth/drip/-/blob/main/CHANGELOG.md) should reflect the technical / code changes between a previous and the new version. Please update the changelog file with any relevant additions, fixes and changes in the following format:
**v1.yymm.d** >**v1.yymm.d**
>
>**Changes**
>
>Changing the color of funky button
>Updating a library from 1.2.3 to 2.3.4
>
>**Adds**
>
>New feature for calendar
>
>**Fixed**
>
>Small bug in chart
**Changes** ### Release notes
Changing the color of funky button
Updating a library from 1.2.3 to 2.3.4
**Adds**
New feature for calendar
**Fixed**
Small bug in chart
## Release notes
These notes are for the users and curious ones who may want to start using drip. They should be based on the changelog but written in a friendly and easy to understand way. The focus is on the user perspective and the impact of the changes for the user. Behind the scenes and in depth code changes are less relevant. These notes are for the users and curious ones who may want to start using drip. They should be based on the changelog but written in a friendly and easy to understand way. The focus is on the user perspective and the impact of the changes for the user. Behind the scenes and in depth code changes are less relevant.
Google Play limits these notes to 500 characters, whereas Apple's App Store limits these notes to 4.000 characters. In Fdroid there are no release notes. Google Play limits these notes to 500 characters, whereas Apple's App Store limits these notes to 4.000 characters. In Fdroid there are no release notes.
## Release tag ### Releases on Gitlab
[Tags](https://gitlab.com/bloodyhealth/drip/-/tags) can mark a specific point in the coding/commmit history and helps us identify the version status of a released app. They are named "iOS-v1.2401.17" or "Release-v1.yymm.d". Under [Releases](https://gitlab.com/bloodyhealth/drip/-/releases) we keep track of all drip releases.
## Phone screenshots ### Phone screenshots
If there are visual changes in the app you may want to update the screenshots for the Google Play Store listing, which allows up to 8 and for Apple's App Store, which allows up to 10 screenshots. Keep in mind that both Google Play and Apple have specific resolution requirements. You'll find Google's in Grow -> Store presence -> Main Store Listing -> Phone screenshots and Apple's on the main App Store Connect site. Here is a link for [Apple's screenshot specifications](https://developer.apple.com/help/app-store-connect/reference/screenshot-specifications). If there are visual changes in the app you may want to update the screenshots for the Google Play Store listing, which allows up to 8 and for Apple's App Store, which allows up to 10 screenshots. Keep in mind that both Google Play and Apple have specific resolution requirements. You'll find Google's in Grow -> Store presence -> Main Store Listing -> Phone screenshots and Apple's on the main App Store Connect site. Here is a link for [Apple's screenshot specifications](https://developer.apple.com/help/app-store-connect/reference/screenshot-specifications).
@@ -164,11 +183,17 @@ You can decide if you want the new app version to get released for testing (inte
Upload a new version and submit it for review, before it can be published. Upload a new version and submit it for review, before it can be published.
### F-droid
This account runs automated checks for drip looking at new `Release` or `Android` [tags](https://gitlab.com/bloodyhealth/drip/-/tags/) and updates the app's metadata yaml file in Fdroid without further ado.
However this is not the full story. Please have a look at previous commits to see what necessary changes got pushed, [see here](https://gitlab.com/fdroid/fdroiddata/-/commits/master/metadata/com.drip.yml).
### drip website ### drip website
After a new version has been published on Google Play (or F-Droid) the apk version that is downloadable directly from the [drip website](https://dripapp.org) needs to get updated as well. Therefore you upload a signed apk to the [repository](https://gitlab.com/bloodyhealth/bloodyhealth.gitlab.io/) as [we did in this commit](https://gitlab.com/bloodyhealth/bloodyhealth.gitlab.io/-/commit/f8c0f90c1ae9f23bf8e1bc311790b85443149a4d), and adapt the name and link on /index.html [as we did in this commit](https://gitlab.com/bloodyhealth/bloodyhealth.gitlab.io/-/commit2f8850ff5fa78615a4f335b625ea4a67d4acf03a) and [this commit](https://gitlab.com/bloodyhealth/bloodyhealth.gitlab.io/-/commit/f3da9776b1943ffa32458e74ef86eeca98c1891c). Last time I checked it was [here](f3da9776b1943ffa32458e74ef86eeca98c1891c/index.html#L114). After a new version has been published on Google Play (or F-Droid) the apk version that is downloadable directly from the [drip website](https://dripapp.org) needs to get updated as well. Therefore you upload a signed apk to the [repository](https://gitlab.com/bloodyhealth/bloodyhealth.gitlab.io/) as [we did in this commit](https://gitlab.com/bloodyhealth/bloodyhealth.gitlab.io/-/commit/f8c0f90c1ae9f23bf8e1bc311790b85443149a4d), and adapt the name and link on /index.html [as we did in this commit](https://gitlab.com/bloodyhealth/bloodyhealth.gitlab.io/-/commit2f8850ff5fa78615a4f335b625ea4a67d4acf03a) and [this commit](https://gitlab.com/bloodyhealth/bloodyhealth.gitlab.io/-/commit/f3da9776b1943ffa32458e74ef86eeca98c1891c). Last time I checked it was [here](f3da9776b1943ffa32458e74ef86eeca98c1891c/index.html#L114).
## Communication ### Communication
You probably want to share the app update by posting on one or more of these platforms: You probably want to share the app update by posting on one or more of these platforms:
@@ -178,6 +203,6 @@ You probably want to share the app update by posting on one or more of these pla
- [Linkedin](https://www.linkedin.com/company/34899684/) - [Linkedin](https://www.linkedin.com/company/34899684/)
- Different tech, privacy, feminist oriented slacks - Different tech, privacy, feminist oriented slacks
## Self care ### Self care
Congratulations. Take a break, eat some chocolate, go see a live show of your favorite band, masturbate <3! Congratulations. Take a break, eat some chocolate, go see a live show of your favorite band, masturbate <3!
+1 -1
View File
@@ -64,7 +64,7 @@ const SymptomBox = ({
<View style={styles.textContainer}> <View style={styles.textContainer}>
<AppText style={symptomNameStyle}>{t(symptom)}</AppText> <AppText style={symptomNameStyle}>{t(symptom)}</AppText>
{symptomDataToDisplay && ( {symptomDataToDisplay && (
<AppText style={textStyle} numberOfLines={4}> <AppText style={textStyle} numberOfLines={3}>
{symptomDataToDisplay} {symptomDataToDisplay}
</AppText> </AppText>
)} )}
+13 -4
View File
@@ -1,6 +1,12 @@
import React, { useState } from 'react' import React, { useState } from 'react'
import PropTypes from 'prop-types' import PropTypes from 'prop-types'
import { ScrollView, StyleSheet, View } from 'react-native' import {
Dimensions,
Platform,
ScrollView,
StyleSheet,
View,
} from 'react-native'
import AppModal from '../common/app-modal' import AppModal from '../common/app-modal'
import AppSwitch from '../common/app-switch' import AppSwitch from '../common/app-switch'
@@ -111,9 +117,12 @@ const SymptomEditView = ({ date, onClose, symptom, symptomData }) => {
const noteText = symptom === 'note' ? data.value : data.note const noteText = symptom === 'note' ? data.value : data.note
const inputProps = { const inputProps = {
multiline: true, multiline: true,
numberOfLines: 3, numberOfLines: Platform.OS === 'ios' ? null : 4, // only Android
scrollEnabled: false, minHeight: Platform.OS === 'ios' ? styles.input.height : null,
style: styles.input, maxHeight:
Platform.OS === 'ios' ? Dimensions.get('window').height * 0.4 : null,
style: symptom === 'note' ? null : styles.input, // overwrites previous 2 lines to fix note space in symptoms
scrollEnabled: true,
textAlignVertical: 'top', textAlignVertical: 'top',
} }
+2 -2
View File
@@ -12,8 +12,8 @@
"scripts": { "scripts": {
"start": "react-native start", "start": "react-native start",
"android": "react-native run-android", "android": "react-native run-android",
"ios": "react-native run-ios --simulator=\"iPhone 15\"", "ios": "react-native run-ios --simulator=\"iPhone 8 Plus\"",
"iosSE": "react-native run-ios --simulator=\"iPhone SE (2nd generation)\"", "ios15": "react-native run-ios --simulator=\"iPhone 15 Plus\"",
"log": "react-native log-android", "log": "react-native log-android",
"test": "jest test && yarn lint", "test": "jest test && yarn lint",
"test-watch": "jest --watch test", "test-watch": "jest --watch test",