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 ff626fbb8f

ff626fbb8f545fda4b38d2a1e40eebbf6ad2111d

parent: fe0a6573bd

Unsigned

cmc <hello@cleberg.net> · 2026-04-10 16:48 UTC

bump version and update new privacy policy location

Layout: unified · split

DayByDay.xcodeproj/project.pbxproj +9 −9
@@ -24,7 +24,6 @@
2424 8B57F7382F63BBBB001F6F5E /* AnimalsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B57F7372F63BBBB001F6F5E /* AnimalsView.swift */; };
2525 8B57F73A2F63BBBD001F6F5E /* LetterCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B57F7392F63BBBD001F6F5E /* LetterCard.swift */; };
2626 8B57F73C2F63BBBD001F6F5E /* AlphabetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B57F73B2F63BBBD001F6F5E /* AlphabetView.swift */; };
27 8B7051C12F5F90CD00491D58 /* claude.md in Resources */ = {isa = PBXBuildFile; fileRef = 8B7051C02F5F90C800491D58 /* claude.md */; };
2827/* End PBXBuildFile section */
2928
3029/* Begin PBXFileReference section */
@@ -46,7 +45,6 @@
4645 8B57F7392F63BBBD001F6F5E /* LetterCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LetterCard.swift; sourceTree = "<group>"; };
4746 8B57F73B2F63BBBD001F6F5E /* AlphabetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlphabetView.swift; sourceTree = "<group>"; };
4847 8B7051B22F5F908800491D58 /* DayByDay.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DayByDay.app; sourceTree = BUILT_PRODUCTS_DIR; };
49 8B7051C02F5F90C800491D58 /* claude.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = claude.md; sourceTree = "<group>"; };
5048/* End PBXFileReference section */
5149
5250/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */
@@ -84,7 +82,6 @@
8482 8B7051A92F5F908800491D58 = {
8583 isa = PBXGroup;
8684 children = (
87 8B7051C02F5F90C800491D58 /* claude.md */,
8885 8B7051B42F5F908800491D58 /* DayByDay */,
8986 8B7051B32F5F908800491D58 /* Products */,
9087 8B57F7272F63BBB4001F6F5E /* TodayView.swift */,
@@ -148,7 +145,7 @@
148145 attributes = {
149146 BuildIndependentTargetsInParallel = 1;
150147 LastSwiftUpdateCheck = 2630;
151 LastUpgradeCheck = 2630;
148 LastUpgradeCheck = 2640;
152149 TargetAttributes = {
153150 8B7051B12F5F908800491D58 = {
154151 CreatedOnToolsVersion = 26.3;
@@ -179,7 +176,6 @@
179176 isa = PBXResourcesBuildPhase;
180177 buildActionMask = 2147483647;
181178 files = (
182 8B7051C12F5F90CD00491D58 /* claude.md in Resources */,
183179 );
184180 runOnlyForDeploymentPostprocessing = 0;
185181 };
@@ -272,6 +268,7 @@
272268 MTL_FAST_MATH = YES;
273269 ONLY_ACTIVE_ARCH = YES;
274270 SDKROOT = iphoneos;
271 STRING_CATALOG_GENERATE_SYMBOLS = YES;
275272 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
276273 SWIFT_OPTIMIZATION_LEVEL = "-Onone";
277274 };
@@ -329,6 +326,7 @@
329326 MTL_ENABLE_DEBUG_INFO = NO;
330327 MTL_FAST_MATH = YES;
331328 SDKROOT = iphoneos;
329 STRING_CATALOG_GENERATE_SYMBOLS = YES;
332330 SWIFT_COMPILATION_MODE = wholemodule;
333331 VALIDATE_PRODUCT = YES;
334332 };
@@ -340,7 +338,7 @@
340338 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
341339 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
342340 CODE_SIGN_STYLE = Automatic;
343 CURRENT_PROJECT_VERSION = 3;
341 CURRENT_PROJECT_VERSION = 5;
344342 DEVELOPMENT_TEAM = ZCNAX3VL9D;
345343 ENABLE_PREVIEWS = YES;
346344 GENERATE_INFOPLIST_FILE = YES;
@@ -350,11 +348,12 @@
350348 INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
351349 INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
352350 INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
351 IPHONEOS_DEPLOYMENT_TARGET = 17.5;
353352 LD_RUNPATH_SEARCH_PATHS = (
354353 "$(inherited)",
355354 "@executable_path/Frameworks",
356355 );
357 MARKETING_VERSION = 1.2;
356 MARKETING_VERSION = 1.3.1;
358357 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DayByDay;
359358 PRODUCT_NAME = "$(TARGET_NAME)";
360359 STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -373,7 +372,7 @@
373372 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
374373 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
375374 CODE_SIGN_STYLE = Automatic;
376 CURRENT_PROJECT_VERSION = 3;
375 CURRENT_PROJECT_VERSION = 5;
377376 DEVELOPMENT_TEAM = ZCNAX3VL9D;
378377 ENABLE_PREVIEWS = YES;
379378 GENERATE_INFOPLIST_FILE = YES;
@@ -383,11 +382,12 @@
383382 INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
384383 INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
385384 INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
385 IPHONEOS_DEPLOYMENT_TARGET = 17.5;
386386 LD_RUNPATH_SEARCH_PATHS = (
387387 "$(inherited)",
388388 "@executable_path/Frameworks",
389389 );
390 MARKETING_VERSION = 1.2;
390 MARKETING_VERSION = 1.3.1;
391391 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DayByDay;
392392 PRODUCT_NAME = "$(TARGET_NAME)";
393393 STRING_CATALOG_GENERATE_SYMBOLS = YES;
claude.md deleted −50
@@ -1,50 +0,0 @@
1# DayByDay – Project Context
2
3## What this is
4An iOS app for pre-K children (ages 4–5) that teaches days of the week, months
5of the year, seasons, numbers, colors, shapes, animals, the alphabet, weather,
6body parts, and fruits & vegetables through simple, tap-based interactions.
7
8## Target user
9A single child, approximately 4–5 years old, preparing to start school. Cannot
10read yet. Parent may sit alongside but the child should be able to use the app
11independently.
12
13## Design principles
14- Large tap targets — nothing small or fiddly
15- Bright, clean colors — simple and friendly, not cluttered
16- No text-dependent interactions — the child cannot read
17- Audio is the primary feedback mechanism (names read aloud on tap)
18- Simple animations on interaction — enough to delight, not enough to distract
19- No timers, no failure states, no scores — purely exploratory
20
21## Content (12 categories, accessible from a NavigationStack home grid)
22- Today: summary card with current day, date, month, season
23- Days of the week: Sunday through Saturday
24- Months of the year: January through December
25- Seasons: Spring, Summer, Fall, Winter
26- Numbers: 1 through 10 (numeral + word + dot pattern)
27- Colors: 10 basic colors (Red, Orange, Yellow, Green, Blue, Purple, Pink,
28 Brown, Black, White)
29- Shapes: 8 shapes (Circle, Square, Triangle, Star, Heart, Oval, Diamond,
30 Rectangle)
31- Animals: 12 animals with SF Symbol icons
32- Alphabet: A through Z
33- Weather: 8 weather types (Sunny, Cloudy, Rainy, Snowy, Windy, Stormy,
34 Foggy, Rainbow)
35- Body Parts: 12 body parts (Head, Eyes, Ears, Nose, Mouth, Hands, Fingers,
36 Arms, Legs, Feet, Heart, Belly)
37- Fruits & Vegetables: 12 foods (Apple, Banana, Carrot, Strawberry, Grapes,
38 Lemon, Broccoli, Watermelon, Cherry, Orange, Corn, Pear)
39
40## Technical constraints
41- SwiftUI, iOS only
42- Fully offline — no network requests, no accounts, no analytics
43- No in-app purchases
44- Targets latest iOS
45
46## What good looks like
47Each concept should feel like its own tactile card or object the child can tap
48and explore. Transitions should be smooth. Audio should play immediately on tap
49with no perceptible delay. The home screen is a colorful 2-column grid of square category
50tiles that navigate into each section.
privacypolicy.md deleted −40
@@ -1,40 +0,0 @@
1# Privacy Policy
2
3**DayByDay**
4Last updated: March 9, 2026
5
6## Overview
7
8DayByDay is a children's educational app designed for ages 4–5. This privacy
9policy explains how the app handles data.
10
11## Data Collection
12
13DayByDay does not collect, store, or transmit any personal data. The app has no
14user accounts, no analytics, no advertising, and no internet connection
15requirement.
16
17## Children's Privacy
18
19DayByDay is designed for young children and fully complies with the Children's
20Online Privacy Protection Act (COPPA). No information is collected from any
21user, including children.
22
23## Third-Party Services
24
25DayByDay does not use any third-party services, SDKs, or APIs that collect data.
26
27## Device Permissions
28
29DayByDay does not request access to your camera, microphone, contacts, location,
30or any other device data. Audio is generated on-device using Apple's built-in
31text-to-speech system.
32
33## Changes to This Policy
34
35If this policy changes in a future update, the updated policy will be posted
36here with a revised date.
37
38## Contact
39
40If you have any questions about this policy, contact: privacy@cleberg.net