ソースコード読みアプリにカラーリングをつける
Octodroidのカラーリングが綺麗で見やすいので実装を読んでいたら、これはwebviewでjsのライブラリを使って描いている。
ライブラリの名前はgoogle code prettify との事で、ぐぐったらJava版もあった。
使うのも簡単そうだったのでちょろっと色つけるか、とつけてみた。
もともと午前中くらいに終わるかなぁ、と思って始めた作業で、実際そのくらいで動く事は動いた。
だが少し大きめのファイル開くと全然帰ってこなくなる。
という事で非同期な度合いを上げて、一度にカラーつける要素を500個ずつにしてみたり1000個ずつにしてみたり、間に1秒waitを入れたり、と、そこら辺の調整をしてたら、気づいたら日が暮れていた…
ただこの辺気軽に調整出来るのはRxJavaの良い所ね。
結果としては、色はなかなか良いのでやはり欲しいが、現状はちょっとパフォーマンス的に問題が多くなってしまったと思う。
Spanがいっぱいある時のTextViewのdrawが凄く遅いのだよね。
これは以前ページャーをいじってた時にも遭遇してた問題なので、そのうちTextViewはカスタムでもっと低機能で早い奴を作る必要性は感じていたが、カラーリングをやった結果、必須という感じになってしまった。
とりあえず現状は自分のタブレットくらいのスペックなら割と快適に動いて、自分のスマホだとちと辛い、くらいの遅延に調整した。
スマホはギャラノ3なので、今となっては少し古いが、ちゃんと書けば十分サクサク動くスペックと思っている。 という事でそのうちどうにかしよう。
ただカラーリングが動いた結果、結構普通の人にも見せられるようになってきた。
TextView書き直したあたりで、リリースに向けて考えて始めてもいいかもなぁ。