# wikimedia/apps-android-wikipedia

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/wikimedia-apps-android-wikipedia).**

2,858 stars · 783 forks · Kotlin · apache-2.0

## Links

- GitHub: https://github.com/wikimedia/apps-android-wikipedia
- Homepage: https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/Android/App_hacking
- awesome-repositories: https://awesome-repositories.com/repository/wikimedia-apps-android-wikipedia.md

## Topics

`android` `android-app` `coroutines` `java` `kotlin` `mediawiki` `mediawiki-api` `rest-api` `viewmodel` `wiki` `wikipedia` `wikipedia-android`

## Description

This project is a native Android mobile application and Wikipedia client designed for browsing and editing encyclopedia content through a mobile interface. It provides users with a dedicated way to access and search a crowdsourced knowledge base on Android devices.

The application features integrated support for global accessibility through mobile localization and the ability to translate interface text into multiple languages. It also utilizes remote configuration to manage operational behavior and feature toggles via JSON files, allowing system settings and logging levels to be adjusted without deploying new versions to the app store.

## Tags

### Mobile Development

- [Native Android Applications](https://awesome-repositories.com/f/mobile-development/native-android-applications.md) — A native Android application designed for browsing and editing Wikipedia content.
- [Android Application Development](https://awesome-repositories.com/f/mobile-development/android-application-development.md) — Developed as a large-scale native Android application using platform-specific tools and patterns.
- [App Navigation Frameworks](https://awesome-repositories.com/f/mobile-development/app-navigation-frameworks.md) — Uses Jetpack Navigation to handle screen transitions and deep linking via a centralized navigation graph.
- [Mobile Application Localizations](https://awesome-repositories.com/f/mobile-development/mobile-application-localizations.md) — Translates user interface text into multiple languages to make the native app accessible globally.
- [Remote App Configurations](https://awesome-repositories.com/f/mobile-development/remote-app-configurations.md) — Fetches remote configuration files at startup to adjust system settings without requiring a new app store version. ([source](https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/Android/App_hacking))

### Content Management & Publishing

- [Knowledge Bases](https://awesome-repositories.com/f/content-management-publishing/documentation-knowledge-management/knowledge-bases.md) — Provides a mobile interface for searching and reading a vast crowdsourced encyclopedia of information.
- [Encyclopedia Article Browsers](https://awesome-repositories.com/f/content-management-publishing/encyclopedia-article-browsers.md) — Functions as a native encyclopedia article browser optimized for mobile devices to retrieve and display Wikipedia content.

### Data & Databases

- [Offline Caching Repositories](https://awesome-repositories.com/f/data-databases/backend-data-access-layers/repository-patterns/offline-caching-repositories.md) — Implements a repository layer that mediates between remote network APIs and local caching for offline access.

### Development Tools & Productivity

- [Runtime Feature Toggles](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/application-configuration/feature-flag-management/runtime-feature-toggles.md) — Adjusts application behavior and logging levels at runtime using remote JSON configuration files.

### Software Engineering & Architecture

- [Dependency Injection Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/dependency-injection-frameworks.md) — Implements a dependency injection framework to decouple implementation from instantiation throughout the application.
- [MVVM Architectures](https://awesome-repositories.com/f/software-engineering-architecture/mvvm-architectures.md) — Employs the MVVM architectural pattern to separate business logic from UI using ViewModels.

### User Interface & Experience

- [Native App Localizations](https://awesome-repositories.com/f/user-interface-experience/mobile-interface-localizations/native-app-localizations.md) — Features integrated support for translating interface text into multiple languages for a global audience.
- [Localization Resources](https://awesome-repositories.com/f/user-interface-experience/user-interface-language-selection/localization-resources.md) — Uses local resource bundles and external translation services to localize interface strings into multiple languages.

### Part of an Awesome List

- [AI and Science](https://awesome-repositories.com/f/awesome-lists/ai/ai-and-science.md) — Access to Wikipedia knowledge base.
