Giter VIP home page Giter VIP logo

livinglist / manji Goto Github PK

View Code? Open in Web Editor NEW
152.0 7.0 31.0 37.02 MB

Manji is a mobile application built to help people learn about Japanese Kanji.

Home Page: https://apps.apple.com/us/app/manji-learn-kanji/id1464774967#?platform=iphone

License: MIT License

Java 0.01% Ruby 0.25% Shell 0.09% Swift 0.04% Objective-C 0.01% Dart 99.55% Kotlin 0.04% HTML 0.02%
flutter-apps flutter-examples flutter ios-app kanji reference dictionary dictionary-application dictionary-software tensorflow tensorflow-examples application mobile-app mobile-development android dart dartlang

manji's Introduction

Manji

iOS App Store App Store Play Store Visits Badge GitHub style: effective dart

Screen Shot 2020-03-03 at 1 22 57 PM Screen Shot 2020-08-20 at 6 16 26 PM Screen Shot 2020-08-20 at 6 16 43 PM Screen Shot 2020-03-03 at 1 25 18 PM Screen Shot 2020-08-20 at 6 21 33 PM Screen Shot 2020-08-20 at 6 21 48 PM Screen Shot 2020-08-20 at 6 16 50 PM Screen Shot 2020-04-19 at 5 59 00 PM Screen Shot 2020-04-19 at 6 04 58 PM Screen Shot 2020-04-20 at 8 01 24 PM

On the surface, Manji is just a Japanese dictionary, but it can actually do more than that:

  • Handwritten kanji recognition
  • Image kanji extraction
  • Kanji card
  • Kanji quiz generated dynamically based on selected groups of kanji

Therotically, Manji is cross-platform since it is powered by Flutter, but since I want to maximize the elegance of its user experience and also because I am an Apple fanboy to some degree, I chose to focus on the iOS side. I have already forgotten when the last time was that I debugged and tested on Android but feel free if you want to make it work and optimize for Android.

Getting Started

  1. Because the dictionary file exceeds the size limit of Github, git-lfs is used for storing the dictionary file. So make sure you have installed git-lfs.
  2. Clone this project and run git-lfs fetch --all in the project root folder.
  3. Create a service account.
  4. Fill up the credential as shown below and save it as google_api_credentials.dart and move to Manji/lib/resource/.
import 'package:googleapis_auth/auth_io.dart';

final credentials = ServiceAccountCredentials.fromJson(r'''
{
  "type": "service_account",
  "project_id": "",
  "private_key_id": "",
  "private_key": "-----BEGIN PRIVATE KEY-----\n-----END PRIVATE KEY-----\n",
  "client_email": "",
  "client_id": "",
  "auth_uri": "",
  "token_uri": "",
  "auth_provider_x509_cert_url": "",
  "client_x509_cert_url": ""
}
''');
  1. Setup Firebase for your project.
  2. (iOS) Download your GoogleService-Info.plist and move it to Manji/ios/Runner/.
  3. (Android) Download your google-services.json and move it to Manji/android/app/.
  4. Run the project using flutter run.

manji's People

Contributors

atomicptr avatar livinglist avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

manji's Issues

Endless loading

when the application starts, it is always loaded.
Android.
when debugging, the last message he got stuck on
E/ (17598): [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] E/ (17598): [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]

APK version

Hi, kindly, provide an Android version to download. That seems awesome. 🤩

Siri suggestions doesn't work anymore.

Siri suggestions does not seem to work any more. I will either drop the whole flutter_siri_suggestion package or create my own branch to further investigate the issue.

Unable to run the app locally due to database not copying properly to my device

Hey! I've been trying to build the app locally (parts of which led to #15) but there is one issue that I haven't been able to resolve yet and you might be able to help me with this.

Whenever I run the app (the version I've built myself) on my smartphone (or an Android emulator) I get the following exception:

Unhandled Exception:
DatabaseException(no such table: Kanji (code 1 SQLITE_ERROR): ,
while compiling: SELECT * FROM Kanji) sql 'SELECT * FROM Kanji' args []}

After checking the local database that gets installed on my device I can confirm that its pretty much empty (like a newly initialized sqlite DB) so this error is kinda obvious. My first thought was something along the lines of "Oh well, maybe I did something wrong with the git LFS step" but sadly the database that I have on my PC in data/dictDB.db is correct (as in it does have the required tables/data). So my assumption is that somehow it doesn't seem to copy the SQLite database that I have in data/ to my device (nor the emulator) and I think it does instead initialize a new one, which then causes the prior exception due to the data not being present.

Full "flutter run -d DEVICE_NAME" log (click to expand)
Launching lib\main.dart on DEVICE_NAME in debug mode...
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done                        62.5s
√ Built build\app\outputs\flutter-apk\app-debug.apk.
Installing build\app\outputs\flutter-apk\app.apk...                13.5s
I/flutter (30066): copying
I/flutter (30066): opening
I/flutter (30066): upgrading
I/flutter (30066): [{type: table, name: android_metadata, tbl_name: android_meta
data, rootpage: 3, sql: CREATE TABLE android_metadata (locale TEXT)}]
E/flutter (30066): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Except
ion: DatabaseException(no such table: Kanji (code 1 SQLITE_ERROR): , while compi
ling: SELECT * FROM Kanji) sql 'SELECT * FROM Kanji' args []}
E/flutter (30066): #0      wrapDatabaseException (package:sqflite/src/exception_
impl.dart:11:7)
E/flutter (30066): <asynchronous suspension>
E/flutter (30066): #1      SqfliteDatabaseMixin.txnRawQuery.<anonymous closure>
(package:sqflite_common/src/database_mixin.dart:406:30)
E/flutter (30066): <asynchronous suspension>
E/flutter (30066): #2      BasicLock.synchronized (package:synchronized/src/basi
c_lock.dart:33:16)
E/flutter (30066): <asynchronous suspension>
E/flutter (30066): #3      SqfliteDatabaseMixin.txnSynchronized (package:sqflite
_common/src/database_mixin.dart:346:14)
E/flutter (30066): <asynchronous suspension>
E/flutter (30066): #4      DBProvider.getAllKanjis (package:kanji_dictionary/res
ource/db_provider.dart:131:15)
E/flutter (30066): <asynchronous suspension>
E/flutter (30066): #5      KanjiBloc.getAllKanjis.<anonymous closure> (package:k
anji_dictionary/bloc/kanji_bloc.dart)
E/flutter (30066): <asynchronous suspension>
E/flutter (30066):
I/flutter (30066): opening
E/flutter (30066): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Except
ion: DatabaseException(no such table: Kanji (code 1 SQLITE_ERROR): , while compi
ling: SELECT * FROM Kanji) sql 'SELECT * FROM Kanji' args []}
E/flutter (30066): #0      wrapDatabaseException (package:sqflite/src/exception_
impl.dart:11:7)
E/flutter (30066): <asynchronous suspension>
E/flutter (30066): #1      SqfliteDatabaseMixin.txnRawQuery.<anonymous closure>
(package:sqflite_common/src/database_mixin.dart:406:30)
E/flutter (30066): <asynchronous suspension>
E/flutter (30066): #2      BasicLock.synchronized (package:synchronized/src/basi
c_lock.dart:33:16)
E/flutter (30066): <asynchronous suspension>
E/flutter (30066): #3      SqfliteDatabaseMixin.txnSynchronized (package:sqflite
_common/src/database_mixin.dart:346:14)
E/flutter (30066): <asynchronous suspension>
E/flutter (30066): #4      DBProvider.getAllKanjis (package:kanji_dictionary/res
ource/db_provider.dart:131:15)
E/flutter (30066): <asynchronous suspension>
E/flutter (30066): #5      KanjiBloc.getAllKanjis.<anonymous closure> (package:k
anji_dictionary/bloc/kanji_bloc.dart)
E/flutter (30066): <asynchronous suspension>
E/flutter (30066):
Activating Dart DevTools...                                         7.6s
Syncing files to device DEVICE_NAME...                                   140ms

I've invested some time trying to figure out why this doesn't work, but sadly couldn't find a solution yet and I hope that you might know how to resolve this :).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.