Integrate iOS App - #3
Closed
jewelboi14 wants to merge 16 commits into
Closed
Conversation
- Added NSObject import from platform.darwin for iOS protocol implementations - Fixed NSMutableData initialization for receive file buffer - Added ExperimentalForeignApi opt-in annotations - Fixed UInt/ULong type conversions in use cases - Configured proper iosMain source set hierarchy in build.gradle.kts - Added Java 17 configuration for Xcode builds - Linked SystemConfiguration framework for network monitoring - Implemented ArkDrop bridge wrapper for iOS - Added send/receive file implementations for iOS - Configured cinterop for Objective-C bridge
jewelboi14
had a problem deploying
to
Development
February 5, 2026 13:19 — with
GitHub Actions
Failure
jewelboi14
had a problem deploying
to
Development
February 5, 2026 13:19 — with
GitHub Actions
Failure
- Add .github/workflows/release-ios.yml (Testflight, same secrets as Rate-iOS) - Add fastlane Fastfile, Appfile, Gemfile - Add shared iosApp.xcscheme - Update bundle ID to com.arkbuilders.Drop (from deprecated Drop-iOS) - Update Release config: Team SQNXHTL7FT, manual signing Co-authored-by: Cursor <cursoragent@cursor.com>
jewelboi14
temporarily deployed
to
Testflight
February 17, 2026 12:42 — with
GitHub Actions
Inactive
jewelboi14
had a problem deploying
to
Development
February 17, 2026 12:42 — with
GitHub Actions
Failure
jewelboi14
had a problem deploying
to
Development
February 17, 2026 12:42 — with
GitHub Actions
Failure
…ties Gradle will use JAVA_HOME from environment (set by GitHub Actions) Co-authored-by: Cursor <cursoragent@cursor.com>
jewelboi14
temporarily deployed
to
Testflight
February 17, 2026 12:52 — with
GitHub Actions
Inactive
jewelboi14
had a problem deploying
to
Development
February 17, 2026 12:52 — with
GitHub Actions
Failure
jewelboi14
temporarily deployed
to
Development
February 17, 2026 12:52 — with
GitHub Actions
Inactive
jewelboi14
temporarily deployed
to
Testflight
February 17, 2026 13:01 — with
GitHub Actions
Inactive
jewelboi14
temporarily deployed
to
Development
February 17, 2026 13:01 — with
GitHub Actions
Inactive
jewelboi14
had a problem deploying
to
Development
February 17, 2026 13:01 — with
GitHub Actions
Failure
jewelboi14
temporarily deployed
to
Testflight
February 18, 2026 12:50 — with
GitHub Actions
Inactive
jewelboi14
temporarily deployed
to
Testflight
February 18, 2026 12:53 — with
GitHub Actions
Inactive
- Config.xcconfig: use // instead of # for comment (fix preprocessor directive error) - Add copyFrameworkForXcode Gradle task to copy XCFramework to path Xcode expects - Add Gradle pre-build step in workflow before Xcode build Co-authored-by: Cursor <cursoragent@cursor.com>
jewelboi14
temporarily deployed
to
Testflight
February 18, 2026 13:04 — with
GitHub Actions
Inactive
jewelboi14
temporarily deployed
to
Development
February 18, 2026 13:05 — with
GitHub Actions
Inactive
jewelboi14
had a problem deploying
to
Development
February 18, 2026 13:05 — with
GitHub Actions
Failure
Replace custom task with Copy task to avoid project ref at execution time Co-authored-by: Cursor <cursoragent@cursor.com>
jewelboi14
temporarily deployed
to
Testflight
February 18, 2026 14:31 — with
GitHub Actions
Inactive
jewelboi14
temporarily deployed
to
Development
February 18, 2026 14:31 — with
GitHub Actions
Inactive
jewelboi14
had a problem deploying
to
Development
February 18, 2026 14:31 — with
GitHub Actions
Failure
- Match provisioning profile (Drop-AppStore) - Add XCFramework-Info.plist template for when Kotlin doesn't create it Co-authored-by: Cursor <cursoragent@cursor.com>
jewelboi14
temporarily deployed
to
Testflight
February 18, 2026 15:14 — with
GitHub Actions
Inactive
jewelboi14
had a problem deploying
to
Development
February 20, 2026 14:26 — with
GitHub Actions
Failure
jewelboi14
temporarily deployed
to
Development
February 20, 2026 14:26 — with
GitHub Actions
Inactive
jewelboi14
temporarily deployed
to
Testflight
February 20, 2026 15:12 — with
GitHub Actions
Inactive
jewelboi14
had a problem deploying
to
Development
February 20, 2026 15:12 — with
GitHub Actions
Failure
jewelboi14
temporarily deployed
to
Development
February 20, 2026 15:12 — with
GitHub Actions
Inactive
jewelboi14
temporarily deployed
to
Testflight
February 20, 2026 15:44 — with
GitHub Actions
Inactive
jewelboi14
had a problem deploying
to
Development
February 20, 2026 15:44 — with
GitHub Actions
Failure
jewelboi14
temporarily deployed
to
Development
February 20, 2026 15:44 — with
GitHub Actions
Inactive
jewelboi14
temporarily deployed
to
Testflight
February 20, 2026 16:02 — with
GitHub Actions
Inactive
jewelboi14
temporarily deployed
to
Development
February 20, 2026 16:02 — with
GitHub Actions
Inactive
jewelboi14
had a problem deploying
to
Development
February 20, 2026 16:02 — with
GitHub Actions
Failure
…ion ARK-Builders#10 Co-authored-by: Cursor <cursoragent@cursor.com>
jewelboi14
force-pushed
the
feature/kmp-ios-impl
branch
from
February 20, 2026 16:21
35172ab to
74d83d0
Compare
jewelboi14
temporarily deployed
to
Testflight
February 20, 2026 16:21 — with
GitHub Actions
Inactive
jewelboi14
temporarily deployed
to
Development
February 20, 2026 16:21 — with
GitHub Actions
Inactive
jewelboi14
had a problem deploying
to
Development
February 20, 2026 16:21 — with
GitHub Actions
Failure
Co-authored-by: Cursor <cursoragent@cursor.com>
jewelboi14
temporarily deployed
to
Testflight
February 20, 2026 17:11 — with
GitHub Actions
Inactive
jewelboi14
had a problem deploying
to
Development
February 20, 2026 17:11 — with
GitHub Actions
Failure
jewelboi14
temporarily deployed
to
Development
February 20, 2026 17:11 — with
GitHub Actions
Inactive
Co-authored-by: Cursor <cursoragent@cursor.com>
jewelboi14
temporarily deployed
to
Testflight
February 20, 2026 17:22 — with
GitHub Actions
Inactive
jewelboi14
had a problem deploying
to
Development
February 20, 2026 17:22 — with
GitHub Actions
Failure
jewelboi14
temporarily deployed
to
Development
February 20, 2026 17:22 — with
GitHub Actions
Inactive
kirillt
reviewed
May 7, 2026
| tags: | ||
| - 'v*' | ||
| branches: | ||
| - 'feature/kmp-ios-impl' # TEMPORARY: Remove after testing |
This was referenced May 21, 2026
Closed
Member
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🎉 iOS Native Application Implementation
This PR implements a complete native iOS application for Drop KMP, bringing full feature parity with the Android app using SwiftUI and native iOS patterns.
📋 Overview
This implementation adds a fully functional iOS app that integrates seamlessly with the existing Kotlin Multiplatform shared module. The app includes all core features: file sending/receiving via QR codes, transfer history, and user profile management.
✨ What's New
🍎 Complete iOS UI Implementation
🎨 Design System
Created a comprehensive design system matching the Android app:
🧩 UI Components
Built reusable components following iOS design patterns:
AvatarView- User avatar display with multiple optionsDropButton- Primary action buttonsDropCard- Container component for content cardsEmptyStateView- Empty state handlingErrorView- Error state displayLoadingView- Loading indicatorsProgressBar- Transfer progress visualization🔗 Native Bridge Layer
Implemented a robust bridge between Swift/iOS APIs and Kotlin:
ArkDropBridge.h/m) - Native iOS API wrappersArkDropBridge.swift) - File operations, QR scanning, network utilitiesArkDropBridgeWrapper.ios.kt) - C-interop integration📦 Shared Module Enhancements
Extended the Kotlin Multiplatform shared module with iOS-specific implementations:
Platform Helpers:
AvatarHelper.ios.kt- Avatar resource managementNetworkStatus.ios.kt- Network connectivity monitoringPermissionsHelper.ios.kt- iOS permissions handlingResourcesHelper.ios.kt- File system and resource accessDrop Protocol Implementations:
DropSendFilesBubbleImpl.ios.kt- Sender bubbleSenderFileDataImpl.ios.kt- File data handling for sendingSenderFilesSubscriberImpl.ios.kt- Send progress subscriptionDropReceiveFilesBubbleImpl.ios.kt- Receiver bubbleDropReceiveFilesSubscriberImpl.ios.kt- Receive progress subscriptionDependency Injection:
KoinHelper.kt- iOS Koin initializationKoinInitializer.kt- DI setup for Swift accessPlatformModule.ios.kt🏗️ Architecture
ArkDropBridge.defadd_files_to_xcode.shscript for Xcode project managementBreakdown:
🔧 Technical Details
Dependencies Added:
Build Configuration:
🚀 How to Test
iosApp/iosApp.xcodeproj📝 Notes
Please pay special attention to: