You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
First-class mobile support: a core plus an adapter per framework #307
Make mobile apps first-class in the devtools, not just "able to connect". Start with mobile (Capacitor, Ionic, NativeScript, Angular Native), then other frameworks. A mobile app should get the same inspectors, agent tools and setup experience as a browser tab, plus what only its platform has.
Goal: first-class mobile support. Mobile first, other frameworks later.
Shape: one core plus an adapter per framework.
Core: collectors, page reports, page identity (pageId and a platform tag), the connection (server address, transport, reconnect), redaction and agent tools.
Adapter: the platform's HostTree, runtime shims (WebSocket, location, window), setup and native settings, and inspectors only that platform has.
Packaging, easiest first: everything stays in @pangular-inspector/devtools, with adapters as entry points like overlay-nativescript and overlay-manual. An adapter moves to its own package (e.g. @pangular-inspector/capacitor) only when it needs native code or CLI hooks (npx cap sync, ns).
Server address without typing an IP. The build tool (Vite plugin, hub or CLI) knows the dev machine's LAN address and could inject it at build time. This would cover every adapter.
Platform network settings (dev builds only):
Android blocks cleartext http, and a Capacitor page on https://localhost talking to an http server is mixed content.
iOS needs local-networking allowed in ATS.
Options: a docs step, a setup command, or a native plugin per framework. A NativeScript plugin can merge these settings itself; a Capacitor plugin can't easily change the app's Info.plist.
Allowed origins and auth for device origins (https://localhost, capacitor://localhost), and listening on 0.0.0.0.
Platform inspectors. The first agreed one is a Capacitor tab:
installed plugins and their availability per platform
a live log of plugin calls (plugin, method, redacted args, result or error, duration)
listeners and their events
"not implemented on this platform" errors
matching agent tools
What Ionic adds on top of Capacitor. Does Ionic need its own view (for example the ion-router-outlet page stack, or open modals, popovers and toasts), or is the Capacitor tab plus the existing inspectors enough? Does it get its own dock and logo in the hub?
Agent tools on devices.list-pages should make a device page obvious (e.g. "Capacitor, Android"), and a backgrounded app should expire cleanly. Action tools need timeouts that suit Wi-Fi round trips.
Does Angular Native run on NativeScript and share its adapter, or stay separate?
Goal
Make mobile apps first-class in the devtools, not just "able to connect". Start with mobile (Capacitor, Ionic, NativeScript, Angular Native), then other frameworks. A mobile app should get the same inspectors, agent tools and setup experience as a browser tab, plus what only its platform has.
Where things stand
overlay-nativescript, feat: NativeScript support (native overlay, example app, standalone server fixes) #16), verified on an iOS simulator. The app passes the server address by hand, e.g.initNativeScriptOverlay({ baseURL: 'http://localhost:9999/' }).overlay-angular-native); reports carryplatform: 'angular-native'.overlay-manualplusconnectionMetaforinitOverlay) is being ported onto current main.HostTreeadapter (feat: NativeScript support (native overlay, example app, standalone server fixes) #16):domTree()for browsers, a native view tree for NativeScript. So the core and adapter split already exists in part.Decided so far
pageIdand aplatformtag), the connection (server address, transport, reconnect), redaction and agent tools.HostTree, runtime shims (WebSocket,location,window), setup and native settings, and inspectors only that platform has.@pangular-inspector/devtools, with adapters as entry points likeoverlay-nativescriptandoverlay-manual. An adapter moves to its own package (e.g.@pangular-inspector/capacitor) only when it needs native code or CLI hooks (npx cap sync,ns).Open questions
https://localhosttalking to anhttpserver is mixed content.https://localhost,capacitor://localhost), and listening on0.0.0.0.ion-router-outletpage stack, or open modals, popovers and toasts), or is the Capacitor tab plus the existing inspectors enough? Does it get its own dock and logo in the hub?list-pagesshould make a device page obvious (e.g. "Capacitor, Android"), and a backgrounded app should expire cleanly. Action tools need timeouts that suit Wi-Fi round trips.Not in scope here