- UIKit framework, mainly
UITableViewController, to display conversations & messages
- Copied images from Apple's ChatKit.framework to beautify the UI
- Core Data framework to persist conversations & messages (stores them to disk in an SQLite file)
- SocketRocket to communicate with the server via WebSocket
- Coming soon: Bonjour over Bluetoothh for peer-to-peer (p2p) communication
- Note: Ability to delete messages was removed after commit b269281 to keep things simple
- Nodejitsu-hosted instance of acani-chat-server
wsmodule to communicate with clients via WebSocket
- I chose
wsbecause I think Socket.io (recommended by the Node.js website) uses
ws. And, I didn't want the extra backwards compatibility that Socket.io offers.
- I chose
- Redis to store messages in a list
- Install Node.js & NPM from http://nodejs.org
- Install Redis from http://redis.io or via
brew install redis.
Heroku doesn't support websockets yet, so I went with nodejitsu. modulus.io is another option. To host with nodejitsu, follow http://nodejitsu.com/paas/getting-started.html.
git clone https://github.com/acani/AcaniChat.git cd AcaniChat git checkout edge git submodule update --init open AcaniChat.xcproj
AcaniChat, except for those images copied from Apple's ChatKit.framework, is released under the MIT License.
How to find Apple's ChatKit.framework images, e.g.:
find /Applications/Xcode.app/ -name *.png find /Applications/Xcode.app/ -name SendButton.png open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk/System/Library/PrivateFrameworks/ChatKit.framework
- Matt Di Pasquale
- Peng Wan
- Abhinav Sharma
- Nick LeMay
- Eugene Bae