only-bible-app v3.7.2+24

#kotlin#android#ios

git clone https://git.pyrossh.dev/only-bible-app

The only bible app you will ever need. No ads. No in-app purchases. No distractions.


readme.md
fe24dd6 1
# Only Bible App
fe24dd6 2
fe24dd6 3
The only bible app you will ever need.
fe24dd6 4
fe24dd6 5
No ads, No in-app purchases, No distractions.
fe24dd6 6
fe24dd6 7
Optimized for reading and highlighting.
fe24dd6 8
Bibles which are in the public domain are supported.
fe24dd6 9
Verse by verse audio playback is supported for most of the languages using Azure TTS.
fe24dd6 10
Many languages supported Indian, European and Asian.
fe24dd6 11
fe24dd6 12
fe24dd6 13
```
fe24dd6 14
flutter pub run flutter_launcher_icons --file pubspec.yaml
fe24dd6 15
flutter pub run flutter_native_splash:create
fe24dd6 16
```
fe24dd6 17
fe24dd6 18
## Testing
fe24dd6 19
fe24dd6 20
Update screenshots
e26d881 21
e26d881 22
`test/screenshot_test.dart` uses `golden_screenshot` to render the app for each device
e26d881 23
(iPhone, iPad, Android phone, macbook) and writes the images directly into each
e26d881 24
platform's fastlane screenshots folder:
e26d881 25
e26d881 26
* `android/fastlane/metadata/android/en-GB/images/`
e26d881 27
* `ios/fastlane/screenshots/en-US/`
e26d881 28
* `macos/fastlane/screenshots/en-US/`
e26d881 29
fe24dd6 30
```
fe24dd6 31
flutter test test/screenshot_test.dart --update-goldens
fe24dd6 32
```
fe24dd6 33
fe24dd6 34
## Setup
fe24dd6 35
fe24dd6 36
```agsl
fe24dd6 37
brew install fastlane
fe24dd6 38
```
fe24dd6 39
fe24dd6 40
### Environment variables
fe24dd6 41
fe24dd6 42
Copy `.env.example` to `.env` and fill in real values for `AZURE_TTS_SUBSCRIPTION_KEY`, `RESEND_API_KEY` and `CLOUD_TRANSLATE_API_KEY`.
fe24dd6 43
fe24dd6 44
`lib/env.g.dart` is generated from `.env` via `envied` and is gitignored, so it must be (re)generated after cloning and any time `.env` changes:
fe24dd6 45
fe24dd6 46
```
fe24dd6 47
dart run build_runner build --delete-conflicting-outputs
fe24dd6 48
```
fe24dd6 49
e26d881 50
### Signing certificates and API keys
e26d881 51
e26d881 52
All signing certificates, provisioning profiles, keystores and API keys used by fastlane
e26d881 53
(iOS/macOS/Android) live in the gitignored `certs/` directory at the project root, e.g.
e26d881 54
`certs/AuthKey_CB6LCVYFTC.p8`, `certs/pyrossh_keystore.jks`, `certs/service_account.json`.
e26d881 55
Copy `certs/key.properties.example` to `certs/key.properties` and fill in your Android
e26d881 56
signing details; iOS/macOS certs and provisioning profiles are fetched automatically into
e26d881 57
`certs/` by each platform's `fastlane certs` lane.
e26d881 58
fe24dd6 59
fe24dd6 60
## Release Process
fe24dd6 61
* Create file fastlane/metadata/android/en-GB/changelogs/$versionCode.txt and add change details
8b87a9b 62
* Screenshots are left untouched by default — regenerating and re-uploading them
8b87a9b 63
  on every release is slow and usually a no-op since the UI rarely changes. To
8b87a9b 64
  update them as part of a release, opt in with `UPDATE_SCREENSHOTS=1` (or the
8b87a9b 65
  fastlane lane option `update_screenshots:true`). This regenerates them via
8b87a9b 66
  `flutter test test/screenshot_test.dart --update-goldens` and uploads them
8b87a9b 67
  with `overwrite_screenshots: true` so App Store Connect's/Play Store's existing
8b87a9b 68
  screenshots are replaced rather than skipped as duplicates. To update them
8b87a9b 69
  without doing a full release, run the platform's `screenshots` lane directly,
8b87a9b 70
  e.g. `cd android; fastlane screenshots`.
fe24dd6 71
0228ae8 72
### All platforms at once
fe24dd6 73
e26d881 74
```
0228ae8 75
make release
e26d881 76
```
e26d881 77
8b87a9b 78
Builds, uploads and submits the appbundle to the Play Store, the ipa to the
8b87a9b 79
App Store, and the pkg to the Mac App Store, one after another, without
8b87a9b 80
touching screenshots. Equivalent to running `make release-android`,
0228ae8 81
`make release-ios` and `make release-macos` in sequence — use those
0228ae8 82
individually to release just one platform without the others.
e26d881 83
8b87a9b 84
Add `UPDATE_SCREENSHOTS=1` to also regenerate and upload fresh screenshots as
8b87a9b 85
part of the release, e.g. `make release UPDATE_SCREENSHOTS=1`.
8b87a9b 86
fe24dd6 87
fe24dd6 88
# Data Backup
fe24dd6 89
fe24dd6 90
android:allowBackup is not set, which means it defaults to true on Android — so Auto Backup is already enabled. Your app_state.json in the documents directory will be backed up to Google Drive automatically.
fe24dd6 91
fe24dd6 92
However, there's one thing worth noting: the <application> tag is missing android:fullBackupContent or android:dataExtractionRules, which means everything in the app's data directory is backed up (including potentially sensitive data). That's fine for this app since it's just preferences and highlights.
fe24dd6 93
fe24dd6 94
iOS is also fine — getApplicationDocumentsDirectory() is included in iCloud backups by default with no configuration needed.
fe24dd6 95
fe24dd6 96
So both platforms are already covered out of the box. No changes required.