非同期を同期的に待ち合わせる方法(ライブラリは使わず・Swift)

非同期処理が連続するときに、ネストを深くしたくない。でも、ライブラリは使いたくない。そんなときに便利な実装方法です。今回は、Dispatch...

Magic Trackpad 2の使用感レビュー

先日、HHKBを購入したところ、MacBook Proのトラックパッドに手が届きにくくなってしまいました。そこでこの度、Magic Trackpad 2を購入。...

HHKB Professional HYBRID Type-S 使用感レビュー

このたび、Happy Hacking Keyboard(HHKB)を購入しました。 HHKBにはさまざまなタイプが有るのですが、私は「HHKB Professional HYBRID Type-S...

2019年にやったこと・2020年にやりたいこと

2019年は、上半期は会社員、下半期はフリーランスのエンジニアへと、働き方が大きく変わった一年でした。 ここで改めて2019年を振り返り、20...

Automatorとpngquant/ImageMagickで、PNG画像圧縮を効率化

PNG画像を圧縮するとき、TinyPNGを使っている方も多いかと思います。 こちらのサイト、便利ではあるのですが、無料で使うには制約があります...

ffmpegとAutomatorで、動画変換作業を効率化

今回はffmpegとAutomatorを使用して、動画の変換作業を効率化する方法を紹介します。 動画の変換は面倒な手間が多いです。例えば、変換...

String文字列をファイル化してアップロードする方法(Swift)

iOSアプリ内で生成した文字列を、ファイル化してアップロードする方法について解説します。 この記事で紹介する方法では、一時ファイルとして保存す...

WKWebViewのカスタムUserAgentを設定する方法

UIWebViewがiOS13から非推奨になり、WKWebViewへの移行が進んでいます。 しかし、移行は一筋縄では行かないことが多いです。私...

Flutter環境構築

個人開発や少人数チームに魅力的な技術 個人開発者や少人数のアプリ開発チームの人には「ワンソースで複数プラットフォームに書き出せる」方法は、大変...

[book review] オブジェクト指向でなぜ作るのか 第2版

今回は、平澤章さんの「オブジェクト指向でなぜ作るのか 第2版」について、お話していきたいと思います。 この本を手に取った意図 僕がこの本を読むこと...