Skip to content

Commit

Permalink
perf: Implement caching in EPUB parser to optimize subsequent parsing (
Browse files Browse the repository at this point in the history
…#220)

- Added caching mechanism in the EPUB parser to avoid redundant parsing.
- Switched from Gson to kotlinx.serialization for JSON parsing.
---------

Signed-off-by: starry-shivam <starry@krsh.dev>
  • Loading branch information
starry-shivam authored Sep 22, 2024
1 parent 98feca3 commit 65b5f95
Show file tree
Hide file tree
Showing 26 changed files with 337 additions and 439 deletions.
318 changes: 0 additions & 318 deletions .idea/other.xml

This file was deleted.

3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,12 @@ It is easiest to make a translation using the Android Studio XML editor, but you
- [LiveData](https://developer.android.com/topic/libraries/architecture/livedata) - Data objects that notify views when the underlying database changes.
- [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel) - Stores UI-related data that isn't destroyed on UI changes.
- [OkHttp3](https://square.github.io/okhttp/) - OkHttp is an HTTP client for Android that’s efficient by default.
- [Gson](https://github.com/google/gson) - A Java serialization/deserialization library to convert Java Objects into JSON and back.
- [Kotlinx.serialization](https://kotlinlang.org/docs/serialization.html) - Provides sets of libraries for various serialization formats – JSON, CBOR, protocol buffers, and others.
- [Jsoup](https://jsoup.org) - Jsoup is a Java library for working with HTML. It provides a convenient API for extracting and manipulating data, using the HTML5 DOM methods and CSS selectors.
- [Coil](https://coil-kt.github.io/coil/compose/) - An image loading library for Android backed by Kotlin Coroutines.
- [Dagger-Hilt](https://dagger.dev/hilt/) For [Dependency injection (DI)](https://developer.android.com/training/dependency-injection)
- [Room database](https://developer.android.com/jetpack/androidx/releases/room) - Persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
- [Lottie](https://airbnb.design/lottie) - Lottie is an Android, iOS and React Native library that renders After Effects animations in real time.

------

Expand Down
13 changes: 7 additions & 6 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ plugins {
id 'org.jetbrains.kotlin.plugin.compose'
id 'dagger.hilt.android.plugin'
id 'com.google.devtools.ksp'
id 'org.jetbrains.kotlin.plugin.serialization'
id "com.mikepenz.aboutlibraries.plugin" version "11.1.3"
}

Expand Down Expand Up @@ -92,15 +93,15 @@ aboutLibraries {


dependencies {
def composeBom = platform('androidx.compose:compose-bom:2024.09.01')
def composeBom = platform('androidx.compose:compose-bom:2024.09.02')
implementation composeBom
androidTestImplementation composeBom

// Android core components.
implementation 'androidx.core:core-ktx:1.13.1'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.5'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.6'
implementation 'androidx.activity:activity-compose:1.9.2'
implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.8.5"
implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6"
implementation "androidx.navigation:navigation-compose:2.8.0"
// Jetpack compose.
implementation "androidx.compose.ui:ui"
Expand All @@ -110,13 +111,13 @@ dependencies {
implementation "androidx.compose.runtime:runtime-livedata"
implementation "androidx.compose.material3:material3"
// Material icons.
implementation 'androidx.compose.material:material-icons-extended:1.7.1'
implementation 'androidx.compose.material:material-icons-extended:1.7.2'
// Material theme for main activity.
implementation 'com.google.android.material:material:1.12.0'
// Android 12+ splash API.
implementation 'androidx.core:core-splashscreen:1.0.1'
// Gson JSON library.
implementation 'com.google.code.gson:gson:2.10.1'
// KotlinX Serialization library.
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3"
// OkHttp library.
implementation "com.squareup.okhttp3:okhttp:4.12.0"
implementation "com.squareup.okhttp3:logging-interceptor:4.12.0"
Expand Down
Loading

0 comments on commit 65b5f95

Please sign in to comment.