All use cases

One feedback loop across clients

Keep mobile requests connected to the same public plan.

PrioSmith documents iOS, Android, and Flutter web-view examples that open the hosted portal. Treat each as a starting point and test navigation, identity, and lifecycle behavior in your real app.

One connected workflow

Collect once. Keep the outcome visible.

  1. 01Open the hosted board

    Begin with the portal URL so mobile users reach the same project as web users.

  2. 02Adapt the client example

    Choose the documented iOS, Android, or Flutter starting point and test it in the real navigation stack.

  3. 03Share progress

    Use the public roadmap and changelog so submitted requests remain visible after collection.

Documented starting points

Integration examples, clearly scoped.

These snippets reflect examples already documented inside PrioSmith. They are not proof of production behavior in your client. Validate navigation, security, accessibility, and lifecycle handling before release.

iOS web view

Toolchain-checked integration example — validate lifecycle in your app

Swift
import Foundation
import SwiftUI
import WebKit

struct PrioSmithFeedbackView: UIViewRepresentable {
    private let portalURL = URL(string: "https://app.priosmith.example/p/PROJECT_SLUG/board")!

    func makeUIView(context: Context) -> WKWebView {
        let webView = WKWebView(frame: .zero)
        webView.load(URLRequest(url: portalURL))
        return webView
    }

    func updateUIView(_ webView: WKWebView, context: Context) {}
}

Android web view

Toolchain-checked integration example — validate lifecycle in your app

Kotlin
import android.annotation.SuppressLint
import android.webkit.WebView

@SuppressLint("SetJavaScriptEnabled")
fun openPrioSmithFeedback(webView: WebView) {
    webView.settings.javaScriptEnabled = true
    webView.loadUrl("https://app.priosmith.example/p/PROJECT_SLUG/board")
}

Flutter web view

Toolchain-checked integration example — validate lifecycle in your app

Dart
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

// macOS: enable App Sandbox > Outgoing Connections (Client) on Runner.
class PrioSmithFeedbackView extends StatefulWidget {
  const PrioSmithFeedbackView({super.key});

  @override
  State<PrioSmithFeedbackView> createState() => _PrioSmithFeedbackViewState();
}

class _PrioSmithFeedbackViewState extends State<PrioSmithFeedbackView> {
  late final WebViewController _controller;

  @override
  void initState() {
    super.initState();
    _controller = WebViewController()
      ..setJavaScriptMode(JavaScriptMode.unrestricted)
      ..loadRequest(Uri.parse('https://app.priosmith.example/p/PROJECT_SLUG/board'));
  }

  @override
  Widget build(BuildContext context) {
    return WebViewWidget(controller: _controller);
  }
}

The client changes. The customer loop stays intact.

Keep collected requests connected to the public roadmap and the changelog customers can return to after a release ships.

Open the workshop