Skip to content
Kiwix for Android
Java Kotlin Python HTML Shell JavaScript
Branch: develop
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Move bot configuration Aug 17, 2019
.idea #1386 remove lint inspection profile, update dependencies, minor fixes Sep 4, 2019
app Merge pull request #1460 from kiwix/feature/macgills/#1458-update-cha… Sep 11, 2019
config Reformat whole project using Square's code style Feb 6, 2019
contrib Move a few bash scripts to contrib directory Sep 13, 2019
docs #1307 update readme Jul 26, 2019
gradle/wrapper Added in the setting option in the xml layout file, but disabled it s… Jun 16, 2019
team-props fix codefactor issue Aug 21, 2019
templates Move gen-std-icon.py to kiwix-android-custom git repo Aug 9, 2017
.editorconfig #1370 install git hooks on prebuild - update editorconfig from projec… Jul 25, 2019
.gitignore Remove extra line from .gitignore Aug 16, 2019
.travis.yml Ignore hanging test Sep 3, 2019
CHANGELOG #1458 Update changelog Sep 11, 2019
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Feb 25, 2018
CONTRIBUTING.md Add details on building with kiwix-lib Aug 14, 2019
COPYING Move COPYING from old git repository 'kiwix-xulrunner' Feb 19, 2018
Kiwix_icon_transparent_512x512.png Merged kiwix-android code into main repo. Apr 4, 2013
Kiwix_icon_transparent_600x600.png Revert "Merge branch 'master' of ssh://git.code.sf.net/p/kiwix/kiwix" Apr 8, 2013
README.md Extend a bit the info about communication channels Sep 13, 2019
TRANSLATING.md First TRANSLATING.md file Jan 18, 2018
build.gradle.kts
google.json #1175 revert leakcanary resolution - add in commented out code for em… May 29, 2019
gradle.properties #1307 majority of kotlin inspections raised to error level and fixed … Jul 25, 2019
gradlew Update-index chmod=+x Aug 27, 2019
gradlew.bat Update compile and target SDK version. Feb 22, 2018
ic_launcher-web.png Add Circular icon asset for kiwix #381 Dec 31, 2016
kiwix-android.keystore #1175 revert leakcanary resolution - add in commented out code for em… May 29, 2019
kiwix_notification-web.png Android download notification icon displays correctly on 5.0 and above Jul 5, 2016
secrets.tar.enc #1214 update secrets with ssh key Jul 1, 2019
settings.gradle.kts #1386 replace downloadManager with fetch Aug 30, 2019
testdroid.py
update-play-store.py Fix gitignore issue Aug 13, 2019
upload-apk.py Update-index chmod=+x Aug 27, 2019
web_hi_res_512.png Change file permission Jun 7, 2015

README.md

Get it on Google Play Get it on F-Droid

Kiwix-Android

Kiwix is an offline reader for Web content. One of its main purposes is to make Wikipedia available offline. This is done by reading the content of a file in the ZIM format, a highly compressed open format with additional meta-data.

Kiwix is written in Kotlin (with a few old pieces in Java).

Build Status IRC Web codecov CodeFactor License: GPL v3 Public Chat

Build Instructions

Production releases of the app should be built with our companion build repository kiwix-build.

To build this repository alone for development purposes you can simply import the project into Android Studio and the hard work will be done for you. If you prefer to build without Android Studio you must first set up the Android SDK and then run the command: ./gradlew build from the root directory of the project.

We utilize different build variants (flavours) to build various different versions of our app. Ensure your build variant is kiwixDebug to build the standard app.

Libraries Used

  • Dagger 2 - A fast dependency injector for Android and Java
  • Retrofit - Retrofit turns your REST API into a Java interface
  • OkHttp - An HTTP+SPDY client for Android and Java applications
  • Butterknife - View "injection" library for Android
  • Mockito - Most popular Mocking framework for unit tests written in Java
  • RxJava - Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
  • ObjectBox - Reactive NoSQL Databse to replace SquiDb
  • MockK - Kotlin mocking library that allows mocking of final classes by default.
  • JUnit5 - The next generation of JUnit
  • AssertJ - Fluent assertions for test code
  • Fetch - A customizable file download manager library for Android

Contributing

Before contributing be sure to check out the CONTRIBUTION guidelines.

We currently have a series of automated Unit and Integration tests. These can be run locally and are also run when submitting a pull request.

Code Style

For contributions please read the CODESTYLE carefully. Pull requests that do not match the style will be rejected.

Commit Style

For writing commit messages please read the COMMITSTYLE carefully. Kindly adhere to the guidelines. Pull requests not matching the style will be rejected.

Communication

Available communication channels:

For more information, please refer to https://wiki.kiwix.org/wiki/Communication.

License

GPLv3 or later, see COPYINGL for more details.

You can’t perform that action at this time.