Learn Chinese in China
skishore

Inkstone: my free, open-source Chinese writing app

82 posts in this topic

Site Sponsors:
Pleco for iPhone / Android iPhone & Android Chinese dictionary: camera & hand- writing input, flashcards, audio.
Study Chinese in Kunming 1-1 classes, qualified teachers and unique teaching methods in the Spring City.
Learn Chinese Characters Learn 2289 Chinese Characters in 90 Days with a Unique Flash Card System.
Hacking Chinese Tips and strategies for how to learn Chinese more efficiently
Popup Chinese Translator Understand Chinese inside any Windows application, website or PDF.
Chinese Grammar Wiki All Chinese grammar, organised by level, all in one place.

This looks excellent, I will download it and have a look.

 

Really glad you are going to add traditional, as I am just in the process of changing to traditional.

 

I will definitely get back to you with some feed back.

 

Thanks for sharing and putting in all the hard work.

1 person likes this

Share this post


Link to post
Share on other sites

This looks like a great free alternative to Skritter with a lot of potential.

 

I would suggest including an option to learn the 100 common radicals in order of difficulty, from the least number of strokes to the most number of strokes for example.

 

Also, I would like to be able to fine tune the Reviews Per Day and New Cards Per Day setting. Perhaps I only want to learn 3 or 5 new characters/radicals per day to get warmed up, and maybe I only want to do 30 reviews per day because 100 is quite a lot to get through when you're just getting started. Right now you can only change these in increments of 100 for reviews per day and increments of 10 for new cards per day.

 

Great job!

Share this post


Link to post
Share on other sites

Thanks for your suggestions and kind words!

 

I'll have to think about how to best support learning word lists in order. At the moment, new cards are introduced randomly from currently enabled lists.

 

In the meantime, I wanted to get traditional character support out there as soon as possible, since I figured that roughly half the potential audience would be interested in it. I believe it's working in the latest release! You can update by downloading the APK again - your progress will carry over - and then you can switch to traditional on the settings page. When you switch character sets, it'll treat any words that are written differently between the two sets as new words, so you may have a number of new cards to do.

 

While testing, I noticed a bug where simplified and traditional words were swapped in the "Beginner Chinese" downloadable lists. If you're using those lists, you can download them again to get corrected versions. Doing so will automatically fix your deck as well.

 

@Shelley and others: let me know how the traditional characters feature works for you!

 

@LinZhenPu: Version 0.0.6 makes it possible to set the scheduling settings to whatever you want!

 

8zwa205.png

Share this post


Link to post
Share on other sites

hmm. It's a copy of Skritter, from interfaces to functionalities.  The Skritter guys will start to worry about their revenue.....

Share this post


Link to post
Share on other sites

Competition is good for the market.

1 person likes this

Share this post


Link to post
Share on other sites

could someone please tell me (and other less techy folk) how to get this up and running on an android phone? I don't know my APKs from my armv7.

Share this post


Link to post
Share on other sites

I've never used skritter.

Watching your app animation, the stroke input animation looks very nice. I'm just wondering how you're handling incorrect stroke input.

I don't like writing on touchscreens so I will not be using this app myself.

 

 

could someone please tell me (and other less techy folk) how to get this up and running on an android phone? I don't know my APKs

from my armv7.

 

Installing an app on Android without the play store:

 

  • Open system settings, security (might be another category on your device, maybe an app related one?).
  • Enable "Allow installation from unknown sources".
  • Download or copy an .apk to your device.
  • Click on the .apk file to install it. There should be an error if your device is incompatible.
  • Disable "Allow installation from unknown sources" again for increased security.

 

You should only do this for apps you trust.

Share this post


Link to post
Share on other sites

Thanks, Mati1. I tried this, with both versions, and neither one works. With the 86 version, there was a window that talked about access, and I clicked install, and it did stuff, and then said 'app not installed'. With the other version, when I click it the downloads screen just disappears.

 

ETA: Oh never mind, I got it. it was the armv7 version I needed.

Share this post


Link to post
Share on other sites

Really nice. I always thought Skritter was too expensive and tried to somewhat emulate it in anki:

http://www.chinese-forums.com/index.php?/topic/46947-hanzi-grids-in-anki/#comment-355488

 

An obvious drawback is the fact, that you are writing charachers that are simply not of the size of your natural handwriting. I am toying with the idea of getting a Samsung Note at some point and would welcome an option to write realisticly small hanzi.

Share this post


Link to post
Share on other sites

I finally managed to download it and get it working. As I have only just bought a new tablet android running 5.1 and as I am not sure what I am doing with downloads I decided to put it on my old tablet running 4.0.3.

 

I like it. I chose traditional and lowered the number of new cards and test cards to make it manageable for trying it out.

 

I have a few questions.

 

First and probably very simple what is the paper filter?

 

It seems slow to respond, would that be down to my old tablet and would it work better on my new one?

 

How do you import a word list?

I see from the help files I can import lists from my device. How do I do this?.

Can I import a Pleco flash card list for example?

 

I take it green means it has passed, red it has failed, is there a middle colour a sort of olive green? what does that mean?

 

From an aesthetic point of view I think it is very beautiful.

 

I like the way it handles words of multiple characters so you can see the completed word/phrase in the top left corner as you progress.

 

The details given are very useful, Definition, pinyin and radical are good, not sure why the fourth item is called For: is this an abbreviation I have missed?

 

Also like the addition of the Decomposition detail.

 

Another thing that might be an artefact of my tablet is slow screen rewrites, sometimes it doesn't clear the screen 100% before writing the next one. This is not too major a problem but a bit annoying, or is this intended?

 

It is like Skritter but it is not Skritter, I think it looks better and could be much more useful not having to be connected to use it.

 

I agree that it isn't realistic writing so large, but I wouldn't use only this to practise writing, I use Hanzi Grids to practice actual pen and paper writing for example, but I find this helps with memorization of characters and especially stroke order.

 

I must say thank you for putting in the effort :clap . This will be a big help for many people. There are a lot of us who find the subscription fees for Skritter difficult to manage.

 

Also as this is available as an .apk people in China without access to the play store should be able to use it.

 

Once again, Thank you.

Share this post


Link to post
Share on other sites

Marry me.

 

(Planning on making an iOS version? Please say yes - both to this and the above statement. ;) )

Share this post


Link to post
Share on other sites

Very well done! Thank you! Very useful.

Is it possible to repeat more and more times the stroke trial, also if the first attempt was wrong?

When I'm wrong, I need to repeat handwriting until correct: the character can be marked in red, as wrong, but the practice can help me for the next time.

1 person likes this

Share this post


Link to post
Share on other sites

Hi everyone! I'm sorry I haven't responded in a while. Work suddenly picked up and I had little time in the last couple weeks.

 

Let me go through all the questions first and then explain what I'm planning to work on next:

 

 

 

An obvious drawback is the fact, that you are writing charachers that are simply not of the size of your natural handwriting. I am toying with the idea of getting a Samsung Note at some point and would welcome an option to write realisticly small hanzi.

 

This feature is totally doable, although it's not clear to me what the best way to expose it is. Right now the writing canvas takes up 90% of the width of the device. Do you think it makes sense to just make that width configurable?

 

 

First and probably very simple what is the paper filter?

 

This setting refers to the graphical effect that gives the app a paper texture. Disabling it might speed up the app on some devices.

 

 

It seems slow to respond, would that be down to my old tablet and would it work better on my new one?

 

For sure, a faster CPU will probably make the app snappier. The app isn't a "native app" - it's written in Javascript - which makes development easier and makes it work in theory on both Android and iOS at the cost of some performance. The app might also be a little bit faster on a phone than on a tablet, since the canvas is smaller. Unfortunately, I don't have a tablet of my own to test it on. On my Moto X the app performs decently well, with a bit of slowdown when changing screens (menu vs. writing page) and when changing words (hard to avoid, as it's reading from disk at that time).

 

 

How do you import a word list?

I see from the help files I can import lists from my device. How do I do this?.

Can I import a Pleco flash card list for example?

 

You've put your finger on probably the trickiest use case. With a little bit of work, you should be able to import a Pleco word list, and we can work on making this easier together. I'll explain how to create a list from scratch first and then talk about Pleco word lists.

 

To import a list into Inkstone, you'll have to create a file formatted as described here - that is, a file where each line is made of four columns separated by tabs, where the columns are "simplified", "traditional", "pinyin", and "definition". The pinyin should be in the numbered format. Here's an example of such a file.

 

Once you've written this file, copy it onto your device. Then, go to the "Lists" page, tap "Import a word list", and tap "Import a saved list". Locate the file on your device and give it a name. If there's a problem with the file format, there should be an error message explaining it.

 

I'm also collecting a curated set of word lists that can be downloaded by anyone. Send me an email at kshaunak@gmail.com if you want your list to be added here. I haven't set up a central repository where you can upload lists yourself yet, but am considering doing that.

 

Finally, about Pleco word lists, their format is similar enough to the one above that it might be worth supporting it as well. If I understand correctly, a Pleco word list is a tab-separated file with three columns - word, pinyin, and definition - with both simplified and traditional packed into the one column. If a word is the same in traditional and simplified characters, then that word simply appears in the first column, and if it's different, the word in traditional characters is in brackets, like so: "小麦[小麥]". If this is a common format for word lists, it would be worth supporting it as an alternative to the current format.

 

However, many Pleco word lists are missing pinyin and definitions because Pleco comes with various dictionaries that can be used to fill them in. Please take a look at your word list files. If they have all the information I described above, then yes, we'll make it possible to import them right away!

 

 

I take it green means it has passed, red it has failed, is there a middle colour a sort of olive green? what does that mean?

 

It's supposed to be a yellow, which means "Almost perfect", and which increases the interval but not by a full factor of two. By the way, you can override the automated grading on any word by swiping up on the card when it's colored instead of tapping to move on. If you're very familiar with a word, consider swiping up and tapping the blue star, which means "I've got this" =)

 

 

The details given are very useful, Definition, pinyin and radical are good, not sure why the fourth item is called For: is this an abbreviation I have missed?

 

That is short for "Formation", a rough description of how the character is formed. Most of the time it's pictophonetic, and I don't guarantee its correctness, but I've it to be somewhat helpful as a mnemonic for some characters.

 

 

Another thing that might be an artefact of my tablet is slow screen rewrites, sometimes it doesn't clear the screen 100% before writing the next one. This is not too major a problem but a bit annoying, or is this intended?

 

Huh, no, that's definitely not intended. If you could take a screenshot of this behavior it would help me figure out what's going on. I should probably get a tablet, too...

 

 

I agree that it isn't realistic writing so large, but I wouldn't use only this to practise writing, I use Hanzi Grids to practice actual pen and paper writing for example, but I find this helps with memorization of characters and especially stroke order.

 

I must say thank you for putting in the effort  :clap . This will be a big help for many people. There are a lot of us who find the subscription fees for Skritter difficult to manage.

 

See the first question - if you have suggestions on how the sizing feature should work, I'm happy to get it done.

 

And thank you for trying out my work! I'm very happy that it's useful to some people =)

 

 

Marry me.

 

 

(Planning on making an iOS version? Please say yes - both to this and the above statement. ;) )

 

I've already got my hands full on that first front! But yes, let's talk about iOS.

 

As I mentioned above, this app was written in Javascript, which is why *in theory* it should just work on iOS as well without major changes. However, iOS development is tricky, as it's a closed platform and I haven't paid the $100/year that it takes to get a developer license. Without this license, as far as I know, I can't even load custom apps on my own device (I have an iPhone 5 running iOS 7 from a few years back). It's quite frustrating.

 

The main way I've tried to test this app on iOS without the license is to deploy it as a webpage and visit it from the phone. This effort was somewhat successful for me, but it was slow (the network is slower than a local app) and some features didn't work. However, it wasn't an accurate representation of what the app would look like on iOS, because when bundled as a standalone app, it comes with a mini-browser that would probably work better than the iOS default browser.

 

To sum up, there are a few ways that I can keep working on an iOS version and I could use help for some of them:

  • I can deploy a web version of the app to a public server and you can try it out on your phone. I don't have great hosting, so this wouldn't be a long-term solution, just a proof of concept and a test that things roughly work.
  • If you've jailbroken your phone, I can build an unsigned version of the app and send it to you to try out.
  • If, by chance, you have a spare Apple developer key lying around, I can use that to sign the app. I hear that there are some bootleg keys around...
  • If there's enough interest, I would get a developer's license and go through the full process of submitting to the Apple Store. It's probably better to verify that the app will work by other means first, though.

Send me an email if you're interested in trying out any of the above, or if you have other ideas!

 

 

Is it possible to repeat more and more times the stroke trial, also if the first attempt was wrong?

When I'm wrong, I need to repeat handwriting until correct: the character can be marked in red, as wrong, but the practice can help me for the next time.

 

So, as soon as you get a word wrong, it gets added to the days deck again as a "failure". You'll have another chance to do it after going through all the regular cards for the day. Anki has a similar setup, but has a different option to reschedule failures in the middle of the day. Are either of these features close to what you're suggesting, or do you want to redo a word immediately after you get it wrong? And if the latter, would you still want to see it again at the end of the session as well?

1 person likes this

Share this post


Link to post
Share on other sites

I wanted to save some time at the end of those questions to talk about what's next, but that post got way too long!

 

Here's what I'm working on right now: handwriting recognition shortcuts and point fixes.

 

For shortcuts, I want to be able to do things 女, 了, 子, 纟, 糹, 糸, 系, 辶, all in fewer strokes than the official order. If you have any more examples where shortcuts would be useful, please let me know! Of course, when any of these characters appears as a component of another, the shortcut will also apply.

 

For point fixes, someone pointed out that the second stroke of 辶 is hard to write. I plan to use the same component-identifying system for these point-fixes that I'm developing for shortcuts, so if you have other stroke recognition issues, please tell me about those, too! I aim to have these features ready by Monday.

Share this post


Link to post
Share on other sites

First off, great app. Thanks for putting the hard work in. I really like using the app and I'm sure it's only going to get better.

 

Secondly I could maybe help you out with the iOS build/release.

 

You can sign up for an apple developer account with an apple id (which you can get for free), which would allow you to develop apps and test them on certain devices (I think up to 100) using test flight. If you want to release the app to the app store then you have to pay the $100 to do so. As far as I'm aware you only pay for this yearly if you need to release or update your apps. I think they introduced the ability to develop apps on your own devices without paying for the license a year or so ago.

 

Building the app for iOS is a lot easier if you have a Mac and you can then use the iOS simulator to test the app. There are other ways to do it though I think (online services). I was going to try build it and test it for you but have also been busy :) I can maybe try that out soon.

 

Also I could maybe release it under my developer license if you don't have an issue with that. We can discuss further by email if you're interested. I think you can transfer apps to other developer accounts at a later stage if you decided to buy a license.

 

As you mention it would be nice for you to have lots of devices for testing (a range of old and new) but that is expensive. There are solutions such as https://aws.amazon.com/device-farm/ you could maybe try out, that may be helpful.

Share this post


Link to post
Share on other sites

 you want to redo a word immediately after you get it wrong? And if the latter, would you still want to see it again at the end of the session as well?

like old writing schools (where a character was repeated 100 times on the sand...) I need to repeat sever times a character for learning the shape and the stroke order: a repeat icon on the menu (that appear when I shift up) ca be a solution. Thank you!

Share this post


Link to post
Share on other sites

First of all thank you very much for your work. I’ve just started using this app and it looks really promising! 

I’ve imported my Pleco deck of some 600 cards and to do so, I had to perform these corrections:
 

  • Change ü into v, but that’s probably what you’re already aware of.
  • Delete … (ellipsis) character from the character entry, because it returns „incorrect vowel” error. Example entry: 越来越… (yuèláiyuè…).
  • Delete - (hyphen) character due to the same error. Example entry: 输-赢 (shū-yíng).

My proposed solution is to either allow for all the punctuation to be present in the entries or automatically delete them.

 

There also seems to be some kind of problem with simplified characters that are assigned to more than one traditional character, but I operate on simplified, so I haven’t delved into this issue. I think it was because these were some obscure variants of traditional characters which were not supported by your app, so it shouldn’t be a big deal. 

Share this post


Link to post
Share on other sites

Thanks for all the replies.

 

I will try disabling the paper filter and see if that speeds things up and fixes the slow screen rewrites.

 

I am not sure why I am reluctant to put it on my new tablet, maybe because it is new :) , when I have got used to it and feel comfortable with it I might put it on.

 

Thanks for the tip about the blue star.

 

I have no objection to the size, its nice to see it big and clear when you are learning it. As I said, this would not be the only thing I would use to practice writing, I suggest using lots of different ways to practice, especially using pen and paper.

 

As was mentioned in post # 13 by furiop it would be good to be able to repeat the same character a few time before moving on, maybe this could be achieved by having a practice "scratch pad" mode, where the same character repeated until you clicked a "next character" button or something along these lines.

 

Once again thank you for your efforts, much appreciated.

 

P.S. Thinking about it I think I will have to put it on my new tablet as I can't see me dragging 2 tablets around and I really want to use this great app. Once I have sorted out my cat and the vets (had to have an operation on his eyelid) and when I have a clearer mind (not so worried about the cat :( ) I will put it on my new tablet.

Share this post


Link to post
Share on other sites

This feature is totally doable, although it's not clear to me what the best way to expose it is. Right now the writing canvas takes up 90% of the width of the device. Do you think it makes sense to just make that width configurable?

 

No special API required for Note stylus support (only need Samsung's library for split-screen support, not if all you're trying to do is capture input from S-Pen), so yes, should just be a matter of configuring the box. The button on the stylus is actually standard API too, though I haven't ever tried to implement it in JavaScript - check for a hover event with BUTTON_SECONDARY set in the button state flags and the action something other than ACTION_HOVER_EXIT.

 

For sure, a faster CPU will probably make the app snappier. The app isn't a "native app" - it's written in Javascript - which makes development easier and makes it work in theory on both Android and iOS at the cost of some performance.

 

Another factor here might be Android version; Android 4.4 started using Chrome for its app-embedded web views, before that it was a much older / crappier embedded browser with far slower JavaScript performance. (Android 5 and later are best for that, since they made the embedded web view dynamically updatable on Play)

 

Finally, about Pleco word lists, their format is similar enough to the one above that it might be worth supporting it as well. If I understand correctly, a Pleco word list is a tab-separated file with three columns - word, pinyin, and definition - with both simplified and traditional packed into the one column. If a word is the same in traditional and simplified characters, then that word simply appears in the first column, and if it's different, the word in traditional characters is in brackets, like so: "小麦[小麥]". If this is a common format for word lists, it would be worth supporting it as an alternative to the current format.

 

That's correct except that at least in export files we also include the traditional in brackets even if it's not different from the simplified - we do that so that one can distinguish between a card where we explicitly know that the simplified + traditional are identical and one where we simply only have data for one character set.

 

However, many Pleco word lists are missing pinyin and definitions because Pleco comes with various dictionaries that can be used to fill them in. Please take a look at your word list files. If they have all the information I described above, then yes, we'll make it possible to import them right away!

 

That can be fixed by importing the file back into Pleco and then exporting it with the "card definitions" and "dictionary definitions" options enabled. Can also turn on "remap if unexportable" in case some of your cards end up pointing to a dictionary that we're not allowed to do bulk exports from.

 

To sum up, there are a few ways that I can keep working on an iOS version and I could use help for some of them:

 
Another option besides the ones you mention: as of last year, anybody with a copy of Xcode can load apps they build on their personal phone without needing a paid developer account. So if you released an Xcode project file for this, that would give people a way to install the app just by downloading Xcode + building the app with it themselves.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now