agent-eval
Freeコーディングエージェント(Claude Code、Aider、Codexなど)のカスタムタスクによる直接比較。合格率、コスト、時間、一貫性メトリクスを測定
The English summary is being prepared. Showing the original description.
iOS 26 Liquid Glassデザインシステム — ブラー、反射、インタラクティブモーフィングを備えた動的ガラスマテリアル(SwiftUI、UIKit、WidgetKit対応)。
The English summary is being prepared. Showing the original description.
Run score Not tested
See how to installReview the instructions the agent will receive before you install.
AppleのLiquid Glassを実装するためのパターン — 背後のコンテンツをぼかし、周囲のコンテンツから色や光を反射し、タッチやポインターインタラクションに反応する動的マテリアル。SwiftUI、UIKit、WidgetKitの統合をカバーする。
任意のビューにLiquid Glassを追加する最もシンプルな方法:
Text("Hello, World!")
.font(.title)
.padding()
.glassEffect() // Default: regular variant, capsule shape
Text("Hello, World!")
.font(.title)
.padding()
.glassEffect(.regular.tint(.orange).interactive(), in: .rect(cornerRadius: 16.0))
主なカスタマイズオプション:
.regular — 標準グラスエフェクト.tint(Color) — 強調のためにカラーティントを追加.interactive() — タッチとポインターインタラクションに反応.capsule(デフォルト)、.rect(cornerRadius:)、.circleButton("Click Me") { /* action */ }
.buttonStyle(.glass)
Button("Important") { /* action */ }
.buttonStyle(.glassProminent)
パフォーマンスとモーフィングのために、複数のグラスビューは常にコンテナでラップする:
GlassEffectContainer(spacing: 40.0) {
HStack(spacing: 40.0) {
Image(systemName: "scribble.variable")
.frame(width: 80.0, height: 80.0)
.font(.system(size: 36))
.glassEffect()
Image(systemName: "eraser.fill")
.frame(width: 80.0, height: 80.0)
.font(.system(size: 36))
.glassEffect()
}
}
spacing パラメータはマージ距離を制御する — 近いエレメントはグラスシェイプが融合する。
glassEffectUnion で複数のビューを単一のグラスシェイプに結合する:
@Namespace private var namespace
GlassEffectContainer(spacing: 20.0) {
HStack(spacing: 20.0) {
ForEach(symbolSet.indices, id: \.self) { item in
Image(systemName: symbolSet[item])
.frame(width: 80.0, height: 80.0)
.glassEffect()
.glassEffectUnion(id: item < 2 ? "group1" : "group2", namespace: namespace)
}
}
}
グラスエレメントの表示/非表示時にスムーズなモーフィングを作成する:
@State private var isExpanded = false
@Namespace private var namespace
GlassEffectContainer(spacing: 40.0) {
HStack(spacing: 40.0) {
Image(systemName: "scribble.variable")
.frame(width: 80.0, height: 80.0)
.glassEffect()
.glassEffectID("pencil", in: namespace)
if isExpanded {
Image(systemName: "eraser.fill")
.frame(width: 80.0, height: 80.0)
.glassEffect()
.glassEffectID("eraser", in: namespace)
}
}
}
Button("Toggle") {
withAnimation { isExpanded.toggle() }
}
.buttonStyle(.glass)
水平スクロールコンテンツがサイドバーやインスペクターの下に拡張されるようにするには、ScrollView コンテンツがコンテナの前端/後端に到達するようにする。レイアウトが端まで拡張されると、システムが自動的にサイドバー下のスクロール動作を処理する — 追加のモディファイアは不要。
let glassEffect = UIGlassEffect()
glassEffect.tintColor = UIColor.systemBlue.withAlphaComponent(0.3)
glassEffect.isInteractive = true
let visualEffectView = UIVisualEffectView(effect: glassEffect)
visualEffectView.translatesAutoresizingMaskIntoConstraints = false
visualEffectView.layer.cornerRadius = 20
visualEffectView.clipsToBounds = true
view.addSubview(visualEffectView)
NSLayoutConstraint.activate([
visualEffectView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
visualEffectView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
visualEffectView.widthAnchor.constraint(equalToConstant: 200),
visualEffectView.heightAnchor.constraint(equalToConstant: 120)
])
// Add content to contentView
let label = UILabel()
label.text = "Liquid Glass"
label.translatesAutoresizingMaskIntoConstraints = false
visualEffectView.contentView.addSubview(label)
NSLayoutConstraint.activate([
label.centerXAnchor.constraint(equalTo: visualEffectView.contentView.centerXAnchor),
label.centerYAnchor.constraint(equalTo: visualEffectView.contentView.centerYAnchor)
])
let containerEffect = UIGlassContainerEffect()
containerEffect.spacing = 40.0
let containerView = UIVisualEffectView(effect: containerEffect)
let firstGlass = UIVisualEffectView(effect: UIGlassEffect())
let secondGlass = UIVisualEffectView(effect: UIGlassEffect())
containerView.contentView.addSubview(firstGlass)
containerView.contentView.addSubview(secondGlass)
scrollView.topEdgeEffect.style = .automatic
scrollView.bottomEdgeEffect.style = .hard
scrollView.leftEdgeEffect.isHidden = true
let favoriteButton = UIBarButtonItem(image: UIImage(systemName: "heart"), style: .plain, target: self, action: #selector(favoriteAction))
favoriteButton.hidesSharedBackground = true // Opt out of shared glass background
struct MyWidgetView: View {
@Environment(\.widgetRenderingMode) var renderingMode
var body: some View {
if renderingMode == .accented {
// Tinted mode: white-tinted, themed glass background
} else {
// Full color mode: standard appearance
}
}
}
HStack {
VStack(alignment: .leading) {
Text("Title")
.widgetAccentable() // Accent group
Text("Subtitle")
// Primary group (default)
}
Image(systemName: "star.fill")
.widgetAccentable() // Accent group
}
Image("myImage")
.widgetAccentedRenderingMode(.monochrome)
VStack { /* content */ }
.containerBackground(for: .widget) {
Color.blue.opacity(0.2)
}
| 判断 | 根拠 |
|---|---|
| GlassEffectContainerでのラッピング | パフォーマンス最適化、グラスエレメント間のモーフィングを有効化 |
spacing パラメータ | マージ距離を制御 — エレメントが融合するために必要な近さを微調整 |
@Namespace + glassEffectID | ビュー階層変更時のスムーズなモーフィングトランジションを有効化 |
interactive() モディファイア | タッチ/ポインター反応への明示的なオプトイン — すべてのグラスが反応すべきではない |
| UIKitでのUIGlassContainerEffect | 一貫性のためのSwiftUIと同じコンテナパターン |
| ウィジェットでのアクセントレンダリングモード | ユーザーがティントされたホーム画面を選択した際にシステムがティントグラスを適用 |
.glassEffect() を適用する.interactive() を使用するwithAnimation を使用する.glassEffect() ビューを使用するclipsToBounds = true を忘れるNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
コーディングエージェント(Claude Code、Aider、Codexなど)のカスタムタスクによる直接比較。合格率、コスト、時間、一貫性メトリクスを測定
The English summary is being prepared. Showing the original description.
AIエージェントのアクションスペース、ツール定義、オブザベーションフォーマットを設計・最適化し、タスク完了率を向上させる
The English summary is being prepared. Showing the original description.
評価ファーストの実行、分解、コスト考慮型モデルルーティングによるエージェンティックエンジニアとしての運用
The English summary is being prepared. Showing the original description.
AIエージェントが実装出力の大部分を生成するチームのためのエンジニアリング運用モデル
The English summary is being prepared. Showing the original description.
AI支援開発のためのリグレッションテスト戦略。データベース依存なしのサンドボックスモードAPIテスト、自動バグチェックワークフロー、同一モデルがコードの作成とレビューを行う際のAIの盲点を検出するパターン。
The English summary is being prepared. Showing the original description.
AndroidおよびKotlin Multiplatformプロジェクトのためのクリーンアーキテクチャパターン — モジュール構成、依存関係ルール、UseCase、Repository、データレイヤーパターン
The English summary is being prepared. Showing the original description.