きっかけ
こちらの記事で紹介されていたDevToysを使ってみたら非常に便利で、これは日常使いしたい!となりました。
しかしなんということでしょう。DevToysはWindowsアプリでありmacでは使えないではないですか!iOS・macアプリ開発者の私としてはmacを捨てるわけにはいかないので、mac版のDevToysを開発しました。
できたもの
というわけで3日ほどでmac版DevToysクローンを作成しました。
以下のReleaseからダウンロードできます。
開発
可能な限り高速で開発をする必要があったため、他のOSSどううまく使うかが勝負です。
アプリ全体
他の開発中のmacアプリからユーティリティ系コードは大部分を流用しました。
これでだいぶ開発が楽になります。
Json <> Yaml
OSSのYamsを用いて実装しています。本家DevToysではなぜか Yaml -> Json, Json -> Yamlの切り替え式だったので両側入力にしてあります。
SwiftのDictionaryを用いている都合上キーの順番が維持されないのでこれは後でなんとかします。
Number Base Converter
特に言うことなし。String.init<T: BinaryInteger>(_ value: T, radix: Int, uppercase: Bool)
とInt(_ value: String, radix: Int)
便利だねってくらいかな?
HTML Encoder / Decoder
OSSのHTMLEntitiesを使わせてもらっています。
URL・Base64・JWT Encoder / Decoder
これも特にないかな?Foundation
の標準機能で実装可能です。
Json Formatter
あまり使われてないライブラリですが、ちょうど良かったのでSwiftJSONFormatterを使用しています。ただいくつかバグがあったのでForkして修正して使っています。
Hash Generator
こっちは超有名ライブラリの CryptoSwift を使っています。CryptoSwiftにはもっと色々なHashが実装されているのでそのうち増やしても良いかもしれません。
UUID・Lorem Ipsum Generator / Text Case Converter
特になし。Foundation
の標準機能で実装しています。
Image Optimizer
optipng
とjpegoptim
のバイナリを実行しています。バイナリ実行のためにApp Sandboxが使えなくなるのでSign周りが面倒でした...
Text Diff・Markdown Preview・Color Blindness Simulator
実装コストの面と必要性の面から実装していません。
要望があれば実装すると思います。
おまけ
本家にない機能を色々追加してみたりしています。
PDF Generator
画像を取り込んでPDF化できます。
Network Information
Local IP・接続情報・Speed Testが行えます。
以上でございます。
ダウンロードしていただければ私が喜びます...!