Pantrix UI

Platformlar

Her platformun giriş noktası aynı App()'i çizer ve tema onu platforma kendiliğinden uydurur. Platformdan platforma neyin değiştiği ve bir projenin her biri için ne eklediği.

Tek uygulama, dört giriş noktası

Android

MainActivity.kt

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        enableEdgeToEdge()
        super.onCreate(savedInstanceState)
        setContent { App() }
    }
}

iOS

MainViewController.kt

fun MainViewController(): UIViewController = ComposeUIViewController { App() }

Masaüstü

Main.kt

fun main() = application {
    Window(onCloseRequest = ::exitApplication, title = "My app") {
        App()
    }
}

Web

Main.kt

@OptIn(ExperimentalComposeUiApi::class)
fun main() {
    ComposeViewport(viewportContainerId = "app") {
        PantrixTypefaceGate(onShown = { document.getElementById("loading")?.remove() }) {
            App()
        }
    }
}

Temanın uydurdukları

Platforma göre
AndroidiOSMasaüstüWeb
Dokunma hedefi48dp44ptİmleçle 32dp32dp, parmakla 48dp
Odak halkasıKlavye içinKlavye içinKlavye içinKlavye için
Bileşen stilleriAndroid'inkiiOS'unkiMasaüstününküWeb'inki
Dokunsal geri bildirimÇalarÇalarYokYok
İmleç biçimleriFareyleYokVarVar

PantrixTheme.platform hangi alışkanlıkların geçerli olduğunu söyler: type'ı, dokunmayla kullanılıp kullanılmadığı, en küçük dokunma hedefi. Bir telefonun tarayıcısı dokunmayla kullanılan web'dir; tema bunu kendisi bilir.

Her platformda

Android
API 30 ve üstü. enableEdgeToEdge() uygulamanın sistem çubuklarının arkasına çizmesine izin verir, PantrixScaffold içeriğini onlardan uzak tutar. En dıştaki tema etiketleri Maestro'nun ve UI Automator'ın bulduğu kaynak kimlikleri yapar.
iOS
Cihazlar ve Apple silikonda simülatör. Kütüphane iOS 27.1 SDK'sıyla derlenir ve katlanmanın köprüsünü getirir: projenin kendine ait bir cinterop'u gerekmez. Durum çubuğu, klavye ve kontroller temayı izler: Sistem çubukları.
Masaüstü
JVM. Pencerenin başlığı PantrixWindowTitle ile ekranı izler; bütün pencerenin kısayolu her sistem için bir kez yazılır: Klavye kısayolları.
Web
Wasm ve JS. PantrixTypefaceGate uygulamayı yazı tipi geldikten sonra çizer; yazı okurun gözü önünde hiç değişmez: Web yazı tipleri.

Sırada ne var