Skip to content
This repository has been archived by the owner on Apr 22, 2022. It is now read-only.

Commit

Permalink
Merge branch 'release-v1.2' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
CaptainDario committed May 19, 2021
2 parents 6a9ce69 + bf9cf7e commit cb51ec1
Show file tree
Hide file tree
Showing 59 changed files with 4,188 additions and 1,405 deletions.
26 changes: 24 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,29 @@

# Da Kanji - changelog

## v 1.2.0 - アニメ
new Features:
- *extremely* fast startup
- inference in separate thread therefore no UI jank on low end devices
- [deep linking 'dakanji://dakanji/'](https://github.com/CaptainDario/DaKanji-Mobile#deep-linking)
- animated:
- double tap on prediction / kanji box
- character added/deleted to/from kanji box
- opening a prediction in a web dictionary
- deleting stroke(s) from canvas
- drawer
- splash screen

## v 1.1.0
Changes:
- improved drawing experience
- kanji box now shows the last added characters
- use webview instead of default browser
- drawer now indicates current location
- color when pressing on kanji box

-------------------------------------------------------------------------

## v 1.1.0 - 熟語
New Features:
- multi character search
- open prediction in akebi (app)
Expand All @@ -26,6 +47,7 @@ Fixes:
- blurry buttons in light mode

-------------------------------------------------------------------------

## v 1.0.4
Fixes:
- a localized link to the play store
Expand All @@ -44,7 +66,7 @@ changes:
- use improved AI from DaKanjiRecognizer v1.1
- better image processing before feeding images to CNN

## v 1.0.0
## v 1.0.0 - 初め

features:
- recognize ~3000 kanji characters
43 changes: 37 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,28 +23,58 @@ For more details about the features take a look at the [usage section](#usage).
## Getting started
**Currently only android is supported** </br>
The easiest way is to download the app for android from the PlayStore.
You can also [setup a development environment](#development) and build the app on your own.
You can also download the latest release from the [releases page](https://github.com/CaptainDario/DaKanji-Mobile/releases) or [setup a development environment](#development) and build the app on your own.

## Usage
In this section the features of the app are explained in more detail.
### Handwritten kanji recognition
The user can draw a character in the UI and the app will predict which character was drawn. This prediction can than be opened in a dictionary of choice. The used dictionary can be set in the settings.
It is also possible to use a translation app of the used device.
A custom website can also be used with an input field in the settings menu.</br>
The user can draw a character in the UI and the app will predict which character was drawn. This prediction can than be opened in a dictionary of choice. A dictionary can be chosen in the settings.
It is also possible to use a translation app or custom URL can be defined in the settings menu.</br>
Currently around 3000 characters are supported.
All supported characters can be found [here](https://github.com/CaptainDario/DaKanji-Mobile/blob/main/assets/labels_CNN_kanji_only.txt).</br>

### Deep linking
Other applications can link to DaKanji via deep linking.
The base link is defined as `dakanji://dakanji`.
Adding a dictionary to the link will result in predictions opening in this dictionary.<br/>
Example:
> Setting the link to <code>dakanji://dakanji/jisho</code> will open DaKanji.
> All look ups made, will than use jisho.org. <br/>
For web dictionaries which are currently not supported, you can use the <code>dakanji://dakanji/URL/YOUR_URL_HERE</code> link.
Just replace `YOUR_URL_HERE` with the search url of your dictionary and put `%X%` as a placeholder for the character to search.<br/>
Example:
> If you want to link to japandict.com with the search url: <code>https://www.japandict.com/%X%</code>
> Setting the link to <code>dakanji://dakanji/URL/https://www/japandict.com/%X%</code> is all one needs to do.
A table with all supported deep links can be found [here]().
You can try them out directly in your browser.


#### Android
Currently supported links are:
* `dakanji://dakanji/jisho` (web)
* `dakanji://dakanji/wadoku` (web)
* `dakanji://dakanji/weblio` (web)
* `dakanji://dakanji/URL/YOUR_URL_HERE`
* `dakanji://dakanji/akbei` (app)
* `dakanji://dakanji/takoboto` (app)
* `dakanji://dakanji/aedict` (app)

### Next steps and ideas
If you think you have a good idea how to improve this app feel free [to open an issue](https://github.com/CaptainDario/DaKanji-Mobile/issues).

## Development
This app was developed using dart, the flutter framework and Tensorflow.
Tensorflow was used for the machine learning part.
This app was developed using dart, the flutter framework and Tensorflow (lite).
Tensorflow (lite) was used for the machine learning part.
This project can be found [here](https://github.com/CaptainDario/DaKanji-ML). </br>
For developing new features this repository has to be downloaded and all necessary packages have to be installed with:

```{bash}
flutter pub get
# to get tensorflow lite dependencies use
install.bat
```

Additionally the tflite models need to be copied from the [Machine Learning](https://github.com/CaptainDario/DaKanji-ML) repo.
Expand Down Expand Up @@ -82,3 +112,4 @@ flutter pub run flutter_launcher_icons:main
* design and UI: Massive shout out to [Ellina](https://github.com/nurellina)! Without your help the app would not look and feel half as good as it does now.
* icon/banner:
* Thanks "Buddha, with kudos to 2ch/fl/ and HatNyan" for helping with the icon design and making the banner. Also thank you [Adrian Jordanov](https://www.1001fonts.com/theater-font.html) for the banner font.
* Modified Packages: [bitmap](https://github.com/renancaraujo/bitmap), [snappable](https://github.com/MarcinusX/snappable)
2 changes: 1 addition & 1 deletion android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.DaAppLab.DaKanjiRecognizer"
minSdkVersion 16
minSdkVersion 19
targetSdkVersion 29
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
Expand Down
16 changes: 16 additions & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
In most cases you can leave this as-is, but you if you want to provide
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->

<!-- Ask for internet permission for opening a webview-->
<uses-permission android:name="android.permission.INTERNET"/>

<application
android:name="io.flutter.app.FlutterApplication"
android:label="DaKanji"
Expand Down Expand Up @@ -37,6 +41,18 @@
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

<!-- Deep Links -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with YOUR_SCHEME://YOUR_HOST -->
<data
android:scheme="dakanji"
android:host="dakanji" />
</intent-filter>

</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
Expand Down
8 changes: 4 additions & 4 deletions android/app/src/main/res/drawable/launch_background.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<!-- <item android:drawable="@android:color/white" /> -->

<!-- You can insert your own image assets here -->
<!-- <item>
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
android:src="@mipmap/launcher_icon" />
</item>
</layer-list>
1 change: 1 addition & 0 deletions android/settings_aar.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include ':app'
5 changes: 0 additions & 5 deletions assets/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,11 @@ A desktop version is available [here.](GITHUB_DESKTOP_REPO)
The app was developed using dart with the Flutter framework and is source available.
If you want to learn more about the development of the app, [visit its GitHub repository.](GITHUB_MOBILE_REPO)
If you want to learn more about the machine learning powering this app, [take a look here.](GITHUB_ML_REPO)
If you like this app please consider:
* [rating it on the Play-/Appstore](RATE_ON_MOBILE_STORE)
* [starring it on GitHub](GITHUB_MOBILE_REPO)

Also check out [my other apps.](DAAPPLAB_STORE_PAGE)
If you have problems using this app or suggestions how to improve it please report them [here.](GITHUB_ISSUES)

The privacy police can be found [here](PRIVACY_POLICE)


The used TFLite backend is: USED_BACKEND

You are running DaKanji version: VERSION
Binary file added assets/kanji_drawing_aid_b.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/kanji_drawing_aid_w.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
120 changes: 120 additions & 0 deletions docs/deeplink_examples.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@

<body>
<p>
This page shows all available deep links in DaKanji for every platform.
</p>
<table style="width:100%; text-align: center; table-layout: fixed; word-wrap: break-word;">
<tr>
<th>
Dictionary
</th>
<th>
Android
</th>
<th>
iOS
</th>
<th>
min. version
</th>
</tr>
<tr>
<td>
<a href="https://jisho.org">jisho.org</a>
</td>
<td>
<a href="dakanji://dakanji/jisho">dakanji://dakanji/jisho</a>
</td>
<td>
-
</td>
<td>
1.2 | -
</td>
</tr>
<tr>
<td>
<a href="https://www.wadoku.de">wadoku.de</a>
</td>
<td>
<a href="dakanji://dakanji/wadoku">dakanji://dakanji/wadoku</a>
</td>
<td>
-
</td>
<td>
1.2 | -
</td>
</tr>
<tr>
<td>
<a href="https://weblio.jp">weblio.jp</a>
</td>
<td>
<a href="">dakanji://dakanji/</a>
</td>
<td>
-
</td>
<td>
1.2 | -
</td>
</tr>
<tr>
<td>
<a href="https://www/japandict.com/">japandict.com (custom URL)</a>
</td>
<td>
<a href="dakanji://dakanji/URL/https://www.japandict.com/%X%">dakanji://dakanji/URL/https://www.japandict.com/%X%</a>
</td>
<td>
-
</td>
<td>
1.2 | -
</td>
</tr>
<tr>
<td>
takoboto (app)
</td>
<td>
<a href="dakanji://dakanji/takoboto">dakanji://dakanji/takoboto</a>
</td>
<td>
-
</td>
<td>
1.2 | -
</td>
</tr>
<tr>
<td>
akebi (app)
</td>
<td>
<a href="dakanji://dakanji/akebi">dakanji://dakanji/akebi</a>
</td>
<td>
-
</td>
<td>
1.2 | -
</td>
</tr>
<tr>
<td>
aedict (app)
</td>
<td>
<a href="dakanji://dakanji/aedict">dakanji://dakanji/aedict</a>
</td>
<td>
-
</td>
<td>
1.2 | -
</td>
</tr>
</table>
</body>
1 change: 0 additions & 1 deletion install.bat
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

@echo off
setlocal enableextensions

Expand Down
58 changes: 0 additions & 58 deletions lib/AboutScreen.dart

This file was deleted.

Loading

0 comments on commit cb51ec1

Please sign in to comment.