SwiftUI · iOS 16+
AppNorth para iOS con SwiftUI
Un paquete Swift con una vista SwiftUI lista para usar —tableros, ideas, votos, comentarios y feedback privado— y un cliente async/await para construir tu propia interfaz.
1. Añade el paquete
En Xcode, File → Add Package Dependencies… y pega https://github.com/victorgxn/appnorth-ios, o decláralo en Package.swift.
Package.swift// Package.swift dependencies: [ .package(url: "https://github.com/victorgxn/appnorth-ios", from: "0.2.0") ], targets: [ .target(name: "MyApp", dependencies: [ .product(name: "AppNorth", package: "appnorth-ios") ]) ]Fuente: apps/web/src/lib/sdk-install.ts 2. Configura el cliente
Inicializa el cliente con tu App ID público y muestra la comunidad con AppNorthView.
FeedbackScreen.swiftimport AppNorth let configuration = try AppNorthConfiguration( apiURL: URL(string: "https://feedback.example.com")!, appId: "your_public_app_id", origin: URL(string: "https://app.example.com")! ) let client = AppNorthClient(configuration: configuration) struct FeedbackScreen: View { var body: some View { AppNorthView(client: client) } }Fuente: packages/ios/README.md 3. Identidad verificada
Para tableros que exigen identidad, pide a tu backend una credencial de vida corta. El secreto nunca entra en la app.
Session.swift// Valores devueltos por el backend autenticado de tu app: let credential = try AppNorthIdentityCredential( email: response.email, expiresAt: response.expiresAt, // segundos Unix signature: response.signature ) client.setIdentityCredential(credential) // Al cerrar sesión: client.clearIdentityCredential()Fuente: packages/ios/README.md 4. O usa el cliente directamente
Todas las altas añaden una clave de idempotencia; los errores llegan como AppNorthError.
CustomBoard.swiftlet boards = try await client.boards() let page = try await client.ideas(board: boards.first?.slug, sort: .top) let created = try await client.createIdea( board: boards[0].slug, title: "Add dark mode", description: "Follow the system appearance" ) try await client.setVote(on: created.value.id, voted: true)Fuente: packages/ios/README.md