Crêpeの話なのですが(いい加減、まともな名前に変えた方がいいかな?)、全部シングルスレッドでやっていました。
検索に時間がかかるところをシングルスレッドで動かすものだから、アプリケーション全部がロックしてしまうという(笑)。
考えてみれば当たり前の状態だった訳です。
ということで、UIを変えつつマルチスレッドにするべきところはしています。
マルチスレッドにしてみたら、当たり前ですがびっくりするほどアプリケーションの反応がよくなりました。
これならイライラすることがないかもなぁと思っているところです。
起動時間の方についても新しいUIでもシングルスレッドでは、データ読み込みの関係で5秒かかります。
でも、起動した瞬間いきなり操作ができる人はいませんから、そこをマルチスレッドにしてしまえば通常のアプリと同じ2, 3秒になります。
そこまで正確に測定している訳ではありませんが、その1秒が非常にUser Experienceに大きく関係するものだと思っています。
ぐるぐるインジケーターとかで何が起こっているのかということをユーザーに示しつつ、アプリケーションの反応を少しでもよくし、さらに処理時間自体も短くする。
これら3つ全てを手を抜かずにおこなわなければならないと考えています。
それだけで使ってもらえるかもらえないかということの差が大きく出ると思います。
少しだけ可能性が見えてきました。