読者です 読者をやめる 読者になる 読者になる

NSStringをMigemo検索できるやつを作った

#import <OCMigemo/OCMigemo.h>

OCMigemo* migemo = [OCMigemo new];
NSString* text = @"庭には二羽ニワトリがいる";
NSRange range = [migemo rangeOfSearch:@"hane" from:text];
if(range.location != NSNotFound){
  NSLog(@"%@ %@", NSStringFromRange(range), [text substringWithRange:range]);
}

https://github.com/laiso/OCMigemo

いわゆるcmigemoのラッパー。

設定なしで使えるようにしてあるが、正規表現のエンジンとmigemo辞書は変更できるようなAPIにしている。

OCMigemo自体はMITライセンス。migemo辞書の作成にSKK-JISYO(GPLv2)がいるんだけどデフォルトで作成済みのやつが入ってる。
SKK-JISYO自体はアプリに入れなくてよくなるのでアプリ全体をGPLv2ライセンスにはしなくていいはず、という算段です。

追記

と思ったけどSKK-JISYOの内容からmigemo辞書ができているので改変物の配布にあたるのかな。

別にアプリをGPLv2にするのは個人的には全然問題ないけど。ライブラリ利用者によってはツラそうだあと思うので、このへんどうするのが良いのか詳しい人の意見が聞きたい。

他のソフトウェアを参考にすると

  • migemo辞書自体はGPLv2で公開
  • ライブラリにダウンローダーのモジュールを追加して実行端末上で動的にダウンロード

でアプリ全体のGPLv2ライセンス化は避けられそうな感じもするんだけど、正直ライブラリ利用者もいるかどうかわからない段階でそんな機能追加したくないなーという感想です。