Tutorials

    How to make your first Android open-source contribution

    A
    AzeemJun 29, 2026 · 7 min read
    68

    Making your first open-source contribution can feel confusing.

    You open GitHub.
    You search Android repositories.
    You see thousands of files.
    You see issues, pull requests, branches, build errors, contribution rules.

    And then the question comes:

    “Where do I even start?”

    Most beginners start from the wrong place.

    They look for a famous repository, pick a random issue, make a big code change, and open a pull request.

    Then nothing happens.

    No review.
    No merge.
    No feedback.

    The problem is not always your code.

    Sometimes the project is inactive.
    Sometimes the issue is outdated.
    Sometimes the change is too large.
    Sometimes the maintainer never agreed with your approach.

    So if you want your first Android contribution to be useful, start with the right mindset.

    Open source is not about collecting a badge.

    It is about joining an existing project respectfully and making maintainers’ lives easier.

    Start with project health, not stars

    A popular project is not always a beginner-friendly project.

    Before picking an issue, spend 10 minutes checking the repository.

    Ask:

    Was code merged recently?
    Do maintainers reply to issues and PRs?
    Is there a CONTRIBUTING.md file?
    Can you build the project locally?
    Are beginner issues actually active?
    Are there hundreds of ignored pull requests?
    Is the issue list maintained?
    code

    A repository with 500 stars and active maintainers can be better than a repository with 50,000 stars and 300 stale pull requests.

    For your first contribution, you need a project where someone is likely to review your work.

    Some Android repositories you can explore:

    Thunderbird for Android
    NewPipe
    Mihon
    Signal Android
    Now in Android
    Jetpack Compose samples
    Material Components Android
    WordPress Android
    Firefox Android
    code

    But do not choose only by name.

    Choose by activity, documentation, and issue quality.

    Read the contribution guide

    Before touching code, read:

    README.md
    CONTRIBUTING.md
    CODE_OF_CONDUCT.md
    Issue templates
    Pull request templates
    Build instructions
    Architecture notes
    code

    Many projects have rules like:

    Discuss big features before coding
    Use a specific branch
    Run a specific formatter
    Add tests for bug fixes
    Attach screenshots for UI changes
    Avoid unrelated refactoring
    code

    If you ignore these rules, even a technically correct PR can be rejected.

    A good contributor follows the project’s process.

    Build the project unchanged

    This is important.

    Before fixing anything, first build and run the project exactly as it is.

    If the project does not build, do not immediately assume the repo is broken.

    Check:

    JDK version
    Android Studio version
    Gradle version
    local.properties
    API keys
    Emulator/device requirements
    Build variant
    Environment setup
    code

    If the documentation is wrong or outdated, that itself can become your first contribution.

    A documentation fix that helps future contributors is valuable.

    Choose a small useful issue

    Your first contribution does not need to be a big feature.

    In fact, it should not be.

    Good first contributions are usually small and focused.

    Examples:

    Fix a small crash
    Improve setup documentation
    Add a missing test
    Fix an accessibility label
    Reproduce a bug with logs
    Test an existing pull request
    Fix a UI edge case
    Update outdated screenshots
    Improve an error message
    Handle an empty state
    code

    Avoid:

    Large architecture rewrites
    Random file renaming
    Mass formatting
    Changing code style
    Updating many dependencies
    Adding features nobody requested
    Refactoring unrelated files
    code

    Maintainers are not looking for big noisy patches.

    They are looking for useful, reviewable changes.

    Reproduce the issue before coding

    If an issue says:

    App crashes when opening Settings
    code

    Do not jump directly into code.

    First reproduce it.

    Find:

    App version
    Branch
    Device or emulator
    Android version
    Exact steps
    Expected behavior
    Actual behavior
    Logs or stack trace
    Screenshots or screen recording
    code

    A useful comment looks like this:

    I reproduced this on Pixel 7 emulator, Android 15.
    
    Steps:
    1. Open Settings
    2. Tap Account
    3. Rotate the device
    
    The crash happens with this stack trace:
    ...
    
    I think the issue is related to state restoration in AccountScreen.
    I can work on a focused fix and add a regression test if this scope is okay.
    code

    This is much better than:

    Can I work on this?
    code

    Because it gives maintainers evidence and a clear plan.

    Agree on scope before large work

    For small typos or obvious one-line fixes, you can directly open a PR.

    But for bigger changes, comment first.

    Ask before you spend hours coding.

    A good scope comment includes:

    What you reproduced
    Where you think the issue is
    What you plan to change
    What you will not change
    How you plan to test
    code

    This avoids wasted work.

    Sometimes maintainers already know a better approach.
    Sometimes the issue is no longer relevant.
    Sometimes the project is moving in another direction.

    A short discussion can save you days.

    Make the smallest possible fix

    This is one of the most important rules.

    If the issue is about one crash, fix that crash.

    Do not also:

    Refactor the whole screen
    Rename variables across the module
    Change formatting
    Update dependencies
    Rewrite navigation
    Move files around
    code

    A good first PR has:

    One problem
    One focused fix
    One clear test plan
    No unrelated cleanup
    code

    Small PRs are easier to review.

    Easy-to-review PRs are more likely to get feedback.

    Test like an Android developer

    For Android projects, testing is not only running the app once.

    Depending on the change, mention:

    Device or emulator used
    Android version
    Build variant
    Screen tested
    Commands run
    Before/after screenshots
    Screen recording for UI changes
    Unit tests
    Instrumentation tests
    Regression test
    code

    Example PR testing section:

    Tested on:
    Pixel 7 emulator, Android 15
    
    Verified:
    - App launches successfully
    - Settings screen no longer crashes on rotation
    - Account data still loads correctly
    - Added regression test for state restoration
    code

    If you could not run a test, say that honestly.

    Maintainers trust clear communication more than fake confidence.

    Write a clear pull request description

    Your PR description should answer four questions:

    What was broken?
    What changed?
    Why this approach?
    How was it tested?
    code

    Example:

    Before:
    Settings screen crashed when rotating the device after opening account details.
    
    After:
    Account state is restored safely and the screen no longer crashes.
    
    Why:
    The existing ViewModel already owns account state, so this change keeps state handling there instead of adding UI-level caching.
    
    Testing:
    Tested manually on Pixel 7 emulator Android 15 and added a regression test.
    code

    For UI changes, attach screenshots or a short video.

    For bug fixes, link the issue.

    For behavior changes, explain the tradeoff.

    Respond well to review

    Getting review comments does not mean you failed.

    It means someone is spending time on your contribution.

    When feedback arrives:

    Read carefully
    Ask if something is unclear
    Make requested changes
    Avoid arguing emotionally
    Explain tradeoffs calmly
    Push small follow-up commits
    code

    Do not defend your first version just because you wrote it.

    The goal is not to prove you are right.

    The goal is to improve the project.

    Be patient

    Open-source maintainers are often volunteers.

    A week without review can be normal.

    Do not spam:

    Please review
    Please merge
    Any update?
    Hello?
    code

    Follow the project’s etiquette.

    If the PR becomes stale, politely ask once after a reasonable time.

    And remember:

    A PR not being merged does not always mean it was bad.

    Priorities change.

    A simple roadmap

    Here is a beginner-friendly roadmap:

    1. Pick an active Android repository
    2. Read README and CONTRIBUTING guide
    3. Build the project locally
    4. Find a small active issue
    5. Reproduce the issue
    6. Comment with evidence and proposed scope
    7. Make the smallest fix
    8. Add test or proof
    9. Open a clear pull request
    10. Respond calmly to review
    code

    Final thought

    Your first open-source contribution should prove one thing:

    You can enter an existing codebase without creating chaos.

    That skill matters a lot in real jobs too.

    Because professional engineering is not just writing code.

    It is reading unfamiliar systems, understanding constraints, communicating clearly, making small safe changes, and improving the product without making maintainers’ lives harder.

    One careful contribution teaches more than five random pull requests.

    Start small.
    Be useful.
    Respect the project.
    Finish what you start.

    Was this helpful?

    Comments (0)

    No comments yet. Be the first to share your thoughts!

    Leave a Comment

    Get the latest updates

    Join our newsletter and never miss an article.

    By subscribing, you agree to our Privacy Policy and consent to receive updates.

    Ready to Start Learning?

    Join thousands of students building their dream careers

    Explore Courses