Notely v1.2 Now Available

May 26th, 2011 No comments

Notely v1.1 was just released yesterday and I submitted v1.2 shortly after that. I then requested Apple to do an expedited review do to an encoding issue causing problems. Anyhow, v1.2 is now available in the App Store and it has many great new features along with bug fixes. Checkout the CHANGELOG below.

Additions
——————–
+ Added extended keyboard with customizable keys and arrows to move back and forth between words and letters. Hold down one of the keys between the arrows on the extended keyboard and choose the key to assign from the keyboard.
+ Added option to enable/disable the extended keyboard
+ Added the ability to move back and forth between words or letters by swiping the text area while editing on non-iPad devices
+ Added setting to choose what happens when swiping the editing area on non-iPad devices (Words or Letter)
+ Added the ability to choose amongst 9 file types to monitor for sync.
+ Added TextExpander support for file/folder naming
+ Added preference to turn on/off auto expanding editing view
+ Added Autosave when editing files and when closing Notely
+ Added the ability to choose which path in your Dropbox account to sync with
+ Added About section in Preferences where you can easily send feedback, view release notes and get help

Changes
——————–
= Changed row deselecting behavior

Bug Fixes
——————–
- When the Show Extensions preference was off, folders with a period in the name would not display correctly in list view
- Unsupported/disallowed file extensions are no longer deleted from your Dropbox account
- Fixed encoding issue causing certain characters to be displayed wrong or the text for the file not being saved at all
- Memory leaks

Categories: iPad Apps, iPhone Apps, Notely, Notely Tags:

Notely 1.1 Submitted for Review

May 20th, 2011 No comments

Here is the CHANGELOG for v1.1 of Notely:

Additions
——————–
+ Added the ability to send notes to Omnifocus if Omnifocus is installed on the same device
+ Added the ability to open txt files from other apps into Notely
+ Added 25 new color choices for Font Color and Background Color (5 new schemes)
+ Added Preferences access and Home button to Note Editing view on non-iPad devices
+ Added Done button to all Preference views for Preference dismissal
+ Added Support for devices running iOS 4.0+ instead of just 4.2+

Changes
——————–
= Better Dropbox Sync recursion
= Fonts in Preferences are now sectioned by Font Family Name

Bug Fixes
——————–
- Fixed bug that caused list editing mode to exit after sync had completed
- Fixed bug that could cause app to crash when rotating the device in some cases
- Fixed memory leaks
- Other minor bug fixes

Categories: iPad Apps, iPhone Apps, Notely, Notely Tags:

Notely – Dropbox Text Editor Released

May 18th, 2011 No comments

iPhone

iPad


It’s been nearly 2 weeks since Notely was submitted for review and the wait has been killing me, but, Notely is now available. About a week ago, Notely was rejected for not providing Apple with a demo account for Dropbox (kinda silly in my opinion), but this gave me the opportunity to sumbit a version I had been working on that included some new features such as Markdown support and some little bugs I found here and there.

I’ve already been working on Notely 1.1 and it has some great new things as well as some more bug fixes. Look forward to that update being submitted within the month. In the meantime, enjoy Notely, I know I have been developing it :)

You can find out more details by visiting the Notely – Dropbox Text Editor page.

Categories: Uncategorized Tags:

Notely – Dropbox Text Editor Submitted for Review

May 4th, 2011 No comments

Just submitted my newest app, Notely, so hopefully the review process goes smoothly and it’ll be available soon. For info, checkout the Notely page.

Categories: iPad Apps, iPhone Apps, Notely, Notely Tags:

eFiles is now Files+ with 1.2 Update

January 22nd, 2011 1 comment

I’ve just submitted another update for Files+ (formerly known as eFiles and before that Files, ha). This update brings many new great features as you can see by the CHANGELOG below:

ADDITIONS
——————
+ Added download manager. Files can now be simultaneously downloaded and their status checked in Settings->Download Manager
+ Added multitasking support for uploading and downloading while Files+ is in the background (not the active app).
+ Added a setting for Email Subject that allows you to use the default (Files+ Attachments) or the Filename(s) for the subject when emailing files.
+ Added sorting. When you tap the icon in the toolbar that used to switch between Icon View and List View, you now get a dialogue that offers sorting options. These options are saved on a per folder basis.
+ Added a bookmarks section for easy folder access for those of you with deep folder hierarchies.
+ Added option to have Icons show by default (now the default for new installs)
+ Added an Overview Video accessible from settings

CHANGES
——————
= Change name from eFiles to Files+ (hopefully last name change)
= Settings is organized in sections now.
= Removed help screen for newly downloaded copies of Files+ because of the addition of the Overview Video

FIXES
——————
- Tap holding the first item in thumbnail view would not bring you into editing mode, it does now.
- Minor bug and memory fixes

Categories: Files+, iPhone Apps Tags:

eFiles 1.2 – What’s Coming Next

January 19th, 2011 No comments

I’ve been working hard on the next update of eFiles. I think it will be a great update adding great new features. Here are a few that you can expect:

  • Added sorting. When you tap the icon in the toolbar that used to switch between Icon View and List View, you now get a dialogue that offers sorting options. These options are saved on a per folder basis.
  • Added multitasking support for uploading and downloading while eFiles is in the background (not the active app).
  • Added download manager. Files can now be simultaneously downloaded, their status checked in Settings->Download Manager and you can redownload files that you may have deleted or view them right from the Download Manager.
  • Added a bookmarks section for easy folder access for those of you with deep folder hierarchies.

These are some of the main new features and I hope to have the update submitted in the next few days.

Categories: Files+, iPhone Apps Tags:

Files is now eFiles with 1.1 update

January 14th, 2011 No comments

I’ve just submitted an update for Files. In this update the app has been renamed to eFiles for legal reasons. Here is the changelog:

ADDITIONS
——————
+ Added the ability to add txt files and edit txt files and you can choose between 4 different levels of contrast for the viewer/editor
+ Addded the ability to save photos to your the Camera Roll

CHANGES
——————
= App name changed to eFiles
= For Dropbox, you can now upload multiple files and folders at once and you can download entire folders (FTP support in next update)
= WiFi Status now displays “Attempting to Connect” while doing just that
= Optimized thumbnail view for better performance with a large amount of files
= Photo viewer optimized for better performance and handling of large files

FIXES
——————
- some memory issues

NOTES
——————
This update is a bit premature because of the need to rename the app. We had planned to include more new features in this update, so we’ll be working on those and hopefully have it ready when this update gets approved.

Categories: Files+, iPhone Apps Tags:

Files for iPhone/iPod Touch In Review

December 29th, 2010 4 comments

I’ve just submitted my new app “Files” to the App Store review process. Hopefully it’ll be approved and available soon. Keep checking back here for more details and you can view the app page here.

Categories: Files+, iPhone Apps Tags:

Slicing Images With Objective-C

September 22nd, 2010 4 comments

I had a project come across my path recently that needed to implement an optimized photo viewer. To do this, displaying full sized images in the viewer wasn’t very performance friendly so I went with the method of tiled scroll views, like Google Maps uses. I found some code for the photo viewer, of which needed tweaking, but the real challenge was to get these images that were already in the app at full resolution, sliced up into 4 different levels of slices and saved to an individual folder for each photo (for organizational purposes).

So, I looked around on the net and couldn’t find anything useful for this specific purpose so I wrote my own method to do all the work. This method could be run in a loop of the image array or it could be run at the first viewing of each photo.

What the script does is takes a single photo. It then re-sizes this photo 3 different times. Each time the photo is re-sized it loops through columns and rows of the image cropping out 256x256px squares and saving them. Also, it will slice smaller sized tiles for the end column and the bottom rows if the images width or height is not divisible by 256. The 4th level of zoom does not get re-sized, it just slices up the full resolution image.

Above is an example showing Zoom Level 1 (left, fully zoomed out), Zoom Level 2 (middle), and Zoom Level 4 (right, fully zoomed in).

You could tweak the script to have smaller tiles, save as jpg instead of png, have more levels of zoom, save in a different folder hierarchy, etc… This is just the basics for what I needed to get the photo viewer to work.

One thing to note is I’m using some great UIImage Categories from here for resizing the image and cropping out the tiles. You just need to include those in your project and #import “UIImage+Resize.h”

The method is below:

-(void)sliceImageToPieces:(UIImage*)imageToSlice imageName:(NSString*)filename{
    NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentPath = [sysPaths objectAtIndex:0];
    NSString *tileImagePath = [documentPath stringByAppendingPathComponent:@"tileImages"];
    BOOL isFolder = YES;
    if (![[NSFileManager defaultManager] fileExistsAtPath:tileImagePath isDirectory:&isFolder]) {
        [[NSFileManager defaultManager] createDirectoryAtPath:tileImagePath withIntermediateDirectories:NO attributes:nil error:nil];
    }
    NSString *imageTilesPath = [tileImagePath stringByAppendingPathComponent:filename];
    if (![[NSFileManager defaultManager] fileExistsAtPath:imageTilesPath isDirectory:&isFolder]) {
        [[NSFileManager defaultManager] createDirectoryAtPath:imageTilesPath withIntermediateDirectories:NO attributes:nil error:nil];
        UIImage *theImage = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:filename ofType:@"jpg"]];
    }
 
    int zoom = 125;
    for(int z=0;z<4;z++){
    if(z != 0)zoom = zoom*2;
        int zoomLevelWidth;
        int zoomLevelHeight;
        switch (z) {
            case 0:
                zoomLevelWidth = (imageToSlice.size.width/4)/2;
                zoomLevelHeight = (imageToSlice.size.height/4)/2;
                break;
            case 1:
                zoomLevelWidth = imageToSlice.size.width/4;
                zoomLevelHeight = imageToSlice.size.height/4;
                break;
            case 2:
                zoomLevelWidth = (imageToSlice.size.width/4)*2;
                zoomLevelHeight = (imageToSlice.size.height/4)*2;
                break;
            default:
                zoomLevelWidth = imageToSlice.size.width;
                zoomLevelHeight = imageToSlice.size.height;
                break;
        }
        UIImage *sizedImage = [imageToSlice resizedImageWithContentMode:UIViewContentModeScaleAspectFit bounds:CGSizeMake(zoomLevelWidth, zoomLevelHeight) interpolationQuality:kCGInterpolationHigh];
        int imageWidth = sizedImage.size.width;
        int imageHeight = sizedImage.size.height;
        int colIterations = ceil((float)imageWidth/256);
        int rowIterations = ceil((float)imageHeight/256);
        for (int col=0; col<colIterations; col++) {
            int x = 256*col;
            int rectWidth;
            if(imageWidth-x < 256){
                rectWidth = imageWidth-x;
            }else {
                rectWidth = 256;
            }
            for (int row=0; row<rowIterations; row++) {
                int y = 256*row;
                int rectHeight;
                if(imageHeight-y < 256){
                    rectHeight = imageHeight-y;
                }else {
                    rectHeight = 256;
                }
                CGRect rect = CGRectMake(x, y, rectWidth, rectHeight);
                UIImage *imageTile = [sizedImage croppedImage:rect];
 
                NSData *newImage = UIImagePNGRepresentation(imageTile);
                NSString *newImagePath = [imageTilesPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%i_%i_%i.png",filename,zoom,col,row]];
                [newImage writeToFile:newImagePath atomically:YES];
            }
        }
    }
}

As always, if you have any questions, leave them in the comments and I’ll try to get you a good answer :)

Categories: iPhone Dev Tags: ,

Taskly 1.2.1 Update now Available

June 4th, 2010 1 comment

This update just fixes 1 bug that I thought I had fixed in the 1.2 update. Thank you Apple for an expedited review :)

- Fix: When viewing a Subtask or a Checklist item where the Subtask List or Checklist resided in the Inbox, Taskly would crash

Thanks for your patience and support everyone.

Categories: iPhone Apps, Taskly Tags: , ,