Skip to content
AppNorth
Log in

iOS SDK

Community view

Use AppNorthView to show your project's boards and ideas, let people propose improvements, and open idea details with comments.

View Markdown

Present the community

Retain the configured client outside the view body. The SDK owns the community navigation stack; a sheet is a convenient entry from an existing settings screen.

CommunityEntry.swift
import SwiftUI
import AppNorth

struct CommunityEntry: View {
    let client: AppNorthClient
    @State private var isPresented = false

    var body: some View {
        Button("Ideas and roadmap") { isPresented = true }
            .sheet(isPresented: $isPresented) {
                AppNorthView(client: client)
            }
    }
}

The screen loads boards and ideas, offers board and sort controls, supports pull to refresh, and opens a creation sheet. Votes update optimistically and revert on failure. The built-in list loads the first page; use the client API for your own paginated list.

Match your community policies

Each board supplies independent submission, vote, and comment policies: anyone, identified, or disabled. Install a verified identity for identified actions. The SDK uses these policies for controls; the server also enforces them.

Open and closed filtering follows AppNorthBoardStatus.isFinal, not a hard-coded status name. Disable the filter when you want one combined list:

CombinedCommunity.swift
import SwiftUI
import AppNorth

struct CombinedCommunity: View {
    let client: AppNorthClient

    var body: some View {
        AppNorthView(
            client: client,
            uiConfiguration: AppNorthUIConfiguration(
                showsOpenClosedFilter: false,
                upvoteIcon: .thumbsUp,
                showsChatButton: false
            )
        )
    }
}

showsChatButton defaults to true; the floating entry still depends on chat availability. Branding comes from widgetConfig(). A failed branding request does not prevent the community from loading.

Keep pending ideas honest

Creation responses include moderated. Treat a moderated submission as awaiting review rather than promising it is publicly visible. Board labels, status colors, counts, and policies come from the server.

Verify

  1. Open a board and switch sorting and open/closed filtering. Confirm closed ideas follow the board's final statuses.

  2. Submit a test idea, vote, remove the vote, and add a comment under the configured policies.

  3. Try an identified action before and after sign-in, then dismiss and recreate the community screen after logout.

  4. Check a moderated board and an empty board; neither should display invented activity or counts.