Sunday, August 23, 2009

iKeyEx 0.1-99f Released, now supports .cin IME.

Download: here

Changelog: There were 3 versions in between, "d" was mainly to fix issue 1, "e" was an emergency release to fix a crashing bug on the preferences, and "f" fixes rest of the bugs and improves performance of characters tables.

    • Fixed issue 1. .cin input manager can be used natively with iKeyEx.
    • You can now the method to invoke the keyboard chooser, the disable it completely
    • Fixed a bug that causes crash when a layout.plist using text with traits is encountered. Thanks DB42 (of OpenHebrew) for reporting!
    • UI for cache removal.
    • Basic localization (en, es, zh_TW, zh_CN).

    • Fixed a bug that may cause preferences to crash. Thanks @mikitomo for reporting!
    • Loading characters table is now much faster (from O(n) to O(1)), that the second time you use a .cin input method will load instantly, instead of need to wait for 1 ~ 3 seconds (at a price of ~200 KiB disk space).
    • Name for layout.plist keyboard cache are now correctly generated. Thanks DB42 for reporting!
    • Keyboard list will be properly updated after Mix and match.
    • The counter in "Delete cache" will be properly updated after a cache entry is removed.
    • Candidate list computation won't lock up the application forever (at worst case) anymore.
    • Support for layout.plist on non-default keyboard type is fixed. Thanks DB42 for reporting!

Actually issue 1 was a major reason why the iKeyEx project exists, and now it is finally implemented. The .cin input method is mainly for use in table-based Chinese input method, but it can be used to implement that things too, e.g. the MultiTap method + Text prediction can be made on top of a .cin IME. The technical detail of .cin files and the technology around it can be found here.

The IME support is nowhere versatile. The .cin IME in iKeyEx so far only supports:
  1. Prefix searching (like autocompletion)
  2. Phrase completion

In the future it may also support:
  1. Key charges
  2. Dynamic dictionaries.


  1. just got v(f) installed on my 3g 3.0.1

    works great

    thanks for all the updates

  2. Thanks for the great work!
    I try use Cangjie package as example but when I decompressed the deb files, I can only see some folders such as ____QWERTY____ and _____ime.
    It seems the encoding of folder name is not UTF-8?

    Could I just use English folder name in the iKeyEx keyboard structure?

  3. @Tomky:

    But the folder names are in UTF-8. Are you decompressing with dpkg-deb -x ?

    (And the folder name doesn't really matter much before you have dependency on it (i.e. making a keyboard).)

  4. Almost done!

    There is only one bug(I think) left.

    It seems the keyname cannot be symbols, such as ".",",","/", which are used in DAYI(大易) ime.

    Is it possible to fix it?

  5. 2G with 3.0.1:

    (yes, its me again :-) )

    doesnt keep settings for created keyboards. i can create keyboard with 5Rowdeutsch layout and name it. it will appear in the box right below [create]. but as soon as i leave iKeyEx it disappears. no matter where i try to set it as an additional keyboard it never shows up in the list (the one that comes with red and green symbols for select). any ideas?

  6. @Tomky:

    I'll try. AFAIK . , / etc are used as word separator, so the iPhoneOS ignore these by default.


    If you're using -99f, that box should be named "Make". Please upgrade and check if the problem is solved by upgrading.

  7. yes, the box is named [make]. i tap it, select layout, inpiut and name it somehow. when i go back its listet under that box. but if i go back to [Keyboards] to activate the new keyboard it is not listet. after i go one more page back to [settings -> generell] and back to [make] the keyboard is gone.

  8. if you want i can ssh into the phone and grab some files if that helps.

  9. hi kenny
    do i need to install the "Cangjie" or it's already Built in, in iKeyEx3-0.1-99f?

  10. same problem as anonymous.. i create mix/match, go back to settings and back to mix/match, nothing's there.. like it was never created.. must be some permissions issue i think..