Multiplatform (Android and iOS currently) version of the Probe app.
Releases
CI Status
-
composeAppis for code that will be shared across your Compose Multiplatform applications. It contains several subfolders:commonMainis for code that’s common for all targets.androidMainAndroid-specific codeiosMainiOS-specific code written in KotlindwMainNews Media Scan specific Branding and customizationooniMainOONI Probe specific Branding and customization
-
iosAppcontains the iOS application configuration and the engine integration written in Swift -
.githubcontains the Continuous Integration configuration for Github -
gradle/libs.versions.tomlspecifies the versions of the plugins and dependencies used across the different modules.
To build, install, and run your application, use the following commands:
-
For OONI Probe:
./gradlew runDebug -Porganization=ooni -
For News Media Scan:
./gradlew runDebug -Porganization=dw
There is a custom gradle task(copyBrandingToCommonResources) that is used to copy brand specific
resources to the common resources folder. This task is called before the preBuild task.
Configure run configurations for easy execution within Android Studio:
- Click the Plus (+) sign in the top left corner of the "Run/Debug Configurations" dialog.
- Choose 'Gradle'.
- Configure with the following:
- Name: OONI_Probe
- Run: :composeApp:runDebug -Porganization=ooni
- Repeat the steps for creating a new configuration.
- Configure with the following:
- Name: News_Media_Scan
- Run: :composeApp:runDebug -Porganization=dw
The "Run/Debug Configurations" already has the proper configuration and you just need to select the
XCode Project Scheme OONIProbe and run it.
The "Run/Debug Configurations" already has the proper configuration and you just need to select the
XCode Project Scheme NewsMediaScan and run it.
- Ensure you can run clean and build the project successfully.
- Run
pod installin theiosAppdirectory.
Common tests (tests inside commonTest) only run on the iOS Simulator.
Choosing the option android (local) won't work. This is a current
issue with
the official testing library.
The app is translated by the community through Transifex (Guidelines).
Important Note: Any Pull Request that introduces new strings into the app should be reviewed by @agrabeli. The Pull Request should include screenshots showing the strings in context.
New or updated strings on the default version of the strings-common.xml and
strings-organization.xml files are automatically uploaded to Transifex when a Pull Request is
merged into the main branch.
Transifex automatically creates Pull Requests with the latest translation changes to keep the app up-to-date.
Metadata such as Store Listing copy and screenshots are located in the metadata root folder.
Transifex also maintains those translations automatically.
Inside fastlane/metadata are only symbolic links mapping the locales supported by Google Play or
Apple App Store to the Transifex locales. Changes should only be made to the root metadata folder.
