• Coming Soon on App Store
  • Home
  • Contents
    • Articles
    • Videos
  • Channels

Nav Menu

  • Home
  • Articles
  • Videos
  • Channels

Copyright By SoftSky App LTD - 2025

  • Contact Us
  • Terms of Use
  • Privacy Policy

I am an iOS Developer. I work at Salmon Group Ltd, developing the Salmon app — a super app designed to connect millions of Filipinos with reliable financial services, making finance accessible and easy. Besides my main work, I focus on individual mentoring and consultations for developers and companies, helping them solve their challenges in iOS development. I also worked with the online platform Netology, where I created teaching materials, reviewed student assignments, and conducted over 100 online lectures. I am passionate about Swift and open-source development. My primary focus is on the iOS platform, and sometimes I publish interesting and useful content on my Github. I am currently working on developing pet projects and writing blog posts on SwiftUI. Occasionally, I also enjoy sharing my knowledge through public speaking. You can find a playlist of my talks on Youtube. In my free time, I enjoy flying FPV drones and editing the videos I capture. I also like playing video games on my Nintendo Switch 2 and PS5.

RSShttps://www.artemnovichkov.com/feed.xml
  • intermediate
  • By Artem Novichkov
  • Sep 29

Foundation Models profiling with Xcode Instruments

How to profile Foundation Models in Xcode 26 Instruments: use the Foundation Models instrument to see asset loading, session timings, and token counts; capture tool-call time. Optimize with LanguageModelSession.prewarm(promptPrefix:), caching, prompt tweaks. Notes 4,096-token cap, simulator token bug—use devices.

  • intermediate
  • By Artem Novichkov
  • Jul 28

Working with partially generated content in Xcode previews

Preview and animate partially generated AI content in SwiftUI with FoundationModels: use @Generable/@Guide, LanguageModelSession.streamResponse, PartiallyGenerated and GeneratedContent. Mock via asPartiallyGenerated() or a JSON-driven AsyncThrowingStream. Notes beta API quirks and key ordering. Validate UI states offline.

  • intermediate
  • By Artem Novichkov
  • Jul 14

Handling WebView navigation in SwiftUI

Manage WebView navigation in SwiftUI (WebKit for SwiftUI): load via WebPage/WebView; toggle link previews (webViewLinkPreviews) and back/forward gestures (webViewBackForwardNavigationGestures); build back/forward menus from backForwardList; add Reload/ShareLink; restrict domains with NavigationDeciding + openURL. APIs may change.

  • intermediate
  • By Artem Novichkov
  • Jul 7

Using WebKit to load web content in SwiftUI

Explores new WebKit APIs in SwiftUI introduced at WWDC25. Shows how WebView and WebPage simplify web content loading vs WKWebView. Covers direct URL loading, handling loading states/progress, navigation events via async sequences. Demonstrates exporting content as images, PDFs, or web archives using WebPage's Transferable support. Includes practical examples for saving/displaying different content formats.

  • intermediate
  • By Artem Novichkov
  • Jun 29

Getting Started with Apple's Foundation Models

Introduces Apple's Foundation Models framework from iOS 26+ for on-device AI. Covers availability checking, session creation with custom instructions/tools, message handling via respond() and streamResponse(), and integrating real data through Tool protocol. Shows building a health coach app that accesses Apple Health blood pressure data. Key APIs: SystemLanguageModel, LanguageModelSession, @Generable macro. Notable: requires Apple Intelligence enabled, ~14s response time, streaming improves UX. Includes complete SwiftUI chat interface using transcript property.

  • intermediate
  • By Artem Novichkov
  • Jun 12

Cook up 3D charts with Swift Charts

Build 3D charts with SwiftUI’s new Chart3D (WWDC25). Parse Iris CSV via TabularData, plot PointMark(x:y:z:), adjust chartX/Y/ZScale and axis labels (workaround), switch .orthographic/.perspective, style marks, and control chart3DPose (preset, bind, animate via Spatial). Beta APIs may change.

  • intermediate
  • By Artem Novichkov
  • May 11

Using Model Context Protocol in iOS apps

Guide to implementing Model Context Protocol (MCP) in iOS apps for integrating AI assistants with local data. Creates a simple chat with Claude LLM that accesses HealthKit blood pressure data through MCP server. Covers implementing MCP protocol, using Anthropic API, handling tool calls, and building SwiftUI client. Code demonstrates async/await patterns, HealthKit authorization, protocol-oriented design, and proper message handling in chat contexts.

  • intermediate
  • By Artem Novichkov
  • May 4

Demystifying Picture in Picture on iOS

A comprehensive guide to implementing Picture in Picture (PiP) mode for camera feeds in iOS. Covers setting up AVCaptureSession with sample buffer display layers, configuring AVPictureInPictureController with content sources, handling multitasking camera access, implementing playback delegates, and working around control style limitations. Key challenges include enabling background modes, proper audio session configuration, and the critical isMultitaskingCameraAccessEnabled property for iOS 16+. Perfect for video calling and streaming apps needing continuous camera access.

  • intermediate
  • By Artem Novichkov
  • Apr 17

Creating MCP Servers in Swift

Build a Swift MCP server exposing a swift_version tool: SPM executable + MCP Swift SDK, Server + StdioTransport, ListTools/CallTool handlers, and Process to run `swift --version`. Tips: snake_case tool names and a minimal inputSchema improve client visibility. Works in VS Code Agent, Cursor, Claude.

  • intermediate
  • By Artem Novichkov
  • Apr 9

How to inspect .ipa files and secure your iOS app from common mistakes

Audit .ipa files to avoid leaks: get an .ipa (Apple Configurator/iMazing/ipatool), unzip, review Info.plist, Frameworks, resources, Assets.car (with AssetCatalogTinkerer), and strings output. Rules: no secrets in Info.plist, no dev/test files, don’t hardcode keys. Audit releases.

  • intermediate
  • By Artem Novichkov
  • Feb 23

Music recognition with ShazamKit

Add ShazamKit music recognition in SwiftUI with modern concurrency: enable the service and NSMicrophoneUsageDescription, create SHManagedSession, call prepare() for responsiveness, use result()/results() and cancel, show SHMatchedMediaItem, manage history via SHLibrary, add context menu links, and handle managedSession.state.

  • intermediate
  • By Artem Novichkov
  • Feb 2

Drawing maps with Swift Charts

Draw maps with Swift Charts: fetch GeoJSON (Overpass), decode via MapKit’s MKGeoJSONDecoder into FeatureData, extract MKPolygon coords/centers, then render AreaPlot (population fill), LinePlot borders, and PointMark + annotations. Configure scales/aspect. Notes iOS 18 (use AreaMark/LineMark earlier), zIndex limits, artifacts, and precomputing for performance.