サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「かわいい」
maiyama4.hatenablog.com
こんにちは、 はてなエンジニア Advent Calendar 2024 の12日目です。昨日は id:tomato3713 さんの Goによる独自スクリプトでテストケースを記述するテスト手法紹介 でした。 最近仕事で iOS アプリを作っていて、 SwiftUI の Text の文字列がなぜか省略されてしまうけど原因がよくわからなくて悲しいということがありました。この記事では、 SwiftUI のレイアウトプロセスの理解を深めつつこの問題をデバッグしていこうと思います。 省略されてしまう Text 実際に文字列が省略されてしまう問題が発生した View はけっこう複雑なものだったのですが、問題が起きる状態を維持しつつめちゃくちゃ単純化すると以下のようになります。 struct ContentView: View { var body: some View { VStack(spacing
タイトルは嘘で、これからは RSS の時代とはとくに思っていないのですが RSS リーダーは作りました。まだリリースしたばかりで不具合がありそうですが、まったく使えないということもないはずなのでよかったら使ってみてください。 iOS 版 : 「Riverside - RSS Reader」をApp Storeで macOS 版 : 「Riverside for Mac - RSS Reader」をMac App Storeで ソースコードはパブリックにしています。 github.com なぜ作ったか 気に入っているブログやニュースレターをもれなく読みたいと思って Feedly を RSS リーダーとして使っていたのですが、 Pull to Refresh の触り心地がネイティブっぽくないとか、アイコンの色がちょっときつすぎるとかめちゃくちゃどうでもいいことが気になって徐々にアプリを使わ
Apple プラットフォームのアプリには Unified Logging というログの仕組みがあります。Unified Logging のログはユーザのデバイスに溜まるだけで開発者が見られるわけではないため、サーバサイドアプリケーションのログと比べると役立つ場面は限定的です。しかし、出力しておくとアプリが想定しない挙動をした時の調査などで助かることがあります。 以下の WWDC のセッションではログを不具合解決に役立てる様子が紹介されています。 developer.apple.com 個人的な経験としても、開発しているアプリの TestFlight 版を常用していて変な動作があったらログを見ることがあります。また、例えばデバッグビルドでは再現しなかったり、 QA エンジニアでの端末でのみ発生する不具合などを修正する際にはデバッガで動作を追うことができないのでログが唯一の手掛かりになり得ます
iOS / macOS アプリのデータベースに Core Data や SwiftData を使うと、 iCloud 同期を無料かつ簡単に使うことができます。ちょっとやってみるレベルの個人開発だと絶対に自分でサーバーを管理したくないので、複数デバイスからまともに使えるアプリを作ろうと思うと iCloud 同期はリーズナブルな選択肢だと思います。 ただし、アプリから iCloud 同期を実行したり停止したりする API はないので、同期の実行は OS のご都合のよいタイミングでよろしくお願いしますという感じになっています。これは iCloud 同期を利用するアプリの開発者としても利用者としてもかなり気になる点で、 ある端末でデータを更新したのにもう一方の端末には反映されていなくて、それぞれの端末でアプリを操作してみたり再起動してみたりしても全然同期されないということが起こったりします。 同期
仕事をしていると PR のレビュー依頼に一瞬で気づきたいので、メールや slack 連携などの通知を設定することになると思う。ただ、それだけだと一瞬で気づいたけど今は手が離せないので10分後くらいに見よう...と思ったまま忘れてしまうということが起こるのでなんらかの工夫が必要で、自分はメニューバーに関係する PR 一覧を表示している。 具体的には、以下のように、 自分がレビューするべき PR の数 自分が出していてマージされていない PR の数 をメニューバーに常に表示し、それをクリックすると PR へのリンクのリストが登場するようになっている(仕事の様子を公開するわけにはいかないのでダミーデータにしています)。 リストは3つのセクションに分けていて、 自分がレビューするべき PR すべて 自分が出してマージされていない PR すべて 自分が出してマージされた PR 直近3件 をそれぞれ表
概要 SwiftUI Advent Calendar 2023 の 21 日目です。 最近趣味で iOS の podcast クライアントを SwiftUI で作っているのですが、やってみると podcast クライアントはアプリとしてそれなりに難しいことがわかってきました。作っているうちにどんどん状態管理が複雑になってきて、個人開発でなぜこんなにがんばりが必要なんだと思って開発が止まっていたのですが、最近 iOS 17 の登場をきっかけにアプリを全般的に書き直すことにして、同時にアーキテクチャを変えてみました。これにより構成がシンプルになって開発効率が上がり、開発を再開することができました。具体的には、 from: 1画面に1つ ViewModel(ObservableObject)を作り、 View から ViewModel を監視する MVVM to: View から直接 Model
この記事は はてなエンジニア Advent Calendar 2023 の 13 日目です。 昨日は シンプルで使いやすいマイクロHTTPフレームワーク『Cask』を紹介するよ - Lambdaカクテル でした。 Scala にもこういう入りやすそうなフレームワークがあるんですね。easy で fun なツールをどんどん使っていきたいし、人生も easy で fun になってほしい。 今日は iOS アプリについて書きます。 概要 アプリケーションを継続的に開発していくことで、コードベースもどんどん大きくなっていきます。とくに iOS アプリではコードベースが大きくなることにより、ビルド時間が長くなってしまい開発効率が悪くなってしまうことがあります。 機能とともにアプリのサイズが増えるのは自然なことなので、その問題への対応としてアプリ自体のサイズを小さくする...というのはなかなか難しいで
このページを最初にブックマークしてみませんか?
『maiyama4.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く