About the Project
Exporting data from any app into a file made simple. Just open the share options, select "Save To…" and choose the target file. Done. No permissions required.
More infos on the official website: xa1.at/saveto.
Background on blog post: I Published My First App on the Google Play Store
Tech Stack
Native Android App.
Maximum Privacy. No Permissions required. Not even internet access.
Features
- Introduction Guide
- Open from Share Dialog and save shared item into a file.
- Settings
Color Reference
Color | Hex |
---|---|
Primary Color | #ff8f00 |
Getting Started
Prerequisites
- Android Studio
- Java 11+
- sh
Code Checks
Before committing run:
./debugCheck.sh
This compiles the code, runs ktlint, unit tests and android tests.
Package-Structure
at.xa1.saveto
: main package with the most fundamental classes (likeMainActivity
andMainCoordinator
)common
: generic, non-app-specific classesandroid
: generic, non-app-specific classes that are strongly related to Android.
di
: Dependency Injection.feature
: sub packages contain pieces of functionality, that don't depend on other features.ui
: User interface components that are not feature specific.
Release
This is only relevant for the deployer.
- Update
versionCode
andversionName
inversions.gradle
- Run:
./release.sh
- Upload
app/build/outputs/bundle/release/app-release.aab
to Google Play Console.
Signing
Signing is located in .signing
folder. It is added to .gitignore
to avoid accidental committing. Extract release.jks
(and private_key.pepk
) from Password Manager to .signing
.
Create .signing/keystore.properties
:
keyAlias=releaseKey
keyPassword=[PASSWORD FROM PASSWORD MANAGER]
storeFile=.signing/release.jks
storePassword=[SAME PASSWORD FROM PASSWORD MANAGER]
Create Screenshots
- Start Emulator.
- Make sure status bar is empty.
- Make sure battery, network and wifi are full (emulator settings).
- Use gesture navigation to hide navigation buttons (android settings).
- Set time to: 04:01 (android settings).
- Use tests in
PlayStoreScreenshots
for individual screens:- Clear screenshot folder on emulator:
adb shell rm -rf "/storage/emulated/0/Pictures/screenshots"
- Run
PlayStoreScreenshots
tests - Download screenshots from emulator:
adb pull "/storage/emulated/0/Pictures/screenshots"
- Clear screenshot folder on emulator:
Roadmap
- Return OK Result when finished successfully
- Show KB copied
- Show Success
- Show Error
- Propose Filename
- Support Plain Text
- Make Scrollable
- Dependency Injection
- List open source licenses
- Settings
- Intro
- Screenshots
- Feature graphic
- https://xa1.at/saveto/ site
- Review package and file structure
- Show version in settings
- Create screenshots using Screenshot.capture() instead of doing it manually.
- CI setup
- Bug: Shouldn't be possible to open from recents.
- Abort (back button)
- Support multiple files shared at once.
License
Distributed under BSD 3-Clause License. See LICENSE for more information.
Contact
- Twitter: @xa17d
- Website: xa1.at/saveto
- E-Mail: [email protected]
Attributions
README inspired by Louis3797/awesome-readme-template.
Google Play and the Google Play logo are trademarks of Google LLC.