{"id":19796545,"url":"https://github.com/oppia/oppia-android","last_synced_at":"2025-05-16T11:03:47.616Z","repository":{"id":37514029,"uuid":"148093817","full_name":"oppia/oppia-android","owner":"oppia","description":"A free online \u0026 offline learning platform to make quality education accessible for all.","archived":false,"fork":false,"pushed_at":"2025-05-03T04:22:48.000Z","size":39022,"stargazers_count":348,"open_issues_count":488,"forks_count":551,"subscribers_count":22,"default_branch":"develop","last_synced_at":"2025-05-03T05:25:28.174Z","etag":null,"topics":["android","bazel","databinding","education","espresso","hacktoberfest","interactive","java","kotlin","learning","nonprofit","robolectric","teaching","tutor","tutorials"],"latest_commit_sha":null,"homepage":"https://www.oppia.org","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oppia.png","metadata":{"files":{"readme":".github/README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-09-10T03:25:11.000Z","updated_at":"2025-05-02T23:34:32.000Z","dependencies_parsed_at":"2023-09-27T03:25:00.426Z","dependency_job_id":"88f2a431-d11e-4802-b676-c7f02ff481ba","html_url":"https://github.com/oppia/oppia-android","commit_stats":{"total_commits":1978,"total_committers":175,"mean_commits":"11.302857142857142","dds":0.8549039433771486,"last_synced_commit":"bf80719387ac195c398f2494a4a64c2807a7fc78"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oppia%2Foppia-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oppia%2Foppia-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oppia%2Foppia-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oppia%2Foppia-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oppia","download_url":"https://codeload.github.com/oppia/oppia-android/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252831440,"owners_count":21810806,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","bazel","databinding","education","espresso","hacktoberfest","interactive","java","kotlin","learning","nonprofit","robolectric","teaching","tutor","tutorials"],"created_at":"2024-11-12T07:20:01.224Z","updated_at":"2025-05-16T11:03:47.610Z","avatar_url":"https://github.com/oppia.png","language":"Kotlin","readme":"# [Oppia Android](https://www.oppia.org)\n\n[![Twitter Follow](https://img.shields.io/twitter/follow/oppiaorg.svg?style=social\u0026label=Follow\u0026maxAge=2592000?style=flat-square)](https://twitter.com/oppiaorg) [![GitHub issues by-label](https://img.shields.io/github/issues-search/oppia/oppia-android?label=Available%20starter%20issues\u0026query=is%3Aopen%20is%3Aissue%20label%3A%22good%20first%20issue%22%20no%3Aassignee)](https://github.com/oppia/oppia-android/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22+no%3Aassignee)\n\n[![Unit Tests (Robolectric -- Gradle)](https://github.com/oppia/oppia-android/actions/workflows/main.yml/badge.svg)](https://github.com/oppia/oppia-android/actions/workflows/main.yml) [![Unit Tests (Robolectric - Bazel)](https://github.com/oppia/oppia-android/actions/workflows/unit_tests.yml/badge.svg)](https://github.com/oppia/oppia-android/actions/workflows/unit_tests.yml) [![Build Tests](https://github.com/oppia/oppia-android/actions/workflows/build_tests.yml/badge.svg)](https://github.com/oppia/oppia-android/actions/workflows/build_tests.yml) [![Static Checks](https://github.com/oppia/oppia-android/actions/workflows/static_checks.yml/badge.svg)](https://github.com/oppia/oppia-android/actions/workflows/static_checks.yml)\n\nOppia is an online learning tool that enables anyone to easily create and share interactive activities (called 'explorations'). These activities simulate a one-on-one conversation with a tutor, making it possible for students to learn by doing while getting feedback.\n\nThe Android app is a frontend for Oppia that provides access to Oppia's curated numeracy lessons for users who may not have regular access to internet connectivity, and in a way that can be easily shared across multiple members of the same household. The app is now available in beta and can be installed from the [Play Store](https://play.google.com/store/apps/details?id=org.oppia.android).\n\nOppia Android is written using Kotlin and Java, and leverages Bazel, databinding, Dagger 2, and AndroidX. See also:\n\n  * [Contributors' wiki](https://github.com/oppia/oppia-android/wiki)\n  * [Oppia.org community site](https://www.oppia.org)\n  * [File an issue](https://github.com/oppia/oppia-android/issues/new/choose)\n\nYou can also sign up to our [email newsletter](https://shorturl.at/CHPY6) for news and updates about the overall Oppia project.\n\n\n## Installation\n\nPlease refer to the [Installing Oppia Android](https://github.com/oppia/oppia-android/wiki/Installing-Oppia-Android) page for full instructions on how to install Oppia-Android on your local machine.\n\n## Contributing\n\nThe Oppia project is built by the community for the community. We welcome contributions from everyone, especially new contributors.\n\nYou can help with Oppia's development in many ways, including\n- [coding](https://github.com/oppia/oppia-android/wiki#instructions-for-making-a-code-change)\n- [instructional design \u0026 storytelling](https://github.com/oppia/oppia/wiki/Teaching-with-Oppia)\n- [UX research](https://github.com/oppia/oppia/wiki/Conducting-research-with-students)\n- [creating voiceovers](https://github.com/oppia/oppia/wiki/Instructions-for-voice-artists)\n- [design \u0026 art](https://github.com/oppia/oppia/wiki/Contributing-to-Oppia%27s-design)\n- [documentation](https://github.com/oppia/oppia-android/issues/1723)\n- [donating to support our work](https://www.oppia.org/donate)\n\n**Mobile developers**: please see [this wiki page](https://github.com/oppia/oppia-android/wiki#instructions-for-making-a-code-change) for instructions on setting things up and committing changes.\n\n**Other developers**: see [this wiki page](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#setting-things-up) for instructions on setting things up for development on Oppia's frontend or backend.\n\n**All other contributors**: please see our [general contributor guidelines](https://github.com/oppia/oppia/wiki).\n\n\n## Development\nThe Oppia Android codebase is specifically designed to streamline development by utilizing design patterns that reduce the likelihood of making mistakes, and by leveraging powerful libraries and technologies to reduce the amount of code that needs to be written. See the [Overview of the Oppia Android codebase](https://github.com/oppia/oppia-android/wiki/Overview-of-the-Oppia-Android-codebase-and-architecture) wiki page for more specifics on the architecture. A brief list of libraries \u0026 technologies that the team makes significant use of:\n- [Dagger](https://dagger.dev/)\n- [Jetpack Databinding](https://developer.android.com/topic/libraries/data-binding)\n- [Jetpack LiveData](https://developer.android.com/topic/libraries/architecture/livedata)\n- [Kotlin](https://kotlinlang.org/) + [Kotlin Coroutines](https://kotlinlang.org/docs/reference/coroutines-overview.html)\n- [Protobuffer](https://developers.google.com/protocol-buffers)\n- [Bazel](https://bazel.build/)\n- [Espresso](https://developer.android.com/training/testing/espresso) \u0026 [Robolectric for testing](http://robolectric.org/)\n- And many more\n\nThe team puts special emphasis on writing high-quality, readable, maintainable, and well-tested code.\n\n\n## Support\n\nIf you have any feature requests or bug reports, please log them on our [issue tracker](https://github.com/oppia/oppia-android/issues/new/choose).\n\nPlease report security issues directly to admin@oppia.org.\n\n\n## License\n\nThe Oppia Android code is released under the [Apache v2 license](https://github.com/oppia/oppia-android/blob/develop/LICENSE).\n\n\n## Keeping in touch\n\n  * [Discussion forum](https://github.com/oppia/oppia-android/discussions)\n  * [Announcements mailing list](http://groups.google.com/group/oppia-announce)\n\n## Social Media\n[\u003cimg height=\"30\" src=\"https://img.shields.io/badge/twitter-1DA1F2.svg?\u0026style=for-the-badge\u0026logo=twitter\u0026logoColor=white\" /\u003e][twitter]\n[\u003cimg height=\"30\" src=\"https://img.shields.io/badge/linkedin-0077B5.svg?\u0026style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\" /\u003e][LinkedIn]\n[\u003cimg height=\"30\" src = \"https://img.shields.io/badge/facebook-1877F2.svg?\u0026style=for-the-badge\u0026logo=facebook\u0026logoColor=white\"\u003e][Facebook]\n[\u003cimg height=\"30\" src = \"https://img.shields.io/badge/medium-12100E.svg?\u0026style=for-the-badge\u0026logo=medium\u0026logoColor=white\"\u003e][medium]\n[\u003cimg height=\"30\" src = \"https://img.shields.io/badge/oppia.org%20youtube-FF0000.svg?\u0026style=for-the-badge\u0026logo=youtube\u0026logoColor=white\"\u003e][oppia-org-youtube]\n[\u003cimg height=\"30\" src = \"https://img.shields.io/badge/oppia%20dev%20youtube-FF0000.svg?\u0026style=for-the-badge\u0026logo=youtube\u0026logoColor=white\"\u003e][dev-youtube]\n\n[twitter]: https://twitter.com/oppiaorg\n[linkedIn]: https://www.linkedin.com/company/oppia-org/\n[medium]: https://medium.com/@oppia.org\n[facebook]: https://www.facebook.com/oppiaorg/\n[oppia-org-youtube]: https://www.youtube.com/channel/UC5c1G7BNDCfv1rczcBp9FPw\n[dev-youtube]: https://www.youtube.com/channel/UCsrAX-oeqm0-NIQzQrdiUkQ\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foppia%2Foppia-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foppia%2Foppia-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foppia%2Foppia-android/lists"}