An Android app that allows you to scan Japanese words from a picture and search for its meaning from a dictionary.

Overview
logo

Jisho Lens is an app that allows you to scan Japanese words from a picture and search for its meaning from a dictionary. In a nutshell, think of it as a Google Lens but instead of searching from Google, it searches from a local dictionary.

Motivation

It's a bit long, bare with me. Or just ignore it if you're not interested lol

This app was made mainly because I got frustrated whenever I see a word on my phone and I don't know what it means. I mean, just Google it, right? No. You see, Japanese has multiple writing system, one of them is kanji. In order for me to be able to Google it, I need to know how to write it. The thing with Kanji, unlike latin alphabet, is that you can't just see a letter and just be able to write it down using a keyboard.

Now, imagine this scenario. You're a non native English speaker, you came a cross the word "depression", you don't know what it means, easy, just Google it up innit, just write "depression" on Google and you're done. Now how about Japanese? Imagine you're not a native Japanese speaker, you came across a word "鬱" (which, in small size almost looks like a block of square, at least to me). How do you supposed to know if it's read as うつ? You don't. That's why I made this app to try to solve this problem.

I use this awesome browser extension called Yomichan which basically works like a magic wand. You just hover your cursor over an unknown word and it will pull up a dictionary entry. Unfortunately it only works on browser. This is also another reason why I made this app, I want something like this to be available on mobile.

I found this cool project the other day called Jidoujisho which is an app that enables immersion learning. It's a really cool project and I like it. Why don't I just use it? Well, it's more fun to make it yourself ¯\_(ツ)_/¯. Jisho Lens is basically a fraction of that project and I prefer having simpler app that does one thing that suits my need. I recommend you to at least check it out, it may work better for you because it has tons of other features ;)

Features

Here are some features of this app:

  • Dark mode / Light mode
  • Scans a picture for words
  • Search for words from a dictionary using a keyword with Full Text Search support
  • Scans a picture by sharing it to this app (see here for details)
  • Add dictionary entry to Anki (planned)
  • Scan words from current screen using quick settings tile (planned)
  • JMdict dataset
  • KANJIDIC2 dataset (planned)
  • Tatoeba dataset (planned)
  • Online version? You will no longer need to download the entire dataset but requires internet connection and I have to host the server :p

Limitations

There are some limitations of this app:

  • It only works on Android (specifically Android ) since I don't have Apple devices to test it on.
  • You need to take the image manually and remove it afterwards to scan the current screen for now, but once I implemented the quick settings tile it should be possible to let Jisho Lens handle the image deletion when you're done automatically.
  • The app size might grow a bit in the future when more datasets are added. For now it's roughly ~26MB for the app size and ~100MB for the JMdict database. I'm planning to find a way to modularise the database so that e.g if you just want JMdict, you can just download it by itself without having to download the rest of the data.
  • Query speed might be a bit slow since I'm not an SQL guru that can optimise the query/database to be faster than light. I'm hoping the situation will get better as the app gets more developed.
  • The image might get false positive of recognised texts (icons got recognised as texts) because Google ML Kit is not perfect, but it should be good enough most of the time.

Tech Stack

This project is split into two parts: the android app and a small tool to generate the database from a dictionary.

Here are some of the framework/library used for the android app.

Please refer to DbGenerator/README.md for more details.

Usage

You must first import a dictionary to use this app. Just go to the settings page and press the Import Database menu, you should be able to pick the database file that you can download from the release page. I made the dictionary separated so that I can update it more frequently without having to reinstall the app everytime. If you don't import the dictionary, you won't be able to use any of the features and will get a warning like this:

After you import the dictionary, everything should be self explanatory, but in case it wasn't clear enough, here are some videos demonstrating how to use this app (It's hosted on streamable because I don't want to attach it in the readme, it's definitely not me being too lazy to attach them here, no).

Screenshots

Home Page
Dark mode Light mode
Search Page
Dark mode Light mode
Settings page
Dark mode Light mode
Scan page
Dark mode Light mode

Development

It's just a standard Flutter project, you can develop it just like any other Flutter app using Android Studio or Visual Studio Code. If this is the first time you're using Flutter, you can follow the official instructions to set it up. Although, if you want to develop any features related to the dictionary, you need to generate the database first by following the instruction in DbGenerator/README.md.

License

MIT License

You might also like...

It is a Flutter mobile and web application that allows you to search for universities worldwide by name and country.

It is a Flutter mobile and web application that allows you to search for universities worldwide by name and country.

Search Universities App It is a Flutter mobile and web application that allows you to search for universities worldwide by name and country. Data sour

Feb 4, 2022

QR-Scanner - Flutter App To Scan QR Code

QR-Scanner App To Scan QR Code QR-Scanner.mp4 Features: Scan QR Codes Scan 2D Ba

Nov 2, 2022

DeFi Scan - Mobile BlockChain Explorer app for cryptocurrency accounts.

DeFi Scan - Mobile BlockChain Explorer app for cryptocurrency accounts.

DeFi Scan This is the official repository for DeFi Scan - a mobile blockchain explorer built with Dart/Flutter for searching, curating and storing det

Dec 20, 2022

Biyi - a convenient translation and dictionary app written in Flutter

Biyi - a convenient translation and dictionary app written in Flutter

biyi_app Biyi is a convenient translation and dictionary app written in Flutter.

Dec 28, 2022

Hero Effect for common words of two Text (Flutter)

Hero Effect for common words of two Text (Flutter)

Hero Effect for common words of text widget (something like magic move in keynote) Features Usage Usage is easily and likes Hero,but obviously the chi

Oct 12, 2022

A music player app that allows you to search for music by artist made using Flutter

A music player app that allows you to search for music by artist made using Flutter

Music Player A music player app that allows you to search for music by artist. Music source from iTunes affiliate API. Made using Flutter with simple

Feb 5, 2022

Custom style-dictionary transforms and formats to generate Flutter resources from a Figma Design Token plugin export..

style-dictionary-figma-flutter An extension to style-dictionary to support more custom types with Flutter as target platform. It supports the custom t

Dec 30, 2022

Unofficial Turkish Dictionary app of TDK (Turkish Language Association) developing with Flutter

Unofficial Turkish Dictionary app of TDK (Turkish Language Association) developing with Flutter

Turkish Dictionary Unofficial Turkish Dictionary app of TDK (Turkish Language Association) developing with Flutter Design Feyza Nur Demirci Şahin Abut

Oct 20, 2022

Tamil Dictionary - Flutter App

Tamil Dictionary - Flutter App

vasitionary A new Tamil Dictionary Flutter application. Getting Started This App is a new and first of its kind app for Tamil Language. It servers the

Nov 13, 2022
Releases(1.0.1)
Owner
elianiva
I write code
elianiva
A flutter plugin about qr code or bar code scan , it can scan from file、url、memory and camera qr code or bar code .Welcome to feedback your issue.

r_scan A flutter plugin about qr code or bar code scan , it can scan from file、url、memory and camera qr code or bar code .Welcome to feedback your iss

PengHui Li 112 Nov 11, 2022
A widget based on Flutter's new Interactive Viewer that makes picture pinch zoom, and return to its initial size and position when released.

pinch_zoom A widget based on Flutter's new Interactive Viewer that makes picture pinch zoom, and return to its initial size and position when released

Teun Kortekaas 36 Dec 30, 2022
Automatically generate profile picture with random first name and background color. But you can still provide pictures if you have them. As the default color, based on the name of the first letter. :fire: :fire: :fire:

FLUTTER PROFILE PICTURE Automatically generate profile picture with random first name and background color. But you can still provide pictures if you

Aditya Dharmawan Saputra 10 Dec 20, 2022
Github-search - Allows users to search users on github Uses flutter

Github Search Github Search is a cross-platform mobile application powered by Flutter Framework and Github API. The application was built with simplic

Saul 3 Sep 13, 2022
App to quickly view the word by word meaning of an ayat

quran_ayat_app_flutter App to quickly view the word by word meaning of an ayat Click here to access online Features Supports platforms like android, i

Hashir Abdulbasheer 0 May 13, 2022
An app that randomly draws Japanese vocabularies from N5 to N1 level to test your listening skill, providing pronunciation and answer checking.

An app that randomly draws Japanese vocabularies from N5 to N1 level to test your listening skill, providing pronunciation and answer checking.

Eric Lau 13 Jul 17, 2022
Hyakunin Isshu 1 Jan 11, 2022
Package provides light widgets [for Linkify, Clean] and extensions for strings that contain bad words/URLs/links/emails/phone numbers

Package provides light widgets [for Linkify, Clean] and extensions for strings that contain bad words/URLs/links/emails/phone numbers

BetterX.io 4 Oct 2, 2022
This is a dart package that converts words to numbers. It can be used in Flutter and normal Dart programs

Wordstonumbers.dart Wordstonumbers.dart is a simple dart package that converts a string of simple worded numbers into digits (e.g one hundred -> 100).

Michael Essiet 3 Oct 17, 2022
A mobile application that allows you to search and fetch recipes using Flutter, TheMealDB and Domain Driven Design

recipe_app A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if th

Johnny Nguyen 0 Dec 4, 2021