diff --git a/DemoApp/CowCodableDemoApp/CowCodableDemoApp.xcodeproj/project.pbxproj b/DemoApp/CowCodableDemoApp/CowCodableDemoApp.xcodeproj/project.pbxproj index 1f3fc36..7134ad0 100644 --- a/DemoApp/CowCodableDemoApp/CowCodableDemoApp.xcodeproj/project.pbxproj +++ b/DemoApp/CowCodableDemoApp/CowCodableDemoApp.xcodeproj/project.pbxproj @@ -16,8 +16,8 @@ A10000000000000000000026 /* StrategyControlsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A10000000000000000000036 /* StrategyControlsView.swift */; }; A10000000000000000000027 /* RescueLogView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A10000000000000000000037 /* RescueLogView.swift */; }; A10000000000000000000028 /* OutputFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A10000000000000000000038 /* OutputFormatter.swift */; }; + E602326C2F4CDFDC0032AFBB /* AppIcon.icon in Resources */ = {isa = PBXBuildFile; fileRef = E602326B2F4CDFDC0032AFBB /* AppIcon.icon */; }; E60C7D312F4CBD0A0093DF6E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E60C7D302F4CBD0A0093DF6E /* Assets.xcassets */; }; - E60C7D332F4CC1DC0093DF6E /* AppIcon.icon in Resources */ = {isa = PBXBuildFile; fileRef = E60C7D322F4CC1DC0093DF6E /* AppIcon.icon */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -30,8 +30,8 @@ A10000000000000000000036 /* StrategyControlsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StrategyControlsView.swift; sourceTree = ""; }; A10000000000000000000037 /* RescueLogView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RescueLogView.swift; sourceTree = ""; }; A10000000000000000000038 /* OutputFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutputFormatter.swift; sourceTree = ""; }; + E602326B2F4CDFDC0032AFBB /* AppIcon.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = AppIcon.icon; sourceTree = ""; }; E60C7D302F4CBD0A0093DF6E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - E60C7D322F4CC1DC0093DF6E /* AppIcon.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = AppIcon.icon; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -107,7 +107,7 @@ isa = PBXGroup; children = ( E60C7D302F4CBD0A0093DF6E /* Assets.xcassets */, - E60C7D322F4CC1DC0093DF6E /* AppIcon.icon */, + E602326B2F4CDFDC0032AFBB /* AppIcon.icon */, ); path = Resource; sourceTree = ""; @@ -177,7 +177,7 @@ buildActionMask = 2147483647; files = ( E60C7D312F4CBD0A0093DF6E /* Assets.xcassets in Resources */, - E60C7D332F4CC1DC0093DF6E /* AppIcon.icon in Resources */, + E602326C2F4CDFDC0032AFBB /* AppIcon.icon in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -326,7 +326,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; @@ -360,7 +360,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; diff --git a/DemoApp/CowCodableDemoApp/Resource/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/DemoApp/CowCodableDemoApp/Resource/Assets.xcassets/AppIcon.appiconset/AppIcon.png new file mode 100644 index 0000000..9f8bd06 Binary files /dev/null and b/DemoApp/CowCodableDemoApp/Resource/Assets.xcassets/AppIcon.appiconset/AppIcon.png differ diff --git a/DemoApp/CowCodableDemoApp/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json b/DemoApp/CowCodableDemoApp/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..8096392 --- /dev/null +++ b/DemoApp/CowCodableDemoApp/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "AppIcon.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/README.md b/README.md index fd45425..de1c729 100644 --- a/README.md +++ b/README.md @@ -167,20 +167,27 @@ The app imports `CowCodable` as a local Swift package dependency from this repos Switching the segmented control changes only the configured rescue policy; input JSON stays unchanged so behavior differences are observable. -## Screenshots +## 📱 Demo App Preview ### Main View -![Main Demo](docs/screenshots/demo-main.png) +

+ +

### Strict Mode -![Strict Mode](docs/screenshots/demo-strict.png) +

+ +

### Permissive Mode -![Permissive Mode](docs/screenshots/demo-permissive.png) +

+ +

### Overflow Case -![Overflow](docs/screenshots/demo-overflow.png) - +

+ +

## Example Model ```swift