GitHub用issue readerのJasper v0.8.0をリリースしました🎉
今回は、v0.8.0で改善したことや、今後考えてる機能を簡単に紹介していきます。
Jasperについて詳しくはこちらとかこちらの記事をみていただけると。
https://jasperapp.io/
https://github.com/jasperapp/jasper
TypeScript化
v0.8.0でTypeScript化しました。Jasperの機能的には特に変化がないのですが、開発するにはすごくいい感じになりました。 もともとずっと生JavaScriptを書いていたのと、保守的な性格なので「WebStormが頑張ってくれるから、生JavaScriptで十分」と思ってたんですが、仕事でTypeScriptを書く機会があり、「これはいい!」と改心しました。TypeScript最高!React + TypeScript + WebStorm最高! (VSCodeを使ってないのは昔からWebStormで書いてるので)
TypeScript導入時に参考にしたのはgfxさんの「TypeScript再入門 ― 「がんばらないTypeScript」で、JavaScriptを“柔らかい”静的型付き言語に」です。そう、頑張らなくていいんですよ。漸進的にやっていけば。今回はとりあえずコンパイラを通すことを目標にTypeScript化しました。それだけでも不具合を数個みつけることができました。次はReactのstate, propsに型をつけていこうと思います。ちなみにimportを使いたいだけで入れていたbabelをやめて、開発への恩恵もあるTypeScriptにできたのもよかったです。
Electronのアップデート
Electronをv6にアップデートしました。GitHubのissueはJasper内のBrowserView(いわゆるWebView)で表示しているんですが、Electronをアップデートしたおかげでその表示速度が若干向上しました。それと外部ディスプレイをつないだときやスリープから復帰したときに画面がホワイトアウトする不具合があったんですが、これも修正されました。あと、すごく細かいですが、右クリックが非同期化されてレンダリングプロセスを止めなくなったのでそこの使い心地も改善されています。
という感じで、Electronのアップデートで色々改善されました。いつもElectronのアップデートPRを送ってくれるwatson1978さんありがとうございます!
ちなみにApple Notarization Serviceに対応したのでMacOS Catalinaでも大丈夫!
修正/変更
以前から、コメント入力時にJasperのショートカットキーが誤作動する不具合があったんですが、今回修正されました。直そう直そうと思っていたんですが、PRをもらったのでそれを取り込みつつ、少し手を加えて修正完了しました。これで知らず識らずのうちにissueをアーカイブして見失わなくてすみます。やったー!
他にもローカルへのissue保存件数がmaxになったときに未読件数がバグる問題をなおしたり、Chrome DevToolsをメニューから起動できるようにしました。DevToolsが使えるのでオリジナルのテーマ(CSS)を作ってくれると嬉しいなと思います。
今後の話
複数マシン間での同期機能を考えています。現状でもJasperのデータディレクトリをDropboxで同期したり、Jasperのデータディレクトリを変えるPRをもらったりしているのですが、今考えてるのはJasperからDropbox APIを使ってデータ同期するというものです。
それとJasperのモバイルアプリも検討しています。デスクトップ版Jasperと同等の機能を作り込むのはさすがにちょっと厳しいのでどうしようかなーと悩んでいたんですが、前述のDropbox APIを使えば現実的な開発コストで実用レベルのものが作れそうな気がしています(なので複数マシン間での同期機能はDropboxのディレクトリ同期ではなく、Dropbox APIによる同期を考えてる)。
実装方法としてはデスクトップ版が「最新100件程度のissueの未読情報」をJSONファイルとしてDropbox API経由でアップロードして、モバイルアプリはそれを表示するというものです。なので、モバイルアプリの位置づけはデスクトップ版の簡易ビューワアプリという感じです。もちろんモバイルで更新された未読/既読の管理はデスクトップ版にも反映させようと思いますが、Streamのポーリングや作成などはとりあえずなくてもある程度は実用できるんじゃないかと。
このあたりはいつになるかわからないですが、のんびり待ってもらえると嬉しいです。
というわけで、Jasperを使っていただいている方は今後もよろしくおねがいします。使ってない方も、GitHubのissue/PRを追いかけるのが大変という方はぜひ使ってみてください!