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. If you're a developer wanting to contribute, read on.
Build Instructions
- Make sure you've installed Android Studio.
- In Android Studio, open the project from the local repository.
- Go to Tools โ Device Manager and create an emulated device.
- Go to Run โ Edit Configurationsโฆ and create an Android App configuration.
- Select the module "pocketcasts-android.app.main".
- 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.
Contributing
Read our Contributing Guide to learn about reporting issues, contributing code, and more ways to contribute.
Security
If you happen to find a security vulnerability, please let us know at https://hackerone.com/automattic and allow us to respond before disclosing the issue publicly.
Documentation
- Coding Style - guidelines and validation and auto-formatting tools
- Pull Request Guidelines - branch naming and how to write good pull requests
- Translations - how the app gets translated and how to contribute translations
Signing a Release
To build a signed release, add these lines to your ~/.gradle/gradle.properties file
pocketcastsKeyStoreFile=/Users/username/git/secret.keystore
pocketcastsKeyStorePassword=
pocketcastsKeyStoreAlias=
pocketcastsKeyStoreAliasPassword=