diff --git a/README.md b/README.md index d00213a..01e258b 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,6 @@
Screenshots • Features • - Architecture • Pipeline • Build
@@ -23,31 +22,17 @@ The app stores dictionaries as DictZip files and builds compact binary indexes f - Fast headword search across multiple DSL dictionaries. - Import local `.dsl`, `.dsl.gz`, and `.dsl.dz` dictionary files. -- Download dictionaries from configured URLs. +- Download dictionaries from configured URLs, with an optional `{DATE}` placeholder for dated releases. - Automatic extraction, DictZip compression, and indexing. +- Faithful article rendering with DSL indentation, margins, and named colors. - Offline search after dictionaries are indexed. - Random-access article loading from DictZip dictionaries. -- Background processing with progress shown in Settings and notifications. -- Dictionary management with enable, disable, update, and delete actions. +- Background processing with progress shown in Settings and notifications; downloads are cancelled with a button on the progress notification. +- Dictionary management with enable, disable, and update actions; deleting a dictionary is done with a swipe. - Material 3 interface with dynamic color, light, dark, and system themes. - English and Russian localization. - About screen with open source license information. -## Architecture - -ReSearch is an Android app written in Kotlin and Jetpack Compose. - -```text -com.example.research/ -├── common/ # shared progress, UI, file, archive, notification utilities -├── core/ # domain models, source validation, operation results -├── data/ # DictZip, DSL parsing, indexing, paging, repositories -├── feature/ # search, dictionary download, local import workflows -└── ui/ # Compose screens, article view, settings, navigation -``` - -State is exposed through Kotlin Flow and collected by Compose screens. Long-running work uses coroutines and foreground services where Android requires visible progress. - ## Dictionary Pipeline ReSearch supports both downloaded and locally imported dictionaries. @@ -94,16 +79,16 @@ The main search screen remains usable as long as at least one indexed dictionary ## Tech Stack -- Kotlin 2.4.10 -- Jetpack Compose (BOM 2026.08.00) +- Kotlin 2.4.20 +- Jetpack Compose (BOM 2026.09.00) - Material 3 - Coroutines and Flow 1.11.0 - DataStore Preferences 1.2.1 - Paging 3.5.1 -- OkHttp 5.4.0 +- OkHttp 5.5.0 - kotlinx.serialization 1.11.0 -- AboutLibraries 15.0.4 metadata generation -- Android Gradle Plugin 9.3.1 +- AboutLibraries 15.2.0 metadata generation +- Android Gradle Plugin 9.4.1 ## Build @@ -111,7 +96,7 @@ The main search screen remains usable as long as at least one indexed dictionary ./gradlew :app:assembleRelease ``` -The release APK targets `arm64-v8a`. English and Russian resources are packaged together. +The release APK targets `arm64-v8a`. ## License diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b4f0776..d27e857 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -92,8 +92,8 @@ android { applicationId = "com.example.research" minSdk = project.property("minSdk").toString().toInt() targetSdk = project.property("targetSdk").toString().toInt() - versionCode = 8 - versionName = "1.5.0" + versionCode = 9 + versionName = "1.6.0" vectorDrawables { useSupportLibrary = true diff --git a/fastlane/metadata/android/en-US/changelogs/9.txt b/fastlane/metadata/android/en-US/changelogs/9.txt index 6a92afa..b7f84ae 100644 --- a/fastlane/metadata/android/en-US/changelogs/9.txt +++ b/fastlane/metadata/android/en-US/changelogs/9.txt @@ -1,7 +1,16 @@ - The app starts faster - Smooth screen transition animations +- Articles render DSL line breaks, indentation and named colors correctly +- Tabs and extra spaces inside articles no longer break the layout +- The article title can be copied, tapping the article clears the selection +- Source URLs accept host:port addresses - Dictionary downloads retry automatically when the network switches - Download progress notifications are more reliable - Search results clear instantly when the query is erased - Leftover files from cancelled downloads are now removed automatically +- Improved app stability +- Faster dictionary indexing - Updated build tooling and documentation +- Long link-heavy articles no longer freeze while scrolling +- Large search result lists render faster +- Dark article colors are readable in the dark theme diff --git a/fastlane/metadata/android/ru-RU/changelogs/9.txt b/fastlane/metadata/android/ru-RU/changelogs/9.txt index 2fcf5b8..22b8a6f 100644 --- a/fastlane/metadata/android/ru-RU/changelogs/9.txt +++ b/fastlane/metadata/android/ru-RU/changelogs/9.txt @@ -1,7 +1,16 @@ - Приложение запускается быстрее - Плавные анимации переходов между экранами +- Статьи корректно отображают переносы строк, отступы и цвета из DSL-разметки +- Табуляции и лишние пробелы в статьях больше не ломают вёрстку +- Заголовок статьи можно скопировать, тап по статье сбрасывает выделение +- Адреса источников принимают формат host:port - Загрузка словарей автоматически повторяется при переключении сети - Уведомления о прогрессе загрузки стали надёжнее - Результаты поиска очищаются мгновенно при стирании запроса - Остаточные файлы после отменённых загрузок удаляются автоматически +- Повышена стабильность приложения +- Ускорена индексация словарей - Обновлены тулинг сборки и документация +- Длинные статьи со ссылками больше не подвисают при прокрутке +- Большие списки результатов поиска отображаются быстрее +- Тёмные цвета статей читаемы в тёмной теме