macOSアプリを実装中

題の通りですが、macOSでアプリを実装中です。 種別的にはランチャーアプリになるのかな? これを読んでアプリを使ってもらえたら嬉しいなというのと、 できればアドバイスほしいしPRもらえたら嬉しいな、という気持ちです。 あとは適当に顧客が本当に実現したかったことを書きつつ考えを整理できたらいいなー。ラバーダックデバッグ。 それならこのアプリが良いよ!ってのがあったら教えてほしい。

repository

触って5秒で「あ、これ、、」ってなると思うけど、これからなんで。とりあえず動かすところから始めるスタイルなんで。

f:id:Qsk:20190110162311j:plain

解決したかったこと

macOSでapp作ろうと思った経緯的なところ。 普段は cmd+tab でアプリを切り替えているのですが、3つ以上のアプリを切り替えたいときに脳内メモリが追いつかなくなる事象に度々見舞われます。 chromevimとitermを使ってるときにcmd+tabを何回押したらどのアプリだ?ってのが徐々にわからなくなってくる。 cmd+tabでお目当てのアプリが2つ目にあるのに3つ目を選択して、 あ、2つ目だったわって認識した瞬間にそのアプリ3つ目になってんの。辛い。 という気持ちを数年抱いてきて、かなりDXが損なわれている気持ちがあり、そろそろなんとかしたいなと思った。 任意のアプリをすぐにアクティブにできるのが欲しかった。

調べた

そもそも既存のアプリ等々で対応できんじゃないの?と思っていたのでアプリとかショートカットキーの設定方法とかを調べたりしていたのですが、 種々の理由でどれもしっくり来なかったのです。(アプリ、何を試したか覚えてないなー)

  • 同時押しでアプリ一覧が出るタイプ: キーの組み合わせは任意にしたい。一覧出すたびにホームポジション崩すの?
  • 長押し起動するタイプ: すぐに切り替えたい、待ち時間辛い
  • キー押してる間だけ起動するタイプ: 所定のキーを押しながら操作を要求されるので指が辛い、あと絶妙に表示されたり消えたりするの目が辛い

あとはcmd+tab起動中アプリとして出ないでとか、既存のショートカットキーと競合するんだけど、とかとか。 で、結局自分で作るかってなって今その最中です。

方針

何個か使ってみて、したいことが少し具体化してきたので整理した

  • ショートカットキー被るのは嫌
    • vimを使ってるのでctrlを利用したホットキー設定はまじでしたくない
    • そうでなくとも他のアプリ間でショートカットキーが干渉し合うのは辛い
  • 無理ないショートカットキーがいい
    • ホームポジションから無理せず押下出来る範囲の組み合わせにしたい
    • キー被りと押しやすさを考えると<C-かな>, <C-英数>が候補に出てきた
  • モーダルがいい
    • easy motion的な動きができたらいいなあ
    • アプリ切り替え用のモーダル1つ用意するだけなので実質ショートカットは1つ

進捗

  • 完了
    • 更新チェック
    • 英数、かなのショートカット設定
    • ショートカットアプリの追加、削除
  • これから
    • 見た目
      • 設定ウィンドウ
      • app選択をpopupやめようかな?
    • キー設定の方法をもう少しなんとかしたい
      • finder, franz, filezilla を全部 f に割り当てたいみたいな
    • コード綺麗にしたい
      • hello, copipe code.
  • 検証
    • よく使うappを勝手にショートカット設定したい
    • toggle
    • touch bar?
    • アクティブにするウィンドウも選べたら良い?
    • タブも選べたらいい?

困ってること

  • swift的な書き方が全くわかってない
  • バグレポートってどうするんだろう?
  • appアイコンほしい
  • jisキーボードしか想定してない(困ってない)

所感とこれから

やりたいことが実現できた感もあり、現状 もういいかな 満足感ある。 しかしながら今年はUI力を少しつけていきたいなという心持ちなので、画面周りもちゃんと作ろうかなー。ウィンドウ一つ分しか無いけど。 人に見せても恥ずかしくない感じの見た目にはしたいな〜という思ひ。 apple developerに登録するかもしれないししないかもしれない。 自分だけが使ってればいいというノリですが、せっかく作ったので誰かに使ってもらいたいなーという気持ちもある。 Clipyから多大なる参考をいただきました。ありがとうございます。