An open-source version of iPhone's native Messages app
Switch branches/tags
Nothing to show
Pull request Compare This branch is 85 commits ahead, 46 commits behind acani:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
AcaniChat.xcodeproj
AcaniChat
AcaniChatTests
Libraries
Resources
Screenshots
Server
.gitignore
.gitmodules
README.md
TODO.taskpaper

README.md

AcaniChat

Native iPhone Messages.app with WebSocket & Bonjour over Bluetooth

AcaniChat Conversations Screenshot      AcaniChat Messages Screenshot

Technology

Client (iOS)

  • UIKit framework, mainly UINavigationController & 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

Server (Node.js)

  • Nodejitsu-hosted instance of acani-chat-server
  • Node.js ws module to communicate with clients via WebSocket
    • I chose ws because 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.
  • Redis to store messages in a list
Installation
Hosting

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.

Getting Started

AcaniChat uses Objective-C literals, so make sure you have Xcode 4.5 or later, which you can download from iOS Dev Center : Beta Downloads.

git clone https://github.com/acani/AcaniChat.git
cd AcaniChat
git checkout edge
git submodule update --init
open AcaniChat.xcproj

License

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

Contributors

Related Projects & Links