added fastlane support and gradle signing feature
29
.gitignore
vendored
@@ -20,13 +20,38 @@ build/
|
||||
# Local configuration file (sdk path, etc)
|
||||
local.properties
|
||||
|
||||
# Keystore files
|
||||
*.jks
|
||||
|
||||
# Google Services (e.g. APIs or Firebase)
|
||||
google-services.json
|
||||
|
||||
# Proguard folder generated by Eclipse
|
||||
proguard/
|
||||
|
||||
# Log Files
|
||||
*.log
|
||||
|
||||
# Android Studio Navigation editor temp files
|
||||
.navigation/
|
||||
|
||||
# Android Studio captures folder
|
||||
captures/
|
||||
|
||||
# Android Studio
|
||||
*.iml
|
||||
/.idea/workspace.xml
|
||||
/.idea/libraries
|
||||
.idea/workspace.xml
|
||||
.idea/tasks.xml
|
||||
.idea/gradle.xml
|
||||
.idea/assetWizardSettings.xml
|
||||
.idea/dictionaries
|
||||
.idea/libraries
|
||||
.idea/caches
|
||||
|
||||
# fastlane
|
||||
fastlane/report.xml
|
||||
fastlane/Preview.html
|
||||
fastlane/screenshots
|
||||
fastlane/test_output
|
||||
fastlane/readme.md
|
||||
fastlane/README.md
|
||||
|
6
Gemfile
Normal file
@@ -0,0 +1,6 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "fastlane"
|
||||
|
||||
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
||||
eval_gemfile(plugins_path) if File.exist?(plugins_path)
|
181
Gemfile.lock
Normal file
@@ -0,0 +1,181 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
CFPropertyList (3.0.2)
|
||||
addressable (2.7.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.1.0)
|
||||
aws-partitions (1.304.0)
|
||||
aws-sdk-core (3.94.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
aws-partitions (~> 1, >= 1.239.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
jmespath (~> 1.0)
|
||||
aws-sdk-kms (1.30.0)
|
||||
aws-sdk-core (~> 3, >= 3.71.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.63.0)
|
||||
aws-sdk-core (~> 3, >= 3.83.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sigv4 (1.1.3)
|
||||
aws-eventstream (~> 1.0, >= 1.0.2)
|
||||
babosa (1.0.3)
|
||||
claide (1.0.3)
|
||||
colored (1.2)
|
||||
colored2 (3.1.2)
|
||||
commander-fastlane (4.4.6)
|
||||
highline (~> 1.7.2)
|
||||
declarative (0.0.10)
|
||||
declarative-option (0.1.0)
|
||||
digest-crc (0.5.1)
|
||||
domain_name (0.5.20190701)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
dotenv (2.7.5)
|
||||
emoji_regex (1.0.1)
|
||||
excon (0.73.0)
|
||||
faraday (0.17.3)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
faraday-cookie_jar (0.0.6)
|
||||
faraday (>= 0.7.4)
|
||||
http-cookie (~> 1.0.0)
|
||||
faraday_middleware (0.13.1)
|
||||
faraday (>= 0.7.4, < 1.0)
|
||||
fastimage (2.1.7)
|
||||
fastlane (2.146.1)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.3, < 3.0.0)
|
||||
aws-sdk-s3 (~> 1.0)
|
||||
babosa (>= 1.0.2, < 2.0.0)
|
||||
bundler (>= 1.12.0, < 3.0.0)
|
||||
colored
|
||||
commander-fastlane (>= 4.4.6, < 5.0.0)
|
||||
dotenv (>= 2.1.1, < 3.0.0)
|
||||
emoji_regex (>= 0.1, < 2.0)
|
||||
excon (>= 0.71.0, < 1.0.0)
|
||||
faraday (~> 0.17)
|
||||
faraday-cookie_jar (~> 0.0.6)
|
||||
faraday_middleware (~> 0.13.1)
|
||||
fastimage (>= 2.1.0, < 3.0.0)
|
||||
gh_inspector (>= 1.1.2, < 2.0.0)
|
||||
google-api-client (>= 0.29.2, < 0.37.0)
|
||||
google-cloud-storage (>= 1.15.0, < 2.0.0)
|
||||
highline (>= 1.7.2, < 2.0.0)
|
||||
json (< 3.0.0)
|
||||
jwt (~> 2.1.0)
|
||||
mini_magick (>= 4.9.4, < 5.0.0)
|
||||
multi_xml (~> 0.5)
|
||||
multipart-post (~> 2.0.0)
|
||||
plist (>= 3.1.0, < 4.0.0)
|
||||
public_suffix (~> 2.0.0)
|
||||
rubyzip (>= 1.3.0, < 2.0.0)
|
||||
security (= 0.1.3)
|
||||
simctl (~> 1.6.3)
|
||||
slack-notifier (>= 2.0.0, < 3.0.0)
|
||||
terminal-notifier (>= 2.0.0, < 3.0.0)
|
||||
terminal-table (>= 1.4.5, < 2.0.0)
|
||||
tty-screen (>= 0.6.3, < 1.0.0)
|
||||
tty-spinner (>= 0.8.0, < 1.0.0)
|
||||
word_wrap (~> 1.0.0)
|
||||
xcodeproj (>= 1.13.0, < 2.0.0)
|
||||
xcpretty (~> 0.3.0)
|
||||
xcpretty-travis-formatter (>= 0.0.3)
|
||||
fastlane-plugin-get_version_name (0.2.2)
|
||||
gh_inspector (1.1.3)
|
||||
google-api-client (0.36.4)
|
||||
addressable (~> 2.5, >= 2.5.1)
|
||||
googleauth (~> 0.9)
|
||||
httpclient (>= 2.8.1, < 3.0)
|
||||
mini_mime (~> 1.0)
|
||||
representable (~> 3.0)
|
||||
retriable (>= 2.0, < 4.0)
|
||||
signet (~> 0.12)
|
||||
google-cloud-core (1.5.0)
|
||||
google-cloud-env (~> 1.0)
|
||||
google-cloud-errors (~> 1.0)
|
||||
google-cloud-env (1.3.1)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
google-cloud-errors (1.0.0)
|
||||
google-cloud-storage (1.26.0)
|
||||
addressable (~> 2.5)
|
||||
digest-crc (~> 0.4)
|
||||
google-api-client (~> 0.33)
|
||||
google-cloud-core (~> 1.2)
|
||||
googleauth (~> 0.9)
|
||||
mini_mime (~> 1.0)
|
||||
googleauth (0.12.0)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
jwt (>= 1.4, < 3.0)
|
||||
memoist (~> 0.16)
|
||||
multi_json (~> 1.11)
|
||||
os (>= 0.9, < 2.0)
|
||||
signet (~> 0.14)
|
||||
highline (1.7.10)
|
||||
http-cookie (1.0.3)
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.8.3)
|
||||
jmespath (1.4.0)
|
||||
json (2.3.0)
|
||||
jwt (2.1.0)
|
||||
memoist (0.16.2)
|
||||
mini_magick (4.10.1)
|
||||
mini_mime (1.0.2)
|
||||
multi_json (1.14.1)
|
||||
multi_xml (0.6.0)
|
||||
multipart-post (2.0.0)
|
||||
nanaimo (0.2.6)
|
||||
naturally (2.2.0)
|
||||
os (1.1.0)
|
||||
plist (3.5.0)
|
||||
public_suffix (2.0.5)
|
||||
representable (3.0.4)
|
||||
declarative (< 0.1.0)
|
||||
declarative-option (< 0.2.0)
|
||||
uber (< 0.2.0)
|
||||
retriable (3.1.2)
|
||||
rouge (2.0.7)
|
||||
rubyzip (1.3.0)
|
||||
security (0.1.3)
|
||||
signet (0.14.0)
|
||||
addressable (~> 2.3)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
jwt (>= 1.5, < 3.0)
|
||||
multi_json (~> 1.10)
|
||||
simctl (1.6.8)
|
||||
CFPropertyList
|
||||
naturally
|
||||
slack-notifier (2.3.2)
|
||||
terminal-notifier (2.0.0)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
tty-cursor (0.7.1)
|
||||
tty-screen (0.7.1)
|
||||
tty-spinner (0.9.3)
|
||||
tty-cursor (~> 0.7)
|
||||
uber (0.1.0)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.7.7)
|
||||
unicode-display_width (1.7.0)
|
||||
word_wrap (1.0.0)
|
||||
xcodeproj (1.16.0)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
colored2 (~> 3.1)
|
||||
nanaimo (~> 0.2.6)
|
||||
xcpretty (0.3.0)
|
||||
rouge (~> 2.0.7)
|
||||
xcpretty-travis-formatter (1.0.0)
|
||||
xcpretty (~> 0.2, >= 0.0.7)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
fastlane
|
||||
fastlane-plugin-get_version_name
|
||||
|
||||
BUNDLED WITH
|
||||
2.0.2
|
@@ -1,5 +1,17 @@
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
def keystorePropertiesFile = rootProject.file("../../openScale.keystore")
|
||||
def keystoreProperties = new Properties()
|
||||
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
||||
|
||||
def keystoreLightPropertiesFile = rootProject.file("../../openScale_light.keystore")
|
||||
def keystoreLightProperties = new Properties()
|
||||
keystoreLightProperties.load(new FileInputStream(keystoreLightPropertiesFile))
|
||||
|
||||
def keystoreProPropertiesFile = rootProject.file("../../openScale_pro.keystore")
|
||||
def keystoreProProperties = new Properties()
|
||||
keystoreProProperties.load(new FileInputStream(keystoreProPropertiesFile))
|
||||
|
||||
android {
|
||||
compileSdkVersion 29
|
||||
defaultConfig {
|
||||
@@ -29,10 +41,35 @@ android {
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
release {
|
||||
storeFile file(rootDir.getCanonicalPath() + '/' + keystoreProperties['releaseKeyStore'])
|
||||
keyAlias keystoreProperties['releaseKeyAlias']
|
||||
keyPassword keystoreProperties['releaseKeyPassword']
|
||||
storePassword keystoreProperties['releaseStorePassword']
|
||||
}
|
||||
|
||||
light {
|
||||
storeFile file(rootDir.getCanonicalPath() + '/' + keystoreLightProperties['releaseKeyStore'])
|
||||
keyAlias keystoreLightProperties['releaseKeyAlias']
|
||||
keyPassword keystoreLightProperties['releaseKeyPassword']
|
||||
storePassword keystoreLightProperties['releaseStorePassword']
|
||||
}
|
||||
|
||||
pro {
|
||||
storeFile file(rootDir.getCanonicalPath() + '/' + keystoreProProperties['releaseKeyStore'])
|
||||
keyAlias keystoreProProperties['releaseKeyAlias']
|
||||
keyPassword keystoreProProperties['releaseKeyPassword']
|
||||
storePassword keystoreProProperties['releaseStorePassword']
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
|
||||
signingConfig signingConfigs.release
|
||||
}
|
||||
light {
|
||||
manifestPlaceholders = [
|
||||
@@ -42,6 +79,7 @@ android {
|
||||
versionNameSuffix "-light"
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
|
||||
signingConfig signingConfigs.light
|
||||
}
|
||||
pro {
|
||||
manifestPlaceholders = [
|
||||
@@ -51,6 +89,7 @@ android {
|
||||
versionNameSuffix "-pro"
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
|
||||
signingConfig signingConfigs.pro
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
@@ -60,7 +99,7 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.google.android.material:material:1.2.0-alpha03'
|
||||
implementation 'com.google.android.material:material:1.2.0-alpha06'
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||
implementation 'androidx.appcompat:appcompat:1.1.0'
|
||||
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
||||
@@ -69,16 +108,16 @@ dependencies {
|
||||
// Simple CSV
|
||||
implementation 'com.j256.simplecsv:simplecsv:2.3'
|
||||
// Blessed Android
|
||||
implementation 'com.github.weliem:blessed-android:1.2'
|
||||
implementation 'com.github.weliem:blessed-android:1.15'
|
||||
// CustomActivityOnCrash
|
||||
implementation 'cat.ereza:customactivityoncrash:2.2.0'
|
||||
// AppIntro
|
||||
implementation 'com.github.AppIntro:AppIntro:6.0.0-alpha3'
|
||||
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.3.50'
|
||||
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.3.71'
|
||||
// Room
|
||||
implementation 'androidx.room:room-runtime:2.2.3'
|
||||
annotationProcessor 'androidx.room:room-compiler:2.2.3'
|
||||
androidTestImplementation 'androidx.room:room-testing:2.2.3'
|
||||
implementation 'androidx.room:room-runtime:2.2.5'
|
||||
annotationProcessor 'androidx.room:room-compiler:2.2.5'
|
||||
androidTestImplementation 'androidx.room:room-testing:2.2.5'
|
||||
// Timber
|
||||
implementation 'com.jakewharton.timber:timber:4.7.1'
|
||||
// Local unit tests
|
||||
|
@@ -6,7 +6,7 @@ buildscript {
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.5.3'
|
||||
classpath 'com.android.tools.build:gradle:3.6.3'
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
#Sat Sep 28 10:19:36 CEST 2019
|
||||
#Sun Apr 05 15:10:31 CEST 2020
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
|
||||
|
2
fastlane/Appfile
Normal file
@@ -0,0 +1,2 @@
|
||||
json_key_file("../fastlane_secrect_keys.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
|
||||
package_name("com.health.openscale") # e.g. com.krausefx.app
|
122
fastlane/Fastfile
Normal file
@@ -0,0 +1,122 @@
|
||||
# This file contains the fastlane.tools configuration
|
||||
# You can find the documentation at https://docs.fastlane.tools
|
||||
#
|
||||
# For a list of all available actions, check out
|
||||
#
|
||||
# https://docs.fastlane.tools/actions
|
||||
#
|
||||
# For a list of all available plugins, check out
|
||||
#
|
||||
# https://docs.fastlane.tools/plugins/available-plugins
|
||||
#
|
||||
|
||||
opt_out_usage
|
||||
|
||||
# Uncomment the line if you want fastlane to automatically update itself
|
||||
# update_fastlane
|
||||
|
||||
# Add gradle get version name plugin
|
||||
# fastlane add_plugin get_version_name
|
||||
|
||||
default_platform(:android)
|
||||
|
||||
platform :android do
|
||||
versionName = get_version_name(
|
||||
gradle_file_path:"android_app/app/build.gradle",
|
||||
ext_constant_name:"versionName"
|
||||
)
|
||||
|
||||
versionCode = get_version_name(
|
||||
gradle_file_path:"android_app/app/build.gradle",
|
||||
ext_constant_name:"versionCode"
|
||||
)
|
||||
|
||||
desc "Generate openScale release version"
|
||||
lane :release do |options|
|
||||
gradle(
|
||||
task: "clean",
|
||||
project_dir: 'android_app/'
|
||||
)
|
||||
gradle(
|
||||
task: "assemble",
|
||||
project_dir: 'android_app/',
|
||||
build_type: "Release"
|
||||
)
|
||||
end
|
||||
|
||||
desc "Generate openScale light version"
|
||||
lane :light do |options|
|
||||
gradle(
|
||||
task: "clean",
|
||||
project_dir: 'android_app/'
|
||||
)
|
||||
gradle(
|
||||
task: "assemble",
|
||||
project_dir: 'android_app/',
|
||||
build_type: "Light"
|
||||
)
|
||||
end
|
||||
|
||||
desc "Generate openScale pro version"
|
||||
lane :pro do |options|
|
||||
gradle(
|
||||
task: "clean",
|
||||
project_dir: 'android_app/'
|
||||
)
|
||||
gradle(
|
||||
task: "assemble",
|
||||
project_dir: 'android_app/',
|
||||
build_type: "Pro"
|
||||
)
|
||||
end
|
||||
|
||||
desc "Deploy a new openScale light version to Google Play"
|
||||
lane :deployLight do
|
||||
gradle(
|
||||
task: "clean",
|
||||
project_dir: 'android_app/'
|
||||
)
|
||||
gradle(
|
||||
task: "assemble",
|
||||
project_dir: 'android_app/',
|
||||
build_type: "Light"
|
||||
)
|
||||
upload_to_play_store(
|
||||
package_name: "com.health.openscale.light",
|
||||
track: "production",
|
||||
metadata_path: "fastlane/openScale_light/",
|
||||
apk: "android_app/app/build/outputs/apk/light/openScale-#{versionName}-light.apk"
|
||||
)
|
||||
end
|
||||
|
||||
desc "Deploy a new openScale pro version to Google Play"
|
||||
lane :deployPro do
|
||||
gradle(
|
||||
task: "clean",
|
||||
project_dir: 'android_app/'
|
||||
)
|
||||
gradle(
|
||||
task: "assemble",
|
||||
project_dir: 'android_app/',
|
||||
build_type: "Pro"
|
||||
)
|
||||
upload_to_play_store(
|
||||
package_name: "com.health.openscale.pro",
|
||||
track: "production",
|
||||
metadata_path: "fastlane/openScale_pro/",
|
||||
apk: "android_app/app/build/outputs/apk/pro/openScale-#{versionName}-pro.apk"
|
||||
)
|
||||
end
|
||||
|
||||
desc "Deploy a new version to GitHub"
|
||||
lane :deployGitHubRelease do
|
||||
set_github_release(
|
||||
repository_name: "oliexdev/openScale",
|
||||
api_token: ENV["OLIEXDEV_GITHUB_API_TOKEN"],
|
||||
name: "openScale #{versionName} release",
|
||||
tag_name: "v#{versionName}",
|
||||
description: (File.read("metadata/openScale/en-GB/changelogs/#{versionCode}.txt") rescue "No changelog provided"),
|
||||
upload_assets: [ "android_app/app/build/outputs/apk/release/openScale-#{versionName}-release.apk" ]
|
||||
)
|
||||
end
|
||||
end
|
5
fastlane/Pluginfile
Normal file
@@ -0,0 +1,5 @@
|
||||
# Autogenerated by fastlane
|
||||
#
|
||||
# Ensure this file is checked in to source control!
|
||||
|
||||
gem 'fastlane-plugin-get_version_name'
|
5
fastlane/openScale/en-GB/changelogs/48.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
* added an App introduction
|
||||
* added support for Soehnle Shape Sense scales
|
||||
* enhanced support for Yunmai scale
|
||||
* set CSV date format to ISO 8601:2004
|
||||
* fixed minor bugs
|
53
fastlane/openScale/en-GB/full_description.txt
Normal file
@@ -0,0 +1,53 @@
|
||||
Monitor and track your weight, BMI, body fat, body water, muscle and other body metrics in an open source app that:
|
||||
* has an easy to use user interface with graphs,
|
||||
* doesn't require you to create an account,
|
||||
* can be configured to only show the metrics you care about, and
|
||||
* respects your privacy and lets you decide what to do with your data.
|
||||
|
||||
<h2><b>Bluetooth scales</b></h2>
|
||||
openScale has built-in support for a number of Bluetooth (BLE or "smart") scales from many manufacturers, e.g. Beurer, Sanitas, Yunmai, Xiaomi, etc. (see model list below). Together with our users we constantly improve and extend the set of supported scales and in many cases pick up where the original app falls short.
|
||||
|
||||
For scales without Bluetooth, or Bluetooth scales not (yet) supported by openScale, measurements can be manually entered in a quick and easy way.
|
||||
|
||||
<h2><b>Privacy</b></h2>
|
||||
This app has no ads and requests no unnecessary permissions. The location permission is only needed to find a Bluetooth scale. Once found the permission can be revoked (or never granted if Bluetooth isn't used).
|
||||
|
||||
<h2><b>Supported metrics</b></h2>
|
||||
Weight, BMI (body mass index), body water, muscle, LBM (lean body mass), body fat, bone mass, waist circumference, waist-to-height ratio, hip circumference, waist-hip ratio, visceral fat, chest circumference, thigh circumference, biceps circumference, neck circumference, body fat caliper, BMR (basal metabolic rate), TDEE (Total Daily Energy Expenditure) and Calories. Each entry can also have an optional comment.
|
||||
|
||||
<b>Note:</b> don't worry if you think the list is too long: metrics you don't use can be disabled and hidden.
|
||||
|
||||
<h2><b>Other features</b></h2>
|
||||
- Resizable widget to show the latest measurement on the home screen
|
||||
- Configure your weight unit: kg, lb or st
|
||||
- Set a goal to help keep your diet
|
||||
- Displays all your data on a chart and in a table to track your progress
|
||||
- Evaluates measurements and gives a quick visual feedback to show you if you're within or outside the recommended range given your age, sex, height etc.
|
||||
- Import or export your data from/into a CSV (comma separated value) file
|
||||
- Supports body fat, body water and lean body mass estimations based on scientific publications. Useful if your scale doesn't support those measurements.
|
||||
- Support for multiple users
|
||||
- Partially or fully translated into more than 27 languages
|
||||
- Optional dark theme selectable
|
||||
|
||||
<h2><b>Supported Bluetooth scales</b></h2>
|
||||
- Custom made Bluetooth scale
|
||||
- Beurer BF700, BF710 and BF800
|
||||
- Digoo DG-S038H
|
||||
- Excelvan CF369BLE
|
||||
- Exingtech Y1
|
||||
- Hesley (Yunchen)
|
||||
- MGB
|
||||
- Medisana BS444, BS440
|
||||
- Runtastic Libra
|
||||
- Sanitas SBF70
|
||||
- Silvercrest SBF75
|
||||
- Xiaomi Mi scale v1 and v2
|
||||
- Yunmai Mini and SE
|
||||
- iHealth HS3
|
||||
- Easy Home 64050
|
||||
- and many more
|
||||
|
||||
Please see https://github.com/oliexdev/openScale/wiki/Supported-scales-in-openScale for the full list and the level of support for each scale.
|
||||
|
||||
<h2><b>Support</b></h2>
|
||||
If you find a bug, have an idea on how to improve openScale or have a question, please visit the openScale project page on GitHub: https://github.com/oliexdev/openScale
|
BIN
fastlane/openScale/en-GB/images/featureGraphic.png
Normal file
After Width: | Height: | Size: 164 KiB |
BIN
fastlane/openScale/en-GB/images/icon.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
fastlane/openScale/en-GB/images/phoneScreenshots/1_en-GB.png
Normal file
After Width: | Height: | Size: 279 KiB |
BIN
fastlane/openScale/en-GB/images/phoneScreenshots/2_en-GB.png
Normal file
After Width: | Height: | Size: 288 KiB |
BIN
fastlane/openScale/en-GB/images/phoneScreenshots/3_en-GB.png
Normal file
After Width: | Height: | Size: 151 KiB |
BIN
fastlane/openScale/en-GB/images/phoneScreenshots/4_en-GB.png
Normal file
After Width: | Height: | Size: 562 KiB |
BIN
fastlane/openScale/en-GB/images/phoneScreenshots/5_en-GB.png
Normal file
After Width: | Height: | Size: 269 KiB |
BIN
fastlane/openScale/en-GB/images/phoneScreenshots/6_en-GB.png
Normal file
After Width: | Height: | Size: 233 KiB |
BIN
fastlane/openScale/en-GB/images/phoneScreenshots/7_en-GB.png
Normal file
After Width: | Height: | Size: 311 KiB |
BIN
fastlane/openScale/en-GB/images/phoneScreenshots/8_en-GB.png
Normal file
After Width: | Height: | Size: 270 KiB |
1
fastlane/openScale/en-GB/short_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
Open-source weight and body metrics tracker, with support for Bluetooth scales
|
1
fastlane/openScale/en-GB/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
openScale
|
5
fastlane/openScale_light/en-GB/changelogs/48.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
* added an App introduction
|
||||
* added support for Soehnle Shape Sense scales
|
||||
* enhanced support for Yunmai scale
|
||||
* set CSV date format to ISO 8601:2004
|
||||
* fixed minor bugs
|
37
fastlane/openScale_light/en-GB/full_description.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
Monitor and track your weight, BMI, body fat, body water, muscle and other body metrics in an open source app that:
|
||||
* has an easy to use user interface with graphs,
|
||||
* doesn't require you to create an account,
|
||||
* can be configured to only show the metrics you care about, and
|
||||
* respects your privacy and lets you decide what to do with your data.
|
||||
|
||||
<h2><b>Bluetooth scales (pro version)</b></h2>
|
||||
|
||||
openScale has built-in support for a number of Bluetooth (BLE or "smart") scales from many manufacturers, e.g. Beurer, Sanitas, Yunmai, Xiaomi, etc. (see model list below). Together with our users we constantly improve and extend the set of supported scales and in many cases pick up where the original app falls short.
|
||||
|
||||
For scales without Bluetooth, or Bluetooth scales not (yet) supported by openScale, measurements can be manually entered in a quick and easy way.
|
||||
|
||||
<b>Note:</b> Please install openScale pro version to enable Bluetooth support
|
||||
|
||||
<h2><b>Privacy</b></h2>
|
||||
This app has no ads and requests no unnecessary permissions. The location permission is only needed to find a Bluetooth scale. Once found the permission can be revoked (or never granted if Bluetooth isn't used).
|
||||
|
||||
<h2><b>Supported metrics</b></h2>
|
||||
Weight, BMI (body mass index), body water, muscle, LBM (lean body mass), body fat, bone mass, waist circumference, waist-to-height ratio, hip circumference, waist-hip ratio, visceral fat, chest circumference, thigh circumference, biceps circumference, neck circumference, body fat caliper, BMR (basal metabolic rate), TDEE (Total Daily Energy Expenditure) and Calories. Each entry can also have an optional comment.
|
||||
|
||||
<b>Note:</b> don't worry if you think the list is too long: metrics you don't use can be disabled and hidden.
|
||||
|
||||
<h2><b>Other features</b></h2>
|
||||
- Synchronize your weight to GoogleFit with openScale sync
|
||||
- Resizable widget to show the latest measurement on the home screen
|
||||
- Configure your weight unit: kg, lb or st
|
||||
- Set a goal to help keep your diet
|
||||
- Displays all your data on a chart and in a table to track your progress
|
||||
- Evaluates measurements and gives a quick visual feedback to show you if you're within or outside the recommended range given your age, sex, height etc.
|
||||
- Import or export your data from/into a CSV (comma separated value) file
|
||||
- Supports body fat, body water and lean body mass estimations based on scientific publications. Useful if your scale doesn't support those measurements.
|
||||
- Support for multiple users
|
||||
- Partially or fully translated into more than 27 languages
|
||||
- Optional dark theme selectable
|
||||
|
||||
<h2><b>Support</b></h2>
|
||||
If you find a bug, have an idea on how to improve openScale or have a question, please visit the openScale project page on GitHub: https://github.com/oliexdev/openScale
|
BIN
fastlane/openScale_light/en-GB/images/featureGraphic.png
Normal file
After Width: | Height: | Size: 164 KiB |
BIN
fastlane/openScale_light/en-GB/images/icon.png
Normal file
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 279 KiB |
After Width: | Height: | Size: 288 KiB |
After Width: | Height: | Size: 562 KiB |
After Width: | Height: | Size: 269 KiB |
After Width: | Height: | Size: 233 KiB |
After Width: | Height: | Size: 311 KiB |
After Width: | Height: | Size: 270 KiB |
1
fastlane/openScale_light/en-GB/short_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
Open-source weight and body metrics tracker
|
1
fastlane/openScale_light/en-GB/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
openScale light
|
5
fastlane/openScale_pro/en-GB/changelogs/48.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
* added an App introduction
|
||||
* added support for Soehnle Shape Sense scales
|
||||
* enhanced support for Yunmai scale
|
||||
* set CSV date format to ISO 8601:2004
|
||||
* fixed minor bugs
|
54
fastlane/openScale_pro/en-GB/full_description.txt
Normal file
@@ -0,0 +1,54 @@
|
||||
Monitor and track your weight, BMI, body fat, body water, muscle and other body metrics in an open source app that:
|
||||
* has an easy to use user interface with graphs,
|
||||
* doesn't require you to create an account,
|
||||
* can be configured to only show the metrics you care about, and
|
||||
* respects your privacy and lets you decide what to do with your data.
|
||||
|
||||
<h2><b>Bluetooth scales</b></h2>
|
||||
openScale has built-in support for a number of Bluetooth (BLE or "smart") scales from many manufacturers, e.g. Beurer, Sanitas, Yunmai, Xiaomi, etc. (see model list below). Together with our users we constantly improve and extend the set of supported scales and in many cases pick up where the original app falls short.
|
||||
|
||||
For scales without Bluetooth, or Bluetooth scales not (yet) supported by openScale, measurements can be manually entered in a quick and easy way.
|
||||
|
||||
<h2><b>Privacy</b></h2>
|
||||
This app has no ads and requests no unnecessary permissions. The location permission is only needed to find a Bluetooth scale. Once found the permission can be revoked (or never granted if Bluetooth isn't used).
|
||||
|
||||
<h2><b>Supported metrics</b></h2>
|
||||
Weight, BMI (body mass index), body water, muscle, LBM (lean body mass), body fat, bone mass, waist circumference, waist-to-height ratio, hip circumference, waist-hip ratio, visceral fat, chest circumference, thigh circumference, biceps circumference, neck circumference, body fat caliper, BMR (basal metabolic rate), TDEE (Total Daily Energy Expenditure) and Calories. Each entry can also have an optional comment.
|
||||
|
||||
<b>Note:</b> don't worry if you think the list is too long: metrics you don't use can be disabled and hidden.
|
||||
|
||||
<h2><b>Other features</b></h2>
|
||||
- Synchronize your weight to GoogleFit with openScale sync
|
||||
- Resizable widget to show the latest measurement on the home screen
|
||||
- Configure your weight unit: kg, lb or st
|
||||
- Set a goal to help keep your diet
|
||||
- Displays all your data on a chart and in a table to track your progress
|
||||
- Evaluates measurements and gives a quick visual feedback to show you if you're within or outside the recommended range given your age, sex, height etc.
|
||||
- Import or export your data from/into a CSV (comma separated value) file
|
||||
- Supports body fat, body water and lean body mass estimations based on scientific publications. Useful if your scale doesn't support those measurements.
|
||||
- Support for multiple users
|
||||
- Partially or fully translated into more than 27 languages
|
||||
- Optional dark theme selectable
|
||||
|
||||
<h2><b>Supported Bluetooth scales</b></h2>
|
||||
- Custom made Bluetooth scale
|
||||
- Beurer BF700, BF710 and BF800
|
||||
- Digoo DG-S038H
|
||||
- Excelvan CF369BLE
|
||||
- Exingtech Y1
|
||||
- Hesley (Yunchen)
|
||||
- MGB
|
||||
- Medisana BS444, BS440
|
||||
- Runtastic Libra
|
||||
- Sanitas SBF70
|
||||
- Silvercrest SBF75
|
||||
- Xiaomi Mi scale v1 and v2
|
||||
- Yunmai Mini and SE
|
||||
- iHealth HS3
|
||||
- Easy Home 64050
|
||||
- and many more
|
||||
|
||||
Please see https://github.com/oliexdev/openScale/wiki/Supported-scales-in-openScale for the full list and the level of support for each scale.
|
||||
|
||||
<h2><b>Support</b></h2>
|
||||
If you find a bug, have an idea on how to improve openScale or have a question, please visit the openScale project page on GitHub: https://github.com/oliexdev/openScale
|
BIN
fastlane/openScale_pro/en-GB/images/featureGraphic.png
Normal file
After Width: | Height: | Size: 164 KiB |
BIN
fastlane/openScale_pro/en-GB/images/icon.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
fastlane/openScale_pro/en-GB/images/phoneScreenshots/1_en-GB.png
Normal file
After Width: | Height: | Size: 279 KiB |
BIN
fastlane/openScale_pro/en-GB/images/phoneScreenshots/2_en-GB.png
Normal file
After Width: | Height: | Size: 288 KiB |
BIN
fastlane/openScale_pro/en-GB/images/phoneScreenshots/3_en-GB.png
Normal file
After Width: | Height: | Size: 151 KiB |
BIN
fastlane/openScale_pro/en-GB/images/phoneScreenshots/4_en-GB.png
Normal file
After Width: | Height: | Size: 562 KiB |
BIN
fastlane/openScale_pro/en-GB/images/phoneScreenshots/5_en-GB.png
Normal file
After Width: | Height: | Size: 269 KiB |
BIN
fastlane/openScale_pro/en-GB/images/phoneScreenshots/6_en-GB.png
Normal file
After Width: | Height: | Size: 233 KiB |
BIN
fastlane/openScale_pro/en-GB/images/phoneScreenshots/7_en-GB.png
Normal file
After Width: | Height: | Size: 311 KiB |
BIN
fastlane/openScale_pro/en-GB/images/phoneScreenshots/8_en-GB.png
Normal file
After Width: | Height: | Size: 270 KiB |
1
fastlane/openScale_pro/en-GB/short_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
Open-source weight and body metrics tracker, with support for Bluetooth scales
|
1
fastlane/openScale_pro/en-GB/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
openScale pro
|