Skip to content

Kotlin HTTP transport and lean Foundation for Android#3

Merged
colemancda merged 22 commits into
masterfrom
feature/android
Jul 20, 2026
Merged

Kotlin HTTP transport and lean Foundation for Android#3
colemancda merged 22 commits into
masterfrom
feature/android

Conversation

@colemancda

Copy link
Copy Markdown
Member

Summary

  • Replace URLSession/FoundationNetworking on Android with the HTTPTypes-based HTTPClient protocol implemented in Kotlin: a synchronous, JNI-callback-compatible AndroidHTTPTransport protocol (swift-java enableJavaCallbacks), a Kotlin HttpURLConnection implementation, and a Swift adapter bridging it to the async HTTPClient off the cooperative thread pool.
  • Prefer FoundationEssentials throughout the dependency graph (including the updated CoreModel-SQLite pin), dropping full Foundation, FoundationInternationalization, ICU, FoundationNetworking, and FoundationXML from the Android app entirely — staged native libraries shrink from ~250 MB to 59 MB.
  • Configure the JDK for swift-java's Java-callbacks sub-build and document the new transport architecture.

Test plan

  • swift test (24 tests) passing on macOS
  • Android cross-compile clean; every staged .so DT_NEEDs only libFoundationEssentials.so
  • Verified on emulator against the local test server: locations list, detail, and fuel prices fetch live through the Kotlin transport with no crashes

Three jobs: swift build/test for the core package, an xcodebuild pass
compiling Fueling.swiftpm for the iOS Simulator, and a full Android
cross-compile (Swift Android SDK + NDK + Gradle) producing a debug APK.
Makes the macOS unit test run a distinct, clearly-labeled job in the
Actions UI instead of a step folded into the build job.
Add GitHub Actions CI for iOS and Android
@colemancda
colemancda merged commit 61e66cd into master Jul 20, 2026
3 of 4 checks passed
@colemancda
colemancda deleted the feature/android branch July 20, 2026 04:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant