Release 1.6.0
- 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
This commit is contained in:
1 parent
2c8668dab3
commit
c7c080939c
4 files changed
+30
-27
No files matched your search
@@ -5,7 +5,6 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="#screenshots">Screenshots</a> •
|
<a href="#screenshots">Screenshots</a> •
|
||||||
<a href="#features">Features</a> •
|
<a href="#features">Features</a> •
|
||||||
<a href="#architecture">Architecture</a> •
|
|
||||||
<a href="#dictionary-pipeline">Pipeline</a> •
|
<a href="#dictionary-pipeline">Pipeline</a> •
|
||||||
<a href="#build">Build</a>
|
<a href="#build">Build</a>
|
||||||
</p>
|
</p>
|
||||||
@@ -23,31 +22,17 @@ The app stores dictionaries as DictZip files and builds compact binary indexes f
|
|||||||
|
|
||||||
- Fast headword search across multiple DSL dictionaries.
|
- Fast headword search across multiple DSL dictionaries.
|
||||||
- Import local `.dsl`, `.dsl.gz`, and `.dsl.dz` dictionary files.
|
- 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.
|
- Automatic extraction, DictZip compression, and indexing.
|
||||||
|
- Faithful article rendering with DSL indentation, margins, and named colors.
|
||||||
- Offline search after dictionaries are indexed.
|
- Offline search after dictionaries are indexed.
|
||||||
- Random-access article loading from DictZip dictionaries.
|
- Random-access article loading from DictZip dictionaries.
|
||||||
- Background processing with progress shown in Settings and notifications.
|
- Background processing with progress shown in Settings and notifications; downloads are cancelled with a button on the progress notification.
|
||||||
- Dictionary management with enable, disable, update, and delete actions.
|
- 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.
|
- Material 3 interface with dynamic color, light, dark, and system themes.
|
||||||
- English and Russian localization.
|
- English and Russian localization.
|
||||||
- About screen with open source license information.
|
- 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
|
## Dictionary Pipeline
|
||||||
|
|
||||||
ReSearch supports both downloaded and locally imported dictionaries.
|
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
|
## Tech Stack
|
||||||
|
|
||||||
- Kotlin 2.4.10
|
- Kotlin 2.4.20
|
||||||
- Jetpack Compose (BOM 2026.08.00)
|
- Jetpack Compose (BOM 2026.09.00)
|
||||||
- Material 3
|
- Material 3
|
||||||
- Coroutines and Flow 1.11.0
|
- Coroutines and Flow 1.11.0
|
||||||
- DataStore Preferences 1.2.1
|
- DataStore Preferences 1.2.1
|
||||||
- Paging 3.5.1
|
- Paging 3.5.1
|
||||||
- OkHttp 5.4.0
|
- OkHttp 5.5.0
|
||||||
- kotlinx.serialization 1.11.0
|
- kotlinx.serialization 1.11.0
|
||||||
- AboutLibraries 15.0.4 metadata generation
|
- AboutLibraries 15.2.0 metadata generation
|
||||||
- Android Gradle Plugin 9.3.1
|
- Android Gradle Plugin 9.4.1
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
@@ -111,7 +96,7 @@ The main search screen remains usable as long as at least one indexed dictionary
|
|||||||
./gradlew :app:assembleRelease
|
./gradlew :app:assembleRelease
|
||||||
```
|
```
|
||||||
|
|
||||||
The release APK targets `arm64-v8a`. English and Russian resources are packaged together.
|
The release APK targets `arm64-v8a`.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
@@ -92,8 +92,8 @@ android {
|
|||||||
applicationId = "com.example.research"
|
applicationId = "com.example.research"
|
||||||
minSdk = project.property("minSdk").toString().toInt()
|
minSdk = project.property("minSdk").toString().toInt()
|
||||||
targetSdk = project.property("targetSdk").toString().toInt()
|
targetSdk = project.property("targetSdk").toString().toInt()
|
||||||
versionCode = 8
|
versionCode = 9
|
||||||
versionName = "1.5.0"
|
versionName = "1.6.0"
|
||||||
|
|
||||||
vectorDrawables {
|
vectorDrawables {
|
||||||
useSupportLibrary = true
|
useSupportLibrary = true
|
||||||
|
|||||||
@@ -1,7 +1,16 @@
|
|||||||
- The app starts faster
|
- The app starts faster
|
||||||
- Smooth screen transition animations
|
- 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
|
- Dictionary downloads retry automatically when the network switches
|
||||||
- Download progress notifications are more reliable
|
- Download progress notifications are more reliable
|
||||||
- Search results clear instantly when the query is erased
|
- Search results clear instantly when the query is erased
|
||||||
- Leftover files from cancelled downloads are now removed automatically
|
- Leftover files from cancelled downloads are now removed automatically
|
||||||
|
- Improved app stability
|
||||||
|
- Faster dictionary indexing
|
||||||
- Updated build tooling and documentation
|
- 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
|
||||||
@@ -1,7 +1,16 @@
|
|||||||
- Приложение запускается быстрее
|
- Приложение запускается быстрее
|
||||||
- Плавные анимации переходов между экранами
|
- Плавные анимации переходов между экранами
|
||||||
|
- Статьи корректно отображают переносы строк, отступы и цвета из DSL-разметки
|
||||||
|
- Табуляции и лишние пробелы в статьях больше не ломают вёрстку
|
||||||
|
- Заголовок статьи можно скопировать, тап по статье сбрасывает выделение
|
||||||
|
- Адреса источников принимают формат host:port
|
||||||
- Загрузка словарей автоматически повторяется при переключении сети
|
- Загрузка словарей автоматически повторяется при переключении сети
|
||||||
- Уведомления о прогрессе загрузки стали надёжнее
|
- Уведомления о прогрессе загрузки стали надёжнее
|
||||||
- Результаты поиска очищаются мгновенно при стирании запроса
|
- Результаты поиска очищаются мгновенно при стирании запроса
|
||||||
- Остаточные файлы после отменённых загрузок удаляются автоматически
|
- Остаточные файлы после отменённых загрузок удаляются автоматически
|
||||||
|
- Повышена стабильность приложения
|
||||||
|
- Ускорена индексация словарей
|
||||||
- Обновлены тулинг сборки и документация
|
- Обновлены тулинг сборки и документация
|
||||||
|
- Длинные статьи со ссылками больше не подвисают при прокрутке
|
||||||
|
- Большие списки результатов поиска отображаются быстрее
|
||||||
|
- Тёмные цвета статей читаемы в тёмной теме
|
||||||
Reference in new issue
Block a user