これからは RSS の時代かと思って iOS / macOS で動く RSS リーダーを作った

タイトルは嘘で、これからは RSS の時代とはとくに思っていないのですが RSS リーダーは作りました。まだリリースしたばかりで不具合がありそうですが、まったく使えないということもないはずなのでよかったら使ってみてください。 iOS 版 : ‎「Riverside - …

Core Data / SwiftData の iCloud 同期を実行して完了してからなにかする

このエントリのタイトルだけだとイメージがつきづらいかもしれないので、まず「Core Data / SwiftData の iCloud 同期を実行して完了してからなにか」したくなる状況について紹介しておきます。 最近 Core Data の iCloud 同期を利用した RSS リーダを作って…

Unified Logging の出力をアプリから見られるようにする

Apple プラットフォームのアプリには Unified Logging というログの仕組みがあります。Unified Logging のログはユーザのデバイスに溜まるだけで開発者が見られるわけではないため、サーバサイドアプリケーションのログと比べると役立つ場面は限定的です。し…

Core Data / SwiftData の iCloud 同期が実行されていることを可視化する

iOS / macOS アプリのデータベースに Core Data や SwiftData を使うと、 iCloud 同期を無料かつ簡単に使うことができます。ちょっとやってみるレベルの個人開発だと絶対に自分でサーバーを管理したくないので、複数デバイスからまともに使えるアプリを作ろ…

Mac のメニューバーで PR の状況を把握する

仕事をしていると PR のレビュー依頼に一瞬で気づきたいので、メールや slack 連携などの通知を設定することになると思う。ただ、それだけだと一瞬で気づいたけど今は手が離せないので10分後くらいに見よう...と思ったまま忘れてしまうということが起こるの…

個人開発の SwiftUI アプリのアーキテクチャを MVVM から MV にした

概要 SwiftUI Advent Calendar 2023 の 21 日目です。 最近趣味で iOS の podcast クライアントを SwiftUI で作っているのですが、やってみると podcast クライアントはアプリとしてそれなりに難しいことがわかってきました。作っているうちにどんどん状態管…

uber/needle を使いはじめるためのメンタルモデル

概要 最近 uber/needle を使う機会があったので入門しました。この記事では needle を使い始めるためにざっくり持っておくと便利なイメージのようなものをまとめます。 uber/needle とは needle は Swift で DI を行うためのライブラリです。類似ライブラリ…

プロパティラッパーによる actor isolation inference が削除される

Swift Advent Calendar 2023 の 15 日目です。 TL;DR 現在の swift にはプロパティラッパーによる actor isolation inference という仕様がある。この仕様のために例えば @StateObject や @ObservedObject を持つ SwiftUI の View が暗黙のうちに @MainActor…

iOS アプリのマルチモジュール開発とインターフェースモジュール

この記事は はてなエンジニア Advent Calendar 2023 の 13 日目です。 昨日は シンプルで使いやすいマイクロHTTPフレームワーク『Cask』を紹介するよ - Lambdaカクテル でした。 Scala にもこういう入りやすそうなフレームワークがあるんですね。easy で fun…