文字っぽいの。

文字を書いています。写真も混ざります。

SwiftでURLやファイル拡張子から画像か動画か判別する。

やりたいこと WKWebViewの func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) でタップされたリンクが画像ならAという処理、動画ならBという処理…

シミュレーターのPHPickerViewControllerでHEIC形式の画像を読み込めない問題の解決方法

環境 Xcode: Version 13.3 (13E113) Simulator: iPhone 13 mini (iOS 15.4) 起こること PHPickerViewControllerを利用して画像を取得する時、インターネットに転がってるコードを参考に実装していくとこんな感じになる。 func showPicker() { var configurat…

スネてる暇はないんだよ。

力を入れて書いたブログに反応がなかった時、これは賢いと思った設計変更が受け入れられなかった時、絶対にバズると思った企画が通らなかった時、これは通ると思ったプロポーザルが不採択になった時、便利なライブラリを作ったけどスターがつかない時、絶対…

Swiftでファイル名からMIMEタイプを生成する。

やりたいこと ファイル名からMIMEタイプを生成したい時がある。例えば、 "image.png" -> image/png "movie.mov" -> video/quicktime という感じ。 実装方法 Uniform Type Identifiers を利用する。そのため、iOS 14以降じゃないと使えない。 上述したPNG画像…

「僕の考えた最強のデスク環境」をアップデートした。

2年前にデスク環境をがっちり整えた。 fromatom.hatenablog.com そこから時は経ち、書斎の棚を処分したり新しくWindowsPCを購入したりと環境も変わってきたので、アップデートをした。 この記事では、この状態になるまでに行った作業や、使った製品を紹介し…

#iOSDC Japan 2022で『 サポートiOSバージョンを定期的にあげる仕組みづくり』というLTをします。

今年もiOSDC Japanの季節がやってきましたね!ありがたいことにLTが採択されたので、登壇します!5年連続登壇することができるので、うれしみに舞い踊っております。 fortee.jp プロポーザルは サポートOSバージョン、どんどんあげていきたいですよね? しか…

ラーメン→スーパー銭湯→ラーメン

ゴールデンウィークのほとんどが飼い猫の看病と通院で消失してしまったので、ちょっとしたお出かけをした。「ラーメンと、温泉やな。」ということになり、弟と2人で電車で行ける範囲で出かけた。 味噌っ子 ふっく 朝の10時30分に荻窪駅に集合して、味噌っ子…

Apexでソロダイヤを達成するために、買ってよかったゲーミングデバイス。

去年の2月にApexデビューをしてからコツコツ続けて、ようやく今年の3月にソロダイヤを達成しました。めでたい。 この記事では、ソロダイヤを達成するまでに買ってよかったと感じているデバイスを紹介します。 新しいPC いやPCは持ってて当然でしょって感じで…

UISegmentedControlを角丸にする

できたもの コード import UIKit final class RoundedSegmentedControl: UISegmentedControl { private let segmentInset: CGFloat = 5 override func layoutSubviews() { super.layoutSubviews() layer.cornerRadius = bounds.height / 2.0 let foregroundI…

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記

APNs証明書に「証明書は信頼されていません」と出る問題の解決法

起きること 恒例行事のAPNs用証明書更新作業。いつもの手順で作って、ローカルで.cerファイルとKeychainに追加すると、下記の画像のように「証明書は信頼されていません」と出てくる。 このままでも特に問題なく.p12ファイルは作れるけども、なんだか不安が…

横断型テックリードという働き方

みなさんこんにちは。FromAtomです。 自分は今『モバイルアプリ分野テックリード』という肩書で仕事をしています。世の中のテックリードの皆様におかれましては「"分野" テックリードって?」「横断型テックリードって?」という感じかと思います。そんなテ…

WordPressにOAuth認証してRubyでREST APIを叩いて記事投稿する。

やりたいこと WordPressのREST APIを使って記事を更新したい 認証方法にはBasic認証ではなく、OAuthを使いたい 公式ドキュメントでも開発やテスト以外でBasic認証は使うなと言っている Note that this plugin requires sending your username and password w…

SwitchBotを使って、加湿器の水を入れ忘れないようにした。

モチベーション 加湿器、水を入れ忘れると乾燥した部屋でMTGなどを続けることで喉が破滅しがち。忘れずに水を入れていきたい。 できたもの こんな感じで、湿度が30%未満だったらSlackに通知されるようにした。加湿器に水が入っていれば30%は超える家の環境…

自動で泡のハンドソープが出てくるやつを買った。

これを買った。今までは手動でハンドソープを出していたけども、毎日何度もプッシュするのが面倒だったので購入。 2020年 Umimile ソープディスペンサー ハンドソープ 自動 泡 吐出量3段階調節 充電式 防水 詰め替え 400ml 大容量 壁掛けUmimileユミマイルAm…

複数のライブラリを含むPackageをSwiftPMで利用する方法。

環境 Xcode 13.2.1 Swift 5.5.2 やりたいこと The Composable Architecture や Firebase iOS SDK のように、XcodeのPackage Dependencies経由で入れるとこんな感じで複数のライブラリが内包されていて、使いたいものを選択して利用するタイプのライブラリ。 …

SwiftでLatoフォントを簡単に使えるLatoSwiftをつくりました。

UIKitやSwiftUI製のアプリで、簡単にLatoフォントを扱えるようになります。

SwiftPMでAssetsを含んだtargetを別のtargetで呼んでSwiftUI Previewするとクラッシュする。

わけわからんタイトルだけど、そのままなので仕方ない。 環境 Xcode: 13.2.1 Swift: 5.5.2 背景 iOSDC 2021でこの発表をみて、SwiftPM中心のプロジェクト構成にしようとする人は多いだろう。 fortee.jp 自分もその一人で、その中ではまった問題。 SwiftPM中…

2021年買ってよかったもの。

良くて使い続けてるものだけ書いていく。 LGの有機ELテレビ だいたい下記の記事に書いたとおり。ソフトウェアが良くできているので、使っていて不快感が少ない。もちろん発色は最高。 fromatom.hatenablog.com 新しいWindows PC ハチャメチャに古いPCを使い…

「駄目な隣人」の新宿店に行ってきた。

新宿周辺で時間を潰す必要があり、せっかくなので今年の7月にオープンした駄目な隣人に行ってきた。 キャッシュレスのお店で食券をキャッシュレスで買うことになる。店員に声をかけると現金でも払えるらしい。 机の上には生卵、のり、鰹粉、胡椒、ニラがあっ…

あんまりお酒を飲まなくなった。

お酒をあまり飲まなくなった。といっても禁酒をしているわけじゃないし、禁酒する気もない。飲み会には行きたいし、餃子を作ったら「これはビールや」とビールを飲む。 前までは毎日ビール2缶とか飲んでいたけれど、なんとなく「お茶で良いな」となってから…

Amazonブラックフライデーで買ったもの。

今年もブラックフライデーですね。例年、サイバーマンデーのほうが安くなっていて悲しみを得たりしますが、安くならないかもしれないので買うしか無いという戦いを強いられています。 下記ではブラックフライデーセールで購入したものをまとめていますが、セ…

PS5を楽しむために、4K120fpsな有機ELテレビを買った。

ようやくPS5を手に入れたので、PS5のスペックを最大限に活かせるテレビを買った。Amazonのブラックフライデーセールで安くなっていたのも決め手の一つ。 LG 48型 4Kチューナー内蔵 有機EL テレビ OLED 48CXPJA Alexa 搭載 2020 年モデルLGAmazon 色々と調べ…

MagSafe対応のバンカーリングを買った。

MagSafeなバンカーリングを買った。これは、MagSafe部分に磁石でくっつくタイプで、取り外しが可能になっている。 結構ガッチリくっつくので普段使いにはなんの問題もない。自転車やバイクなどに固定するときに、このリング経由で固定するのは流石に無理そう…

Notionで最後に開いたページにリダイレクトさせず、特定のページを開くようにする。

課題 Notionを使っていて、アドレスバーに https://www.notion.so/ と打ち込んだり、ブックマークからアクセスすると、最後に開いていたページにリダイレクトされる。 個人的にこの挙動がかなり苦手である。多動気味なので「作業Aについてドキュメントを見に…

Slackのチャンネル一覧をesaにまとめるRubyスクリプトを書いた。

こんな感じで、Slackのパブリックチャンネル一覧をesaにまとめるスクリプトを書いた。 コード gist.github.com Gemfileは source 'https://rubygems.org' gem 'slack-ruby-client' gem 'esa' とすれば動くはず。ENVがいっぱいなので指定頑張ってください。 …

iPhoneでも #esa の記事が古いかひと目で分かる!Safari拡張「Sendo for esa」をリリースしました。

"Sendo(鮮度) for esa"は、今見ているesaの記事が古いものかどうかひと目で分かるようになる、Safari拡張機能です。デフォルトでは1年以上更新されてない記事に警告表示が追加されます。 しきい値を変更することで、どの程度の古さで警告を表示するかを自…

#iOSDC Japan 2021にトーク1本とLT1本で登壇してきました。

iOS関連技術をコアのテーマとした技術者のためのカンファレンスiOSDC Japanに今年も参加しました!今年も去年に引き続きオンライン開催ということで、おうちからの参加です。 登壇 ありがたいことに今年も採択して頂きました。なんと、20分のレギュラートー…

木製のパームレストを自作した。

こんな感じ。 経緯 自分はLogicoolのG913 TKLというキーボードを使っている。 Logicool G ロジクール G ゲーミングキーボード テンキーレス ワイヤレス G913 TKL 薄型 GLスイッチ リニア 静音 日本語配列 LIGHTSPEED 無線 Bluetooth 接続対応 LIGHTSYNC RGB …

Anker Soundsyncを買った。

Bluetoothのヘッドホンは便利だけど、接続先が増えると不便なことがある。 Bluetoothヘッドホンによっては2つの接続先を保存してくれたりするが、どう考えても2つでは足りない。 MIXしてくれるわけでもないから、切り替える時に片方をミュートしないといけな…