Latest 0.9.2
Homepage https://github.com/pubnub/chat-engine-apple
License MIT PubNub Real-time Cloud-Hosted Push API and Push Notification Client Frameworks
Copyright (c) 2018 PubNub Inc.
http://www.pubnub.com/
http://www.pubnub.com/terms

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

PubNub Real-time Cloud-Hosted Push API and Push Notification Client Frameworks
Copyright (c) 2014 PubNub Inc.
http://www.pubnub.com/
http://www.pubnub.com/terms

Platforms ios 9.0, osx 10.11, tvos 9.0, requires ARC
Dependencies PubNub
Authors

CENChatEngine

PubNub ChatEngine is an object oriented event emitter based framework for building chat applications in Objective-C. It reduces the time to build chat applications drastically and provides essential components like typing indicators, online presence monitoring and message history out of the box.

The real time server component is provided by PubNub. ChatEngine is designed to be extensible and includes a plugin framework to make adding new features simple.

Docs

You can find the full docs on the full documentation website. Concepts are linked below for convenience.

Concepts

  • Me – It’s you dummy. The user that represents the current application.
  • Users and State – Explains how to interact with other users using ChatEngine and get additional information about them.
  • Chats – ChatEngine’s bread and butter. These are isolated rooms that users can talk to each other in.
  • Events – Events are things that happen in a chat. Like message or image_upload for example.
  • Event Payload – The data that comes with an event. Includes things like who sent the event and what chat it was sent to.
  • Namespaces – ChatEngine has a lot of events, so we use name spacing to isolate them.
  • Wildcards – Get all the events of a single namespace, like $.online.* to get all types of online events.
  • Search – Retrieve old events that happened in the past. Usually done when your application boots up to show what happened before.
  • Global Chat – The chat that all users connect to. It’s used for state management and application wide events.
  • Online List – Get all the users online in the chat room.
  • Authentication – How to use auth keys to identify your users and protect access to channels.
  • Privacy – Every user has a special feed chat that only they can publish to, and a direct chat that nobody else can read from. Outlines other ways of handling permissions as well.
  • Private Chats – Create private chats that nobody else can join.
  • Errors – Sometimes things don’t go as planned, here’s how you can catch errors gracefully.
  • Plugins – Drop in extra functionality, like emojii or typing indicators with plugins.
  • Building a Plugin – If what you need doesn’t exist, it’s easy to build yourself. Share it with us!
  • PubNub Functions – ChatEngine uses PubNub functions as a server component and details about that can be found here.
  • PubNub Channel Topology – Describes what PubNub channels ChatEngine is using under the hood.

Plugins

Markdown Support

Online User Search

Typing Indicator

Unread Messages

Push Notifications

Gravatar Support

Uses Gravatar service to create an avatar based on user state information.

Random Usernames

A plugin that gives every use a random username combining a color and an animal.

Latest podspec

{
    "name": "CENChatEngine",
    "version": "0.9.2",
    "summary": "Framework for building chat applications.",
    "homepage": "https://github.com/pubnub/chat-engine-apple",
    "authors": {
        "PubNub, Inc.": "[email protected]"
    },
    "social_media_url": "https://twitter.com/pubnub",
    "source": {
        "git": "https://github.com/pubnub/chat-engine-apple.git",
        "tag": "v0.9.2"
    },
    "platforms": {
        "ios": "9.0",
        "osx": "10.11",
        "tvos": "9.0"
    },
    "requires_arc": true,
    "dependencies": {
        "PubNub": []
    },
    "default_subspecs": "BuilderInterfaceOn",
    "license": {
        "type": "MIT",
        "text": "            PubNub Real-time Cloud-Hosted Push API and Push Notification Client Frameworksn            Copyright (c) 2018 PubNub Inc.n            http://www.pubnub.com/n            http://www.pubnub.com/termsnn            Permission is hereby granted, free of charge, to any person obtaining a copyn            of this software and associated documentation files (the "Software"), to dealn            in the Software without restriction, including without limitation the rightsn            to use, copy, modify, merge, publish, distribute, sublicense, and/or selln            copies of the Software, and to permit persons to whom the Software isn            furnished to do so, subject to the following conditions:nn            The above copyright notice and this permission notice shall be included inn            all copies or substantial portions of the Software.nn            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORn            IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,n            FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEn            AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERn            LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,n            OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INn            THE SOFTWARE.nn            PubNub Real-time Cloud-Hosted Push API and Push Notification Client Frameworksn            Copyright (c) 2014 PubNub Inc.n            http://www.pubnub.com/n            http://www.pubnub.com/termsn"
    },
    "subspecs": [
        {
            "name": "Core",
            "source_files": [
                "ChatEngine/{Core,Data,Misc,Network,Plugin}/**/*",
                "ChatEngine/ChatEngine.h"
            ],
            "private_header_files": [
                "ChatEngine/Core/{Emitter,Publish,Search,Session}/*.h",
                "ChatEngine/Data/Managers/*.h",
                "ChatEngine/**/*Private.h",
                "ChatEngine/Misc/{CENConstants,CENPrivateStructures}.h",
                "ChatEngine/Misc/Helpers/{CENDictionary}.h",
                "ChatEngine/Network/**/*.h",
                "ChatEngine/Plugin/CEPPrivateStructures.h"
            ],
            "pod_target_xcconfig": {
                "APPLICATION_EXTENSION_API_ONLY": "NO"
            }
        },
        {
            "name": "BuilderInterfaceOn",
            "dependencies": {
                "CENChatEngine/Core": []
            },
            "xcconfig": {
                "GCC_PREPROCESSOR_DEFINITIONS": "CHATENGINE_USE_BUILDER_INTERFACE=1"
            },
            "pod_target_xcconfig": {
                "APPLICATION_EXTENSION_API_ONLY": "NO",
                "GCC_PREPROCESSOR_DEFINITIONS": "CHATENGINE_USE_BUILDER_INTERFACE=1"
            }
        },
        {
            "name": "BuilderInterfaceOff",
            "dependencies": {
                "CENChatEngine/Core": []
            },
            "xcconfig": {
                "GCC_PREPROCESSOR_DEFINITIONS": "CHATENGINE_USE_BUILDER_INTERFACE=0"
            },
            "pod_target_xcconfig": {
                "APPLICATION_EXTENSION_API_ONLY": "NO",
                "GCC_PREPROCESSOR_DEFINITIONS": "CHATENGINE_USE_BUILDER_INTERFACE=0"
            }
        },
        {
            "name": "Plugin",
            "pod_target_xcconfig": {
                "APPLICATION_EXTENSION_API_ONLY": "NO"
            },
            "subspecs": [
                {
                    "name": "TypingIndicator",
                    "dependencies": {
                        "CENChatEngine/Core": []
                    },
                    "source_files": "Plugins/CENTypingIndicator/**/*"
                },
                {
                    "name": "RandomUsername",
                    "dependencies": {
                        "CENChatEngine/Core": []
                    },
                    "source_files": "Plugins/CENRandomUsername/**/*"
                },
                {
                    "name": "UnreadMessages",
                    "dependencies": {
                        "CENChatEngine/Core": []
                    },
                    "source_files": "Plugins/CENUnreadMessages/**/*"
                },
                {
                    "name": "Markdown",
                    "dependencies": {
                        "CENChatEngine/Core": []
                    },
                    "source_files": "Plugins/CENMarkdown/**/*",
                    "private_header_files": [
                        "Plugins/CENMarkdown/CENMarkdownParser+Private.h"
                    ]
                },
                {
                    "name": "Gravatar",
                    "dependencies": {
                        "CENChatEngine/Core": []
                    },
                    "source_files": "Plugins/CENGravatar/**/*"
                },
                {
                    "name": "OnlineUserSearch",
                    "dependencies": {
                        "CENChatEngine/Core": []
                    },
                    "source_files": "Plugins/CENOnlineUserSearch/**/*"
                },
                {
                    "name": "PushNotifications",
                    "dependencies": {
                        "CENChatEngine/Core": []
                    },
                    "source_files": "Plugins/CENPushNotifications/**/*"
                }
            ]
        }
    ]
}

Pin It on Pinterest

Share This