
Credit Score View
by dockui
A modern credit score dashboard with a dynamic gauge, key financial metrics, detailed credit factors, and recent activity updates.
- Platform
- SwiftUI
- Code
- Native Swift
- Format
- Screen
- Access
- Free
Code Snippet
import SwiftUI
struct CreditScoreView: View {
// Dummy data for credit score
@State private var creditScore = 745.0
let maxScore = 850.0
// Credit factors dummy data
let creditFactors = [
CreditFactor(
title: "Payment History",
status: "Excellent",
impact: "High Impact",
score: 98,
isPositive: true,
icon: "checkmark.circle.fill"
),
CreditFactor(
title: "Credit Utilization",
status: "Good",
impact: "High Impact",
score: 82,
isPositive: true,
icon: "chart.pie.fill"
),
CreditFactor(
title: "Credit Age",
status: "Fair",
impact: "Medium Impact",
score: 65,
isPositive: true,
icon: "clock.fill"
),
CreditFactor(
title: "Total Accounts",
status: "Very Good",
impact: "Low Impact",
score: 92,
isPositive: true,
icon: "creditcard.fill"
)
]
// Credit summary metrics
let creditMetrics = [
CreditMetric(title: "Total Debt", value: "$12,450", trend: "-$890 this month"),
CreditMetric(title: "Credit Utilization", value: "22%", trend: "of total credit"),
CreditMetric(title: "Available Credit", value: "$28,550", trend: "across 4 cards")
]
var body: some View {
NavigationStack {
ScrollView {
VStack(spacing: 24) {
// Credit Score Gauge
CreditScoreGauge(score: creditScore, maxScore: maxScore)
.padding(.top)
// Credit Summary
VStack(alignment: .leading, spacing: 16) {
Text("Credit Summary")
.font(.title2)
.bold()
.padding(.horizontal)
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 16) {
ForEach(creditMetrics) { metric in
CreditMetricCard(metric: metric)
}
}
.padding(.horizontal)
}
}
// Credit Factors
VStack(alignment: .leading, spacing: 16) {
Text("Credit Factors")
.font(.title2)
.bold()
.padding(.horizontal)
VStack(spacing: 12) {
ForEach(creditFactors) { factor in
CreditFactorRow(factor: factor)
}
}
.padding()
.background(Color(uiColor: .systemBackground))
.cornerRadius(16)
.shadow(radius: 2)
.padding(.horizontal)
}
// Recent Activity
VStack(alignment: .leading, spacing: 16) {
Text("Recent Activity")
.font(.title2)
.bold()
.padding(.horizontal)
RecentActivityView()
.padding(.horizontal)
}
}
.padding(.vertical)
}
.navigationTitle("Credit Score")
.background(Color(uiColor: .systemGroupedBackground))
}
}
}
struct CreditScoreGauge: View {
let score: Double
let maxScore: Double
var scoreRating: String {
switch score {
case 750...850: return "Excellent"
case 700...749: return "Very Good"
case 650...699: return "Good"
case 600...649: return "Fair"
default: return "Poor"
}
}
var scoreColor: Color {
switch score {
case 700...850: return .green
case 650...699: return .yellow
case 600...649: return .orange
default: return .red
}
}
var body: some View {
VStack(spacing: 16) {
Gauge(value: score, in: 300...maxScore) {
} currentValueLabel: {
Text("\(Int(score))")
.font(.title)
.bold()
}
.gaugeStyle(.accessoryCircular)
.scaleEffect(2.0)
.tint(scoreColor)
.padding(.vertical, 30)
Text("Credit Score")
Text(scoreRating)
.font(.title3)
.bold()
.foregroundColor(scoreColor)
Text("Last updated June 15, 2024")
.font(.caption)
.foregroundColor(.secondary)
}
.padding()
.background(Color(uiColor: .systemBackground))
.cornerRadius(16)
.shadow(radius: 2)
.padding(.horizontal)
}
}
struct CreditMetricCard: View {
let metric: CreditMetric
var body: some View {
VStack(alignment: .leading, spacing: 8) {
Text(metric.title)
.font(.subheadline)
.foregroundColor(.secondary)
Text(metric.value)
.font(.title2)
.bold()
Text(metric.trend)
.font(.caption)
.foregroundColor(.secondary)
}
.frame(width: 160)
.padding()
.background(Color(uiColor: .systemBackground))
.cornerRadius(16)
.shadow(radius: 2)
}
}
struct CreditFactorRow: View {
let factor: CreditFactor
var body: some View {
HStack {
Image(systemName: factor.icon)
.font(.title2)
.foregroundColor(factor.isPositive ? .green : .red)
.frame(width: 30)
VStack(alignment: .leading, spacing: 4) {
Text(factor.title)
.font(.headline)
HStack {
Text(factor.status)
.font(.subheadline)
.foregroundColor(.secondary)
Text("•")
.foregroundColor(.secondary)
Text(factor.impact)
.font(.caption)
.foregroundColor(.secondary)
}
}
Spacer()
Text("\(factor.score)%")
.font(.title3)
.bold()
.foregroundColor(factor.isPositive ? .green : .red)
}
.padding(.vertical, 8)
}
}
struct RecentActivityView: View {
let activities = [
CreditActivity(date: "June 15", description: "Credit utilization decreased", impact: "+2 points"),
CreditActivity(date: "June 10", description: "Payment received - Chase", impact: "+5 points"),
CreditActivity(date: "June 1", description: "Credit limit increased", impact: "+8 points")
]
var body: some View {
VStack(spacing: 16) {
ForEach(activities) { activity in
HStack {
VStack(alignment: .leading, spacing: 4) {
Text(activity.date)
.font(.subheadline)
.foregroundColor(.secondary)
Text(activity.description)
.font(.headline)
}
Spacer()
Text(activity.impact)
.font(.subheadline)
.foregroundColor(.green)
}
}
}
.padding()
.background(Color(uiColor: .systemBackground))
.cornerRadius(16)
.shadow(radius: 2)
}
}
// MARK: - Models
struct CreditFactor: Identifiable {
let id = UUID()
let title: String
let status: String
let impact: String
let score: Int
let isPositive: Bool
let icon: String
}
struct CreditMetric: Identifiable {
let id = UUID()
let title: String
let value: String
let trend: String
}
struct CreditActivity: Identifiable {
let id = UUID()
let date: String
let description: String
let impact: String
}
More Templates
View All TemplatesSimilar Blogs
View All Articles
How to Translate Xcode String Catalogs with AI
Learn how to efficiently translate Xcode string catalogs using AI fast, streamlining localization for your iOS and SwiftUI applications.
by dockui
May 4
How to optimize your SwiftUI app in 2026
Discover top strategies to optimize your SwiftUI app in 2026, enhancing performance, responsiveness, and maintainability with modern concurrency.
by dockui
Apr 29
SwiftUI: iOS Confirmation Alert (Confirm + Cancel)
SwiftUI iOS confirmation alert with Confirm and Cancel buttons. Beginners guide to building safe actions, destructive deletes, and commit dialogs.
by dockui
Nov 11
SwiftUI: IOS Haptic Feedback Guide 2026
Add click to vibrate haptic feedback in SwiftUI. Full guide to UIImpactFeedbackgenerator, success, error, selection, and tap vibration patterns with code.
by dockui
Nov 11Code copied to clipboard!