Saturday, November 3, 2012

iOS Resolution


Useful info about iOS devices:

iPhone Resolution
iPhone 3GS 480-by-320-pixel resolution at 163 ppi
iPhone 4S 960-by-640-pixel resolution at 326 ppi
iPhone 5 1136-by-640-pixel resolution at 326 ppi

iPad Resolution
iPad 4 2048-by-1536 resolution at 264 pixels per inch (ppi)
iPad mini 1024-by-768 resolution at 163 pixels per inch (ppi)
iPad 2 1024-by-768 resolution at 132 pixels per inch (ppi)

Thursday, June 14, 2012

Cool utility method to display HH:MM:SS from seconds

When I was developing video recording application, I had to display the time in HH:MM:SS format.
I wrote a utility method which does the same. It takes seconds as input and returns a NSString. Hope this helps iOS community :)

NSString * formatHHMMSSStringFromSeconds(int seconds)
{
    NSString *timeString = @"";
    int minutes = seconds / 60;
    seconds = seconds % 60;
    int hours = 0;
    if(minutes > 60)
    {
        hours = minutes / 60;
        minutes = minutes % 60;
    }
    timeString = [timeString stringByAppendingFormat:@"%02d:%02d:%02d",hours,minutes, seconds];
    return timeString;
}

Saturday, June 9, 2012

Remove .svn file from your project

Terminal command to remove the .svn files from your project.

find . -name ".svn" -type d -exec rm -rf {} \;

usage: 
go to your project directory by making a 'cd'.
 cd /..../..../myproject

execute the command.
find . -name ".svn" -type d -exec rm -rf {} \;

thats it....simple and very effective :)



svnX FileMerge does not work with XCode 4.3 upgrade

Many of us who upgraded their XCode to 4.3 must be facing an issue with FileMerge application which is part of svnX. After the XCode 4,3 upgrade, FileMerge application location has been changed. This is why it fails to launch from svnX. 


You can fix this running the following command on terminal.
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer
Also, you can launch the FileMerge directly from Xcode.
Xcode -> Open Developer Tool -> FileMerge. 

The application binary can be found here:
 /Applications/Xcode.app/Contents/Applications/FileMerge.app.

Sunday, June 3, 2012

UIImage From Movie File

Simple utility method to create a image from video file. Specify the size of the image and the time interval.

UIImage *getImageFromMovieAtTime(AVURLAsset *videoAsset, CGSize imageSize,CMTime frameTime)
{
    NSError *error =nil;
    CMTime actualTime;
    
    
    AVAssetImageGenerator *imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:videoAsset];
    imageGenerator.appliesPreferredTrackTransform = YES;
    imageGenerator.maximumSize = imageSize;
    CGImageRef imageRef = [imageGenerator copyCGImageAtTime:frameTime actualTime:&actualTime error:&error];
    UIImage *movImage = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    
    if(error || movImage == nil)
    {
         DEBUGLOG(@"Error: %@",error);
    }
    DEBUGLOG(@"imagesize: %@",NSStringFromCGSize(movImage.size));
 
 return movImage;
}
Usage:
    UIImage *videoFrame = getImageFromMovieAtTime(videoAsset, CGSizeMake(width, height),kCMTimeZero);

Monday, May 28, 2012

Launching Map App on iOS to show route between source and destination location


+(void)showRouteOnMapFrom:(CLLocationCoordinate2D)sourceCoordinate to:(CLLocationCoordinate2D) destCoordinate
{
    NSString* urlString = [NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f",
                           sourceCoordinate.latitude, sourceCoordinate.longitude,destCoordinate.latitude, destCoordinate.longitude];
    
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
}

Saturday, May 26, 2012

Enable ARC in a Non ARC project

Small trick to enable ARC on a specific file in a non-ARC project by using the flag -fobjc-arc

Sunday, March 25, 2012

Documents Directory

Simple C function to retrive the path of the documents directory in iOS

NSString *documentsDirectory(void)
{
 static NSString *docPath = nil;
 if(docPath == nil)
 {
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  docPath = [[paths objectAtIndex:0] retain];
 }
    return docPath;
}