ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

iPhoneの標準IMEにSocial IME機能などを追加するIMEPatcher

      2016/03/16

iPhoneの標準IMEに、Social IMEなどの機能を追加するIMEPatcherというものを作ってみました。
先日作ったiPhoneの標準IMEの変換候補に半角カナを追加するIMEHankakuPatcherの機能を内包します。(続きは[MORE]から)

解説

IMEPatcherを導入すると、iPhoneの標準IMEの候補にSocial IMEから取得した候補、半角カナ、スジャータを出すことができます。
Social IMEはネットワークがつながるところ、Social IMEのサービス中でないと使えません。

なお、スペシャルキーワードが二つあります。それらを入力すると、特殊な変換候補が出てきます。

  • いまなう: 現在時刻が候補に表示されます
  • ばんどる: 現在使用中のアプリケーションのBundle Identifierが候補に表示されます

 

確定すると確定した古い候補が次回以降の変換時に候補に出てくるので「いまなう」の方は特に微妙なのですが、新しいものが必ず先に表示されますので、それで判断してください。

設定解説

IMEPatcherをインストールすると、「設定>IMEPatcher」という設定項目が出現します。

 

  • Social IMEが先:オンにすると、Social IME有効時、変換候補の先頭にSocial IMEからの候補が表示されます。ただし、標準IMEと重複するものは削除しているため、往々にしてゴミのような候補が先頭に来ることとなり、ウザいだけだと思います。オフの場合は、Social IME有効時、Social IMEからの候補が末尾に来るようになります。
  • 半角カナ:オンにすると、入力した読みを半角カナにしたものが候補に現れるようになります。
  • スジャータ:オンにすると、入力した読みを半角カナにしつつ、スジャータフォーマットに加工したものが候補に現れるようになります。

SBSettings SocialIME解説

IMEPatcherをインストールすると、SBSettings上に「SocialIME」という項目が出現します。

こちらは、Social IMEの有効無効を設定するものです。

Social IMEの検索処理は一般的に遅く、ネットワークの状態などによりより遅くなったり、ついにはタイムアウトしたりと、常時使うようなものではないといえます。
Social IMEはネットワーク経由で候補を検索してくるため、もちろんオフラインでは機能しません。

使う状況と必要度に応じてSBSettingsのSocialIMEでオンオフしてください。

なお、オン→オフとした場合は即時適用されますが、オフ→オンとした場合は即時適用されません。
適用させるには、キーボードの中にある地球アイコンのボタンを押して、いったんキーボードを別のものに切り替えキーボードを初期化してください。「日本語テンキー」と「English(US)」が有効な環境なら、地球アイコンを2回押して「日本語テンキー」→「English(US)」→「日本語テンキー」と戻すわけです。

既知の問題

  • Social IMEのサービスに異常があると、IMEPatcherの機能も動かない、という因果関係があります。
  • SBSettingsからSocial IMEをオフ→オンにしても反映されません。一度別のキーボードに切り替えると反映されます。別のキーボードに切り替えるとはどういうことかといえば、キーボードの中にある地球アイコンのボタンを押すことです。「日本語テンキー」と「English(US)」が有効な環境なら、地球アイコンを2回押して「日本語テンキー」→「English(US)」→「日本語テンキー」と戻すわけです。
  • たまに何かの拍子でパッチが当たらないことがあります。特定のアプリだけで動かないということが起こります。その場合は、いったんApp Switcher(Homeボタンダブルクリックで下にニュっと出るやつ)から終了させて再度そのアプリを起動してみてください。

IMEHankakuPatcherがレポに無いのですが、debをもらえませんか?

リポジトリから消しました。IMEPatcherをインストールし、SBSettiingsの「IME」アイコンを赤の状態(SBSettingsのSocialIMEをオフ)にしてください。
これでIMEHankakuPatcherと同等です。
IMEHankakuPatcherにはIMEPatcherより劣る点があるので使う意味はありません。

Social IMEが動作しません!バグですか?

SBSettingsのSocialIMEがデフォルトではオフなので、オンにしてください。
また、オンからオフにする際は即時反映されますが、オフからオンにする場合は、SBSettingsのSocialIMEをオンにした後、別のキーボードにいったん切り替えてキーボードを初期化してください。
キーボードの初期化は、キーボードの中にある地球アイコンのボタンを押していき、元使っていたキーボードに戻すことでできます。「日本語テンキー」と「English(US)」が有効な環境なら、地球アイコンを2回押して「日本語テンキー」→「English(US)」→「日本語テンキー」とするわけです。この過程で「日本語テンキー」の状態は一度初期化され、SBSettingsのSocialIMEをオンにした効果が反映されます。

特定のアプリだけで動かないんです!困ります!!!

IMEPatcherが特定のアプリでだけ動かないという場合はいったんApp Switcher(Homeボタンダブルクリックで下にニュっと出るやつ)から終了させて再度そのアプリを起動してみてください。

なぜ機能したりしなかったりするんですか
?意味がわかりません!

IMEPatcherなどのパッチは、アプリケーションの実行ファイルを直接書き換えたりはせず、アプリケーションの起動時に都度動作を変更するように機能します。

IMEPatcherはアプリケーションの起動時にはアプリケーション内部には存在せず、キーボード表示時に初めて読み込まれる機能部分へパッチを当てるため、キーボード表示時後に実行されるであろう部分へパッチを当て、そこからキーボード表示後にアプリケーションに読み込まれる機能部分にパッチを当てる2段階式のパッチになっています。

それが原因なのか、たまにパッチが当たらないことがあるようです。
自分のやっていることが最適解ではないのでしょう。

それでも全くパッチが当たらないアプリケーションは自分が試している限りでは無いので、パッチが当たらなくても、アプリケーションの終了→アプリケーションの起動を繰り返せばそのうち当たると思います。

こう書くと滅多にパッチが当たらないかのような印象を受ける表現になってしまいますが、ほとんど当たらないということはありません。(ただし自分はiOS4.0.1で使用)

アプリを何億回終了させてもパッチが当たりません!どうしてですか!!!ついにHomeボタンが壊れました!

それはアプリケーションを終了させられていないからではないでしょうか。

iOS4以上でマルチタスクが有効な環境で、かつアプリケーションがFast App Switchに対応していると、アプリケーション起動中にHomeボタンを押しただけではアプリケーションは終了しません。

Homeボタンをダブルクリックし、画面下から出てきたApp Switcherから当該アプリケーションのアイコンを長押しし、アイコンの左上に出てきた赤丸アイコンをタップすることで初めて終了させられたことになります。

この状態から再度起動させないと、パッチ当ての再トライにはなりません。

iPadでは動かないのですか?

一応動きますが、iOS4以上用ということにしておきます。

iOS 5では動かないのですか?

動きません。インストールしないでください。

動作環境

  • iOS 4.0
  • iOS 4.0.1
  • iOS 4.0.2(not tested)
  • iOS 4.1(not tested)
  • iOS 4.2.1

履歴

  • 0.4-2 2011.04.18 「ム カ ツ イ ー ト」形式の候補の順序を半角の後ろに
  • 0.4-1 2011.04.18 「ム カ ツ イ ー ト」形式を追加
  • 0.3-1 2011.04.06 パッチが当たったり当たらなかったりという不具合に対する改善が見込めるかもしれない形でパッチの当て方を変更。
  • 0.2-3 2011.03.18 SpringBoard(Spotlight、フォルダ名変更時のテキスト編集、SBSettings、Activator経由の諸々)をIMEPatcherの対象外に
  • 0.2-1 2010.11.17 「ゔ」が半角に変換されないのを修正
  • 0.1-1 2010.11.7 初版

謝辞

IMEPatcherはnovi_氏作SocialKBを元にして作りました。
また、開発過程でnochina氏作のローマ字かな変換関数を使わせていただきました。
両氏に感謝致します。

インストール

インストールは、いつものNew野良リポジトリから「IMEPatcher」で検索してください。
例によって安定性等は保証するところではないので、そのつもりで使ってください。
無保証、無サポートです。
これっきりバージョンアップは無いかもしれません。

リポジトリでの公開を終了しました

iOS 5に対応しておらず、リンゴループが起きるという例もあるようですので、リポジトリでの公開を終了しました。

com.hitoriblog.imepatcher_0.4-2_darwin-arm

 - iPhone, Jailbreak, ガジェット

dropbox_sale_banner evernote_sale_banner_03