krz/daybyday

iOS app for children to learn days of the week, months, and seasons with audio assist. education ios kids swift https://krz.sh/apps/daybyday/

Commit 47864264e7

47864264e72636d27a13eb29e6814d8786021788

parent: e25b00d338

Unsigned

cmc <hello@cleberg.net> · 2026-04-14 01:41 UTC

fix: sonarqube quality fixes

Layout: unified · split

DayByDay.xcodeproj/project.pbxproj +4 −4
@@ -338,7 +338,7 @@
338338 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
339339 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
340340 CODE_SIGN_STYLE = Automatic;
341 CURRENT_PROJECT_VERSION = 5;
341 CURRENT_PROJECT_VERSION = 6;
342342 DEVELOPMENT_TEAM = ZCNAX3VL9D;
343343 ENABLE_PREVIEWS = YES;
344344 GENERATE_INFOPLIST_FILE = YES;
@@ -353,7 +353,7 @@
353353 "$(inherited)",
354354 "@executable_path/Frameworks",
355355 );
356 MARKETING_VERSION = 1.3.1;
356 MARKETING_VERSION = 1.3.2;
357357 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DayByDay;
358358 PRODUCT_NAME = "$(TARGET_NAME)";
359359 STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -372,7 +372,7 @@
372372 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
373373 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
374374 CODE_SIGN_STYLE = Automatic;
375 CURRENT_PROJECT_VERSION = 5;
375 CURRENT_PROJECT_VERSION = 6;
376376 DEVELOPMENT_TEAM = ZCNAX3VL9D;
377377 ENABLE_PREVIEWS = YES;
378378 GENERATE_INFOPLIST_FILE = YES;
@@ -387,7 +387,7 @@
387387 "$(inherited)",
388388 "@executable_path/Frameworks",
389389 );
390 MARKETING_VERSION = 1.3.1;
390 MARKETING_VERSION = 1.3.2;
391391 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DayByDay;
392392 PRODUCT_NAME = "$(TARGET_NAME)";
393393 STRING_CATALOG_GENERATE_SYMBOLS = YES;
DayByDay/DayCard.swift +7 −1
@@ -12,6 +12,12 @@ struct DayCard: View {
1212 var isHighlighted = false
1313 @State private var isTapped = false
1414
15 private var cardScale: CGFloat {
16 if isTapped { return 1.12 }
17 if isHighlighted { return 1.04 }
18 return 1.0
19 }
20
1521 var body: some View {
1622 ZStack {
1723 RoundedRectangle(cornerRadius: 32, style: .continuous)
@@ -36,7 +42,7 @@ struct DayCard: View {
3642 }
3743 }
3844 .shadow(color: isHighlighted ? .white.opacity(0.8) : .clear, radius: 12)
39 .scaleEffect(isTapped ? 1.12 : (isHighlighted ? 1.04 : 1.0))
45 .scaleEffect(cardScale)
4046 .contentShape(RoundedRectangle(cornerRadius: 32, style: .continuous))
4147 .rotation3DEffect(.degrees(isTapped ? 6 : 0), axis: (x: 1, y: 0, z: 0))
4248 .animation(.spring(response: 0.35, dampingFraction: 0.5), value: isTapped)
DayByDay/MonthCard.swift +7 −1
@@ -12,6 +12,12 @@ struct MonthCard: View {
1212 var isHighlighted = false
1313 @State private var isTapped = false
1414
15 private var cardScale: CGFloat {
16 if isTapped { return 1.12 }
17 if isHighlighted { return 1.04 }
18 return 1.0
19 }
20
1521 var body: some View {
1622 ZStack {
1723 RoundedRectangle(cornerRadius: 32, style: .continuous)
@@ -36,7 +42,7 @@ struct MonthCard: View {
3642 }
3743 }
3844 .shadow(color: isHighlighted ? .white.opacity(0.8) : .clear, radius: 12)
39 .scaleEffect(isTapped ? 1.12 : (isHighlighted ? 1.04 : 1.0))
45 .scaleEffect(cardScale)
4046 .contentShape(RoundedRectangle(cornerRadius: 32, style: .continuous))
4147 .rotation3DEffect(.degrees(isTapped ? 6 : 0), axis: (x: 1, y: 0, z: 0))
4248 .animation(.spring(response: 0.35, dampingFraction: 0.5), value: isTapped)
DayByDay/SeasonCard.swift +7 −1
@@ -12,6 +12,12 @@ struct SeasonCard: View {
1212 var isHighlighted = false
1313 @State private var isTapped = false
1414
15 private var cardScale: CGFloat {
16 if isTapped { return 1.12 }
17 if isHighlighted { return 1.04 }
18 return 1.0
19 }
20
1521 var body: some View {
1622 ZStack {
1723 RoundedRectangle(cornerRadius: 32, style: .continuous)
@@ -36,7 +42,7 @@ struct SeasonCard: View {
3642 }
3743 }
3844 .shadow(color: isHighlighted ? .white.opacity(0.8) : .clear, radius: 12)
39 .scaleEffect(isTapped ? 1.12 : (isHighlighted ? 1.04 : 1.0))
45 .scaleEffect(cardScale)
4046 .contentShape(RoundedRectangle(cornerRadius: 32, style: .continuous))
4147 .rotation3DEffect(.degrees(isTapped ? 6 : 0), axis: (x: 1, y: 0, z: 0))
4248 .animation(.spring(response: 0.35, dampingFraction: 0.5), value: isTapped)
NumberCard.swift +8 −2
@@ -12,6 +12,12 @@ struct NumberCard: View {
1212 var isHighlighted = false
1313 @State private var isTapped = false
1414
15 private var cardScale: CGFloat {
16 if isTapped { return 1.12 }
17 if isHighlighted { return 1.04 }
18 return 1.0
19 }
20
1521 var body: some View {
1622 ZStack {
1723 RoundedRectangle(cornerRadius: 32, style: .continuous)
@@ -39,7 +45,7 @@ struct NumberCard: View {
3945 }
4046 }
4147 .shadow(color: isHighlighted ? .white.opacity(0.8) : .clear, radius: 12)
42 .scaleEffect(isTapped ? 1.12 : (isHighlighted ? 1.04 : 1.0))
48 .scaleEffect(cardScale)
4349 .contentShape(RoundedRectangle(cornerRadius: 32, style: .continuous))
4450 .rotation3DEffect(.degrees(isTapped ? 6 : 0), axis: (x: 1, y: 0, z: 0))
4551 .animation(.spring(response: 0.35, dampingFraction: 0.5), value: isTapped)
@@ -60,7 +66,7 @@ struct NumberCard: View {
6066enum LearnNumber: Int, CaseIterable, Identifiable {
6167 case one = 1, two, three, four, five, six, seven, eight, nine, ten
6268
63 var id: Int { rawValue }
69 var id: LearnNumber { self }
6470
6571 /// Highlight the number matching today's day-of-month if it falls in 1–10.
6672 static var current: LearnNumber? {