Monday, July 12, 2010

A Quick Look at Model-View-Presenter (MVP) Architecture


Some noteworthy benefits of MVP pattern:

  • Platform independent: In this Pattern application make independent from its platform so when ever requirement comes to move to window to web or any other version its only need to change on code behind page for view Implementation, so later on required to any of the application portion convert in web to window or any other platform we can handle it by minimum efforts.
  • Loose couples form UI: So application stays loose couples from code behind page (UI) to business layer or any other next latter.
  • Useful to create automated unit test: MVP is purely loose couples from any plate form so that it is very use to prepare automated unit test cases.
  • Increase code maintainability: Keeps code more maintainable throughout the lifetime of the project, especially during the maintenance phase.

Overall Application Architecture:

    1.  Model: Model is UI interface for how and what the data are needed to displayed.
    2.  View: Show the representation of model, that can be build in presenter
    3.  Presenter: Build all data for model and pass all data to model in form of view by communicating with services class( or business logic layer)

    Summary:

    • MVP is little prolonged process to implement and understanding in the beginning, but later on it will be very useful as it provides application maintainability on application maintenance phase, increase code re-usability. A good thing about it is a clear distinction of different layers.  For example, all the code is separate from the user interface.
    • MVP is a strong consideration candidate for large scale projects especially where project maintainability re-usability are the key success criteria. It suits well with automated test cases methods also.

Tuesday, July 6, 2010

Download an Image and Save it as PNG or JPEG in iPhone SDK

code : 

NSLog(@"Downloading...");
 // Get an image from the URL below
 UIImage *image = [[UIImage alloc] initWithData:[NSData 
dataWithContentsOfURL:
[NSURL URLWithString:@"http://www.objectgraph.com/images/og_logo.png"]]];
 
 NSLog(@"%f,%f",image.size.width,image.size.height);
 
 // Let's save the file into Document folder.
 // You can also change this to your desktop for testing. (e.g. 
/Users/kiichi/Desktop/)
 // NSString *deskTopDir = @"/Users/kiichi/Desktop";
 
 NSString *docDir = [NSSearchPathForDirectoriesInDomains(
   NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
 
 // If you go to the folder below, you will find those pictures
 NSLog(@"%@",docDir);
 
 NSLog(@"saving png");
 NSString *pngFilePath = [NSString stringWithFormat:@"%@/test.png",docDir];
NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(image)];
                [data1 writeToFile:pngFilePath atomically:YES];
 
 NSLog(@"saving jpeg");
 NSString *jpegFilePath = [NSString stringWithFormat:@"%@/test.jpeg",docDir];
 NSData *data2 = [NSData dataWithData:UIImageJPEGRepresentation(image, 
1.0f)];//1.0f = 100% quality
 [data2 writeToFile:jpegFilePath atomically:YES];
 
 NSLog(@"saving image done");
 
 [image release];







important link:

http://blog.objectgraph.com/index.php/2010/04/05/download-an-image-and-save-it-as-png-or-jpeg-in-iphone-sdk/

Friday, July 2, 2010

Add and Get double value or numbers in a mutable array in iphone.

        
        code here :


        NSString *str = @"1.22222222";
double d = [str doubleValue];
arrForDoubleValue = [[NSMutableArray alloc] init];
[arrForDoubleValue addObject:[NSNumber numberWithDouble:d]];
for(int i = 0; i<[arrForDoubleValue count];i++)
{
double a = [[arrForDoubleValue objectAtIndex:i]doubleValue];
NSLog(@"%.8lf",a);
}