Be the next WhatsApp! Quickly add messaging to your app using this fully featured SDK. This SDK provides you with a full messaging system - user interface and Firebase back end.
You can download the demo app here.
We now have a version of this SDK for Android! Check it out here
We will be releasing an XMPP version of the chat code. If you'd like to register to recieve email updates you can sign up here.
If you're looking for location based chat check out our new Geochat product.
Chat SDK - Core
The core version of the is ideal if you have your own messaging back end and need a user interface. Chat SDK core license provides you with the full front end ready to be connected to your message delivery system.
- Text, Picture and location messages
- Group chat room
- Private messages
- Colored speech bubbles
- Customize text color and font
- Automatic highlighting of emails addresses and phone numbers
- Profile pictures for messages
- Flexible architecture
- Messages saved with core data
- Tabbed interface - profile page, contacts page, search page etc...
The SDK provides a clean simple interface that completely decouples the creation of display of messages and thread form the way they're transmitted and received over the network.
The thread screen provides a list of conversations that the user is participating in. Single and group conversations are both supported. Each conversation has the following features:
- The names of the members participating in the conversation
- A photo of the recipient
- Date of the last message received
- The text of the last message received
- Unread message indicatior
- Threads are ordered by the date of the last message received
From this screen it's possible to create new threads and delete unwanted threads.
The message screen is the most important part of this project. It provides a speech bubble view of all the messages that have been received in the thread. It also allows new messages to be written and sent. Here are the main features:
- Text messages
- Location messages displayed on a map with customizable pin message and map scale
- Picture messages selected from the album or taken using the camera
- Speech bubbles re-size depending on the size of the text or image
- Customizable speech bubble color (per-message basis)
- Customizable speech bubble text color (per-message basis)
- Speech bubble font and font-size set on a per-message basis
- User's profile picture displayed next to the message
- Bubbles scroll behind the keyboard and navigation bar
- The phone vibrates when a new messages is received
- The time the message was sent
- Clicking on an image or location opens it full screen
- Drag the view down to load older messages
These features provide a fully featured messaging platform which can quickly be interfaced with existing messaging infrastructure. If you're also looking for a back end system you should consider buying the Firebase license that provides an out-of-the box messaging platform.
While designing this component I put a lot of though into the best architecture to use. I wanted to provide a flexible messaging front end while making it possible to interface with existing apps and network code. The final SDK completely decouples the networking functionality from the message presentation and creation. I also provide an example class that shows how to implement the necessary interfaces.
Other Open Source Projects
There are a number of free open source projects which support different aspects of messaging, none of which are very mature. This project combines the best parts of all of them while adding additional features and fixing showstopping bugs.
While creating this component, the code of about 15 different free open source projects were researched, and some are included in the package. The best bits of each were taken to make a simple, well designed, flexible component that just works. Even using the open source projects that are available, you're still looking at several weeks of development to create the capabilities of this component.
This project supports iOS 7+
Chat SDK - Firebase
If you're looking for a chat solution that can be hosted on your own server, we're currently developing an XMPP version of the Chat SDK. If you'd like to recieve updates about this product you can sign up here.
The Firebase license provides a fully featured messaging platform out of the box. It uses Firebase which is a powerful real time back end which was designed from the ground up with messaging in mind. You can open an account for free - the free app would be perfectly sufficient for a small app. As your app grows you can upgrade your account - Firebase can easily scale to millions of monthly users.
- Real time chat
- Login via Facebook, username/ password, twitter, anoymous
- Google + coming soon!
- Multiple user accounts on one device
- Cloud message storage
- Push notifications
- Invite friends from Facebook
- Powerful search API
- Add custom meta data to users' profiles
- Lazy loading of messages
- Clean architecture
If you decide to buy the ChatSDK Firebase license you get the full ChatSDK front end as well as the Firebase networking code.
The login screen allows you to register or login to the messaging app. You can also use social logins via Facebook or Twitter.
Finding other users
If the user logged on using Facebook they can instantly see a list of their friends who are using the app.
Alternatively the SDK includes a search API. This allows you to associate key works with user accounts. As standard the user's name, phone number and email are all indexed. When a keyword matches an index in the search database, a list of users matching that keyword are presented to the user.
Version 3 of the Chat SDK adds a flexible way to associate data with a user. You can associate an unlimited number of meta data objects with any user - these objects can store data, text or images. This data is then synchronized across all devices. For example you could add "gender" meta data to all users.
It would then be possible to add this meta data to the search index. For example, I could pull up a list of all male users. Or all users that lived in London.
This network code represents a large amount of development time and will allow you to add instant messaging to your app in a couple of hours. The code is thoroughly tested with a clean object orientated architecture. If you find any bugs please report them on the Binpress bug tracker. I respond to issues with hours and will usually be able to provide a fixed version within 24 hours.
Extensions and customization
If you're looking to customize the Chat SDK, the Firebase networking code or you need a custom network integration you can get a quote using the "Need additional services?.. Get a Quote" button.