# Artem Novichkov > Personal blog of an iOS developer. Posts cover SwiftUI, Swift, > Xcode, Foundation Models, and AI-assisted iOS development. Every page is available as Markdown. Send `Accept: text/markdown` to any post URL, or call the Markdown endpoint below directly. Responses carry an `x-markdown-tokens` header with an estimated token count. ## Agent interfaces - [Post index](https://artemnovichkov.com/api/blog): JSON array of all 38 posts, newest first. Each entry has `slug`, `title`, `description`, `date`, `categories`, `url`, and `markdown_url`. - [Post as Markdown](https://artemnovichkov.com/api/blog/{slug}/markdown): full post body. Requires `Accept: text/markdown`. - [MCP server](https://artemnovichkov.com/mcp): Streamable HTTP endpoint exposing `list_posts` and `get_post`. No authentication. - [Agent skill](https://artemnovichkov.com/.well-known/agent-skills/index.json): `read-blog` skill describing the same API. - [OpenAPI spec](https://artemnovichkov.com/.well-known/openapi.json) - [ARD catalog](https://artemnovichkov.com/.well-known/ard.json): machine-readable index of the capabilities above. Also served at /.well-known/ai-catalog.json. - [API catalog](https://artemnovichkov.com/.well-known/api-catalog) - [Access policy](https://artemnovichkov.com/auth.md): public, anonymous, no credentials issued. - [RSS feed](https://artemnovichkov.com/feed.xml) ## Posts - [Headless Xcode: From Prompt to Simulator with MCP](https://artemnovichkov.com/blog/headless-xcode-from-prompt-to-simulator-with-mcp): Use Xcode 27's headless MCP server and Apple's agent skills to build, preview, and verify an iOS app (2026-08-13) - [Preview Multiple SwiftUI View States with #Preview(arguments:)](https://artemnovichkov.com/blog/previewing-swiftui-states-with-preview-arguments): Use Xcode 27 to render named SwiftUI states as independently selectable Canvas variants (2026-08-05) - [Using SwiftUI’s ContentBuilder with Non-View Types](https://artemnovichkov.com/blog/using-swiftui-contentbuilder-with-non-view-types): Using SwiftUI’s result builder to assemble a type-safe deep-link router. (2026-08-04) - [Building a custom DynamicProfileModifier in Foundation Models](https://artemnovichkov.com/blog/building-a-custom-dynamic-profile-modifier-in-foundation-models): Build a reusable economy mode modifier that switches a session on device, caps responses, and trims history (2026-07-17) - [Using Claude with Apple Foundation Models](https://artemnovichkov.com/blog/using-claude-with-apple-foundation-models): Bringing frontier models to LanguageModelSession with model selection and BYOK (2026-06-12) - [Task Names in Swift Concurrency](https://artemnovichkov.com/blog/task-names-in-swift-concurrency): Name Swift tasks for clearer debugging and profiling (2026-05-30) - [Tracking token usage in Foundation Models](https://artemnovichkov.com/blog/tracking-token-usage-in-foundation-models): Measuring instructions, prompts, and transcripts against the context window (2026-02-17) - [Highlighting code blocks in Markdown with SwiftSyntax](https://artemnovichkov.com/blog/highlighting-code-blocks-in-markdown-with-swiftsyntax): A practical guide to highlighting Swift code (2026-01-23) - [Rendering Markdown in SwiftUI](https://artemnovichkov.com/blog/rendering-markdown-in-swiftui): Learn how to render Markdown in SwiftUI using Text and AttributedString (2026-01-13) - [Foundation Models profiling with Xcode Instruments](https://artemnovichkov.com/blog/foundation-models-profiling-with-xcode-instruments): Learn how to profile and optimize Foundation Models performance using Xcode Instruments (2025-09-29) - [Working with partially generated content in Xcode previews](https://artemnovichkov.com/blog/working-with-partially-generated-content-in-xcode-previews): Learn how to use Foundation Models guided generation in Xcode previews (2025-07-28) - [Handling WebView navigation in SwiftUI](https://artemnovichkov.com/blog/handling-webview-navigation-in-swiftui): Learn how to handle navigation in WebView and WebPage (2025-07-14) - [Using WebKit to load web content in SwiftUI](https://artemnovichkov.com/blog/using-webkit-to-load-web-content-in-swiftui): Learn how to use WebView and WebPage to load and save web content (2025-07-07) - [Getting Started with Apple's Foundation Models](https://artemnovichkov.com/blog/getting-started-with-apple-foundation-models): Learn how to use Foundation Models in iOS apps (2025-06-29) - [Cook up 3D charts with Swift Charts](https://artemnovichkov.com/blog/cook-up-3d-charts-with-swift-charts): Learn how to use Chart3D from iOS 26.0 (2025-06-12) - [Using Model Context Protocol in iOS apps](https://artemnovichkov.com/blog/using-model-context-protocol-in-ios-apps): Learn how to implement MCP client with SwiftUI and Anthropic API (2025-05-11) - [Demystifying Picture in Picture on iOS](https://artemnovichkov.com/blog/demystifying-picture-in-picture-on-ios): A deep dive into using PiP mode. (2025-05-04) - [Creating MCP Servers in Swift](https://artemnovichkov.com/blog/creating-mcp-servers-in-swift): Learn how to create a Model Context Protocol server in Swift (2025-04-17) - [How to inspect .ipa files and secure your iOS app from common mistakes](https://artemnovichkov.com/blog/how-to-inspect-ipa-files): Improve your app security with 3 simple rules (2025-04-09) - [Music recognition with ShazamKit](https://artemnovichkov.com/blog/music-recognition-with-shazam-kit): Bring music recognition to your apps with ShazamKit (2025-02-23) - [Drawing maps with Swift Charts](https://artemnovichkov.com/blog/drawing-maps-with-swift-charts): Drawing Kazakhstan map with Swift Charts (2025-02-02) - [Xcode Library customization with SPM plugin](https://artemnovichkov.com/blog/xcode-library-customization-with-spm-plugin): Learn how to extend Xcode Library with Swift Package Manager plugin (2024-12-15) - [Creating ML models with Create ML](https://artemnovichkov.com/blog/create-ml): Learn how to create machine learning models with Create ML (2024-12-05) - [Working with Natural Language framework](https://artemnovichkov.com/blog/working-with-natural-language-framework): Learn how to use the Natural Language framework to analyze text in real time (2024-11-24) - [Mastering TextEditor in SwiftUI: Features, Limitations, and Tips](https://artemnovichkov.com/blog/mastering-text-editor-in-swiftui): Discover the capabilities and limitations of SwiftUI's TextEditor and how to extend its functionality. (2024-11-17) - [Github contribution graph with Swift Charts](https://artemnovichkov.com/blog/github-contribution-graph-swift-charts): Recreation of the contribution graph from GitHub using Swift Charts (2024-09-07) - [Remove background from image in SwiftUI](https://artemnovichkov.com/blog/remove-background-from-image-in-swiftui): Recreation of photo cutout feature from Telegram in SwiftUI (2024-01-16) - [Implementing spoilers in SwiftUI](https://artemnovichkov.com/blog/spoiler-view): Recreation of spoiler feature from Telegram in SwiftUI (2023-03-09) - [Async/await for existing iOS apps](https://artemnovichkov.com/blog/async-await-offline): Using new concurrency model with SwiftUI apps (2021-11-26) - [Guide for UIKeyboardLayoutGuide](https://artemnovichkov.com/blog/keyboard-layout-guide): Working with new iOS 15 API for keyboard avoidance (2021-06-09) - [AsyncImage. Loading images in SwiftUI](https://artemnovichkov.com/blog/async-image): Working with AsyncImage in iOS 15: placeholders, errors, success! (2021-06-08) - [Bluetooth and SwiftUI. Developing app for RGB stripe control](https://artemnovichkov.com/blog/bluetooth-and-swiftui): Dev journey about working with Bluetooth, SwiftUI, and Combine (2021-05-31) - [Implementing custom popups in SwiftUI](https://artemnovichkov.com/blog/custom-popups-in-swiftui): How to make custom popups with reusable showing in SwiftUI (2021-05-20) - [Using result builders for action sheets in SwiftUI](https://artemnovichkov.com/blog/result-builders): Make SwiftUI sheets more declarative with result builders (2021-05-01) - [Working with web content offline in SwiftUI apps](https://artemnovichkov.com/blog/swiftui-offline): Three out-of-box ways to show web content offline. Of course, with SwiftUI examples (2021-04-25) - [Sheet happens. Working with modal views in SwiftUI](https://artemnovichkov.com/blog/sheet-happens): My experience with sheets in SwiftUI based on developing pet projects (2021-04-14) - [Developing Xcode Extensions. Tips and tricks](https://artemnovichkov.com/blog/developing-xcode-extensions-tips-and-tricks): Xcode Extension for ray.so code sharing service (2021-02-21) - [Custom @Environment value for share actions](https://artemnovichkov.com/blog/custom-environment-value-for-share-actions): Showing share actions in SwiftUI style (2021-02-13)