KMP WORDPRESS + ANDROID PARSE · INSTALLATION
WPKit
Klient i UI WordPress KMP oraz adapter Parse/Paging dla Androida.
A KMP WordPress client/UI with the Android Parse/Paging adapter.
1. Dodaj repozytorium pakietów1. Add the package repository
Dodaj repozytorium do dependencyResolutionManagement w pliku settings.gradle.kts. Dane dostępowe są pobierane wyłącznie ze zmiennych środowiskowych — dokumentacja celowo nie zawiera żadnych wartości kluczy.
Add the repository to dependencyResolutionManagement in settings.gradle.kts. Credentials are read only from environment variables—this documentation intentionally contains no key values.
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven {
url = uri("https://maven.pkg.github.com/nerdrip/wpkit")
credentials {
username = providers.environmentVariable("GITHUB_ACTOR").orNull
password = providers.environmentVariable("GITHUB_TOKEN").orNull
}
}
}
}
GITHUB_ACTOR i GITHUB_TOKEN w lokalnym środowisku lub magazynie sekretów CI. Token do pobierania pakietów wymaga uprawnienia read:packages. Nie zapisuj jego wartości w repozytorium.
Set GITHUB_ACTOR and GITHUB_TOKEN in your local environment or CI secret store. Package downloads require read:packages. Never store the token value in the repository.
2. Wybierz kanał i dodaj zależność2. Choose a channel and add the dependency
Kotlin Multiplatform Stable 3.x
wpkit-core dodaj do commonMain. Gradle wybierze Ktor Android, CIO dla JVM/Desktop, Darwin dla iOS lub JS dla Wasm. Nie deklaruj ręcznie wygenerowanych współrzędnych -android, -jvm, -ios* ani -wasm-js.
Add wpkit-core to commonMain. Gradle selects Ktor Android, CIO for JVM/Desktop, Darwin for iOS or JS for Wasm. Do not declare generated -android, -jvm, -ios* or -wasm-js coordinates.
kotlin {
sourceSets {
commonMain.dependencies {
implementation("rip.nerd.wpkit:wpkit-core:3.0.0")
}
androidMain.dependencies {
// Optional legacy Views/Paging/Parse adapter:
implementation("rip.nerd.wpkit:wpkit:3.0.0")
}
}
}
rip.nerd.wpkit.multiplatform. Historyczny adapter Android pozostaje w rip.nerd.wpkit.core; rozdzielone namespace pozwalają używać obu artefaktów w jednym APK bez duplikatów klas.Import the KMP API from rip.nerd.wpkit.multiplatform. The legacy Android adapter remains in rip.nerd.wpkit.core; distinct namespaces let both artifacts coexist in one APK without duplicate classes.Snapshot 3.0.1
dependencies {
implementation("rip.nerd.wpkit:wpkit-core:3.0.1-SNAPSHOT")
implementation("rip.nerd.wpkit:wpkit:3.0.1-SNAPSHOT") // Android, optional
}
wpkit-core nie zależy od KitsuneDB ani KitsuneNET. Androidowy wpkit 3.0.1-SNAPSHOT używa snapshotów 3.0.1 obu bibliotek i workflow czeka na ich publikację przed testem.wpkit-core has no KitsuneDB or KitsuneNET dependency. The Android wpkit 3.0.1-SNAPSHOT uses both 3.0.1 snapshots and its workflow waits for them before verification.Katalog artefaktówArtifact catalog
| Artifact | Funkcja i zakresFunction and scope | Platforms |
|---|---|---|
wpkit-core | WordPress REST posts, pages, taxonomies and menus; typed Workspace endpoints; bounded media/network decoding; account lifecycle; token leases; outbox/conflicts; webhook verification; and Compose Multiplatform components. | Android, JVM, iOS, Wasm |
wpkit | Legacy Android facade with Views, Paging 3, Parse SDK and KitsuneDB/KitsuneNET integration. It exports wpkit-core for Android consumers. | Android only |
Magazyny zależne od aplikacji są otwarte przez WPAccountStore, WPTokenStore i WPOutboxStore. Na iOS użyj Keychain dla sesji, na Androidzie szyfrowanego magazynu, a na Web własnej polityki IndexedDB/cookie. WPKit nie zapisuje tokenów do niezabezpieczonego localStorage i nie wymusza jednego dostawcy.
Application-specific persistence is open through WPAccountStore, WPTokenStore and WPOutboxStore. Use Keychain for sessions on iOS, encrypted storage on Android and an application-owned IndexedDB/cookie policy on Web. WPKit does not put tokens in unprotected localStorage or force one provider.
3. Zsynchronizuj i sprawdź projekt3. Sync and verify the project
Po zmianie zależności wykonaj synchronizację Gradle, a następnie zbuduj wariant debug aplikacji:
After changing the dependency, sync Gradle and build the app's debug variant:
./gradlew :app:assembleDebug
W systemie Windows użyj gradlew.bat zamiast ./gradlew.
On Windows, use gradlew.bat instead of ./gradlew.
wpkit.workspaceToken=<workspace-token> w ignorowanym local.properties albo zmienną środowiskową WPKIT_WORKSPACE_TOKEN. Bez tokenu demo używa standardowego WordPress REST API.The demo app does not store a token in the repository. Optionally set wpkit.workspaceToken=<workspace-token> in the ignored local.properties file or provide WPKIT_WORKSPACE_TOKEN. Without a token, the demo uses the standard WordPress REST API.Ręczna publikacja wersjiManual version publishing
Poniższe polecenia są przeznaczone dla opiekuna biblioteki. Wartości poświadczeń pozostają w środowisku lub magazynie sekretów i nie są częścią komendy.
The commands below are for library maintainers. Credential values remain in the environment or secret store and are never part of the command.
Snapshot z gałęzi developSnapshot from the develop branch
./gradlew :wpkit:publishAarPublicationToGitHubPackagesRepository :wpkit-core:publishAllPublicationsToGitHubPackagesRepository -Psnapshot=true --no-daemon
Buduje wariant deweloperski i publikuje wersję z sufiksem -SNAPSHOT.
Builds the development variant and publishes a version carrying the -SNAPSHOT suffix.
Wersja stabilna z main lub taga wydaniaStable version from main or a release tag
./gradlew :wpkit:publishAarPublicationToGitHubPackagesRepository :wpkit-core:publishAllPublicationsToGitHubPackagesRepository -Psnapshot=false --no-daemon
Buduje wariant release bez sufiksu. Uruchamiaj wyłącznie z czystego commita przeznaczonego do wydania.
Builds the release variant without a suffix. Run it only from a clean commit intended for release.
Lokalny snapshot do pracyLocal development snapshot
./gradlew :wpkit:publishAarPublicationToMavenLocal :wpkit-core:publishToMavenLocal -Psnapshot=true --no-daemon
Zadanie Maven Local publikuje linię 3.x z sufiksem -local-SNAPSHOT. POM androidowego adaptera wskazuje wtedy wyłącznie kitsunedb:3.0.1-local-SNAPSHOT i kitsunenet:3.0.1-local-SNAPSHOT, więc test nie miesza lokalnego WPKit ze zdalnymi zależnościami.
The Maven Local task publishes the 3.x line with the -local-SNAPSHOT suffix. The Android adapter POM then references only kitsunedb:3.0.1-local-SNAPSHOT and kitsunenet:3.0.1-local-SNAPSHOT, so the test never mixes local WPKit with remote dependencies.
Lokalna wersja produkcyjnaLocal production build
./gradlew :wpkit:publishAarPublicationToMavenLocal :wpkit-core:publishToMavenLocal -Psnapshot=false --no-daemon
Publikuje wariant release jako rip.nerd.wpkit:wpkit:3.0.0-local. Wersja produkcyjna lokalna nie ma sufiksu -SNAPSHOT.
Publishes the release variant as rip.nerd.wpkit:wpkit:3.0.0-local. A local production build never carries the -SNAPSHOT suffix.
mavenLocal() i używać dokładnej wersji -local. Dzięki osobnym współrzędnym lokalny artefakt nie może zasłonić zdalnego Stable ani Snapshot.The test project must enable mavenLocal() and request the exact -local version. Separate coordinates prevent a local artifact from shadowing remote Stable or Snapshot builds.repositories { mavenLocal() }
dependencies {
implementation("rip.nerd.wpkit:wpkit:3.0.1-local-SNAPSHOT")
}
ZasadyRules
*MavenLocal*zawsze dodaje-local; opcja-Plocal=truesłuży tylko do podglądu wersji, np. przezprintPublicationVersion.*MavenLocal*always adds-local;-Plocal=trueis only needed to inspect the version, for example withprintPublicationVersion.- Artefaktów
-localnie wolno wysyłać do współdzielonego repozytorium; build zdalnej publikacji jest przed tym zabezpieczony.-localartifacts must never be uploaded to a shared repository; remote publishing fails fast if this is attempted. -local-SNAPSHOTjest nadpisywalny. Przed opublikowaniem zmienionej wersji-localbez Snapshot należy podnieśćbaseVersion.-local-SNAPSHOTis replaceable. BumpbaseVersionbefore publishing changed-localcontent without Snapshot.- Po wydaniu 3.0.0 gałąź
developpublikuje3.0.1-SNAPSHOT; wersje stabilne powstają wyłącznie z tagów wydania.After the 3.0.0 release,developpublishes3.0.1-SNAPSHOT; stable versions are created only from release tags.