# swift-package-manager

A tool for managing Swift source-code distribution, dependencies, versioning, compilation, and linking.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Swift 6.4 unifies building across Linux, macOS, Windows

DevFeed: [Swift 6.4 unifies building across Linux, macOS, Windows](<https://devfeed.tech/articles/swift-6-4-unifies-building-across-linux-macos-windows-41309.md>)

Original publisher: [Read original article](<https://www.theregister.com/devops/2026/09/17/swift-64-unifies-building-across-linux-macos-windows/5297006>)

Author: Joab Jackson

Published: 2026-09-17T04:27:00Z

Content type: article

Language: en

Sources: [www.theregister.com - Articles](<https://devfeed.tech/sources/www-theregister-com-articles.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [Development](<https://devfeed.tech/topics/development.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Windows](<https://devfeed.tech/topics/windows.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [cross-platform-development](<https://devfeed.tech/tags/cross-platform-development.md>), [devops](<https://devfeed.tech/tags/devops.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-6-4](<https://devfeed.tech/tags/swift-6-4.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

Swift 6.4 makes Swift Build the default engine for the Swift Package Manager, with building unified across Linux, macOS, and Windows.

### Source excerpt

Swift Build is now the default engine for the Swift Package Manager

## CocoaPods Deprecation Notice for OpenTelemetry Swift

DevFeed: [CocoaPods Deprecation Notice for OpenTelemetry Swift](<https://devfeed.tech/articles/cocoapods-deprecation-notice-for-opentelemetry-swift-32581.md>)

Original publisher: [Read original article](<https://opentelemetry.io/blog/2026/otel-swift-cocoapods-deprecation/>)

Author: OpenTelemetry Authors; Docs CC BY

Published: 2026-07-20T14:05:37Z

Content type: release

Language: en

Sources: [Blog on OpenTelemetry](<https://devfeed.tech/sources/blog-on-opentelemetry.md>)

Topics: [OpenTelemetry](<https://devfeed.tech/topics/opentelemetry.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [maintenance](<https://devfeed.tech/topics/maintenance.md>), [Maintainers](<https://devfeed.tech/topics/maintainers.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [migration](<https://devfeed.tech/tags/migration.md>), [opentelemetry](<https://devfeed.tech/tags/opentelemetry.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>)

### AI overview

OpenTelemetry Swift maintainers plan to deprecate CocoaPods support for the opentelemetry-swift and opentelemetry-swift-core pods as CocoaPods moves into maintenance mode. Swift Package Manager is the recommended installation method, and existing CocoaPods users are encouraged to plan migration.

### Source excerpt

As it was announced via CocoaPods Support Plan and via CocoaPods Spec Repository, CocoaPods is transitioning their project to maintenance mode, and cocoapods trunk is going to be read-only in a few months. The OpenTelemetry Swift maintainers are planning to deprecate CocoaPods support for all the pods published under opentelemetry-swift and opentelemetry-swift-core. Swift Package Manager (SPM) is now the recommended and preferred installation method for all new integrations. We encourage existing CocoaPods users to begin planning a migration to SPM.

## Migrating a Flutter Application from CocoaPods to Swift Package Manager

DevFeed: [Migrating a Flutter Application from CocoaPods to Swift Package Manager](<https://devfeed.tech/articles/flutter-spm-24864.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/yandex/articles/1054308/>)

Author: iamgirya (Яндекс)

Published: 2026-07-13T07:01:51Z

Content type: tutorial

Language: ru

Sources: [Яндекс - Как мы делаем Яндекс / Статьи](<https://devfeed.tech/sources/source.md>)

Topics: [Flutter](<https://devfeed.tech/topics/flutter.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Dart](<https://devfeed.tech/topics/dart.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [dart](<https://devfeed.tech/tags/dart.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-development](<https://devfeed.tech/tags/ios-development.md>), [macos](<https://devfeed.tech/tags/macos.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [swiftpm](<https://devfeed.tech/tags/swiftpm.md>)

### AI overview

A practical guide to migrating Flutter applications from CocoaPods to Swift Package Manager. It covers dependency-graph analysis, plugin migration, dependency resolution, incremental migration, duplicate transitive dependencies, and successful iOS or macOS builds, including scripts for analysis and plugin conversion.

### Source excerpt

Flutter активно движется в сторону Swift Package Manager (SPM) и, как и весь Swift-мир, постепенно отказывается от CocoaPods. Сам Flutter описывает миграцию в два шага: включить флаг flutter config --enable-swift-package-manager и запустить сборку. Если после этого приложение собирается и в консоли появляется предложение deintegrate CocoaPods -- вы счастливчик. Если нет, добро пожаловать под кат. Привет! Меня зовут Даниил Гиренко, я Flutter-разработчик в Яндекс Про. Проект по переводу нашего супераппа с CocoaPods на Swift Package Manager оказался одним из самых сложных и долгих в моей карьере программиста. Весь мой пережитый ужас опыт я решил выразить в этой статье, чтобы решившиеся на миграцию разработчики (или агенты) понимали, какие подводные камни их ждут. Буду рад, если ваш проект займёт недели, а не месяцы, как у меня. В этой статье -- полноценный гайд по миграции любого Flutter-приложения. Разберём граф зависимостей, научимся мигрировать плагины, зарезолвим зависимости и доберёмся до успешного билда. Внутри есть готовые скрипты для анализа и автоматического перевода плагинов, множественные нюансы миграции и рассказы о моих костылях. Читать далее

## Ship It Right: A Swift Package Quality Checklist. Part 1 of 3.

DevFeed: [Ship It Right: A Swift Package Quality Checklist. Part 1 of 3.](<https://devfeed.tech/articles/ship-it-right-a-swift-package-quality-checklist-part-1-of-3-24553.md>)

Original publisher: [Read original article](<https://medium.com/snapp-mobile/ship-it-right-a-swift-package-quality-checklist-part-1-of-3-34d58d16f581?source=rss----bcd96e620b02---4>)

Author: Oleksii Kolomiiets

Published: 2026-01-05T08:49:11Z

Content type: tutorial

Language: en

Sources: [Snapp Mobile - Medium](<https://devfeed.tech/sources/snapp-mobile-medium.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [automation](<https://devfeed.tech/tags/automation.md>), [build](<https://devfeed.tech/tags/build.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [guides](<https://devfeed.tech/tags/guides.md>), [ios-development](<https://devfeed.tech/tags/ios-development.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-package](<https://devfeed.tech/tags/swift-package.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This tutorial presents a checklist for turning internal Swift Package Manager packages into polished public repositories. Part 1 focuses on documentation and README design, including installation instructions, usage examples, badges, links to full documentation, and licensing, while also introducing quality automation, community infrastructure, and discoverability.

### Source excerpt

I still remember the moment I decided to open-source my first Swift Package Manager plugin. The code worked perfectly in our internal projects at Snapp, but making it public-ready? That was a different story. I spent the next week adding DocC documentation, setting up GitHub Actions CI, writing example apps, and addressing edge cases I'd been ignoring because "it worked for us". Photo by Vooglam Eyewear on UnsplashThis series is for Swift developers turning internal packages into polished public repositories -- covering documentation, quality, and community setup. Here's the thing: most developers know how to write good code. But there's a massive gap between "code that works" and "a repository that welcomes users and contributors." That gap includes: Documentation that assumes zero context -- Your README.md makes sense to you, but will it help someone discovering your project at 2 AM? Quality automation -- Are you manually checking code style, or does your CI catch issues before they reach main? Community infrastructure -- When someone wants to contribute, is the path clear or confusing? Discoverability -- Great code that nobody knows about might as well not exist. I learned these lessons by studying successful repositories, discussing best practices with experienced coworkers, and developing my own sense of what makes a project polished versus what might fall short. Let's start with the most visible part of any repository -- the README. README: Keep It ConciseREADME is the door, not the whole house. Follow a simple rule: the README should answer three questions: What does this do? How do I install it? Where can I learn more? What Belongs in a README 1. Title and One-Line Description -- make it crystal clear what this is. # SwiftFormatLintPlugin A Swift Package Manager plugin that integrates swift-format linting and formatting into your build workflow. 2. Key Badges -- status, version, license, supported platforms etc. [![Tests](https://github.com/oleksiikolomiietssnapp/Me

## KMMBridge 1.2.1 Released - Kevin Schildhorn

DevFeed: [KMMBridge 1.2.1 Released - Kevin Schildhorn](<https://devfeed.tech/articles/kmmbridge-1-2-1-released-kevin-schildhorn-38241.md>)

Original publisher: [Read original article](<https://touchlab.co/kmmbridge-1.2.1>)

Published: 2025-02-04T00:00:00Z

Content type: release

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [releases](<https://devfeed.tech/topics/releases.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [release](<https://devfeed.tech/tags/release.md>), [spm](<https://devfeed.tech/tags/spm.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

KMMBridge 1.2.1 adds support for publishing Kotlin Multiplatform framework binaries as GitHub Releases for CocoaPods integration. It also improves CocoaPods build error logging.

### Source excerpt

KMMBridge is a Gradle plugin that publishes Kotlin Multiplatform Xcode Framework dependencies for Swift Package Manager and CocoaPods. The 1.2.1 release fixes issues around publishing packages using CocoaPods.

## Debugging Kotlin in Xcode with SPM Builds - Kevin Galligan

DevFeed: [Debugging Kotlin in Xcode with SPM Builds - Kevin Galligan](<https://devfeed.tech/articles/debugging-kotlin-in-xcode-with-spm-builds-kevin-galligan-38318.md>)

Original publisher: [Read original article](<https://touchlab.co/spm-kotlin-debugging>)

Published: 2024-12-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [builds](<https://devfeed.tech/tags/builds.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [developers](<https://devfeed.tech/tags/developers.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [skie](<https://devfeed.tech/tags/skie.md>), [spm](<https://devfeed.tech/tags/spm.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This article explains how updated SKIE and KMMBridge support local debugging of Kotlin Multiplatform binaries distributed through Swift Package Manager. With the Xcode Kotlin plugin, iOS developers can browse and debug the Kotlin code without locally compiling or configuring KMP dependencies.

### Source excerpt

Virtually all native mobile teams integrate Kotlin Multiplatform by publishing Xcode binaries, usually with SPM. This is generally easy to integrate, but prevented iOS developers from browsing or debugging Kotlin. Today we have fixed that situation.

## KMMBridge 1.1.0 Released - Kevin Galligan

DevFeed: [KMMBridge 1.1.0 Released - Kevin Galligan](<https://devfeed.tech/articles/kmmbridge-1-1-0-released-kevin-galligan-38240.md>)

Original publisher: [Read original article](<https://touchlab.co/kmmbridge-1.1>)

Published: 2024-12-05T00:00:00Z

Content type: release

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>), [Maintainability](<https://devfeed.tech/topics/maintainability.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [.NET 11](<https://devfeed.tech/topics/net-11.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [releases](<https://devfeed.tech/tags/releases.md>), [spm](<https://devfeed.tech/tags/spm.md>), [swift-package](<https://devfeed.tech/tags/swift-package.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

KMMBridge 1.1.0 is a significant internal refactoring of the Gradle plugin used to publish Kotlin Multiplatform Xcode Framework binaries through Swift Package Manager and CocoaPods. The release improves maintainability and adds Gradle configuration cache support where possible, while introducing separate modules for GitHub features and potentially requiring plugin ID changes for GitHub publishing.

### Source excerpt

KMMBridge is a Gradle plugin that publishes Kotlin Multiplatform Xcode Framework dependencies for Swift Package Manager and CocoaPods. The 1.1.0 release is a significant internal refactoring to support ongoing improvements and maintainability.

## KMMBridge 1.0 Release - Kevin Galligan

DevFeed: [KMMBridge 1.0 Release - Kevin Galligan](<https://devfeed.tech/articles/kmmbridge-1-0-release-kevin-galligan-38245.md>)

Original publisher: [Read original article](<https://touchlab.co/kmmbridge-v1>)

Published: 2024-08-28T00:00:00Z

Content type: release

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [binaries](<https://devfeed.tech/tags/binaries.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [release](<https://devfeed.tech/tags/release.md>), [spm](<https://devfeed.tech/tags/spm.md>), [swift](<https://devfeed.tech/tags/swift.md>), [tool](<https://devfeed.tech/tags/tool.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

KMMBridge 1.0.0 simplifies publishing Kotlin Multiplatform XCFramework binaries for iOS, with a primary focus on Swift Package Manager. CocoaPods remains supported, while the templates and tutorials are SPM-only.

### Source excerpt

KMMBridge is a tool that helps you publish iOS XCFramework binaries from Kotlin Mutliplatform. The tool has seen multiple iterations over the past few years. This version simplifies the configuration and usage of KMMBridge, with a primary focus on Swift Package Manager (SPM).

## Choosing Local Linking or Dependency Managers for Kotlin Multiplatform iOS Frameworks

DevFeed: [Choosing Local Linking or Dependency Managers for Kotlin Multiplatform iOS Frameworks](<https://devfeed.tech/articles/local-or-remote-how-you-add-your-kmp-framework-matters-kevin-schildhorn-38225.md>)

Original publisher: [Read original article](<https://touchlab.co/ios-framework-local-or-remote>)

Published: 2024-06-26T00:00:00Z

Content type: article

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [spm](<https://devfeed.tech/tags/spm.md>)

### AI overview

This article compares direct local linking with Swift Package Manager and CocoaPods for Kotlin Multiplatform frameworks in iOS projects. It recommends direct linking for local KMP development when possible, while noting that CocoaPods can make sense when it is already used for the app's dependencies and dependency managers are generally suited to published binaries.

### Source excerpt

Do you actually need to use SPM or Cocoapods to include KMP? You don't, and it might not be the right answer

## Scaling iOS at Bumble: Part 2/3 -- The Assessment

DevFeed: [Scaling iOS at Bumble: Part 2/3 -- The Assessment](<https://devfeed.tech/articles/scaling-ios-at-bumble-part-2-3-the-assessment-22603.md>)

Original publisher: [Read original article](<https://medium.com/bumble-tech/scaling-ios-at-bumble-239e0fa009f2?source=rss----6353b5325b1a---4>)

Author: Jonathan Crooke

Published: 2024-02-15T13:49:17Z

Content type: article

Language: en

Sources: [Bumble Tech](<https://devfeed.tech/sources/bumble-tech.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Tuist](<https://devfeed.tech/topics/tuist.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [bazel](<https://devfeed.tech/topics/bazel.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Requirements](<https://devfeed.tech/topics/requirements.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [bazel](<https://devfeed.tech/tags/bazel.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-app-development](<https://devfeed.tech/tags/ios-app-development.md>), [performance](<https://devfeed.tech/tags/performance.md>), [requirements](<https://devfeed.tech/tags/requirements.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [testing](<https://devfeed.tech/tags/testing.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>), [tuist](<https://devfeed.tech/tags/tuist.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This article recaps Bumble's assessment process for replacing parts of its iOS project and build toolchain. It describes onboarding, proof-of-concept work, full-app conversion, and assessment criteria for Swift Package Manager, Tuist, and Bazel, including blockers, user experience, and performance.

### Source excerpt

Scaling iOS at Bumble: Part 2/3 -- The AssessmentRecap In our previous post we discussed how we came to be investigating project and build toolchain replacement solutions for our iOS codebase at Bumble Inc. We began executing proofs of concept for Swift Package Manager (SPM), Tuist and Bazel. The Process Our investigative process for each tool was performed in roughly the same manner: 1. Onboarding With the exception of some light use of SPM as a third-party dependency manager, no-one on the team was fully fluent with any of the tools. This meant that at first, we needed to learn the basics, which could be achieved by creating a minimum-viable manifest for one of our node modules. This would involve learning the manifest format and core commands for building, testing etc. 2. Medium-sized proof of concept Following on from the initial onboarding, we would then progress to converting parent modules, traversing the tree post-order. At each level we'd cover more of our core requirements and encounter edge-cases. Throughout, we noted learnings, limitations and fixes. 3. Full-app conversion At this stage, since our module tree exhibits a strong level of uniformity, we'd now have gathered enough experience to fully convert the app's child modules, and do so using automated tooling. How we achieved this will be discussed below. Unsurprisingly, the top-level app target was its own challenge, and required considerably handcrafting. We only aimed to achieve a minimum-viable conversion at this stage, and didn't expect tests to pass. That said, we'd usually have a fairly conformant conversion anyway, that would launch successfully to its home screen and usually plenty more. 4. Assessment With a converted app target in hand, we would now have a candidate for assessment. But what did we want to know? Our analysis looked at these areas: Blockers: simple enough, any limitations or issues in the tool's functionality whereby it was unable to serve our basic requirements Subjective user

## How Apollo Manages Swift Packages in a Monorepo with Git Subtrees

DevFeed: [How Apollo Manages Swift Packages in a Monorepo with Git Subtrees](<https://devfeed.tech/articles/how-apollo-manages-swift-packages-in-a-monorepo-with-git-subtrees-23357.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/how-apollo-manages-swift-packages-in-a-monorepo-with-git-subtrees>)

Author: Zach FettersMoore

Published: 2024-01-30T07:45:00Z

Content type: article

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [monorepo](<https://devfeed.tech/topics/monorepo.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [Git](<https://devfeed.tech/topics/git.md>), [Submodules](<https://devfeed.tech/topics/submodules.md>), [Library](<https://devfeed.tech/topics/library.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Code](<https://devfeed.tech/topics/code.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [development](<https://devfeed.tech/tags/development.md>), [git](<https://devfeed.tech/tags/git.md>), [ios](<https://devfeed.tech/tags/ios.md>), [library](<https://devfeed.tech/tags/library.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [monorepo](<https://devfeed.tech/tags/monorepo.md>), [packages](<https://devfeed.tech/tags/packages.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [submodules](<https://devfeed.tech/tags/submodules.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-package](<https://devfeed.tech/tags/swift-package.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article describes Apollo iOS's challenges with managing multiple Swift Package Manager library targets in a monorepo. It explains the goal of distributing smaller, independently versioned packages while preserving an efficient shared development and testing workflow, and discusses Git submodules as one approach and its operational drawbacks.

### Source excerpt

The monorepo is a common structure for many software projects, and Apollo iOS is no different. Our project was structured in a single repo containing many different Swift Package Manager (SPM) library targets, along with test code and code only used as part of development. This presents a few problems however, one being that when a user adds the SPM package as a dependency, it will pull down all of the code and files in the repo, even though most of them aren't needed.

## An Introduction to Swift Package Manager and how it works

DevFeed: [An Introduction to Swift Package Manager and how it works](<https://devfeed.tech/articles/an-introduction-to-swift-package-manager-and-how-it-works-24750.md>)

Original publisher: [Read original article](<https://medium.com/ymedialabs-innovation/an-introduction-to-swift-package-manager-and-how-it-works-cfe8e0d8cbd3?source=rss----8b5620c36355---4>)

Author: prateek arora

Published: 2023-04-11T05:00:35Z

Content type: tutorial

Language: en

Sources: [ymedialabs-innovation - Medium](<https://devfeed.tech/sources/ymedialabs-innovation-medium.md>)

Topics: [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [Package Management](<https://devfeed.tech/topics/package-management.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [tvOS](<https://devfeed.tech/topics/tvos.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [ios](<https://devfeed.tech/tags/ios.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [package-management](<https://devfeed.tech/tags/package-management.md>), [packages](<https://devfeed.tech/tags/packages.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-package](<https://devfeed.tech/tags/swift-package.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

An introductory tutorial explains Swift Package Manager (SPM), its role in downloading, compiling, and linking Swift dependencies, and its integration with Swift. It compares SPM with third-party options such as CocoaPods and Carthage, outlines supported platforms and requirements, and describes advantages and limitations.

### Source excerpt

What is a package Manager? A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner. or A package manager deals with packages, distributions of software and data in archive files. Packages contain metadata, such as the software's name, description of its purpose, version number, vendor, checksum (preferably a cryptographic hash function), and a list of dependencies necessary for the software to run properly. What is Swift Package Manager (SPM) As per official Apple Swift Documentation: "The Swift Package Manager is a tool for managing the distribution of Swift code. It's integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies." The Package Manager is included in Swift 3.0 and above. Why do we need Swift Package Manager? Though we have multiple other ways to manage the dependencies like cocoa pods, Carthage etc. then why is there a need to use SPM? The answer is both cocoa pods and Carthage are third-party package managers, which eventually leads to extra code and efforts one has to put in order to utilise these third-party package managers. For example: For cocoa pods, we need to have a pod framework to be installed, which then needs ruby, gem file or brew in order to install pods. But then SPM comes inbuilt with XCode, so there won't be extra effort and extra files that will be getting added once we use SPM. System Requirement SwiftPM is compatible with macOS, iOS, tvOS and Linux For macOS, you need XCode 11 and above. For Linux, you have to install it manually or use swiftenv. Advantages SwiftPM is open-source like Cocoapods. It may be challenging or fast to contribute but it is possible. Ease of managing dependency's dependencies. If a dependency relies on another dependency, the Swift Package manager will handle it for you. Ease of resetting, manag

## When Should I Use KMMBridge? - Russell Wolf

DevFeed: [When Should I Use KMMBridge? - Russell Wolf](<https://devfeed.tech/articles/when-should-i-use-kmmbridge-russell-wolf-38348.md>)

Original publisher: [Read original article](<https://touchlab.co/when-should-i-use-kmmbridge>)

Published: 2023-01-10T08:00:00Z

Content type: article

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Development](<https://devfeed.tech/topics/development.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-multiplatform-mobile](<https://devfeed.tech/tags/kotlin-multiplatform-mobile.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [thoughts](<https://devfeed.tech/tags/thoughts.md>)

### AI overview

This article explains when teams should use KMMBridge rather than KaMPKit for Kotlin Multiplatform projects. It focuses on teams with existing iOS applications, separate repositories, or developers who do not need to work directly with Kotlin, and describes consuming published Kotlin binaries through CocoaPods or Swift Package Manager.

### Source excerpt

Here is how to determine when to use KMMBridge vs KaMPKit for your multiplatform projects, depending on your team's needs.

## Samples of Using KMMBridge

DevFeed: [Samples of Using KMMBridge](<https://devfeed.tech/articles/samples-of-using-kmmbridge-24720.md>)

Original publisher: [Read original article](<https://dev.to/touchlab/samples-of-using-kmmbridge-4bha>)

Author: Michael Friend

Published: 2022-11-30T20:46:11Z

Content type: tutorial

Language: en

Sources: [Touchlab](<https://devfeed.tech/sources/touchlab.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [monorepo](<https://devfeed.tech/topics/monorepo.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [coding](<https://devfeed.tech/tags/coding.md>), [community](<https://devfeed.tech/tags/community.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [guide](<https://devfeed.tech/tags/guide.md>), [inclusive](<https://devfeed.tech/tags/inclusive.md>), [ios](<https://devfeed.tech/tags/ios.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [kmm](<https://devfeed.tech/tags/kmm.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [monorepo](<https://devfeed.tech/tags/monorepo.md>), [react](<https://devfeed.tech/tags/react.md>), [software](<https://devfeed.tech/tags/software.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [webdev](<https://devfeed.tech/tags/webdev.md>)

### AI overview

This sample demonstrates how to use Touchlab's KMMBridge Gradle plugin to publish a Kotlin Multiplatform SDK binary for iOS consumption. It describes a setup spanning Android and iOS applications, with separate repositories using CocoaPods or Swift Package Manager, and explains the project's shared module and publishing configuration.

### Source excerpt

What is KMM Bridge? KMMBridge is a Gradle plugin by Touchlab that aims to simplify the process of pushing a Kotlin Multiplatform SDK binary to a remote repo to allow iOS developers to use the shared SDK without installing the Kotlin toolchain or building the Kotlin code on every app build. What is this Sample? This sample project showcases our typical project setup for adding Kotlin Multiplatform Mobile code to existing separate Android and iOS apps using KMMBridge. We keep the Android app and the shared code in the same repo and keep the code to an absolute minimum with no dependencies so the project will build faster to speed things up when playing around with custom publish config. To see how to set up a project that keeps the Android app in a separate repo and uses a more realistic structure in shared code, check out the article Quickstart Guide to KMMBridge Sample Repos The basic KMMBridge sample is split into four repos rather than being a monorepo to emulate the trend we've seen from teams adopting KMM into existing apps by publishing a KMM library from one repo for iOS apps in other repos to consume. The four repos are: KMMBridgeSampleKotlin aka Kotlin Repo - This is the Kotlin repo with the shared SDK code as well as an Android app that uses it. KMMBridgeSampleCocoaPods aka CocoaPods Repo- a repo that pulls down the sdk with CocoaPods to use in an iOS app KMMBridgeSampleSpm aka SPM Repo - a repo that pulls down the sdk with Swift Package Manager to use in an iOS app PublicPodspecs aka Podspec Repo - A CocoaPods custom Podspec repo. When publishing for CocoaPods a podspec file will be pushed to this repo in a folder with the version number. See the CocoaPods section for more info on this. KMMBridgeSampleKotlin - The Kotlin Code This repo demonstrates the usual first step for a larger team that wants to try out Kotlin Multiplatform: putting new or existing Kotlin code in a shared module in your Android app repo. This repo also has a standard Android app modul

## Samples of Using KMMBridge - Michael Friend

DevFeed: [Samples of Using KMMBridge - Michael Friend](<https://devfeed.tech/articles/samples-of-using-kmmbridge-michael-friend-38312.md>)

Original publisher: [Read original article](<https://touchlab.co/samples-of-using-kmmbridge>)

Published: 2022-11-29T16:25:42Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [kmm](<https://devfeed.tech/tags/kmm.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [spm](<https://devfeed.tech/tags/spm.md>), [swift-package](<https://devfeed.tech/tags/swift-package.md>)

### AI overview

This sample project demonstrates how to add Kotlin Multiplatform code to existing Android and iOS apps using KMMBridge. It describes a setup split across four repositories, with SDK distribution through CocoaPods and Swift Package Manager.

### Source excerpt

As you explore how KMM can help your mobile dev team, we've put together more KMMBridge sample to help you evaluate this best-in-class tool.

## The Evolution of Kotlin Multiplatform Mobile - 2022 Edition - Russell Wolf

DevFeed: [The Evolution of Kotlin Multiplatform Mobile - 2022 Edition - Russell Wolf](<https://devfeed.tech/articles/the-evolution-of-kotlin-multiplatform-mobile-2022-edition-russell-wolf-38328.md>)

Original publisher: [Read original article](<https://touchlab.co/the-evolution-of-kotlin-multiplatform-mobile>)

Published: 2022-10-31T18:13:15Z

Content type: opinion

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [kotlin multiplatform mobile](<https://devfeed.tech/topics/kotlin-multiplatform-mobile.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [Library](<https://devfeed.tech/topics/library.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [swift-package](<https://devfeed.tech/topics/swift-package.md>), [Maven Central](<https://devfeed.tech/topics/maven-central.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-multiplatform-mobile](<https://devfeed.tech/tags/kotlin-multiplatform-mobile.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>)

### AI overview

This retrospective traces Kotlin Multiplatform Mobile from its early experimental stage, when Kotlin/Native memory management, Gradle configuration, and Xcode integration were difficult, to a more mature state with improved memory management, iOS integration through CocoaPods and Swift Package Manager, and better Kotlin-to-Swift interoperability. It also describes growth in the KMM library ecosystem, from about five published libraries in 2018 to more than 1,000 relevant artifacts on Maven Central.

### Source excerpt

Kotlin Multiplatform has come a long way in the last few years. As someone who was there when the KMP community first formed, I've seen the ecosystem grow from a few developers trying things out experimentally to a growing number of teams using it in their production apps. With the Kotlin Multiplatform Mobile Beta freshly announced, it's a neat moment to look back on how far everything has come. How It Started In the early days, KMP wasn't very easy for new users.

## Quick Start with KMMBridge - 1 hour tutorial - Kevin Galligan

DevFeed: [Quick Start with KMMBridge - 1 hour tutorial - Kevin Galligan](<https://devfeed.tech/articles/quick-start-with-kmmbridge-1-hour-tutorial-kevin-galligan-38310.md>)

Original publisher: [Read original article](<https://touchlab.co/quick-start-with-kmmbridge-1-hour-tutorial>)

Published: 2022-10-24T23:13:36Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Development](<https://devfeed.tech/topics/development.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [built-by-touchlab](<https://devfeed.tech/tags/built-by-touchlab.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [kmm](<https://devfeed.tech/tags/kmm.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [quick-start](<https://devfeed.tech/tags/quick-start.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial for using Touchlab's KMMBridge Gradle tool to build and publish an Xcode Framework from Kotlin for integration into an Xcode project without compiling Kotlin locally. It focuses on basic Kotlin Multiplatform integration for teams using GitHub, CocoaPods or Swift Package Manager, and GitHub Actions.

### Source excerpt

Staying true to our goal of making it easier for teams to get the benefits of Kotlin Multiplatform more quickly, this tutorial will help many of you get a basic integration working in about an hour or less. The tooling available for KMM and KMP has been mostly focused around local dev, but as adoption continues to increase, tooling for teams needs to mature as well.

## Building an XCFramework on Kotlin Multiplatform from Kotlin 1.5.30

DevFeed: [Building an XCFramework on Kotlin Multiplatform from Kotlin 1.5.30](<https://devfeed.tech/articles/building-an-xcframework-on-kotlin-multiplatform-from-kotlin-1-5-30-25559.md>)

Original publisher: [Read original article](<https://www.marcogomiero.com/posts/2021/kmp-xcframework-official-support/>)

Author: Marco Gomiero

Published: 2021-08-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Posts on Marco Gomiero](<https://devfeed.tech/sources/posts-on-marco-gomiero.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [building](<https://devfeed.tech/tags/building.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [macos](<https://devfeed.tech/tags/macos.md>), [release](<https://devfeed.tech/tags/release.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>)

### AI overview

A tutorial on using the official XCFramework support introduced in Kotlin 1.5.30 for Kotlin Multiplatform projects. It explains how to replace custom Gradle tasks, build debug and release XCFramework variants, and distribute them through options such as CocoaPods or Swift Package Manager.

### Source excerpt

A few days ago, Kotlin 1.5.30 has been released. One of the features contained in the release is the official support for XCFrameworks on Kotlin Multiplatform. XCFramework is a binary that can contain multiple platform-specific variants (even for iOS and macOS at the same time). It has been introduced by Apple during the WWDC 2019 as a replacement for FatFrameworks. Before Kotlin 1.5.30, an XCFramework could be created only by running the xcrun command that will pack the frameworks for every different required platform into an XCFramework.

## AppCode 2021.2: улучшения поддержки Swift, автодополнение выражений, окно иерархии вызовов для Swift и не только

DevFeed: [AppCode 2021.2: улучшения поддержки Swift, автодополнение выражений, окно иерархии вызовов для Swift и не только](<https://devfeed.tech/articles/appcode-2021-2-swift-swift-23930.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/JetBrains/articles/573126/>)

Author: yeswolf (JetBrains)

Published: 2021-08-16T09:53:35Z

Content type: release

Language: ru

Sources: [JetBrains RU](<https://devfeed.tech/sources/jetbrains-ru.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [ide](<https://devfeed.tech/topics/ide.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [async/await](<https://devfeed.tech/topics/async-await.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Objective-C](<https://devfeed.tech/topics/objective-c.md>)

Tags: [appcode](<https://devfeed.tech/tags/appcode.md>), [async](<https://devfeed.tech/tags/async.md>), [await](<https://devfeed.tech/tags/await.md>), [call-hierarchy](<https://devfeed.tech/tags/call-hierarchy.md>), [complete-statement](<https://devfeed.tech/tags/complete-statement.md>), [ide](<https://devfeed.tech/tags/ide.md>), [kmm](<https://devfeed.tech/tags/kmm.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-multiplatform-mobile](<https://devfeed.tech/tags/kotlin-multiplatform-mobile.md>), [local-history](<https://devfeed.tech/tags/local-history.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>)

### AI overview

This release article describes AppCode 2021.2 improvements, including support for Swift features such as result builders, enum Codable synthesis, and async/await. It also covers documentation completion, Call Hierarchy, Swift Package Manager build and debugging support, a Kotlin Multiplatform Mobile plugin, a debugger Preview Tab, and Local History search.

### Source excerpt

Привет, Хабр! В этом посте, как и всегда, расскажем о новом релизе AppCode. Всем, кому интересно, -- добро пожаловать под кат. Читать далее