iOS SDK
Community view
Use AppNorthView to show your project's boards and ideas, let people propose improvements, and open idea details with comments.
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.
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:
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
Open a board and switch sorting and open/closed filtering. Confirm closed ideas follow the board's final statuses.
Submit a test idea, vote, remove the vote, and add a comment under the configured policies.
Try an identified action before and after sign-in, then dismiss and recreate the community screen after logout.
Check a moderated board and an empty board; neither should display invented activity or counts.