Skip to content

feat(android): make plugins optional modules and publish through JitPack - #38

Merged
heoblitz merged 6 commits into
feature/android-supportfrom
feature/android-optional-plugins
Nov 12, 2026
Merged

heoblitz merged 6 commits into
feature/android-supportfrom
feature/android-optional-plugins

Conversation

@heoblitz

@heoblitz heoblitz commented Nov 12, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Follows up on #17. The Android SDK shipped every plugin inside necto-core and
necto-android, so an app that wanted only the bridge still carried every panel,
DataStore and the UI Control runtime. This splits each plugin into its own Gradle
module, mirroring the Swift package products, and publishes the modules through
JitPack.

  • necto-android is now the bridge only: the ADB listener and app identity.
  • Each feature is its own artifact with its own panel, named after the Swift
    product it mirrors: necto-events-plugin, necto-network-plugin,
    necto-okhttp-capture-plugin, necto-files-plugin, necto-performance-plugin,
    necto-process-metric-plugin, necto-ui-control-plugin,
    necto-datastore-preferences-plugin.
  • jitpack.yml publishes every module under com.github.toss.necto.
  • script/test-android-consumer builds five independent minified apps from the
    published artifacts and checks that unselected plugins stay out. It runs in CI.
  • The root README, setup, architecture and verification docs now describe Android.

Changelog

Android: plugins are separate Gradle modules, available through JitPack.

Test Plan

  • JitPack built commit 63d531fe69 and published all eleven modules under their
    new names, each with its POM and Gradle module metadata.
  • JVM unit tests pass for necto-core, necto-network-plugin,
    necto-okhttp-capture-plugin and necto-performance-plugin, and all twelve
    Gradle projects configure.
  • script/test-android-sample and script/test-android-security pass over USB on
    a Samsung Galaxy S25 (SM-S931N, Android 17, API 37). This run predates the
    module rename.

Not run locally, covered by this PR's CI:

  • The full ./gradlew build, script/test-android-artifacts and
    script/test-android-consumer.

Not verified:

  • script/test-android-consumer --jitpack against the JitPack artifacts.
  • The device run used a sample built from the split modules before these
    commits, not one rebuilt from them.
  • The documentation site build.

The README, setup, architecture and verification docs covered iOS only. They now
name the Android SDK, its ADB connection and its checks, and the Android
verification notes record a device run with the plugins in their own modules.
Pairing simulators with iOS and emulators with Android read as if an Android
device were not supported.
The Gradle modules now mirror the Swift package products, and a plugin can be
told from the bridge by its name: necto-events-plugin, necto-network-plugin,
necto-files-plugin, necto-performance-plugin, necto-process-metric-plugin,
necto-ui-control-plugin, necto-datastore-preferences-plugin and
necto-okhttp-capture-plugin. necto-core, necto-android and necto-plugin-support
keep their names.
The setup guide sent Android readers to another page. It now has a section for
each platform, with the connection notes shared at the end, and the landing page
no longer describes Necto as iOS only.
The sentence is about connecting without a proxy or a certificate. The ways to
connect are listed in the setup guide.
@heoblitz
heoblitz merged commit a1f3efc into feature/android-support Nov 12, 2026
@heoblitz
heoblitz deleted the feature/android-optional-plugins branch November 12, 2026 02:02
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