apps-android-commons
The Wikimedia Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons
Top Related Projects
📱The official Wikipedia app for Android!
📱 Nextcloud Android app
OsmAnd
Thunderbird for Android – Open Source Email App for Android (fka K-9 Mail)
Material design file manager for Android
Quick Overview
Commons-app/apps-android-commons is an open-source Android application for uploading images to Wikimedia Commons. It allows users to contribute media to the Wikimedia Commons repository directly from their Android devices, supporting the mission of free knowledge sharing.
Pros
- Facilitates easy contribution to Wikimedia Commons from mobile devices
- Open-source project with an active community of contributors
- Integrates with device camera and gallery for seamless image uploads
- Supports adding categories and descriptions to uploaded media
Cons
- Limited to Android platform, excluding iOS and other mobile users
- May require user education on Wikimedia Commons policies and guidelines
- Potential for misuse or copyright violations if users are not careful
- Requires a Wikimedia account, which might be a barrier for some users
Getting Started
To contribute to the project or run it locally:
-
Clone the repository:
git clone https://github.com/commons-app/apps-android-commons.git
-
Open the project in Android Studio
-
Build and run the app on an emulator or physical device
-
To contribute, fork the repository, make changes, and submit a pull request
For more detailed instructions, refer to the project's CONTRIBUTING.md file in the GitHub repository.
Competitor Comparisons
📱The official Wikipedia app for Android!
Pros of apps-android-wikipedia
- Larger and more active community, with more frequent updates and contributions
- More comprehensive feature set, including offline reading and article suggestions
- Better integration with Wikipedia's ecosystem and APIs
Cons of apps-android-wikipedia
- More complex codebase, potentially harder for new contributors to navigate
- Heavier app size due to additional features and resources
- Stricter contribution guidelines and review process
Code Comparison
apps-android-wikipedia:
private fun showLinkPreview(entry: HistoryEntry) {
bottomSheetPresenter.show(childFragmentManager,
LinkPreviewDialog.newInstance(entry.title, entry.historySource))
}
apps-android-commons:
private void showInfoWindow(Marker marker) {
View contents = getLayoutInflater().inflate(R.layout.nearby_info_dialog, null);
TextView title = contents.findViewById(R.id.nearby_info_title);
title.setText(marker.getTitle());
}
The apps-android-wikipedia example uses Kotlin and demonstrates a more modern approach with a bottom sheet dialog, while apps-android-commons uses Java and shows a simpler info window implementation. This reflects the overall trend of apps-android-wikipedia being more feature-rich and up-to-date in terms of technology stack.
📱 Nextcloud Android app
Pros of Nextcloud Android
- More comprehensive file management and synchronization features
- Larger and more active community, with frequent updates and contributions
- Broader scope, supporting a full-fledged cloud platform
Cons of Nextcloud Android
- More complex codebase, potentially harder for new contributors to navigate
- Heavier resource usage due to its extensive feature set
- Less focused on a specific use case compared to Android Commons
Code Comparison
Nextcloud Android (Fragment implementation):
class FileDisplayActivity : FileDisplayActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_file_display)
// Additional setup code
}
}
Android Commons (Activity implementation):
public class ContributionsActivity extends AuthenticatedActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contributions);
// Additional setup code
}
}
Both projects use similar Android development patterns, but Nextcloud Android tends to use more modern Kotlin code, while Android Commons primarily uses Java. Nextcloud Android's codebase is generally more extensive and complex due to its broader feature set.
OsmAnd
Pros of OsmAnd
- More comprehensive mapping and navigation features
- Offline functionality for maps and routing
- Larger and more active community, with frequent updates
Cons of OsmAnd
- More complex user interface, steeper learning curve
- Larger app size due to extensive features and offline maps
- Higher resource consumption, potentially affecting device performance
Code Comparison
OsmAnd (Java):
public class MapActivity extends AbstractMapActivity implements OsmAndLocationProvider.OsmAndCompassListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_activity);
// Initialize map view and controls
}
}
apps-android-commons (Kotlin):
class MainActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Initialize UI components and navigation
}
}
The code snippets show that OsmAnd uses Java for its main activity, while apps-android-commons uses Kotlin. OsmAnd's activity is specifically tailored for map functionality, whereas apps-android-commons has a more general-purpose main activity. Both follow Android development conventions but differ in language choice and specific implementation details.
Thunderbird for Android – Open Source Email App for Android (fka K-9 Mail)
Pros of Thunderbird-Android
- More active development with frequent updates and commits
- Larger community and contributor base
- Comprehensive email client functionality
Cons of Thunderbird-Android
- More complex codebase due to broader feature set
- Steeper learning curve for new contributors
- Potentially higher resource usage on devices
Code Comparison
Apps-Android-Commons:
class ContributionsActivity : AuthenticatedActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_contributions)
// ...
}
}
Thunderbird-Android:
class MessageListFragment : Fragment(), MessageListFragmentListener {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.message_list_fragment, container, false)
// ...
return view
}
}
Both projects use Kotlin for Android development, but Thunderbird-Android appears to have a more modular structure with separate fragments for different functionalities. Apps-Android-Commons uses a simpler activity-based approach, which may be easier for beginners to understand but potentially less flexible for complex features.
Material design file manager for Android
Pros of AmazeFileManager
- More comprehensive file management features, including cloud storage integration and root access
- Larger and more active community, with more frequent updates and contributions
- Better UI/UX design, offering a more modern and intuitive interface
Cons of AmazeFileManager
- Larger codebase, potentially making it more complex to maintain and contribute to
- Less focused on a specific use case, which may lead to feature bloat for some users
- Requires more permissions, which could be a concern for privacy-conscious users
Code Comparison
AmazeFileManager uses Kotlin extensively, while apps-android-commons primarily uses Java:
AmazeFileManager:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.main_fragment, container, false)
mainActivity = activity as MainActivity
return view
}
apps-android-commons:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_contributions, container, false);
ButterKnife.bind(this, rootView);
return rootView;
}
Both projects use similar Android architecture components, but AmazeFileManager's codebase appears more modern and follows newer Android development practices.
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
Wikimedia Commons Android app
The Wikimedia Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons. Download the app here, or view our website.
Initially started by the Wikimedia Foundation, this app is now maintained by grantees and volunteers of the Wikimedia community. Anyone is welcome to improve it, just choose among the open issues and send us a pull request! :-)


Documentation
Our documentation repository contains extensive documentation for users, contributors, and developers alike:
Contributors
Thank you all for your work!
.. and many more.
License
This software is open source, licensed under the Apache License 2.0.
Top Related Projects
📱The official Wikipedia app for Android!
📱 Nextcloud Android app
OsmAnd
Thunderbird for Android – Open Source Email App for Android (fka K-9 Mail)
Material design file manager for Android
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