はじめに
以前紹介させていただき、2022年Qiitaのいいねランキング18位、ストックランキング20位を記録したこちらの記事の続編です!
DevToysはリリース後しばらく定期的なバージョンアップが続けられていましたが、去年の7月からぱったりとアップデートが止まっている状態でした。
リポジトリや作者のXを見るとバージョン2の開発を行っているようで、今か今かと待ち続けていましたが数日前リリース予告のポストを見つけて、今日ついにプレリリースされました!
ということで早速紹介していきます!
DevToysとは
DevToysは「開発者のためのスイスアーミーナイフ」の紹介文の通り、開発時によく使うツールを十徳ナイフのようにまとめたアプリとなっています。
JSONの整形とかエンコードデコードetc...
プログラミングや保守運用の調査でやりがちな作業をいちいち変換サイトを探したり、エディター拡張機能のショートカットを探したりせずとも、これ一つですぐにできます!
オフラインで軽快に動作するため、張り付ける文字列の流出に気を使わなくてよいところも便利なポイントです。
DevToys 2.0の新機能
目玉の一つがクロスプラットフォームになったことです!
以前はWindows専用アプリだったのでMacやLinuxユーザーは使うことができなかったのですが、どのOSでも使えるようになったのは大きな変更です。
他にも、拡張機能を追加できるようになったり、CLI版も用意されています。
ツール群や基本的な機能はバージョン1から引き継がれているので、機能の紹介はこちらの記事を確認ください。
ただし、バージョン2で追加されたツールもあるのでそれらは後程紹介します。
インストール方法
ダウンロードページから自身のOS、CPU環境に合うものを選んでインストールしてください。
※M1 Macではこちらの対応を行わないと動かないことがあるようです。
各OSでの見た目
Windows
Mac
Linux
追加ツール紹介
JSONの表形式ビューとCSV変換
JSONを表形式ビューにして、結果をCSVやTSVでクリップボードコピーできる。
ネストされたJSONもある程度解釈できる。
QR コードエンコーダー / デコーダー
文字列からQRコードを生成。
逆のQRコードの内容を読み取って文字列の生成もできる。
リストの比較
文字列リストの集合演算ができる。
CLI版
CLI版ではコマンドラインから各種ツールが使えます。
下記はヘルプを出してみたところです。
>devtoys -h
Description:
DevToys
Usage:
devtoys [command] [options]
Options:
--version Show version information
-?, -h, --help Show help and usage information
Commands:
lc, listcompare 2つのリストを比較
esc, escape パース処理に使われるメタ文字をエスケープまたは解除します
textutilities, txt テキストの分析、変換および情報の表示
xmltester, xsd XSD を用いた XML データの検証
jpt, jsonpathtester JSONPath を用いたテスト
imageconverter, imgconv 画像フォーマットをロスレスで変換
cbs, colorblindsimulator 画像またはスクリーンショットの色覚異常シミュレーター
guid, uuid バージョン 1 およびバージョン 4 の UUID (GUID) の生成
password, pwd パスワード用のランダムな文字列の生成
li, loremipsum ダミー (Lorem Ipsum または同様の) テキストを生成します
checksum, hash テキストまたはバイナリデータからハッシュ値を生成、検証
xmlf, xmlformatter XML データを整形または縮小します
sqlf, sqlformatter SQL クエリを整形します
jsonf, jsonformatter JSON データを整形または縮小します
url URL エンティティに該当するすべての文字をエンコードまたはデコードします
qrcode QR コードの読み取り、テキストデータから QR コードの表示および PNG / SVG の生成
html HTML エンティティ該当する文字をエンコードまたはデコードします
gzip GZip と Base64 を組み合わせた圧縮 / 展開ツール
cert, certificate 証明書のデータをデコードして内容を確認します
b64, base64 テキストデータまたは Base64 データを相互に変換します
b64i, base64img 画像データまたは Base64 データを相互に変換します
nb, numberbase ある基数から別の基数に数値を変換
jsontotable JSON 配列を表形式で表示し、CSV、TSVに変換
jsontoyaml JSON と YAML を相互に変換します
date Unix 時間や UTC、対人可読形式などへ日時を変換
cron, cronparser Cron 式を解析してスケジュールを表示します
試しにパスワード生成のコマンドを使ってみました。
>devtoys pwd -h
Description:
パスワード用のランダムな文字列の生成
Usage:
devtoys password [options]
Options:
-l, --length <length> パスワードの文字数 [default: 30]
-u, --uppercase 大文字を使用 (ABCDEFGHIJKLMNOPQRSTUVWXYZ) [default: True]
-m, --lowercase a から z を使用 [default: True]
-d, --digits 数字 0123456789 を使用 [default: True]
-s, --special 特殊文字 !"#$%&')*+,-.:;=>?@]^_}~ を使用 [default: True]
-e, --excluded <excluded> 生成時に除外する文字 []
-?, -h, --help Show help and usage information
>devtoys pwd -l 8 -mds
8rE^5s20
CI/CDやスクリプトと組み合わせて便利に使ったり、クライアントPCよりCLIしか利用できないLinuxサーバーに入れることで真価を発揮しそうだと思いました!
拡張機能
拡張機能はDevToysには同梱されていないサードパーティのツールを追加するための機能です。
自分で作成したものやNuGetから取得した拡張機能をDevToysにインストールして使うことができます。
PNG圧縮ツールが公開されていたのでインストールしてみます。
パッケージをダウンロードして、「拡張機能をインストール」からダウンロードファイルを選択して取り込みます。
アプリを閉じて再度開くと新たなツールが追加されています。
本家の対応を待たなくても新しいツールがどんどん追加できるようになっていきそうなアップデートですね。
その他
リリースにあたっての作者のブログもエモいので一見の価値ありです。
個人的に業務PC端末がMacに移ったのもあり、使えなくて歯がゆい思いをしていたので今回のアップデートがとても嬉しいです!
引き続きアップデートがあればこの記事を更新していきます。