Skip to content
This repository was archived by the owner on May 17, 2023. It is now read-only.

Commit a84297a

Browse files
authored
Version 1.2.1
Add option for recycler view animations Fix scrolling on Throwback Entries screen Updated Readme Updated code style Add automatic update checker
2 parents 4dd515f + 4d56d99 commit a84297a

File tree

261 files changed

+10508
-10301
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

261 files changed

+10508
-10301
lines changed
41.6 KB
Binary file not shown.
50.6 KB
Loading

.idea/codeStyles/Project.xml

Lines changed: 9 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ An app for Android designed to aid your Japanese learning through keeping a jour
2828
- Daily reminder to add an entry
2929
- Ability to backup and restore your data
3030
- Dark theme and Light theme
31+
- Easily see entries made on this day last month, and in previous years, using the Throwback feature
3132

3233
## Screenshots
3334
| Main Screen | Main Screen Dark | Add Entry |
@@ -43,7 +44,16 @@ An app for Android designed to aid your Japanese learning through keeping a jour
4344
| ![Add Tags](/.github/assets/add-tags.png?raw=true) | ![Search Entries](/.github/assets/search-entries.png?raw=true) |
4445

4546
## Tech and Architecture
46-
Hibi is written entirely in Kotlin and employs an MVVM architecture pattern using [AndroidX View Model](https://developer.android.com/topic/libraries/architecture/viewmodel) components. Navigation is handled by the [AndroidX Navigation Components](https://developer.android.com/guide/navigation/). Data is stored using a [Room](https://developer.android.com/jetpack/androidx/releases/room) database and then retrieved asynchronously using Kotlin coroutines and [LiveData](https://developer.android.com/topic/libraries/architecture/livedata). [Kodein](https://github.com/Kodein-Framework/Kodein-DI) is used for dependency injection due to it's native support for Kotlin and it's ease of writing. API calls are made using [Retrofit](https://github.com/square/retrofit) and then converted into Kotlin objects using [Gson](https://github.com/google/gson). Design inspired by [Material Design](https://material.io/) and implemented using [Material Components for Android](https://github.com/material-components/material-components-android).
47+
![Architecture Diagram](/.github/assets/architecture-diagram.png?raw=true "Architecture Diagram")
48+
49+
Hibi is written entirely in Kotlin and employs a single activity MVVM architecture pattern using [AndroidX View Model](https://developer.android.com/topic/libraries/architecture/viewmodel) components.
50+
The activity contains a single NavHostFragment, part of the [AndroidX Navigation Components](https://developer.android.com/guide/navigation/), which hosts all other fragments such as the MainScreenFragment.
51+
Each fragment observes data in a View Model which may retrieve data from various repositories and API services and properly format it for display. All business logic is handled in the View Models and fragments are kept as minimal as possible (only having code for setting up Observers, click listeners, etc...).
52+
Data is stored using a [Room](https://developer.android.com/jetpack/androidx/releases/room) database and queries are provided in a DAO in the form of functions.
53+
Data is then retrieved asynchronously within repositories using Kotlin coroutines and [LiveData](https://developer.android.com/topic/libraries/architecture/livedata).
54+
[Kodein](https://github.com/Kodein-Framework/Kodein-DI) is used for dependency injection due to it's native support for Kotlin and it's ease of writing.
55+
API calls are made using [Retrofit](https://github.com/square/retrofit) and then converted into Kotlin objects using [Gson](https://github.com/google/gson).
56+
Design inspired by [Material Design](https://material.io/) and implemented using [Material Components for Android](https://github.com/material-components/material-components-android).
4757

4858
## Open Source Libraries Used
4959
### [Timber](https://github.com/JakeWharton/timber)

app/build.gradle

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ android {
1414
applicationId "com.marcdonald.hibi"
1515
minSdkVersion 23
1616
targetSdkVersion 28
17-
versionCode 29
18-
versionName "1.2.0"
17+
versionCode 30
18+
versionName "1.2.1"
1919
setProperty("archivesBaseName", "Hibi-v$versionName")
2020
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2121
}
@@ -39,21 +39,21 @@ dependencies {
3939
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.1'
4040

4141
// AndroidX
42-
implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
43-
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta1'
42+
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
43+
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'
4444
implementation 'androidx.preference:preference:1.0.0'
4545
implementation 'com.google.android.material:material:1.0.0'
46-
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0-alpha01"
47-
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha01"
46+
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0-alpha02"
47+
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha02"
4848

4949
// Testing
5050
testImplementation 'junit:junit:4.12'
5151
androidTestImplementation 'androidx.test:runner:1.2.0'
5252
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
5353

5454
// Navigation components
55-
implementation 'androidx.navigation:navigation-fragment-ktx:2.1.0-alpha05'
56-
implementation 'androidx.navigation:navigation-ui-ktx:2.1.0-alpha05'
55+
implementation 'androidx.navigation:navigation-fragment-ktx:2.1.0-alpha06'
56+
implementation 'androidx.navigation:navigation-ui-ktx:2.1.0-alpha06'
5757

5858
// Timber for logging
5959
implementation 'com.jakewharton.timber:timber:4.7.1'

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,9 @@
2929
android:name="android.app.shortcuts"
3030
android:resource="@xml/shortcuts" />
3131
</activity>
32-
<activity android:name=".mainscreens.about.OpenSourceLicencesFragment" />
33-
<activity android:name=".mainscreens.settings.SettingsFragment" />
3432

35-
<receiver android:name=".internal.notification.AlertReceiver" />
33+
<receiver android:name="com.marcdonald.hibi.notification.ReminderAlertReceiver" />
34+
3635
<provider
3736
android:authorities="com.marcdonald.hibi.FileProvider"
3837
android:name="androidx.core.content.FileProvider"

0 commit comments

Comments
 (0)