Thursday, May 27, 2010

implemented Login functionality With JSON

Hi All,

static NSString * kDefaultGetURLText = @"Your URL Server";

userID = [NSString stringWithFormat:@"%@",txtUserName.text];
userPass = [NSString stringWithFormat:@"%@",txtUserPass.text];
NSLog(@"userId : %@ and password :%@",userID,userPass);

NSMutableDictionary *loginDict = [[NSMutableDictionary alloc] init];


[loginDict setObject:@"Login" forKey:@"func"];
[loginDict setObject:userID forKey:@"nickname"];
[loginDict setObject:userPass forKey:@"password"];

NSString *requestString = [NSString stringWithFormat:@"json=%@", [loginDict JSONFragment], nil];
NSLog(@"request String %@",requestString);
NSData *requestData = [NSData dataWithBytes: [requestString UTF8String] length: [requestString length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: kDefaultGetURLText]];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: requestData];

NSData *returnData = [ NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil ];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding];

// decoding the json
NSDictionary *loginArray = [NSDictionary alloc];
loginArray = [returnString JSONValue];
NSLog(@"loginArray description %@",loginArray);
int success = [[loginArray objectForKey:@"success"]intValue];
NSLog(@"value of success is %d",success);
if(success == 1)
{
NSLog(@"Login is Successful!!! ");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Successful !" message:@"Login is Successful!!! "
delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
[alert release];

}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Re-Enter Login Info !" message:@"Invalid UserName Or Password"
delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
[alert release];
txtUserName.text= @"";
txtUserPass.text= @"";
}

Regards
Dinesh

Saturday, May 22, 2010

Link for Learning OpenGL ES ,Picture Icon in email signature for iPhone,How to classdump SpringBoard header files and patch it

1.Picture Icon in email signature for iPhone
2.How to classdump SpringBoard header files and patch it
3.OpenGL ES for iPhone : Part 3 with Accelerometer control
4.OpenGL ES for iPhone : Part 2 with touch controls
5.OpenGL ES for iPhone : A Simple Tutorial Part 1
6.Source Code : Get Hardware Info of iPhone

http://iphonesdkdev.blogspot.com/search/label/iPhone

Regards

Dinesh

Friday, May 21, 2010

Clang Static Analyzer for iPhone Programming

wednesday, december 30, 2009

Clang Static Analyzer for iPhone Programming

Scan Analyzer : Clang Analyzer LLVM Compiler

Overview:

While we may be familiar with using tools likes Instruments to find and fix memory leaks in our application, the Clang Static Analyzer takes a different approach to memory leak detection by compiling our Xcode project and scanning each method, class, loop and logic block for potential leaks.
We may heard of Clang Static Analyzer referred to by the name of command line tool used to run the analyzer:scan-build.

Requirements

Download the Clang/LLVM Static Analyzer from http://clang-analyzer.llvm.org/ and click the link for checker-NNN.tar.bz2 (Latest build (Universal binary, 10.5+): checker-230.tar.bz2 (built December 8, 2009) ).


Installation

1) We are going to install the check-NNN binary in Mac /usr/local/bin folder. Run the following command to verify that this folder exists:
sudo mkdir -p /usr/local/bin

2) Open Terminal.app from the Application folders, and move the contents of checker-NNN to the usr/local/bin folder(here NNN is 230 version no.)
sudo mv ~/Downloads/checker-230/* /usr/local/bin


Basic Usage

scan- build tests our code by compiling our Xcode project and studying it for defects during the build process. Initially, we are required to change some of the settings in our XcodeProject.
Select the xcodeproject group, and click on Get Info.
In General tabs, select “Base SDK” - “iPhone Simulator 3.0”
In Build tab, select “Base SDK” - iPhonesimulator3.0” & Valid Architectures – i386.
Make Code Signing Identity - “Don't Code Sign”
Select “Any iPhone OS Device” - “Don't Code Sign”
And then
To check our code, we just invoke scan-build from the command line at the top level of any one of your project directories.
Still in Terminal.app, change into one of your project directories
Run scan-build of your Xcode project.
scan-build -k -V xcodebuild -configuration Debug -s iphonesimulator3.0
Customizing your Output Report
After running scan-build for sometimes, the first thing you might want to do is tell scan-build to put its report in a different place. To do that, simply specify the output folder on the command line like so:
scan-build -o /custompath/for/report xcodebuild -configuration Debug -s iphonesimulator3.0

If you are using iphone SDK 3.0 on Snow Leapord, then Clang Static Analyzer is coming in-built in the IDE.

It will be great to use it for better programming analysis to judge the memory management.

Thanks

I taken the above document from my friend Ankit Thakur.
http://iphonesoftwaredevelopment.blogspot.com/2009/12/clang-static-analyzer-for-iphone.html

Tuesday, May 18, 2010

Successfully completed Reach-ability functionality on iPhone

Hi ,
I completed the Reachability functionality with check box on iphone . This is part of login view of my project.

Dinesh
code:
{
txtUserName.text = [[NSUserDefaults standardUserDefaults] stringForKey:@"user_ID"];
txtUserPass.text = [[NSUserDefaults standardUserDefaults] stringForKey:@"user_PASS"];

chkRemKey = [self retrieveFromUserDefaults];
NSLog(@"chkRemKey is : %@",chkRemKey);
[checkBtn addTarget:self action:@selector(checkButtonClick:) forControlEvents:UIControlEventTouchUpInside];
[self checkRememberMeFunctionality:chkRemKey];
}
-(void)checkRememberMeFunctionality:(NSString *)chkRemKeyString
{
if([chkRemKeyString isEqualToString:nil])
{
checkBtn.tag = 0;
[checkBtn setBackgroundImage:[UIImage imageNamed:@"CheckBox-UnSelected.png"] forState:UIControlStateNormal];
[checkBtn setBackgroundImage:[UIImage imageNamed:@"CheckBox-Selected.png"] forState:UIControlStateSelected];
}
else
{

NSString *chkRemString = [NSString stringWithFormat:@"%@", chkRemKeyString];
NSLog(@"chkRemString %@ , and length %d",chkRemString, [chkRemString length]);
int chkRemStringLength = [chkRemString length];
if([chkRemString isEqualToString:@"checkOnRememberMe"])
{
NSLog(@"Hi");
checkBtn.tag = 1;

[checkBtn setBackgroundImage:[UIImage imageNamed:@"CheckBox-Selected.png"] forState:UIControlStateNormal];
[checkBtn setBackgroundImage:[UIImage imageNamed:@"CheckBox-UnSelected.png"] forState:UIControlStateSelected];

}
else if([chkRemString isEqualToString:@"notCheckOnRememberMe"] || chkRemStringLength ==6) // (null) = [chkRemString length] == 6]
{
checkBtn.tag = 0;
[checkBtn setBackgroundImage:[UIImage imageNamed:@"CheckBox-UnSelected.png"] forState:UIControlStateNormal];
[checkBtn setBackgroundImage:[UIImage imageNamed:@"CheckBox-Selected.png"] forState:UIControlStateSelected];
}
}

}

-(IBAction)checkButtonClick:(UIButton *)sender
{
sender.selected = !sender.selected;



if(sender.selected == 1){
if(checkBtn.tag == 0)
{
NSLog(@"!sender.selected");



[[NSUserDefaults standardUserDefaults] setValue:txtUserName.text forKey:@"user_ID"];
[[NSUserDefaults standardUserDefaults] setValue:txtUserPass.text forKey:@"user_PASS"];


chkRemStr = @"checkOnRememberMe";
[self saveToUserDefaults:chkRemStr];
}
else
{

NSLog(@"sender.selected %d",sender.selected);
[[NSUserDefaults standardUserDefaults] setValue:@"" forKey:@"user_ID"];
[[NSUserDefaults standardUserDefaults] setValue:@"" forKey:@"user_PASS"];
chkRemStr = @"notCheckOnRememberMe";
[self saveToUserDefaults:chkRemStr];
}


}

else {
if(checkBtn.tag == 0)
{
NSLog(@"!sender.selected");
[[NSUserDefaults standardUserDefaults] setValue:txtUserName.text forKey:@"user_ID"];
[[NSUserDefaults standardUserDefaults] setValue:txtUserPass.text forKey:@"user_PASS"];
chkRemStr = @"checkOnRememberMe";
[self saveToUserDefaults:chkRemStr];
}
else
{
NSLog(@"!sender.selected");
[[NSUserDefaults standardUserDefaults] setValue:@"" forKey:@"user_ID"];
[[NSUserDefaults standardUserDefaults] setValue:@"" forKey:@"user_PASS"];
chkRemStr = @"notCheckOnRememberMe";
[self saveToUserDefaults:chkRemStr];
}

}
}

-(void)saveToUserDefaults:(NSString*)myString
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if(standardUserDefaults)
{
[standardUserDefaults setObject:myString forKey:@"RememberMe"];
[standardUserDefaults synchronize];
}
}

-(NSString*)retrieveFromUserDefaults
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
NSString *val = nil;
if(standardUserDefaults)
{
val = [standardUserDefaults objectForKey:@"RememberMe"];
}
return val;
}

If You want to get complete code about this plz post comment with gmail id.