Instant Messaging App

Hi all,


I'm currently learning how to develop applications in my spare time.


I would like to learn how to create an Instant Messaging Application, obviously various companies have published this idea but I would like to gain an understanding of the process. The books that I have purchased on this appear to be quite general and do not cover Instant Messaging. Could any of you reccomend any online tutorials/advice?


Any help with this would be greatly apprecited.


Thanks in advance.


George

That's a huge a complicated process. To even being you'd need dedicated servers which would run the back end of your app to take messages from one device to another. Due to that being the primary restriction on creating one most people won't out up a tutorial because to show that their tutorial works they would need to use 2 devices and connect the app to a server which would cost them money. Developing the UI for the keyboard, and chat history would be quite simple but the actual sending and receiving of the messages wouldn't be worth the time for most tutorial makers.

Memj is right, this is very complicated, but it's not impossible! 🙂 I suggest you start out by learning how to develop simple iOS apps, such as those found in your books. Also look into server side programming, such as PHP along with MySQL.


In the mean time, check out this tutorial, as it looks like it may be a decent start for a running start:

http://code.tutsplus.com/tutorials/building-a-jabber-client-for-ios-xmpp-integration--mobile-7190

Also, I found this post that explains how to set up the project if you just download it from git.

http://stackoverflow.com/questions/9091767/up-to-date-instructions-on-how-to-install-xmppframework-manually/30543948#30543948


Again, even though this tutorial may help, you would learn more by starting off with a simple project.


On another note, the new cloud kit api may be your solution to your server needs. Check out this tutorial for cloud kit:

http://www.raywenderlich.com/83116/beginning-cloudkit-tutorial

I worked on an IM client as my Capstone project for school (CUNY Hunter College, a liberal arts school, which definitelty is not MIT or anywhere noteable for its CS program). If you're interested in doing this, you should first learn how to use CFSocket to send arbitrary data between two console applications. One of the apps will serve as the client, the other as the server. The client should simply connect to a predetermined port (ex. port 9001) on your Mac and simply prompt the user for input (sending it to the server) while the connection remains open. The server should simply listen for connections on the same port and print any data that it receives. Once you're comfortable with this, you can start making a real IM app; you just need to format and parse the messages. For such a purpose, I suggest using an free, already existing protocol (such as XMPP) for your app's communication instead of inventing your own. If you use an existing one, you can simply use a free server package instead of writing your own. Its also possible that there will be at least Objective-C libraries that implement the protocol for you. Even if there aren't any libraries (or you can't use them because of their licenses, or you simply don't want to use them), you can just read the specification and do it yourself.


You can look at the code for my attempt here. It's mostly C/C++, as it was intended to be crossplatform, with Swift code for the UI and Objective-C code to bridge between Swift and C++. It's also not very good, poorly documented, and as it was written before Swift 1.0 was released, there are probably many bugs in the UI that the source code updater introduced. Hopefully you find some aspect of it useful.


Good luck!

anyonw knows whether I can get a keyboard for my app.


The standard keyboard is terrible .


Something like whatsapp or Telegram would help a lot

First of all, all the best for learning! To be honest, learning how to develop a messaging application from scratch is actually a big deal. However, what all are the development approaches you’ll take will change the deal.

The available ways of building an instant messaging application include Determining the objective and purpose of the application Designing the UI of the app Considering an Server to host Choosing the programming language and multi-platform compatibility such as iOS, Android or even web browser. On the other hand, consider Chat API and SDK for easy integration, reduce time-consuming processes, avoid the learning curve, and of course, plenty of features. I’d suggest you consider the second step to learn effectively and accommodate the trend.

For the learning asset, follow the MirrorFly tutorial link to understand the process of developing an instant messaging application.

Tutorial: https://youtu.be/_AgBGPgkATg?si=z006B8r893EKgUhr Check out: https://youtu.be/fce3NzvZvQw?si=_ICvG89kF0Mo4Rrl GitHub: https://github.com/MirrorFly/MirrorFly-Android-Sample

Instant Messaging App
 
 
Q