tkfmを作り直す
結論
/icons/hr.icon
以降は過去に考えたこと
なぜ難航しているか
もとのソースがイケてない
/icons/fail.icon Goのqtは情報が不足していて難しい 環境構築も難しい
/icons/fail.icon NimのnimxやNiGuiも情報不足、開発途中 ただし環境構築はまだ楽な方
/icons/fail.icon Kotlinだと配布がめんどくさくなりそう Java系のはもうRunTimeをPCにインストールする方針ではないから /icons/fail.icon ClojureScriptも面白そうではあるけれど、Webの情報量が少なそうだし、仕事に繋がらなさそう 日本だとぶっちゃけ流行ってないから、いま勉強するメリットがあまりない気がする・・・
保守しやすい、保守したいと思うかという点も考慮が必要
ツールは作ったあとの保守期間のほうがずっと長い
保守しやすいかどうか
機能拡張しやすいかどうか
JavaScriptのコードは正直保守したくない
僕が単純に嫌いだから
Goは保守したい、しやすい
Clojureも保守したい
ある程度現実的な選択肢だけに絞った
Webの情報が豊富なので、詰まったときにすぐ解決できそう
ローカルのファイルアクセスができる
Javascript自体は嫌いだけれど、最近の構文はだいたい把握してるのでコーディングにも苦労しない
しかし、ファイルサイズが巨大なので、インストールの敷居が高そうに思える
ローカルのファイル操作はもはや諦める、というアプローチ
ドラッグ・アンド・ドロップのみで画像ファイルを追加すると割り切れば意外とありかも
ユーザはインストール不要なので、手軽に使ってもらえる
ある程度はすでに作りかけのものがあるので何かしら役に立つかも
懸念
ただファイル操作周りはめんどくさいが・・・
画像のスケーリングアルゴリズムに何を採用しているか?
ニアレストネイバー法とかだと画像が荒く拡縮されてしまう可能性がある
qt
普通にウィジェットをコードで組み立てることもできる
goplsがうまく処理できてないのか、上書き保存しようとしたら固まる
フォーマッタもエラーを吐く
まともに開発できそうにないので諦める
方針
軽いスクリプトなら構わない
これから開発、保守続けるアプリには使いたくない
TypeScriptなら
型がある
それなりにWebに情報がある
仕事でも使う
$ sudo sysctl kernel.unprivileged_userns_clone=1
ファイルメニューからファイルを追加するとファイルリストにファイルを追加
FileList.tsxが更新される
ファイルメニューを押したときの挙動はindex.jsに書かれてる
メインプロセスとレンダラープロセス間の通信
ファイルリストを選択するとImageCropに画像が描画
FileListのボタンを押すとTileImagePreviewが更新
ファイルメニューから保存を押すと画像が保存される
メインプロセスとレンダラープロセス間通信
ずいぶんたって、現実的な選択肢
Win32APIとGTKのAPIを使ってるのでネイティブの機能をつかう
軽量
クロスプラットホームサポートらしい
移植にあたって必須の機能
ファイル選択ダイアログ
ファイル保存ダイアログ
マウスイベント
マウスホイール
キーイベント
画像描画
リストアイテム
gtkだとListBoxと呼ぶ
まだない