GSoC 2018
As this is our first year proposing GSoC projects we have decided to propose four Android projects (remember these are just suggestions). The possible mentors for all these projects are: mhutti1, Kelson42, Rashiq, EladKeyshawn
GSoC 2018 Ideas List
Improve the Kiwix Android apps CI setup and increase our code coverage.
Summary:
We have a basic automated test setup for our Android application using Travis Continuous Integration and Bitbar cloud testing. During this project you would be improving existing test infrastructure as well as writing new tests to help combat regressions in our code. As well as writing tests you would be refactoring parts of the code base to improve test-ability and readability.
Improvements to be made:
- Write new unit and instrumentation tests to improve code coverage.
- Where needed make use of dependency injection in test implementations.
- Refactor code where needed to allow it to be unit tested and improve readability.
- Specifically ensure the following areas are tested: Network, File System, Content Download, JNI interactions.
- Improve our CI build process to allow for quicker and more targeted testing.
Skills needed
- Android experience (Java).
- Experience with CI/Automated testing.
- Experience refactoring code.
- Experience with dependency injection techniques.
Skill Rating: Easy
Improve the Kiwix Android apps new user experience.
Summary:
The new user experience for Kiwix Android should be improved to allow users to more easily find content that they are looking for, while also ensuring that they understand the functions that the application provides. The bug report process of the application should also be simplified in order to allow more information to be captured while preserving user privacy.
Improvements to be made:
- Create a new initial landing page with suggested ZIM files that a user might want to download.
- Improve the download management UI to flow more intuitively, guiding users to get the content that they want.
- Implement various quality of life features to increase user retention.
- Create a custom bug report setup to allow users to report crashes and request features more directly while providing anonymous meta data if they wish.
Skills needed
- Android experience (Java).
- Experience writing initiative UIs.
- HTML/CSS/JavaScript to make a simple web panel to capture bug reports from the app.
Skill Rating: Medium
Implement full multi-zim support in the Kiwix Android app.
Summary:
Multi-zim search is currently an experimental app option. This task involves fleshing it out and improving its stability, while also adding new features for use in Custom applications to improve user acquisition rates and save space on users devices by utilising cross zim file linking combined with a more intuitive search experience.
Improvements to be made:
- Improve search functionality to include an image and a snippet allowing users to see the context of their searches.
- Implement a download page to download “predetermined content” that would work specifically with our prepackaged Custom apps.
- Work with other team members to formalise spec for cross ZIM Urls.
- Implement a download mechanism to download content linked from downloaded zim files and keep it up to date.
Skills needed
- Android experience (Java)
- Basic knowledge of the JNI.
- Some UI design experience.
Skill Rating: Hard
Improve Custom Android App implementations.
Summary:
Our Custom apps are a great way for users to download a subset of the content that they want without having to navigate through a list of daunting content. They are currently seeing rapid growth in adoption and we want to improve the experience for our users currently using them by increasing their stability.
Improvements to be made:
- Validate zim files from hash to ensure they are not corrupted.
- Implement the recommended backup download solution to fix corrupted files.
- Write a simple intuitive UI for this download solution.
- Research solutions for embedded zim files without unpacking the content from the APK and implement the most feasible solution.
- Look into the best way to move OBB files within the file system of between devices and implement any feasible solutions found.
Skills needed:
- Android dev experience (Java)
- Basic knowledge of the JNI.
- Some UI design
Skill Rating: Hard
See also
Search for "good first issue" tickets in our code repositories trackers: