fluxa/appleApp
KhooLy 909906fab3 Build real Stremio login for iOS Auth, Keychain-backed session storage
Fixes AppleAuthDataSource: continueWithNuvio/continueWithStremio/
continueWithoutAccount were incorrectly routed through Swift
notifications - Android handles all three as pure local UI-state
transitions (no network), so this matches that instead of adding
unnecessary indirection.

submit() for the Credentials stage now posts a real request that
FluxaAppleAuthStartup.swift picks up: FluxaAppleStremioAuthClient
mirrors StremioService.kt's api.strem.io/api/login and /api/register
endpoints via URLSession, and the resulting session (id/email/authKey)
is persisted through FluxaAppleAuthStore using the Keychain generic-
password API (kSecClassGenericPassword, accessible-after-first-unlock),
not UserDefaults - this is the first credential-bearing data iOS
persists, unlike the existing UserDefaults-backed local stores.

Nuvio login/import is out of scope here: Android's version pulls
profile/addons/library/progress/history/collections through
NuvioAccountImportCoordinator, which needs library and addon-store
integration iOS doesn't have yet. The Nuvio stage transition works
(continueWithNuvio), but submitting Nuvio credentials currently has no
Swift listener - same "reachable but inert" scope already established
for AddonStore.

The error-state message on failed Stremio login is a hardcoded English
string rather than routed through AppStrings, since calling Kotlin's
AppStrings.t() from pure Swift needs framework-export verification I
can't perform without Xcode.

Caveat: this Swift code (Keychain access, URLSession networking) is
unverified - no Xcode/macOS toolchain available in this environment.
Only the Kotlin side (AppleAuthDataSource, all Gradle targets) is
compile-checked. Needs a real Xcode build and device/simulator test
before shipping.
2026-07-14 13:56:30 +03:00
..
AppleCore Build real Stremio login for iOS Auth, Keychain-backed session storage 2026-07-14 13:56:30 +03:00
Generated Initialize Apple Rust headless runtime 2026-07-13 15:46:26 +03:00
iOS Build real Stremio login for iOS Auth, Keychain-backed session storage 2026-07-14 13:56:30 +03:00
scripts Support macOS Bash in Rust build script 2026-07-13 14:16:15 +03:00
Shared Add shared catalog action boundary 2026-07-13 15:08:20 +03:00
tvOS Initialize Apple Rust headless runtime 2026-07-13 15:46:26 +03:00
.gitignore Build Apple Rust core in CI 2026-07-13 13:58:40 +03:00
project.yml Initialize Apple Rust headless runtime 2026-07-13 15:46:26 +03:00
README.md Add Apple multiplatform foundation 2026-07-13 03:47:45 +03:00

Apple hosts

FluxaIos is a SwiftUI host for the Compose Multiplatform FluxaShared framework. FluxaTvos is a native SwiftUI host backed by the Kotlin Multiplatform FluxaCore framework.

On macOS, install XcodeGen and generate the project:

cd appleApp
xcodegen generate
open FluxaApple.xcodeproj

The Xcode build phase invokes Gradle with the active Xcode SDK and architecture, then embeds the matching framework. Both targets bundle the shared English and Turkish i18n files from core/src/androidMain/assets/i18n.