# cocoapods

Published articles for cocoapods.

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

## 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-приложения. Разберём граф зависимостей, научимся мигрировать плагины, зарезолвим зависимости и доберёмся до успешного билда. Внутри есть готовые скрипты для анализа и автоматического перевода плагинов, множественные нюансы миграции и рассказы о моих костылях. Читать далее

## SQLCipher and Firebase SPM symbol conflicts can disable encryption in Kotlin Multiplatform Room databases

DevFeed: [SQLCipher and Firebase SPM symbol conflicts can disable encryption in Kotlin Multiplatform Room databases](<https://devfeed.tech/articles/sqlcipher-firebase-in-kmp-when-spm-import-symbol-conflicts-break-your-encryption-properly-encrypt-your-room-database-in-kmp-22964.md>)

Original publisher: [Read original article](<https://funkymuse.github.io/posts/encrypt-kmp-database-with-firebase-in-project/>)

Author: FunkyMuse

Published: 2026-05-12T13:30:00Z

Content type: tutorial

Language: en

Sources: [FunkyMuse](<https://devfeed.tech/sources/funkymuse.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Encryption](<https://devfeed.tech/topics/encryption.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>)

### AI overview

This tutorial explains how adding Firebase iOS SDK packages through Kotlin's experimental Swift Package Manager integration caused a Kotlin Multiplatform Room database to use Apple's unencrypted sqlite3 instead of SQLCipher. It attributes the issue to identical SQLite symbols and linker precedence in statically linked frameworks.

### Source excerpt

The Starting Point I know, long title... my creativity turned into lengthy title I recently needed encrypted database storage in my Kotlin Multiplatform app using AndroidX Room. After some research, i found Paris Tsiogas's excellent guide on Encrypted Room Database in KMP which walks through the full setup, Gradle dependencies, platform-specific implementations, and a custom SQLCipherNativeDriv...

## Flutter 3.44 will make Swift Package Manager the default for iOS and macOS apps

DevFeed: [Flutter 3.44 will make Swift Package Manager the default for iOS and macOS apps](<https://devfeed.tech/articles/saying-goodbye-to-cocoapods-swift-package-manager-is-soon-the-default-in-flutter-23043.md>)

Original publisher: [Read original article](<https://blog.flutter.dev/saying-goodbye-to-cocoapods-swift-package-manager-is-soon-the-default-in-flutter-645a92714a57?source=rss----4da7dfd21a33---4>)

Author: Jenn Magder

Published: 2026-04-30T15:57:00Z

Content type: release

Language: en

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

Topics: [Flutter](<https://devfeed.tech/topics/flutter.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [flutter-app-development](<https://devfeed.tech/tags/flutter-app-development.md>), [ios](<https://devfeed.tech/tags/ios.md>), [macos](<https://devfeed.tech/tags/macos.md>), [migration](<https://devfeed.tech/tags/migration.md>), [release](<https://devfeed.tech/tags/release.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Flutter 3.44 will make Swift Package Manager the default dependency manager for iOS and macOS apps, replacing CocoaPods. The Flutter CLI will migrate projects automatically, temporarily fall back to CocoaPods for unsupported plugins, and allow developers to opt out if SwiftPM causes breaking issues.

### Source excerpt

Dash migration! Starting with the next stable Flutter release, 3.44, Swift Package Manager (SwiftPM) replaces CocoaPods as the default dependency manager for iOS and macOS apps. This means no more messing around with Ruby or CocoaPods installations just to get your app running! CocoaPods is officially in maintenance mode, and its registry will permanently become read-only on December 2, 2026. While existing builds will still work, no new versions or pods will be added to the trunk after this date. To ensure that your apps continue receiving dependency updates and to provide access to the Swift package ecosystem, Flutter is transitioning to Apple's supported dependency management solution: Swift Package Manager. If you've already migrated your plugin(s) to use SwiftPM, read the "Plugin developers" section below for new migration requirements. Here is how to manage the transition. App developers For app developers, the Flutter CLI handles the migration. When you run or build your iOS or macOS app, the CLI automatically updates your Xcode project to use Swift Package Manager. Check out the Flutter migration docs for app developers for more details. If your app relies on plugins that haven't adopted Swift Package Manager yet, Flutter will print a warning listing exactly which of your dependencies are unsupported. Flutter will temporarily fall back to CocoaPods for plugins that have not adopted Swift packages yet. Because CocoaPods support will eventually be removed entirely, if a plugin hasn't updated and breaks your build, file an issue with the dependency's maintainer to request Swift package support or find an alternative package. We know that migrations can sometimes hit a snag. If SwiftPM causes a breaking issue, you can temporarily disable it for your project. Open your pubspec.yaml file, navigate to the flutter section, and set enable-swift-package-manager to false under the config block: flutter: config: enable-swift-package-manager: false If you opt out, please

## Testing a Gradle Plugin that interacts with Git

DevFeed: [Testing a Gradle Plugin that interacts with Git](<https://devfeed.tech/articles/testing-a-gradle-plugin-that-interacts-with-git-25587.md>)

Original publisher: [Read original article](<https://www.marcogomiero.com/posts/2025/test-gradle-plugin-git/>)

Author: Marco Gomiero

Published: 2025-05-13T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Git](<https://devfeed.tech/topics/git.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [git](<https://devfeed.tech/tags/git.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This tutorial explains how to test a Gradle plugin that publishes Kotlin Multiplatform frameworks through Git-based CocoaPods repositories. It uses Gradle TestKit and local Git bare repositories to automate testing without relying on manual verification or actual remote repositories.

### Source excerpt

Some time ago, I built KMP Framework Bundler, a Gradle plugin for Kotlin Multiplatform projects that generates an XCFramework for Apple targets or a FatFramework for iOS targets and manages the publishing process to a CocoaPods repository. (Note: the plugin is currently in maintenance mode; using KMMBridge might be a better option.) After building the Framework, the plugin handles the publishing process by interacting with a Git-based CocoaPods repository. It copies the Framework into the repository, updates the podspec file with the latest version, commits the changes, and pushes them.

## Fastlane in Kotlin Multiplatform projects - Gustavo Fão Valvassori

DevFeed: [Fastlane in Kotlin Multiplatform projects - Gustavo Fão Valvassori](<https://devfeed.tech/articles/fastlane-in-kotlin-multiplatform-projects-gustavo-fao-valvassori-38203.md>)

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

Published: 2025-03-11T00: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>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Development](<https://devfeed.tech/topics/development.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Android Library](<https://devfeed.tech/topics/android-library.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [rubygems](<https://devfeed.tech/topics/rubygems.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [android-library](<https://devfeed.tech/tags/android-library.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [community](<https://devfeed.tech/tags/community.md>), [fastlane](<https://devfeed.tech/tags/fastlane.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [rubygems](<https://devfeed.tech/tags/rubygems.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

A tutorial on using Fastlane to automate build, testing, and deployment tasks in Kotlin Multiplatform projects. It explains differences between Android and iOS setups, including projects using CocoaPods, Xcode Build Phases, or KMMBridge, and introduces Fastfile lanes and command-line execution.

### Source excerpt

Fastlane is a great tool for automating your mobile app tasks. In this post, we will show how to use Fastlane in a Kotlin Multiplatform project.

## 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.

## 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

## KMP Team Workflows with KMMBridge - Kevin Galligan

DevFeed: [KMP Team Workflows with KMMBridge - Kevin Galligan](<https://devfeed.tech/articles/kmp-team-workflows-with-kmmbridge-kevin-galligan-38244.md>)

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

Published: 2023-10-06T10:00:28Z

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>), [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Template](<https://devfeed.tech/topics/template.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [binaries](<https://devfeed.tech/tags/binaries.md>), [build](<https://devfeed.tech/tags/build.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [project](<https://devfeed.tech/tags/project.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This article explains how KMMBridge supports Kotlin Multiplatform team workflows by assembling and publishing Xcode Framework binaries for distribution through Swift Package Manager, CocoaPods, or private repositories. It also introduces a Quick Start template for publishing Android and iOS binaries.

### Source excerpt

Team workflows with Kotlin Multiplatform vary in structure. KMMBridge is a tool that allows you to publish Xcode Framework binaries from Kotlin that can be distributed, for your team internally, or to outside developers.

## KMMBridge Quick Start - Kevin Galligan, Russell Wolf

DevFeed: [KMMBridge Quick Start - Kevin Galligan, Russell Wolf](<https://devfeed.tech/articles/kmmbridge-quick-start-kevin-galligan-russell-wolf-38243.md>)

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

Published: 2023-10-06T09:00:28Z

Content type: tutorial

Language: en

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

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [quick-start](<https://devfeed.tech/tags/quick-start.md>), [repo](<https://devfeed.tech/tags/repo.md>), [template](<https://devfeed.tech/tags/template.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

A Quick Start guide for KMMBridge explains the prerequisites and initial setup for publishing iOS Kotlin modules and Android libraries from a shared Kotlin Multiplatform repo. It uses GitHub, GitHub Actions, and GitHub Packages, with setup for Swift Package Manager and additional CocoaPods configuration.

### Source excerpt

For native mobile teams looking to publish Xcode Frameworks and Android Libraries from a shared Kotlin repo, our template project can have you up and running in minutes.

## 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 - 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.

## How to use Kotlin Multiplatform ViewModel in SwiftUI and Jetpack Compose

DevFeed: [How to use Kotlin Multiplatform ViewModel in SwiftUI and Jetpack Compose](<https://devfeed.tech/articles/how-to-use-kotlin-multiplatform-viewmodel-in-swiftui-and-jetpack-compose-23905.md>)

Original publisher: [Read original article](<https://medium.com/icerock/how-to-use-kotlin-multiplatform-viewmodel-in-swiftui-and-jetpack-compose-8158e98c091d?source=rss----b74ae24564e---4>)

Author: Aleksey Mikhailov

Published: 2022-04-30T12:34:48Z

Content type: tutorial

Language: en

Sources: [IceRock Development - Medium](<https://devfeed.tech/sources/icerock-development-medium.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [SwiftUI](<https://devfeed.tech/topics/swiftui.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>)

Tags: [android-studio](<https://devfeed.tech/tags/android-studio.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swiftui](<https://devfeed.tech/tags/swiftui.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A tutorial showing how to use a shared Kotlin Multiplatform ViewModel with SwiftUI and Jetpack Compose. It uses MOKO MVVM 0.13.0 and demonstrates building an authorization screen for Android and iOS.

### Source excerpt

We at IceRock Development have been using the MVVM approach for many years, and the last 4 years our ViewModel are shared in the common code. We do it by using our library moko-mvvm. In the last year, we have been actively moving to using Jetpack Compose and SwiftUI to build UI in our projects. And it require MOKO MVVM improvements to make it more comfortable for developers on both platforms to work with this approach. On April 30, 2022, new version of MOKO MVVM -- 0.13.0 was released. This version has full support for Jetpack Compose and SwiftUI. Let's take an example of how you can use ViewModel from common code with these frameworks. The example will be simple -- an application with an authorization screen. Two input fields -- login and password, button Log in and a message about a successful login after a second of waiting (while waiting, we turn the progress bar). Create a project The first step is simple -- take Android Studio, install Kotlin Multiplatform Mobile IDE plugin, if not already installed. Create a project according to the template "Kotlin Multiplatform App" using CocoaPods integration (it's more convenient with them, plus we need it to connect an additional CocoaPod later). git commit Login screen on Android with Jetpack Compose The app template uses the standard Android View approach, so we need to enable Jetpack Compose before implementation of UI. Enable Compose support in androidApp/build.gradle.kts: val composeVersion = "1.1.1"android { // ... buildFeatures { compose=true } composeOptions { kotlinCompilerExtensionVersion = composeVersion } } And we add the dependencies we need, removing the old unnecessary ones (related to the usual approach with view): dependencies { implementation(project(":shared")) implementation("androidx.compose.foundation:foundation:$composeVersion") implementation("androidx.compose.runtime:runtime:$composeVersion") // UI implementation("androidx.compose.ui:ui:$composeVersion") implementation("androidx.compose.ui:ui-tooling

## 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.

## Testing a Shared KMM Repo Locally

DevFeed: [Testing a Shared KMM Repo Locally](<https://devfeed.tech/articles/testing-a-shared-kmm-repo-locally-25526.md>)

Original publisher: [Read original article](<https://aleckazakova.com/posts/local-kmm/>)

Author: Author

Published: 2021-05-04T01:37:14Z

Content type: tutorial

Language: en

Sources: [Posts on AlecStrong](<https://devfeed.tech/sources/posts-on-alecstrong.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [gradle](<https://devfeed.tech/tags/gradle.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>), [mobile](<https://devfeed.tech/tags/mobile.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

A tutorial on developing Kotlin Multiplatform Mobile code locally when shared code is maintained in a separate repository. It describes using Gradle composite builds for Android and CocoaPods local development for iOS instead of published artifacts.

### Source excerpt

There's a lot of different ways of organizing your Kotlin Multiplatform Mobile codebase, Ben Asher and I gave an overview of some of those at KotlinConf 2019, where I described a setup where the shared code lives in your iOS and Android codebase and is copied between them. The pro of this was an easy local development setup, but there are a lot of cons. We moved away from this style to a separate (third) repository for the multiplatform code last year.

## Модуляризация iOS-приложения Badoo: борьба с последствиями

DevFeed: [Модуляризация iOS-приложения Badoo: борьба с последствиями](<https://devfeed.tech/articles/ios-badoo-23631.md>)

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

Author: nsurl-dev (Badoo)

Published: 2021-01-21T17:01:19Z

Content type: tutorial

Language: ru

Sources: [Badoo EN](<https://devfeed.tech/sources/badoo-en.md>), [Badoo RU](<https://devfeed.tech/sources/badoo-ru.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Swift](<https://devfeed.tech/topics/swift.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [badoo](<https://devfeed.tech/tags/badoo.md>), [ci](<https://devfeed.tech/tags/ci.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [ios](<https://devfeed.tech/tags/ios.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [modules](<https://devfeed.tech/tags/modules.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>), [tag-73f5f2c76797](<https://devfeed.tech/tags/tag-73f5f2c76797.md>), [tag-a3309a813b61](<https://devfeed.tech/tags/tag-a3309a813b61.md>), [tag-d96e238f1419](<https://devfeed.tech/tags/tag-d96e238f1419.md>)

### AI overview

This article describes Badoo's experience expanding iOS app modularization and handling the resulting challenges. It covers dependency-graph complexity, CI load, slower application startup as modules increase, monitoring, and an internal Swift command-line utility for automating dependency-graph analysis and fixing typical linking errors.

### Source excerpt

В предыдущей статье я рассказывал о том, как мы выделили модуль чата в нашем приложении. Всё прошло успешно, и мы собирались распространить этот опыт -- начать тотальную модуляризацию в iOS-разработке Badoo. Даже презентовали подход продуктовым командам, командам, занимающимся тестированием и непрерывной интеграцией, и постепенно стали внедрять модуляризацию в наши процессы. Мы сразу понимали что будут проблемы, поэтому не торопились и раскатывали решение поэтапно, что помогло нам вовремя понять проблемы о которых пойдет речь далее. В этой статье я расскажу: -- как мы не потерялись в сложном графе зависимостей; -- как спасли CI от чрезмерной нагрузки; -- что делать, если с каждым новым модулем приложение запускается всё медленнее; -- мониторинг каких показателей стоит предусмотреть и почему это необходимо. Читать далее

## Модуляризация iOS-приложения: зачем и как мы разбиваем Badoo на модули

DevFeed: [Модуляризация iOS-приложения: зачем и как мы разбиваем Badoo на модули](<https://devfeed.tech/articles/ios-badoo-23627.md>)

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

Author: nsurl-dev (Badoo)

Published: 2020-12-03T13:26:03Z

Content type: article

Language: ru

Sources: [Badoo EN](<https://devfeed.tech/sources/badoo-en.md>), [Badoo RU](<https://devfeed.tech/sources/badoo-ru.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Expo](<https://devfeed.tech/topics/expo.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [badoo](<https://devfeed.tech/tags/badoo.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [ios](<https://devfeed.tech/tags/ios.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [modules](<https://devfeed.tech/tags/modules.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>), [tag-a3309a813b61](<https://devfeed.tech/tags/tag-a3309a813b61.md>)

### AI overview

Badoo describes its experience modularizing iOS applications, including how to define modules, organize dependencies, reduce launch time, monitor the process, automate module creation, and prevent linking errors. The article also discusses modularization as an ongoing process involving specialized, reusable modules.

### Source excerpt

В iOS-разработке Badoo мы уже несколько лет занимаемся созданием модулей, и большая часть нового кода разрабатывается вне кодовой базы приложений. Сейчас у нас более 100 модулей для Badoo и Bumble. В этой статье я расскажу о нашем опыте и отвечу на самые популярные вопросы о модуляризации: -- по какому принципу выделять модули; -- как организовать связи между ними; -- достаточно ли для фичи одного фреймворка; -- как сократить время запуска многомодульного приложения; -- зачем в этом процессе мониторинг; -- можно ли автоматизировать создание новых модулей и так далее. Мой коллега, лид команды iOS-разработки и Core-команды Артем Лоенко, в начале года говорил об этом на митапе FunCorp в докладе "Катастрофически полезные последствия модуляризации". Я приведу более подробный разбор процесса модуляризации и некоторых опущенных в его рассказе деталей. Читать далее

## SQLCipher and KMM

DevFeed: [SQLCipher and KMM](<https://devfeed.tech/articles/sqlcipher-and-kmm-25953.md>)

Original publisher: [Read original article](<https://medium.com/@kpgalligan/sqlcipher-and-kmm-58d96ea8095d?source=rss-c2f810aa7890------2>)

Author: Kevin Galligan

Published: 2020-09-23T15:17:52Z

Content type: tutorial

Language: en

Sources: [Stories by Kevin Galligan on Medium](<https://devfeed.tech/sources/stories-by-kevin-galligan-on-medium.md>)

Topics: [Encryption](<https://devfeed.tech/topics/encryption.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>)

### AI overview

A follow-up tutorial explains how to configure SQLDelight with SQLCipher for Kotlin Multiplatform, focusing on the iOS implementation. It covers forcing a fixed SQLiter version, configuring the native driver, disabling SQLite linking, and adding the SQLCipher dependency through CocoaPods.

### Source excerpt

Here's a quick little followup to Sam's post: Multiplatform Encryption with SQLDelight and SQLCipher. Recently for a client we needed to implement this with Kotlin 1.4.0, and ran into a couple issues. I'm only going to describe how to get the iOS side working as Android is pretty straightforward (although Android is in the sample and video). Here's KaMPKit updated to use SQLCipher touchlab-lab/KaMPKitSQLCipher The cipher key is hardcoded in code. Do *not* do that in your app. You need to get your key from a more secure source. Here's a video showing edits on KaMP Kit: https://medium.com/media/e66f6e9738b614e0f6e2040ef887c0c1/href SQLiter ran into an issue setting the key for SQLCipher. That apparently used to work, but stopped at some point. There was a PR to fix that, but that was not merged in before 0.7.0 was released. 0.7.0 is used in the current version of SQLDelight, so you'll need to force this fixed version. sourceSets["iosMain"].dependencies { implementation("co.touchlab:sqliter:0.7.1") { version { strictly("0.7.1") } } //etc... } We also had an issue with our custom cocoapods fork, so if by chance you're using that, you'll need to use the latest, which is version 0.12. To configure your SQLDelight driver for native, you need to supply a custom DatabaseConfiguration for SQLiter. val schema = YourDb.Schema //SQLDelight Schema val configuration = DatabaseConfiguration( name = "YourDbName", version = schema.version, create = { connection -> wrapConnection(connection) { schema.create(it) } }, upgrade = { connection, oldVersion, newVersion -> wrapConnection(connection) { schema.migrate(it, oldVersion, newVersion ) } } ,key = yourCipherKey ) val driver = NativeSqliteDriver(configuration) To get this all to work in iOS, as discussed in Sam's post, disable sqlite linking: sqldelight { database("YourDb") { packageName = "co.touchlab.yourapp.db" linkSqlite = false } } Then add the SQLCipher dependency (if using cocoapods) cocoapods[ext] { summary = "Shared code for Y

## SQLCipher and Kotlin Multiplatform Mobile - Kevin Galligan

DevFeed: [SQLCipher and Kotlin Multiplatform Mobile - Kevin Galligan](<https://devfeed.tech/articles/sqlcipher-and-kotlin-multiplatform-mobile-kevin-galligan-38319.md>)

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

Published: 2020-09-23T03:52:37Z

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>), [Encryption](<https://devfeed.tech/topics/encryption.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [code](<https://devfeed.tech/tags/code.md>), [encryption](<https://devfeed.tech/tags/encryption.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>), [mobile](<https://devfeed.tech/tags/mobile.md>), [thoughts](<https://devfeed.tech/tags/thoughts.md>)

### AI overview

A follow-up tutorial explains how to implement Kotlin Multiplatform Mobile encryption with SQLDelight and SQLCipher, focusing on configuring the iOS side for Kotlin 1.4.0. It covers SQLiter, CocoaPods, Gradle, and Xcode issues, and warns against hardcoding cipher keys.

### Source excerpt

How we implemented Kotlin Multiplatform Mobile encryption with SQDelight and SQLCipher for Kotlin 1.4.0 and made the iOS side work

[Next page](<https://devfeed.tech/tags/cocoapods.md?cursor=WyIyMDIwLTA5LTIzVDAzOjUyOjM3KzAwOjAwIiwgImQzYTFmMjlmLWJlYTAtNDYyNy05ZGU2LTIwYjBmMDU1NzA4NyJd>)