Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/automattic/pocket-casts-android

Pocket Casts Android 🎧
https://github.com/automattic/pocket-casts-android

android pocket-casts

Last synced: about 1 month ago
JSON representation

Pocket Casts Android 🎧

Awesome Lists containing this project

README

        








Pocket Casts is the world's most powerful podcast platform, an app by listeners, for listeners.

## Install

If you're just looking to install Pocket Casts Android, you can find it on [Google Play](https://play.google.com/store/apps/details?id=au.com.shiftyjelly.pocketcasts). If you're a developer wanting to contribute, read on.

## Build Instructions

1. Make sure you've installed [Android Studio](https://developer.android.com/studio/index.html).
2. In Android Studio, open the project from the local repository.
3. Go to Tools β†’ Device Manager and create an emulated device.
4. Go to Run β†’ Edit Configurations… and create an Android App configuration.
5. Select the module "pocketcasts-android.app.main".
6. Run.

## Build and Test

To build, install, and test the project from the command line:

$ ./gradlew :app:assembleDebugProd # assemble the debug .apk
$ ./gradlew :app:installDebugProd # install the debug .apk to a connected device
$ ./gradlew :app:testDebugUnitTest # assemble, install and run unit tests
$ ./gradlew :app:connectedDebugAndroidTest # assemble, install and run Android tests

## Directory structure
.
β”œβ”€β”€ app # Mobile app
β”œβ”€β”€ automotive # Automotive app
β”œβ”€β”€ modules
β”‚ β”œβ”€β”€ features
β”‚ β”‚ β”œβ”€β”€ account # Create account and sign in pages.
β”‚ β”‚ β”œβ”€β”€ cartheme # Automotive resources needed for the account pages.
β”‚ β”‚ β”œβ”€β”€ discover # Discover section.
β”‚ β”‚ β”œβ”€β”€ endofyear # End of year stats.
β”‚ β”‚ β”œβ”€β”€ filters # Filters section.
β”‚ β”‚ β”œβ”€β”€ navigation # Navigation utilities.
β”‚ β”‚ β”œβ”€β”€ player # Full screen player
β”‚ β”‚ β”œβ”€β”€ podcasts # Podcasts section.
β”‚ β”‚ β”œβ”€β”€ profile # Profile section.
β”‚ β”‚ β”œβ”€β”€ search # Search pages.
β”‚ β”‚ β”œβ”€β”€ settings # Settings pages.
β”‚ β”‚ └── taskerplugin # Plugin for integration with Tasker app.
β”‚ └── services
β”‚ β”œβ”€β”€ analytics # Analytics code.
β”‚ β”œβ”€β”€ compose # Shared Compose code.
β”‚ β”œβ”€β”€ images # Image resources.
β”‚ β”œβ”€β”€ localization # Contains the strings in English and localized strings from GlotPress.
β”‚ β”œβ”€β”€ model # The database logic and entities. Also transfer objects required which aren't stored in the database.
β”‚ β”œβ”€β”€ preferences # Stores the user preferences and configuration settings.
β”‚ β”œβ”€β”€ repositories # Provides accessing to the data from the 'servers' and 'model' modules.
β”‚ β”œβ”€β”€ servers # Provides the network calls to the servers. The UI layer should access these through the 'repositories' module.
β”‚ β”œβ”€β”€ ui # Shared UI code for the 'compose' and 'views' modules. This includes the themes.
β”‚ β”œβ”€β”€ utils # Utility classes.
β”‚ └── views # Shred Only the old views code.

The hierarchy of the modules in the project are reflected in [this diagram](docs/module-diagram.png).

## Contributing

Read our [Contributing Guide](CONTRIBUTING.md) to learn about reporting issues, contributing code, and more ways to contribute.

## Documentation

- [Coding Style](docs/coding-style.md) - guidelines and validation and auto-formatting tools
- [Pull Request Guidelines](docs/pull-request-guidelines.md) - branch naming and how to write good pull requests
- [Translations](docs/translations.md) - how the app gets translated and how to contribute translations

## Signing a Release

To build a _signed_ release, add these lines to your local.properties file

signingKeyStoreFile=/Users/username/git/secret.keystore
signingKeyStorePassword=
signingKeyAlias=
signingKeyPassword=