logo
0
1
Login

TUIKit_iOS

English | 简体中文

Overview

TUIKit_iOS is a powerful UI component library built on top of Tencent Cloud's AtomicXCore SDK. AtomicXCore integrates the core capabilities of Tencent Cloud Real-Time Communication (TRTC), Instant Messaging (IM), Audio/Video Calling (TUICallEngine), and Room Management (TUIRoomEngine), providing a state-driven API design.

TUIKit_iOS provides a set of pre-built user interfaces (UI) on top of the core capabilities offered by AtomicXCore, enabling you to quickly integrate video live streaming, voice chat rooms, audio/video calling, and other features into your iOS applications without worrying about complex backend logic and state management.

Features

TUIKit_iOS provides complete UI implementations for the following core business scenarios based on AtomicXCore:

  • Video/Voice Live Streaming:

    • Live Room Management: Fetch live room lists.
    • Broadcasting & Watching: Create live rooms, join live streams.
    • Seat Management: Support seat management, audience mic on/off.
    • Host Co-hosting: Support cross-room co-hosting between hosts.
    • Host PK (Battle): Support PK interactions between hosts.
    • Interactive Features:
      • Gifts: Support sending and receiving gifts.
      • Likes: Support live room likes.
      • Barrage: Support sending and receiving barrage messages.
  • Audio/Video Calling:

    • Basic Calling: Support 1v1 and multi-party audio/video calls.
    • Call Management: Support answering, rejecting, and hanging up calls.
    • Device Management: Support camera and microphone control during calls.
    • Call History: Support querying and deleting call records.
  • Instant Messaging (Chat):

    • Conversation Management: Support fetching and managing conversation lists.
    • Message Sending/Receiving: Support C2C (one-to-one) and Group chat scenarios, with multiple message types including text, images, voice, video, etc.
    • Contact Management: Support friend and blacklist management.
    • Group Management: Support group profile, group member, and group settings management.

Quick Start

1. Environment Setup

  • Xcode 14.0 or higher
  • iOS 14.0 or higher
  • CocoaPods (ensure it's installed)

2. Clone Repository

git clone https://github.com/Tencent-RTC/TUIKit_iOS.git

3. Install Dependencies

TUIKit_iOS depends on AtomicXCore, which in turn depends on RTCRoomEngine. You need to use CocoaPods to install these dependencies.

cd TUIKit_iOS/application pod install

4. Run Project

Open the generated .xcworkspace file with Xcode, configure your Tencent Cloud SDKAppID, UserID, and UserSig (usually configured in the GenerateTestUserSig file), then compile and run.

Architecture

The architecture design of TUIKit_iOS follows layered principles:

  1. TUIKit_iOS (UI Layer):

    • Provides pre-built, reusable UI components.
    • Responsible for view presentation and user interaction.
    • Subscribes to Store in AtomicXCore to get state and update UI.
    • Calls Store methods in AtomicXCore to respond to user operations.
  2. AtomicXCore (Core Layer):

    • Stores: (such as LiveListStore, CallListStore, ConversationListStore) responsible for managing business logic and state.
    • Core Views: (such as LiveCoreView, ParticipantView) provide UI-less view containers that drive video rendering.
    • Engine Wrapper: Encapsulates underlying RTCRoomEngine, TUICallEngine, and IMSDK, providing unified APIs.
  3. Tencent Cloud SDK (Engine Layer):

    • RTCRoomEngine & TUICallEngine: Provide underlying real-time audio/video capabilities.
    • IMSDK: Provides instant messaging capabilities.

Documentation

License

This project is licensed under the MIT License.


Project Structure

TUIKit_iOS/ ├── application/ # Demo application │ ├── App-UIKit.xcodeproj │ ├── App-UIKit.xcworkspace │ └── Podfile ├── atomic_x/ # AtomicX UI components │ ├── Sources/ # Swift source files │ └── Resources/ # UI resources ├── call/ # TUICallKit components ├── chat/ # Chat UI components ├── conference/ # Conference/Room UI components ├── live/ # Live streaming components └── devops/ # Build and deployment scripts

Contributing

We welcome contributions! Please see our Contributing Guide for details on how to submit pull requests, report issues, and contribute to the project.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes following our coding standards
  4. Add tests for your changes
  5. Ensure all tests pass
  6. Commit your changes (git commit -m 'Add amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. Open a Pull Request

Support

Changelog

See CHANGELOG.md for a detailed history of changes to this project.

Acknowledgments

About

No description, topics, or website provided.
22.06 MiB
0 forks1 stars1 branches2 TagREADMEMIT license
Language
Swift99%
Shell0.6%
Ruby0.4%