こんにちは、 id:numanuma08 です。2023年4月15日に Android Gradle Plugin 8.0 と Android Studio Flamingo がリリースされました。AGP 7.x から8 は破壊的変更もあるので対応が必須なことも多いと思います。私が参加しているプロジェクトでどう言った対応を行ったのか紹介します。
経費申請の交通費が自動計算の結果と違うので、理由を聞いてみたらマニアックな理由が返ってきた件
ど~もこんにちは、id:yanacii です。今日は経費申請の交通費で自動計算に無い金額の理由を聞いてみたらマニアックな回答がきたのでそれについてお話をしたいと思います。
続きを読むSwiftUIのプレビューの時だけ名前解決できない謎のエラー
こんにちは。 SwiftUIで複雑なViewを定義する時は以下のようにSubviewに分けることがあると思います。
例えばよくあるユーザー詳細画面だとすごくざっくりこんな感じになると思います(本当はさらに複雑に分解されると思いますが)
- UserDetailView
- UserDetailHeaderView
- UserDetailContentView
- UserDetailContentSubView
この場合、Subviewの名前が長くなるので僕はよくextension を使って以下のように書きます。
// UserDetailHeaderView.swift extension UserDetailView { struct HeaderView: View { // 略 } } // UserDetailContentView.swift extension UserDetailView { struct ContentView: View { var body: some View { ContentSubView() // 他にもいろいろなView } } } extension UserDetailView { struct ContentSubView { // 略 }
こうすることで UserDetailViewは以下のようにシンプルに保てます。
struct UserDetailView: View { var body: some View { VStack { HeaderView() ContentView() } } }
このような書き方にするとビルドは普通に通るしプレビューもできます。
問題発生
しかしSubviewの方でプレビューを作ると困ったことになります。
例えば UserDetailContentView.swift
でPreviewを表示しようとした場合にはなぜか ContentSubView
が見つからないというエラーが発生するので UserDetailView.ContentSubView
という書き方をしなくてはいけません。
このエラーは extension で囲ったViewから別のextensionで囲ったViewを参照している場合のプレビューの場合だけ発生します。
親View(UserDetailView)でのプレビューや単体でのPreview時には発生しません。
Xcodeのプレビュー問題なのか?そのような書き方がそもそもできないのか?詳しく調べていないのでよくわかりませんがプレビューのときだけ発生して、さらにプレビューのビルドエラーはわかりにくいので共有がてら記事にしてみました。
池袋おすすめランチ情報
コベリンがオススメする池袋のご飯屋さんの情報です。要町〜西池袋エリア中心です。随時更新します。
続きを読むRenovateがPull Requestを作ってくれなかったときに確認したこと
こんにちは、 id:numanuma08 です。
私が今携わっているAndroidアプリのプロジェクトは、依存ライブラリのアップデートに追従するためRenovateを使っています。
Auto mergeは設定しておらず、週1でRenovateが動作しているのでPRが毎週作られるはずでしたが、いつの頃からかPRが作られていませんでした。
今回、その理由を調査したので共有します。
続きを読む