
* A bug was introduced after enhancing the search functionality to align with the new `java-libkiwix` wrapper. Initially, when searching for any article in the ZIM file, the loading progress bar was not being displayed. This commit resolves this issue. * While searching within large ZIM files, the application used to freeze momentarily due to fetching data from the `libkiwix` on the UI thread. We have improved this functionality to provide a seamless user experience.



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 metadata.
This is the version for Android, with support versions ranging from 7 to 13 (like mentioned here).
Kiwix Android is written in Kotlin
Build Instructions
Production releases of the app are built on travis and released automatically
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. Note here that instead of opening the project, you have to import it. 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.
Kiwix-Android is a multi-module project, in 99% of scenarios you will want to build the app
module in the debug
configuration.
If you are interested in our custom apps they have their own repo kiwix-android-custom that goes into further detail
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
- 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.
Communication
Available communication channels:
- Web Public Chat channel
- Mailing list
- Slack: #android channel Get an invite
- IRC: #kiwix on irc.freenode.net
For more information, please refer to https://wiki.kiwix.org/wiki/Communication.