I've been planning to write this post for a while now, just a matter of getting the time aside for it. I was planning on open sourcing the application at some stage, but have decided to keep it closed for now at least, just due to my codebase being messy and quite unreadable in parts. So for now, you'll have to handle just getting a taste of some of the libraries and ideas I have used in dAmnMobile.
User Interface
For the user interface I have just stuck to the supplied interfaces such as Navigation Controllers, UITableViews along with some custom cells containing UIWebViews for showing messages (not efficient in the slightest, I'm looking into alternatives right now).
There is one part in the user interface that is not standard, that is the Setting view, this is shown using InAppSettings by InScopeApps. This is a simple to implement chunk of code that allows you to use the Settings.bundle, which is normally accessed only through Settings, to store data and access it directly in your application.
Logging In and Getting the Authtoken
For login I use an open source class that I coded called dALogin. This class relies on ASIHTTPRequest to log into deviantART and then retrieve the chat page required to pull the authtoken out.
dAmn Communication
Now to the main part of the application, communicating with dAmn itself. Again I created a new class called dAmnLib for this, dAmnLib relies on the CocoaAsyncSocket for socket communication and RegexKitLite for regular expressions.
AsyncSocket is integral to the application, it supplies the basis of communicating with dAmn, as it is asynchronous, it can queue events up and allow messages to be received and sent correctly.
RegexKitLite is used to parse the received messages for thumbs, images, links, once parsed, the matches are converted to their HTML counterparts for display in the app.
Miscellaneous
I have also included Flurry to track statistics such as user numbers and sessions, along with number of disconnects, this helps to improve the application over time and I can also see those great times when dAmn goes down.
AlertPrompt is used for adding rooms to your chat lists.
If you have any more questions about dAmnMobile, feel free to contact me on Twitter or through the contact form on this site.