Top Related Projects
⚠️ Fenix (Firefox for Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android
Kiwix for Android
Material design file manager for Android
AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
The Wikimedia Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons
Quick Overview
The wikimedia/apps-android-wikipedia repository contains the official Wikipedia Android app. This open-source project allows users to access Wikipedia content on their Android devices, offering features like article search, reading, editing, and offline access. The app is developed and maintained by the Wikimedia Foundation and community contributors.
Pros
- Open-source project with a large community of contributors
- Offers offline access to Wikipedia articles
- Supports multiple languages and localization
- Includes features for both reading and editing Wikipedia content
Cons
- Complex codebase due to the app's extensive features
- May have a steeper learning curve for new contributors
- Requires adherence to specific coding standards and guidelines
- Limited to Android platform only (separate iOS app exists)
Getting Started
To get started with contributing to the Wikipedia Android app:
- Fork the repository on GitHub
- Clone your fork to your local machine
- Set up Android Studio and the required SDKs
- Build the project using Gradle
- Run the app on an emulator or physical device
- Make changes and submit pull requests following the contribution guidelines
For detailed instructions, refer to the CONTRIBUTING.md file in the repository.
Competitor Comparisons
⚠️ Fenix (Firefox for Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android
Pros of Fenix
- More active development with frequent updates and contributions
- Broader feature set, including privacy-focused tools and customization options
- Larger community and more extensive documentation
Cons of Fenix
- More complex codebase, potentially harder for new contributors to navigate
- Heavier resource usage due to its extensive feature set
- Longer build times and potentially slower app performance
Code Comparison
Fenix (Kotlin):
class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
return inflater.inflate(R.layout.fragment_browser, container, false)
}
}
Wikipedia (Java):
public class PageFragment extends Fragment implements BackPressedHandler {
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_page, container, false);
return rootView;
}
}
The code comparison shows that Fenix uses Kotlin, while Wikipedia uses Java. Fenix's code appears more concise due to Kotlin's syntax. Both fragments implement custom interfaces for handling user interactions or back presses, indicating similar architectural approaches despite language differences.
Kiwix for Android
Pros of Kiwix-android
- Offline access to Wikipedia content
- Supports multiple languages and projects beyond Wikipedia
- Smaller app size due to content being downloaded separately
Cons of Kiwix-android
- Less frequent updates compared to Apps-android-wikipedia
- Limited integration with Wikimedia's live services
- Fewer features for active contribution to Wikipedia
Code Comparison
Apps-android-wikipedia:
class WikipediaApp : MultiDexApplication(), Components {
lateinit var appComponent: AppComponent
override fun onCreate() {
super.onCreate()
initializeComponents()
}
}
Kiwix-android:
public class KiwixApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
KiwixMobileComponent component = DaggerKiwixMobileComponent.builder()
.kiwixModule(new KiwixModule(this))
.build();
}
}
Both projects use dependency injection, but Apps-android-wikipedia uses Kotlin while Kiwix-android uses Java. Apps-android-wikipedia has a more modular structure with a separate Components interface, while Kiwix-android directly implements the component creation in the Application class.
Material design file manager for Android
Pros of AmazeFileManager
- More versatile functionality as a file manager compared to a single-purpose app
- Larger community of contributors (1,000+ vs. 300+)
- More frequent updates and active development
Cons of AmazeFileManager
- Less specialized for a specific use case compared to Wikipedia's focused app
- Potentially more complex codebase due to broader feature set
- May have a steeper learning curve for new contributors
Code Comparison
AmazeFileManager (Java):
public class MainActivity extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}
}
apps-android-wikipedia (Kotlin):
class MainActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
The code snippets show similar basic structure, but AmazeFileManager uses Java while apps-android-wikipedia uses Kotlin. Both extend a BaseActivity class and set content views in their onCreate methods. The Wikipedia app's use of Kotlin may lead to more concise and modern code overall.
AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
Pros of Anki-Android
- More focused and specialized functionality for flashcard-based learning
- Larger community of contributors (1,000+ vs. 300+)
- Longer development history and more established codebase
Cons of Anki-Android
- Less frequent updates and commits compared to apps-android-wikipedia
- Smaller overall codebase size (200k+ vs. 500k+ lines of code)
- More complex setup process for new contributors
Code Comparison
Anki-Android (Java):
public class DeckPicker extends NavigationDrawerActivity implements
StudyOptionsListener, DatabaseErrorHandler, OnRequestPermissionsResultCallback {
// ...
}
apps-android-wikipedia (Kotlin):
class MainActivity : BaseActivity(), MainActivityTabCallback, NavDrawerHelper, ThemeableActivity {
// ...
}
Both projects use similar architectural patterns, but apps-android-wikipedia has transitioned to Kotlin, while Anki-Android primarily uses Java. The Wikipedia app also appears to have a more modular structure with separate activities for different features, whereas Anki-Android centralizes more functionality in the DeckPicker class.
The Wikimedia Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons
Pros of apps-android-commons
- Focused on media contributions, allowing users to easily upload photos and other media to Wikimedia Commons
- More streamlined and specific functionality for contributing to Commons
- Active community-driven development with frequent updates and improvements
Cons of apps-android-commons
- Limited scope compared to the full Wikipedia app
- Smaller user base and potentially fewer resources for development
- May lack some features found in the main Wikipedia app, such as article browsing and editing
Code Comparison
apps-android-wikipedia:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
apps-android-commons:
class ContributionsActivity : AuthenticatedActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_contributions)
}
}
Both repositories use Kotlin for Android development, but apps-android-commons appears to have more specialized activities tailored to its specific purpose of media contributions. The main Wikipedia app likely has a broader range of activities and features to support its more comprehensive functionality.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Wikipedia Android app
This repository contains the source code for the official Wikipedia Android app.
Documentation
All documentation is kept on our wiki. Check it out!
Issues
Kindly file issues in our bug tracker
Top Related Projects
⚠️ Fenix (Firefox for Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android
Kiwix for Android
Material design file manager for Android
AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
The Wikimedia Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot