Welcome to the Sum Group Wiki

This wiki is for Sum Group members to share anything interesting they figure out when doing iPhone programming.



Server Notes


XCode Topics

How to enable XCode to build Dynamic Libraries for the iPhone

iPhone Topics

Tutorial: Creating a dynamic library for the iPhone
Tutorial: How to create a MobileSubstrate plugin
Useful iPhone Code Snippets
iPhone Bugs
Useful Libraries
Video Tutorials
Background App Techniques

Mac Topics

Mac Tutorials

SG Classes

Why we have the SG prefix

SG Projects


Cocoa Topics


External Links - A to Z

Apple provides two methods for sending data to / loading data from URLs in Cocoa applications. NSURLConnection, and the lower level CFNetwork API. NSURLConnection is easy to use, but it provides no way to obtain information about upload progress - a pita if your application happens to involve uploading large files. ASIHTTPRequest is an easy to use wrapper around the CFNetwork API that makes some of the more tedious aspects of communicating with web servers easier. It is suitable for when you want to submit data to an existing web form, or don't want to mess around with SOAP or XML-RPC.
It provides:
  • Ability for setting up progress delegates (e.g. NSProgressIndicators) to show information about download AND upload progress
  • An easy interface for adding POST data to requests
  • The ability to submit files on local drives as part of POST data, analogous to the HTML file input mechanism

SSH to your iPhone without password
(be sure and also do the commands in the first comment)

Uses MobileSubstrate to give applications which have not been designed to run in the background the abillity to run in the background. For example you can use it to run AIM in the background. It can be installed via Cydia and enabled by holding the Home key for 2 seconds when in the application and a pop up displays that it is now active in the background. There is lots of intesting code demonstrating how to replace methods in apps and in the SpringBoard, and it also demonstrates how to communicate between applications using signals. Perhaps the most interesting thing it shows, is how to disable the SpringBoard watchdog that kills applications which do have the necessary code to run in the application. You see SpringBoard kills apps after 10 seconds if they don't quit when the Home key is pressed.

MKAbeFook is a Cocoa framework for accessing the Facebook API.
  • handles all authentication required by Facebook
  • uses webkit to display login window or sheet for application
  • uploads photos
  • xml parsing to NSDictionary objects
  • error handling displays useful debug information

A simple way to create plugins for exisiting applications. You can add functionality to one application like the springboard, for example to have a process that runs all the time. Or you can add functionality to every single application that is launched, for example if you want to modify the keyboard behaviour like add vibrations to the key presses.

Socket Wrapper
The class LXSocket is a convenient wrapper for low-level sockets which allows for sending atomic values and objects over the network. ObjC objects are serialized. Sent/received objects must conform to NSCoding, i.e., they have to respond to encodeWithCoder: and initWithCoder:.