Skip to content

sanyaade-teachings/openim-ios-demo

This branch is up to date with openimsdk/openim-ios-demo:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

77ce779 Β· Jan 9, 2025

History

96 Commits
Jan 8, 2025
Jan 8, 2025
Jan 8, 2025
Jan 9, 2025
Jan 8, 2025
Jan 9, 2025
Jan 2, 2025
Jan 9, 2025
Jan 9, 2025
Dec 23, 2024
Apr 18, 2024
Jan 8, 2025
Jan 2, 2025
Jan 2, 2025
Jan 8, 2025
Jan 8, 2025

Repository files navigation

OpenIM iOS πŸ’¬πŸ’»

OpenIM Docs β€’ OpenIM Server β€’ openim-sdk-ios β€’ openim-sdk-core

OpenIM provides an open-source Instant Messaging (IM) SDK for developers, serving as an alternative solution to cloud services like Twilio and Sendbird. With OpenIM, developers can build secure and reliable IM applications similar to WeChat, Zoom, and Slack.

This repository is based on the open-source version of the OpenIM SDK, offering an iOS IM application. You can use this application as a reference implementation of the OpenIM SDK.

Preview Preview

License πŸ“„

This repository is licensed under the GNU Affero General Public License Version 3 (AGPL-3.0) and is subject to additional terms. Commercial use is prohibited. For more details, see here.

Development Environment

Before you start development, ensure that the following software is installed on your system:

  • Operating System: macOS 14.6 or later
  • Xcode: Version 15.4
  • Git: For version control

Additionally, make sure you have deployed the latest version of the OpenIM Server. After deployment, you can compile the project and connect it to your server for testing.

Supported Platforms

This application supports the following platforms:

Platform Version Status
iOS 13.0 and above βœ…

Notes

  • iOS: Make sure your version meets the requirements to avoid compilation issues.

Quick Start

Follow the steps below to set up your local development environment:

  1. Clone the repository:

    git clone https://github.com/openimsdk/openim-ios-demo.git
    cd openim-ios-demo/Example
  2. Install dependencies

    pod install

    2.1 If the installation fails and a message appears saying that a dependency was not found, please execute the following command to update the local CocoaPods repository list.

    pod repo update
  3. Modify the configuration

    If you have not changed the default server ports, update only the defaultHost to your server IP.

    let defaultHost = "your-server-ip or your-domain";
  4. open OpenIMSDKUIKit.xcworkspace to compile and run the program.

  5. Start developing and testing! πŸŽ‰

Audio/Video Calls

The open-source version supports one-to-one audio and video calls. You need to first deploy and configure the server. For multi-party audio/video calls or video conferencing, please contact us at [email protected].

Build πŸš€

Click "Archive" to compile the IPA package.

Features

Description

Feature Module Feature Status
Account Features Phone number registration \ Email registration \ Verification code login βœ…
View \ Edit personal information βœ…
Multi-language settings βœ…
Change password \ Forgot password βœ…
Friend Features Find \ Apply \ Search \ Add \ Delete friends βœ…
Accept \ Reject friend requests βœ…
Friend notes βœ…
Allow friend requests or not βœ…
Friend list \ Friend data real-time syncing βœ…
Blocklist Restrict messages βœ…
Real-time syncing of blocklist βœ…
Add \ Remove from blocklist βœ…
Group Features Create \ Dismiss groups βœ…
Apply to join \ Invite to join \ Leave group \ Remove members βœ…
Group name / Avatar changes / Group data updates (notifications, real-time sync) βœ…
Invite members to group βœ…
Transfer group ownership βœ…
Group owner or admin approve join requests βœ…
Search group members βœ…
Message Features Offline messages βœ…
Roaming messages βœ…
Multi-end messages βœ…
Message history βœ…
Message deletion βœ…
Clear messages βœ…
Copy messages βœ…
Typing indicator in single chat βœ…
Do Not Disturb for new messages βœ…
Clear chat history βœ…
New members can view group chat history βœ…
New message reminders βœ…
Text messages βœ…
Image messages βœ…
Video messages βœ…
Emoji messages βœ…
File messages βœ…
Voice messages βœ…
Contact card messages βœ…
Location messages βœ…
Custom messages βœ…
Conversation Pin conversation βœ…
Mark conversation as read βœ…
Mute conversation βœ…
REST API Authentication management βœ…
User management βœ…
Relationship chain management βœ…
Group management βœ…
Conversation management βœ…
Message management βœ…
Webhook Group callbacks βœ…
Message callbacks βœ…
Push callbacks βœ…
Relationship callbacks βœ…
User callbacks βœ…
Capacity & Performance 10,000 friends βœ…
100,000-member supergroup βœ…
Second-level syncing βœ…
Cluster deployment βœ…
Multi-device kick-out strategy
Online Status No mutual kick-out across all platforms βœ…
Each platform can only log in with one device βœ…
PC, Mobile, Pad, Web, Mini Program each can log in with one device βœ…
PC not mutually kicked, only one device total for other platforms βœ…
Audio/Video Call One-to-one audio and video calls βœ…
File Storage Supports private Minio deployment βœ…
Supports public cloud services COS, OSS, Kodo, S3 βœ…
Push Real-time online message push βœ…
Offline message push, supports Getui, Firebase βœ…

For more advanced features, audio/video calls, or video conferences, please contact us at [email protected].

Join Our Community πŸ‘₯

Packages

No packages published

Languages

  • Swift 84.6%
  • Objective-C 14.8%
  • Other 0.6%