SwiftUI でビューを分割するときプロパティと View 構造体どちらにするべきか

SwiftUI で画面を作っていると、 body がどんどん長くなって見通しが悪くなることがあります。そういうときは画面の構成要素をサブビューに分割していくとすっきりするのですが、分割の仕方には大きく2つのパターンがあります。 private なプロパティまたは…

iOS で使えるシンプルな RSS リーダーを作った

AI 時代、人間もけなげに日々の情報収集などして置いていかれないようにしたいものですね。情報収集の方法にもいろいろありますが、自分は決まったブログやニュースフィードから技術情報を得るのが好きだし、昔からインターネット上のいろいろな日記を読む習…

(Yet Another) フル SwiftUI での画面遷移の考え方と方法

こんにちは、この記事は Kyash Advent Calendar 2025 の 18 日目です。 iOS アプリ開発の話をします。 概要 SwiftUI もリリースから数年が経って機能が充実し、多くの UI が不自由なく作れるようになってきました。しかし、現状だと画面の中の UI は SwiftUI…

Swift 6.2 (Xcode 26) で nonisolated な async 関数の振る舞いが変わる

概要 以前に [swift] メインスレッドから処理を逃すために Task.detached を使う必要はない(ことが多い) - zenn という記事で「async 関数はあえて main actor に isolate しない限り必ずバックグラウンドで実行される」ことについて書きました。より一般…

Claude Code に自分が作った iOS アプリの UI を見直して反省してほしい

概要 最近の開発にはなんでも Claude Code を使っていて、とても便利に感じています。ただ、趣味の一環として書いている iOS アプリの UI の実装に関してはなかなか思い通りのものを作ってくれないことがよくあります。難しめの UI をお願いすると明らかに見…

趣味が散歩しかなく、人間の記憶は失われていくのでアプリを作った

こんにちは、散歩を趣味としている者です。 趣味が散歩という人はそこそこいて、散歩中に考えをまとめたり Podcast で情報収集したりといった話を聞きます。自分の場合は風景一本の散歩で、有益なことはなにもなくひたすら歩いているとたまによい風景が見ら…

SwiftUI の Text がなぜか省略されてしまう問題とそのレイアウトプロセスのデバッグ

こんにちは、 はてなエンジニア Advent Calendar 2024 の12日目です。昨日は id:tomato3713 さんの Goによる独自スクリプトでテストケースを記述するテスト手法紹介 でした。 最近仕事で iOS アプリを作っていて、 SwiftUI の Text の文字列がなぜか省略され…

他のモジュールの型を勝手に protocol に準拠させるのは避けたほうがよい

以下のプロポーザルに書かれている問題を踏んでしまっていたのでまとめておきます。 github.com どういうことか 他のモジュールの型を勝手に protocol に準拠させる というのは例えば以下のような実装のことで、これをできるだけ避けるべきということです。…

習慣化できないことの鬼なので習慣化のための iOS アプリを作った

なぜ作ったか みなさんは習慣化していますか?わたしはしていません。日々なにも積み重ねず過ごして、いつの間にか人生が終わっていそうな気がしてきたので、ひとまず習慣化のための iOS アプリを探して評判の良さそうなものをインストールしてみました。 も…

Xcode が Swift Package をビルドするとき #if DEBUG が適用されるかは Build Configuration の名前で決まる

Swift Package の build configuration には debug と release の2つがあります。 developer.apple.com debug の場合は compilation condition DEBUG が有効になり、 #if DEBUG の分岐を通るようになります。これを利用して、例えばデバッグログの表示など…