窓の杜の記事 を見て気になり、DevToysのツール群をひととおり試してみた。
また、Windows 以外での代替アプリも調べたのでメモ。
devtoys.app
2022/2/7追記: v1.0.2.0で日本語化されたが、この記事の記述時点では未翻訳のため、ツール名などは英語で記載している。
環境
DevToys v1.0.1.0。Microsoft Store経由でインストールした。
DevToysとは
公式でうたっている「A Swiss Army knife for developers.」の通り、開発者向けの便利ツールのセット。
いくつかのWebサービス で用意されているような変換処理などをまとめてくれている。
また、v1.0.1.0の時点ではオフラインで動作するため、Webサービス の利用がためらわれるような文字列の変換などにも使えそう。
各ツールへの導線
左フレームにいくつかのカテゴリが表示されており、カテゴリ配下からツールを選択すると、右フレームでそのツールが利用できる。
All toolsを選択し、カテゴリを展開した画面
カテゴリを展開する以外にも、All toolsでは各ツールへのショートカットが表示される。左上の検索ボックスからも検索可能。
また、「Smart Detection」と呼ばれる機能で、クリップボード の文字列から推奨されるツールがサジェストされる。設定からオフにすることも可能。
JSON 文字列をコピーした場合のSmart Detection
利用頻度の高いツールの場合、All toolsや各カテゴリ名を選択した際に右フレームに表示されるアイコンから、Windows のスタートメニューに直接ピン留めできる。
アイコンにホバーするとピン留めアイコンが表示される
各ツールの概要
各カテゴリ展開時のスクリーンショット は公式ページのScreenshots参照。
Converters
JSON とYAML の相互変換。インデントはスペース2つと4つから選択可能。
コメントが含まれるYAML をJSON に変換すると、コメントは削除される。JSON5のようなコメント可能な形式にはできない模様。
Number Base
数値の形式変換。出力形式はHexadecimal、Decimal、Octal、Binary。
「Format number」をONにすると、出力が Decimal
の場合は3桁ごとにカンマで、それ以外は4桁ごとに半角スペースで区切られる。
「Input type」で入力形式を変更可能。
「Input type」で選択した形式も出力形式に残るので、「Input type」をDecimalにしておくと、「Format number」がONならカンマ区切りに、OFFならカンマを除いて数値のみにできるのが地味に便利。
Encoders / Decoders
HTML
HTMLのエンコード /デコード。
エンコード はHTMLで利用できない文字を文字実体参照 に変換、デコードは文字参照 を表示文字列に変換。
デコード時は数値文字参照 もしっかり変換してくれるので、 <<<
と入れれば <<<
になる。
URL
URLのエンコード /デコード。文字コード はUTF-8 で固定の模様。
Base 64
Base64 のエンコード /デコード。文字コード はUTF-8 とASCIIを選択可能。
エンコード は通常のBase64 が出力され、URLセーフではない。また、デコードもBase64URLには対応していない模様。
JWT Decoder
JWTのデコーダ ー。これはデコードのみ。
JSON のフォーマット。
「Indentation」で、インデントを半角スペース2つ、半角スペース4つ、タブ、またMinifiedによる最小化も可能。
入力にはコメントが含まれても問題ないが、「Json <> Yaml 」と同様、コメントは出力されない。
Generators
Hash
文字列をハッシュ化。形式はMD5 、SHA1 、SHA256、SHA512。出力するアルファベットの大文字小文字を指定可能。
「Load a file」でファイル読み込みが行えるが、テキスト形式ファイルを読み込み、そのファイルのテキストを入力としてハッシュ変換する機能だった。
バイナリファイルを読み込ませるとエラーが発生したため、バイナリファイルのハッシュ値 計算はできない模様。
UUID
UUIDの生成。ハイフンの有無、出力するアルファベットの大文字小文字を指定可能。
バージョンはデフォルトが4(GUID)だが、バージョン1も出力可能。また、1回あたりで生成するUUIDの件数も指定可能。
ダミーテキストの生成。
「Type」でWords(単語)、Sentences(文)、Paragraphs(段落)を指定可能。「Length」の数だけ出力される。
生成される単語や文章はいくつかの候補からランダムで決定される模様。以下はLengthが1の場合の例。
Type
生成される文字
Words
Vero
Sentences
Sit justo diam dolores elitr autem sed sadipscing magna et et elitr justo.
Paragraphs
Clita ut volutpat feugiat. Magna duo nostrud tempor nostrud labore at nulla vel. Zzril sit dolor sanctus duis.
たまたまParagraphsが短くなったが、中には1,000文字を超えるものもあった。
Text
Inspector & Case Converter
文字の大小や区切り変換と、監査機能。
「Convert」で、文字の大文字小文字や、キャメルケース/スネークケース/コンスタントケース/ケバブ ケースなどの変換が行える。大文字でハイフン区切りの、COBOL -CASEなんてのもあった。
また、右側に文字列の監査結果として、「Selection」にはカーソル位置の行数、「Statistics」には文字、単語、行、文、段落、バイトのそれぞれの数、「Word distribution」と「Character distribution」には単語と文字の出現回数が表示される。
Convert機能を試してみたところ、半角スペースやハイフン、アンダースコア区切りの文字列は適切に解釈されるが、キャメルケースやパスカル ケースの文字列は、大文字が区切り文字として認識されず1単語と判断されるようで、変換がうまくいかなかった。
正規表現 テスター。正規表現 オプションはOptionsから設定可能。
ECMA Script互換にもOptionsから設定できる。C# 製のツールのため、デフォルトは.NETの正規表現 エンジンが使われるのかな?
Text Diff
2つのテキストの差分表示。差分の表示形式はデフォルトでは2ペイン表示だが、インライン表示にもできる。
シンプルなMarkdown プレビュー。表示テーマをLightとDarkから選択可能。
Graphic
Color Blindness Simulator
色覚異常 のある方に、画像がどう見えるかのシミュレーター。PNG , JPEG , BMP を読み込むか、クリップボード からペーストして使用する。
左上がオリジナル画像、右上の「Protanopia simulation」がP型色覚(赤の欠損)、左下の「Tritanopia simulation」がT型色覚(青の欠損)、右下の「Deuteranopia simulation」がD型色覚(緑の欠損)のシミュレーション画像となる。
Viewアイコンでそれぞれの画像を画像ビューワーで表示したり、保存アイコンで画像を保存できる。
PNG およびJPEG 画像の圧縮。
「各ツールへの導線」に張り付けた、All toolsのPNG 画像(Xbox Game Barでキャプチャ)を圧縮してみると、元画像166KBから100KB程度、40%ほど圧縮された。
その他
Settings
左下のSettingsから各種設定が可能。
Smart Detectionのオフはこちらから。自分はちょっと試してオフにしてしまった。
他、テーマやフォントの変更、行番号の非表示、半角スペースの表示などが行える。
半角スペースの表示を行うようにしたが、HTMLには反映されなかった。
GitHub へのリンクなども記載されている。また、ログファイルの表示もこちらから行える。
いくつかのツールではファイルから文字列を読み込む機能があるが、文字コード はUTF-8 限定の模様。BOMの有無は関係なし。
日本語を含んだShift-JISのファイルはエラーで開けず、UTF-16 のファイルは読み込めたがファイルの内容と異なる文字として読み込まれた。
まあ、今日日の開発者ならテキストファイルはUTF-8 で保存するだろうし、注意がいるのはCSV ファイルを読み込むときくらいかな。
ぱっと見はElectronっぽいので、なんでWindows 限定なんだろうと思ったら、公式に「DevToys is designed to embrace Windows ecosystem.」とあり、結構がっつりWindows ネイティブなアプリの模様。
issue#203 およびissue#156 で、Windows でしか動かない理由の記載がある。
ユニバーサル Windows プラットフォーム (UWP) アプリのため、Windows 以外では動かないとのこと。Mac やLinux には同じようなアプリがあるが、Windows にはないというのが開発の動機なので、マルチプラットフォーム 対応は難しそう。詳細はこちらのコメント を参照。
それぞれのissueのコメントで、Mac やLinux 向けの代替ツールとしては、DevUtils , Boop , DevBox , Text Pieces の名前が挙がっている。
DevUtilsとDevBoxは有料、BoopとText Piecesは無料かな?
2022/2/1 追記
Mac 版DevToysをうたったクローンアプリ、DevToysMacが作成中の模様。UIを似せたフルスクラッチ っぽい。
github.com
2022/7/21 追記
DevToysが1.0.9.0へアップデートしたので、DevToysMacは追従できているのかなと思ってみてみたが、2022/2/26の0.0.10が最終リリースだった。
main以外のブランチがなく、issueやPRも放置されているっぽい。166件ほどフォークされているので、どこかで開発継続しているのかな?
また、DevToys#156のコメント にて、オンラインで使える代替ツールとして、Small Dev toolsが紹介されていた。
smalldev.tools
振り返り
これまでいくつかのWebサービス を利用していたような機能がまとめられるので非常に便利。まさにSwiss Army knife(十徳ナイフ)。
個人的にはGraphicのColor Blindness SimulatorやPNG / JPEG Compressorが、専用の画像編集ツールなどを使わずに試せるのがありがたかった。
また、よく使うツールはスタートにピン留めできるのもありがたい。このあたりはWindows ネイティブアプリだからできることなのかも。