Twitter + iPhone = MyTweet

I just started playing with Twitter API and was interested to see some good API’s in objective-c. The one i started to look at is created by Matt Legend

You can see his stuff here

Anyway after simply checking(svn co) out his repository, I was able to quickly build a simple client very quickly

Here is version 0.000001 alpha

Matt nicely uses the standard way of doing things in objetive c with async calls

Your View Controller or what ever has to simply implement the protocol MGTwitterEngineDelegate and you are getting responses from Twitter :-)

Here is my code

twitterEngine=[[MGTwitterEngine alloc] initWithDelegate:self];
[twitterEngine setUsername:@"yourusername" password:@"yourpassword"];
[twitterEngine getRepliesStartingAtPage:0];

And just implement the callback to get the responses. All responses are nicely packed within an NSArray. Each element is a NSDictionary.. real nice. Oh and for testing NSLog will just spit everything out for your convenience

Here is my code to show the results in a TableView

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;

// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
		NSLog(@"Returning 0");
		return 0;
		NSLog(@"Returning count %d",[data count]);
		return [data count];

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
	NSString *txt=@"Nothing..";
		NSDictionary *dict=(NSDictionary*)[data objectAtIndex:indexPath.row];
		txt=[dict objectForKey:@"text"];		
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    // Set up the cell...
    return cell;

- (void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)identifier{
	//NSLog(@"Satuses Received %@:%@",identifier,statuses);
		[data release];
	data=[[NSMutableArray arrayWithArray:statuses] retain];
	UITableView *tableView=(UITableView*)self.view;
	[tableView reloadData];
	NSLog(@"Reloading data");

The idea is to build a good, free version for the iPhone.

By: gavi on: