{"id":13630203,"url":"https://github.com/openimsdk/openim-flutter-demo","last_synced_at":"2025-04-17T13:31:46.174Z","repository":{"id":37762154,"uuid":"423315639","full_name":"openimsdk/openim-flutter-demo","owner":"openimsdk","description":"IM Flutter","archived":false,"fork":false,"pushed_at":"2025-04-02T01:50:47.000Z","size":8586,"stargazers_count":341,"open_issues_count":3,"forks_count":226,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-04-02T02:38:04.020Z","etag":null,"topics":["chat-application","chatapp","flutter","im"],"latest_commit_sha":null,"homepage":"https://openim.io","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openimsdk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-01T02:39:11.000Z","updated_at":"2025-04-02T01:50:51.000Z","dependencies_parsed_at":"2024-11-25T04:25:10.050Z","dependency_job_id":"217c04f2-f4c7-44ab-8e52-b70cfc0ae6d0","html_url":"https://github.com/openimsdk/openim-flutter-demo","commit_stats":null,"previous_names":["openimsdk/openim-flutter-demo","openimsdk/open-im-flutter-demo"],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Fopenim-flutter-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Fopenim-flutter-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Fopenim-flutter-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Fopenim-flutter-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openimsdk","download_url":"https://codeload.github.com/openimsdk/openim-flutter-demo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249344818,"owners_count":21254744,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat-application","chatapp","flutter","im"],"created_at":"2024-08-01T22:01:33.560Z","updated_at":"2025-04-17T13:31:46.168Z","avatar_url":"https://github.com/openimsdk.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://openim.io\"\u003e\n        \u003cimg src=\"./docs/images/logo.jpg\" width=\"60%\" height=\"30%\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n# OpenIM Flutter 💬💻\n\n\u003cp\u003e\n  \u003ca href=\"https://docs.openim.io/\"\u003eOpenIM Docs\u003c/a\u003e\n  •\n  \u003ca href=\"https://github.com/openimsdk/open-im-server\"\u003eOpenIM Server\u003c/a\u003e\n  •\n  \u003ca href=\"https://github.com/openimsdk/open-im-sdk-flutter\"\u003eopenim-sdk-flutter\u003c/a\u003e\n  •\n  \u003ca href=\"https://github.com/openimsdk/openim-sdk-core\"\u003eopenim-sdk-core\u003c/a\u003e\n\u003c/p\u003e\n\nOpenIM 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.\n\nThis repository is based on the open-source version of the OpenIM SDK, offering an Flutter IM application. You can use this application as a reference implementation of the OpenIM SDK.\n\n\u003cp align=\"center\"\u003e\n   \u003cimg src=\"./docs/images/preview1.jpeg\" alt=\"Preview\" width=\"32%\"/\u003e\n   \u003cspan style=\"display: inline-block; width: 16px;\"\u003e\u003c/span\u003e\n   \u003cimg src=\"./docs/images/preview2.jpeg\" alt=\"Preview\" width=\"32%\"/\u003e\n\u003c/p\u003e\n\n## License :page_facing_up:\n\nThis 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](./LICENSE).\n\n## Development Environment\n\nBefore you start development, ensure that the following software is installed on your system:\n\n- **Operating System**: macOS 14.6 or later\n- **Flutter**: Version 3.24.5 ([Installation Guide](https://docs.flutter.dev/get-started/install)), XCode: 15.4, Android Studio: Koala | 2024.1.1 Patch 1\n- **Git**: For version control\n\nAdditionally, make sure you have [deployed](https://docs.openim.io/zh-Hans/guides/gettingStarted/dockerCompose) the latest version of the OpenIM Server. After deployment, you can compile the project and connect it to your server for testing.\n\n## Supported Platforms\n\nThis application supports the following platforms:\n\n| Platform      | Version               | Status |\n| ------------- | --------------------- | ------ |\n| **iOS**       | 13.0 and above        | ✅     |\n| **Android**   | minSdkVersion 24      | ✅     |\n\n### Notes\n\n- **Flutter**: Ensure your version meets the requirements to avoid dependency issues.\n\n## Quick Start\n\nFollow the steps below to set up your local development environment:\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/openimsdk/openim-flutter-demo.git\n   cd openim-flutter-demo\n   ```\n\n2. Install dependencies\n\n   ```bash\n   flutter clean\n   flutter pub get\n   ```\n\n3. Modify the configuration\n\n     \u003e If you have not changed the default server ports, update only the [_host](https://github.com/openimsdk/open-im-flutter-demo/blob/a309f25fdbc143e49d5ca852171ce57970871c85/openim_common/lib/src/config.dart#L59) to your server IP.\n\n   ```dart\n   static const _host = \"your-server-ip or your-domain\";\n   ```\n\n4. Run the application using `flutter run` from the terminal or through your IDE.\n\n5. Start developing and testing! 🎉\n\n## Audio/Video Calls\n\nThe open-source version supports one-to-one audio and video calls. You need to first deploy and configure the [server](https://github.com/openimsdk/chat/blob/main/HOW_TO_SETUP_LIVEKIT_SERVER.md). For multi-party audio/video calls or video conferencing, please contact us at [contact@openim.io](mailto:contact@openim.io).\n\n## Build 🚀\n\n\u003e This project allows building separate iOS and Android applications with some differences in the process.\n\n   - iOS:\n     ```bash\n     flutter build ipa\n     ```\n   - Android:\n     ```bash\n     flutter build apk\n     ```\n\n1. The build artifacts will be located in the `build` directory.\n\n## Features\n\n### Description\n\n| Feature Module             | Feature                                                                          | Status |\n| -------------------------- | -------------------------------------------------------------------------------- | ------ |\n| **Account Features**       | Phone number registration \\ Email registration \\ Verification code login         | ✅     |\n|                            | View \\ Edit personal information                                                 | ✅     |\n|                            | Multi-language settings                                                          | ✅     |\n|                            | Change password \\ Forgot password                                                | ✅     |\n| **Friend Features**        | Find \\ Apply \\ Search \\ Add \\ Delete friends                                     | ✅     |\n|                            | Accept \\ Reject friend requests                                                  | ✅     |\n|                            | Friend notes                                                                     | ✅     |\n|                            | Allow friend requests or not                                                     | ✅     |\n|                            | Friend list \\ Friend data real-time syncing                                      | ✅     |\n| **Blocklist**              | Restrict messages                                                                | ✅     |\n|                            | Real-time syncing of blocklist                                                   | ✅     |\n|                            | Add \\ Remove from blocklist                                                      | ✅     |\n| **Group Features**         | Create \\ Dismiss groups                                                          | ✅     |\n|                            | Apply to join \\ Invite to join \\ Leave group \\ Remove members                    | ✅     |\n|                            | Group name / Avatar changes / Group data updates (notifications, real-time sync) | ✅     |\n|                            | Invite members to group                                                          | ✅     |\n|                            | Transfer group ownership                                                         | ✅     |\n|                            | Group owner or admin approve join requests                                       | ✅     |\n|                            | Search group members                                                             | ✅     |\n| **Message Features**       | Offline messages                                                                 | ✅     |\n|                            | Roaming messages                                                                 | ✅     |\n|                            | Multi-end messages                                                               | ✅     |\n|                            | Message history                                                                  | ✅     |\n|                            | Message deletion                                                                 | ✅     |\n|                            | Clear messages                                                                   | ✅     |\n|                            | Copy messages                                                                    | ✅     |\n|                            | Typing indicator in single chat                                                  | ✅     |\n|                            | Do Not Disturb for new messages                                                  | ✅     |\n|                            | Clear chat history                                                               | ✅     |\n|                            | New members can view group chat history                                          | ✅     |\n|                            | New message reminders                                                            | ✅     |\n|                            | Text messages                                                                    | ✅     |\n|                            | Image messages                                                                   | ✅     |\n|                            | Video messages                                                                   | ✅     |\n|                            | Emoji messages                                                                   | ✅     |\n|                            | File messages                                                                    | ✅     |\n|                            | Voice messages                                                                   | ✅     |\n|                            | Contact card messages                                                            | ✅     |\n|                            | Location messages                                                                | ✅     |\n|                            | Custom messages                                                                  | ✅     |\n| **Conversation**           | Pin conversation                                                                 | ✅     |\n|                            | Mark conversation as read                                                        | ✅     |\n|                            | Mute conversation                                                                | ✅     |\n| **REST API**               | Authentication management                                                        | ✅     |\n|                            | User management                                                                  | ✅     |\n|                            | Relationship chain management                                                    | ✅     |\n|                            | Group management                                                                 | ✅     |\n|                            | Conversation management                                                          | ✅     |\n|                            | Message management                                                               | ✅     |\n| **Webhook**                | Group callbacks                                                                  | ✅     |\n|                            | Message callbacks                                                                | ✅     |\n|                            | Push callbacks                                                                   | ✅     |\n|                            | Relationship callbacks                                                           | ✅     |\n|                            | User callbacks                                                                   | ✅     |\n| **Capacity \u0026 Performance** | 10,000 friends                                                                   | ✅     |\n|                            | 100,000-member supergroup                                                        | ✅     |\n|                            | Second-level syncing                                                             | ✅     |\n|                            | Cluster deployment                                                               | ✅     |\n|                            | Multi-device kick-out strategy                                                   |        |\n| **Online Status**          | No mutual kick-out across all platforms                                          | ✅     |\n|                            | Each platform can only log in with one device                                    | ✅     |\n|                            | PC, Mobile, Pad, Web, Mini Program each can log in with one device               | ✅     |\n|                            | PC not mutually kicked, only one device total for other platforms                | ✅     |\n| **Audio/Video Call**       | One-to-one audio and video calls                                                 | ✅     |\n| **File Storage**           | Supports private Minio deployment                                                | ✅     |\n|                            | Supports public cloud services COS, OSS, Kodo, S3                                | ✅     |\n| **Push**                   | Real-time online message push                                                    | ✅     |\n|                            | Offline message push, supports Getui, Firebase                                   | ✅     |\n\nFor more advanced features, audio/video calls, or video conferences, please contact us at [contact@openim.io](mailto:contact@openim.io).\n\n## Join Our Community :busts_in_silhouette:\n\n- 🚀 [Join our Slack community](https://join.slack.com/t/openimsdk/shared_invite/zt-22720d66b-o_FvKxMTGXtcnnnHiMqe9Q)\n- :eyes: [Join our WeChat group](https://openim-1253691595.cos.ap-nanjing.myqcloud.com/WechatIMG20.jpeg)\n\n## FAQ\n\n##### 1. Does it support multiple languages?\n\nA: Support, follow the system language by default\n\n##### 2. Which platforms are supported?\n\nA: The demo currently supports android and ios.\n\n##### 3. The debug of the android installation package can run, but the release starts with a white screen?\n\nA: The release package of flutter is obfuscated by default. You can use the command: flutter build release --no -shrink. If this command is invalid, you can do the following\n\nAdd the following configuration to the release configuration configured in android/app/build.gradle\n\n```\nrelease {\n    minifyEnabled false\n    useProguard false\n    shrinkResources false\n}\n```\n\n##### 4. What should I do if the code must be confused?\n\nA: Add the following rules to the obfuscation rules\n\n```\n-keep class io.openim.**{*;}\n-keep class open_im_sdk.**{*;}\n-keep class open_im_sdk_callback.**{*;}\n```\n\n##### 5. The android installation package cannot be installed on the emulator?\n\nA: Because the Demo has removed some cpu architectures, if you want to run it on the emulator, please do the following:\n\nAdd in android/build.gradle configuration\n\n```\nndk {\n    abiFilters \"armeabi-v7a\",  \"x86\"\n}\n```\n\n##### 6, ios run/build release package error\n\nA: Please set the CPU architecture to arm64, and then operate as follows\n\n- flutter clean\n- flutter pub get\n- cd ios\n- rm -f Podfile.lock\n- rm -rf Pods\n- pod install\n- Run Archive after connecting to the real device\n\n![ios cpu](https://user-images.githubusercontent.com/7018230/155913400-6231329a-aee9-4082-8d24-a25baad55261.png)\n\n##### 7. What is the minimum version number for ios to run?\n\nA: 13.0\n\n##### 8. Why is the map not working?\n\nA: [Doc](CONFIGKEY.md)\n\n##### 9. Why is offline push not working?\n\nA: [Doc](CONFIGKEY.md)\n\n##### 10. ffmpeg not working?\n\nA：You can compile related libraries yourself, or use others https://github.com/carl-designlibro/ffmpeg-kit\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenimsdk%2Fopenim-flutter-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenimsdk%2Fopenim-flutter-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenimsdk%2Fopenim-flutter-demo/lists"}