Skip to main content

Documentation Index

Fetch the complete documentation index at: https://learn.social.plus/llms.txt

Use this file to discover all available pages before exploring further.

Overview

This quick start guide will help you implement your first social.plus UIKit features in your application. Follow these steps to get from installation to a working social experience.
Customization path at a glance: 1) Theming Basics (global brand tokens) → 2) Component Styling (page/component/element overrides) → 3) Dynamic UI (remote + conditional layouts) → 4) Fork & Extend (full source). Start at the lowest level that solves your need. Links appear inline below.
Prerequisites: Review your platform guide (iOS, Android, Web, React Native, Flutter) and complete authentication setup.

Choose Your First Feature

Select the social feature you want to implement first:

Social Feed

News feed with posts, comments, and reactions

Chat System

Real-time messaging and conversations

User Profiles

User profiles and social connections

Communities

Group discussions and community spaces

Social Feed Implementation

Basic Feed Setup

import AmityUIKit

class SocialViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        setupSocialFeed()
    }
    
    private func setupSocialFeed() {
        let socialFeedVC = AmitySocialFeedViewController()
        addChild(socialFeedVC)
        view.addSubview(socialFeedVC.view)
        socialFeedVC.didMove(toParent: self)
        
        // Configure constraints
        socialFeedVC.view.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            socialFeedVC.view.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
            socialFeedVC.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
            socialFeedVC.view.trailingAnchor.constraint(equalTo: view.trailingAnchor),
            socialFeedVC.view.bottomAnchor.constraint(equalTo: view.bottomAnchor)
        ])
    }
}
Need brand colors only? Jump to Theming Basics. Want to tweak a specific feed button/icon? Use Component Styling. Conditional layouts (e.g., hide creation for viewers) → Dynamic UI. Completely new feed UX → Fork & Extend.

Feed Features

Your social feed now includes:
  • Text posts with rich formatting
  • Image and video attachments
  • Poll creation and voting
  • Location tagging
  • Like and reaction system
  • Commenting and replies
  • Share functionality
  • Real-time updates
  • Report inappropriate content
  • Delete and edit posts
  • Privacy controls
  • Content moderation

Chat System Implementation

Basic Chat Setup

import AmityUIKit

class ChatViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        setupChatInterface()
    }
    
    private func setupChatInterface() {
        let chatHomeVC = AmityChatHomeViewController()
        addChild(chatHomeVC)
        view.addSubview(chatHomeVC.view)
        chatHomeVC.didMove(toParent: self)
        
        // Configure constraints
        chatHomeVC.view.frame = view.bounds
    }
    
    // Open specific chat room
    private func openChatRoom(channelId: String) {
        let chatRoomVC = AmityChatRoomViewController(channelId: channelId)
        navigationController?.pushViewController(chatRoomVC, animated: true)
    }
}
Chat styling escalation: theme tokens first → component styling for input / bubble tweaks → dynamic UI for role-based feature toggles (e.g., reactions off for guests) → fork only for novel messaging paradigms.

Chat Features

Your chat system includes:
  • Real-time text messaging
  • Image and file sharing
  • Voice messages
  • Message reactions and replies
  • Create group chats
  • Add/remove participants
  • Chat settings and preferences
  • Message history and search
  • Online presence indicators
  • Message read receipts
  • Push notifications
  • Typing indicators

User Profiles Implementation

Basic Profile Setup

// Show current user profile
let userProfileVC = AmityUserProfileViewController(userId: currentUserId)
navigationController?.pushViewController(userProfileVC, animated: true)

// Show another user's profile
let otherUserProfileVC = AmityUserProfileViewController(userId: "other_user_id")
present(otherUserProfileVC, animated: true)
Profile adjustments like color/avatar ring styling = Component Styling. Conditional fields by role (e.g., hide email) = Dynamic UI. Rebuilding profile layout entirely = Fork & Extend.

Communities Implementation

Basic Community Setup

// Show community list
let communityListVC = AmityCommunityListViewController()
navigationController?.pushViewController(communityListVC, animated: true)

// Show specific community
let communityVC = AmityCommunityViewController(communityId: "community_id")
navigationController?.pushViewController(communityVC, animated: true)
Community visibility/layout differences per user tier? Evaluate Dynamic UI early rather than scattering conditionals in app code.

Testing Your Implementation

Verify Basic Functionality

1

Authentication

  • Verify user registration and login
  • Check that user sessions persist across app restarts
  • Test with different user accounts
2

Social Features

  • Create a test post with text and images
  • Like and comment on posts
  • Test real-time updates with multiple users
3

Chat Features

  • Send messages between different users
  • Test group chat creation and management
  • Verify real-time message delivery
4

User Interactions

  • View and edit user profiles
  • Test follow/unfollow functionality
  • Verify privacy settings

Test with Multiple Users

Create multiple test user accounts to properly test social interactions like messaging, following, and community participation.

Customization Basics

Quick Theme Changes

Apply basic branding to match your app:
// Configure theme colors
AmityUIKit.configure { config in
    config.primaryColor = UIColor.systemBlue
    config.secondaryColor = UIColor.systemGray
    config.backgroundColor = UIColor.systemBackground
}

Next Steps

Congratulations! You now have a working social.plus UIKit implementation. Here’s what to explore next:

Advanced Customization

Deep dive into theming, styling, and component customization

Component Reference

Explore all available components and their features

Real-world Examples

See complete implementation examples and best practices

API Integration

Learn how to integrate with social.plus APIs for custom features

Need Help?

Components not rendering: Ensure proper authentication and provider setupStyling conflicts: Check for CSS conflicts and proper theme configurationPerformance issues: Implement proper error handling and loading states
  • Always handle authentication errors gracefully
  • Implement proper loading states for better UX
  • Test with multiple user accounts
  • Follow platform-specific UI guidelines