UIKit Component: Community components are built on top of the social.plus SDK, providing ready-to-use community management UI with full data management handled automatically.

Feature Overview

Core Community UIKit components provide comprehensive tools for building and managing community experiences. From creating and configuring communities to displaying rich content feeds, these components handle the complete community lifecycle while maintaining seamless integration with the social.plus SDK.

Key Features

Community Setup

Community creation and configuration
  • Create new communities with avatars, names, descriptions
  • Category assignment (up to 10 categories)
  • Privacy settings (public/private/hidden)
  • Member invitation workflows

Community Profile

Community profile and header display
  • Cover photo and community information display
  • Member and post count tracking
  • Community verification badges
  • Join/request management

Content Feeds

Community feed components
  • General community post feeds
  • Pinned posts display
  • Image-only content feeds
  • Video-only content feeds

Member Integration

Basic member addition workflows
  • Category selection for communities
  • Member search and invitation
  • Privacy-based member management
  • Community discovery features

Implementation Guide

Community creation, setup, and basic configurationThe Community Setup components provide comprehensive tools for creating new communities and configuring existing ones, including category assignment and member invitation workflows.

Community Setup Page

The Community Setup Page can be used to create a brand new community or update existing community information including avatar, name, description, categories, and privacy settings.

Features

FeatureDescription
Creating a communityFill in information needed to create the community like avatar, name, description and categories. Public or private community selection available.
Updating existing communityCommunity avatar, name, description, and categories can be updated. Privacy settings can be changed from public to private and vice versa.

Customization Options

Config IDTypeDescription
community_setup_page/*/*PageYou can customize page theme
community_setup_page/*/close_buttonElementYou can customize image
community_setup_page/*/titleElementYou can customize text
community_setup_page/*/community_edit_titleElementYou can customize text
community_setup_page/*/community_name_titleElementYou can customize text
community_setup_page/*/community_about_titleElementYou can customize text
community_setup_page/*/community_category_titleElementYou can customize text
community_setup_page/*/community_privacy_titleElementYou can customize text
community_setup_page/*/community_create_buttonElementYou can customize text and image
community_setup_page/*/community_edit_buttonElementYou can customize text and image

Code Examples

// AmityCommunitySetupPage can be used in 2 modes:
// Creation mode - .create
// Editing mode - .edit(AmityCommunity)
let page = AmityCommunitySetupPage(mode: .create)
let viewController = AmitySwiftUIHostingController(rootView: page)

Add Category Page

The Add Category Page allows users to search for categories to attach to a community. A community can have up to 10 categories.

Features

FeatureDescription
Add categoryUp to 10 categories can be selected to attach to a community

Code Examples

let categoryPage = AmityCommunityAddCategoryPage(categories: [], onAddedAction: { categories in
    // Handle selected categories
})
let categoryVC = AmitySwiftUIHostingController(rootView: categoryPage)

Invite Member Page

The Invite Member Page allows users to search for specific users by display name to invite to a community.

Features

FeatureDescription
Invite UserUsers can be searched by display name to invite them to a community

Code Examples

let invitePage = AmityCommunityInviteMemberPage(users: [], onInvitedAction: { users in
    // Handle invited users
})
let inviteVC = AmitySwiftUIHostingController(rootView: invitePage)
The Community Setup Page will navigate to the user listing page to add users to the community if it is created as private, and to the category listing page to attach categories to the community.
class CustomAmityCommunitySetupPageBehavior: AmityCommunitySetupPageBehavior {
    override init() {
        super.init()
    }
    
    override func goToAddMemberPage(_ context: AmityCommunitySetupPageBehavior.Context) {
        // override behavior
    }
    
    override func goToAddCategoryPage(_ context: AmityCommunitySetupPageBehavior.Context) {
        // override behavior
    }
}

// Call this function to setup custom behaviour class in UIKit
func setCommunitySetupPageBehaviour() {
    let customBehavior = CustomAmityCommunitySetupPageBehavior()
    AmityUIKit4Manager.behaviour.communitySetupPageBehavior = customBehavior
}
Implementation Strategy: Start with the AmityCommunitySetupPage for creating new communities, then integrate AmityCommunityProfilePage as the main community hub. Use specialized feed components (Pin, Image, Video) to provide organized content views. Configure navigation behaviors early to ensure smooth user flows between community creation, content viewing, and management features.