Convert Figma logo to code with AI

commons-app logoapps-android-commons

The Wikimedia Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons

1,065
1,266
1,065
632

Top Related Projects

📱The official Wikipedia app for Android!

4,567

📱 Nextcloud Android app

5,021

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:

  1. Clone the repository:

    git clone https://github.com/commons-app/apps-android-commons.git
    
  2. Open the project in Android Studio

  3. Build and run the app on an emulator or physical device

  4. 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.

4,567

📱 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.

5,021

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Wikimedia Commons Android app

GitHub issue custom search Build status Preview the app codecov

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! :-)

Get it on F-Droid Get it on Google Play

Documentation

Our documentation repository contains extensive documentation for users, contributors, and developers alike:

Contributors

Thank you all for your work!


misaochan

translatewiki

neslihanturan

yuvipanda

nicolas-raoul

domdomegg

maskaravivek

psh

madhurgupta10

ashishkumar468

bvibber

whym

akaita

veyndan

ujjwalagrawal17

macgills

dbrant

vanshikaarora

sivaraam

Ayan-10

shashankiitbhu

Pratham2305

sandarumk

tanvidadu

cypherop

Prince-kushwaha

tobias47n9e

4D17Y4

hismaeel

tshradheya

.. and many more.

License

This software is open source, licensed under the Apache License 2.0.