Build native iOS features for Kauch using SwiftUI, SwiftData, Observation, and
Swift concurrency while preserving the repo's existing architectural rules.
Repo Overrides
For this repo specifically:
Assume iOS 26+ only. Do not add availability checks or older-iOS fallback paths.
Prefer SwiftData over Core Data.
Prefer Observation-based state (@Observable) over ObservableObject unless interop requires otherwise.
Follow the repo's default architecture: @Query for reads, protocol-backed services for writes.
Do not introduce MVVM by default. Add a view model only when the view has non-trivial logic beyond CRUD.
Use the shared theme system rather than local ad hoc styling.
Keep code organized by feature folders with small, focused files.
Keep production Swift under Kauch/App, Kauch/Core, Kauch/Features, or Kauch/Shared.
Add #Preview for every production SwiftUI view file ending in View.swift.
Add unit tests around non-trivial logic using Swift Testing.
When to Use
Adding or changing SwiftUI features in Kauch
Writing protocol-backed services and models
Integrating async workflows with Swift concurrency
Working with SwiftData models, queries, and persistence
Adding tests and previews around non-trivial feature work
Implementation Defaults
Start by identifying the smallest feature folder that owns the change.
Keep reads in views with @Query when possible.
Put mutations behind a focused protocol-backed service.
Use @Observable only when the view needs real orchestration or derived state.
Prefer one primary type per file.
Keep previews deterministic with in-memory SwiftData and explicit environment injection.
Reference Guides
Detailed implementations in the references/ directory:
Guide
Contents
Network Service with URLSession
Network Service with URLSession
SwiftUI Views
SwiftUI Views
Best Practices
✅ DO
Use SwiftUI for modern UI development
Preserve the repo's @Query + service boundary
Use async/await patterns
Store sensitive data in Keychain
Handle errors gracefully
Use Observation-based state and dependency injection
Validate external responses properly
Implement SwiftData for persistence
Test on iOS 26 runtime targets used by the project
Follow the theme system and source layout guardrails
Add Swift Testing coverage for non-trivial logic
Add or update previews when touching UI
❌ DON'T
Store tokens in UserDefaults
Make network calls on main thread
Introduce MVVM by default
Invent ad hoc API layers, scaffolds, or environment-driven config
Ignore memory leaks
Skip error handling
Use force unwrapping (!)
Store passwords in code
Ignore accessibility
Deploy untested code
Bypass shared theme tokens with local styling hacks
1---2name: jcfontecha-markdown-editor-ios-ios-swift-development3description: iOS Swift Development4---56# iOS Swift Development78## Overview910Build native iOS features for Kauch using SwiftUI, SwiftData, Observation, and11Swift concurrency while preserving the repo's existing architectural rules.1213## Repo Overrides1415For this repo specifically:1617- Assume iOS 26+ only. Do not add availability checks or older-iOS fallback paths.18- Prefer SwiftData over Core Data.19- Prefer Observation-based state (`@Observable`) over `ObservableObject` unless interop requires otherwise.20- Follow the repo's default architecture: `@Query` for reads, protocol-backed services for writes.21- Do not introduce MVVM by default. Add a view model only when the view has non-trivial logic beyond CRUD.22- Use the shared theme system rather than local ad hoc styling.23- Keep code organized by feature folders with small, focused files.24- Keep production Swift under `Kauch/App`, `Kauch/Core`, `Kauch/Features`, or `Kauch/Shared`.25- Add `#Preview` for every production SwiftUI view file ending in `View.swift`.26- Add unit tests around non-trivial logic using Swift Testing.2728## When to Use2930- Adding or changing SwiftUI features in Kauch31- Writing protocol-backed services and models32- Integrating async workflows with Swift concurrency33- Working with SwiftData models, queries, and persistence34- Adding tests and previews around non-trivial feature work3536## Implementation Defaults3738- Start by identifying the smallest feature folder that owns the change.39- Keep reads in views with `@Query` when possible.40- Put mutations behind a focused protocol-backed service.41- Use `@Observable` only when the view needs real orchestration or derived state.42- Prefer one primary type per file.43- Keep previews deterministic with in-memory SwiftData and explicit environment injection.4445## Reference Guides4647Detailed implementations in the `references/` directory:4849| Guide | Contents |50|---|---|51| [Network Service with URLSession](references/network-service-with-urlsession.md) | Network Service with URLSession |52| [SwiftUI Views](references/swiftui-views.md) | SwiftUI Views |5354## Best Practices5556### ✅ DO5758- Use SwiftUI for modern UI development59- Preserve the repo's `@Query` + service boundary60- Use async/await patterns61- Store sensitive data in Keychain62- Handle errors gracefully63- Use Observation-based state and dependency injection64- Validate external responses properly65- Implement SwiftData for persistence66- Test on iOS 26 runtime targets used by the project67- Follow the theme system and source layout guardrails68- Add Swift Testing coverage for non-trivial logic69- Add or update previews when touching UI7071### ❌ DON'T7273- Store tokens in UserDefaults74- Make network calls on main thread75- Introduce MVVM by default76- Invent ad hoc API layers, scaffolds, or environment-driven config77- Ignore memory leaks78- Skip error handling79- Use force unwrapping (!)80- Store passwords in code81- Ignore accessibility82- Deploy untested code83- Bypass shared theme tokens with local styling hacks8485---86> Source: [jcfontecha/markdown-editor-ios](https://github.com/jcfontecha/markdown-editor-ios) — distributed by [TomeVault](https://tomevault.io).87<!-- tomevault:4.0:skill_md:2026-05-23 -->
Run npx skillmds@latest add tomevault-io/jcfontecha-markdown-editor-ios-ios-swift-development in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
iOS Swift Development It is listed under Docs & Writing on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.