Archive for category iphone

Application Development Post Mortem

Were it that this was a post mortem for the recently released Tickets.app :-)

Rather, its a note that I need to do so.

Daniel Kennett of kennetnet software has put together a few nice post mortems, most recently this one detailing the development of an iPhone companion app.

Whether you put together a presentation, a video or simply scratch some notes in your moleskine, the act of analyzing your performance on a product development or contract development effort is a good one.

I keep a page in VoodooPad for each development release and capture notes about what I could do better or differently the next time around.

iPhone Companion Apps: New Project to App Store in Two Months | Daniel Kennett: “”

No Comments

Pastie 2.0 is out!

I’m pleased to announce that Pastie 2.0 is out and in the App Store. AppStoreBadge

The 2.0 release features:

  • Multiline messages
  • Landscape Mode
  • Contact management & Favorites
  • Switch between email and sms on the fly

mainscreen.png
editpastie.png
edittext.png
contacts.png
contactdetails.png
hud.png

No Comments

JSTalk, Acorn and iPhone Screen shots

One aspect of developing iPhone applications that I’ve spent a fair bit of time on is preparing screenshots – for the tutorial in the app, for marketing purposes and to capture the evolution of the look and feel of my apps.

My workflow has always been something like:

  • Capture a screenshot in the simulator (using SnapNDrag)
  • Save the file to a directory
  • Spend countless [minutes|hours] manually cropping and saving files to get rid of the simulator chrome

Why the simulator? Because I have a complete set of mocked up data appropriate for marketing purposes.

Recently I’ve been experimenting with JSTalk, evaluating it for inclusion in my upcoming desktop product. I’m a huge fan of Acorn. So much so that I haven’t installed PhotoShop on my newly repaved (with 10.6) macbook pro. With the release of Acorn 2.0, JSTalk is embedded, so the following script does exactly what I need.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Note, this requires the Acorn JSEnabler plugin to be installed.
// http://code.google.com/p/flycode/source/browse/trunk/jstalk/extras/acornplugin/
 
// Take a standard full window screen shot of the iPhone simulator and crop it to just the content area
function pathByAppendingString (path, aString)
{
    var fileName = [path lastPathComponent];
    var extension = [fileName pathExtension];
    var baseName = [fileName stringByDeletingPathExtension];
    var path = [path stringByDeletingLastPathComponent];
 
    return [[path stringByAppendingPathComponent: (baseName+aString)] stringByAppendingPathExtension: extension];
}
 
var acorn = JSTalk.application_("Acorn");
var firstDoc = acorn.orderedDocuments().objectAtIndex_(0);
var cropRect = NSMakeRect(33, 129, 320, 480);
 
firstDoc.cropToRect(cropRect);
 
var fileURL = [firstDoc fileURL];
 
var outputFile = pathByAppendingString([fileURL path],"-cropped");
 
firstDoc.dataRepresentationOfType_("public.png").writeToFile_(outputFile);
 
firstDoc.undoManager().undo();

You start with this:

hud.png

and end up with this:

hud-cropped.png

Finally, if you add the script to your ~/Library/Application Support/Acorn/Plug-Ins folder (and restart Acorn) – ResizeIPhoneSnaps will appear in your filter menu. Thusly.

acornInAction.png

No Comments

Another review for Pastie

Neil McDevitt, writing for deafmac.org offered up a nice review of Pastie.

Read it here

No Comments

Lifehacker covers Pastie

It’s been quite a few days for Pastie

First it got picked up with a great review from CNET

This morning Kevin Purdy from LifeHacker writes a great mention as well. LifeHacker review

No Comments

Favorite Pasties?

I can’t talk right now, I’m driving…

What part of “I’m in a meeting don’t you understand?”

These are just a few I’ve heard since I released Pastie a few days ago.

Any favorite pasties? Leave a comment and I’ll pick the top few. Winning entries will be featured in an upcoming release (or promotion)

No Comments

Nice review of Pastie

Josh Lowensohn of CNET/Webware wrote up a nice overview of Pastie today.

Check it out!

No Comments

Pastie is out

My first iPhone application, Pastie, is live in the AppStore.

full-main-(Reflection)

I’ve written several iPhone apps over the last year, but all failed to meet my criteria for a releaseable app. Some fell prey to my low boredom threshold, while others couldn’t find any elbow room in the already crowded app store.

Pastie is pretty simple, but compelling. How many times a day does someone call you while you’re in a meeting? Do you call or text your significant other when you’re leaving the office for home? “I’ll be home in an hour…”

My killer use case was the question: “What is the dial in number for the conference call?” I must have typed that message (or some badly abbreviated facsimile thereof) several times a week. Doing that in the car can be fatal!

Pastie originally was just going to be a clipboard for often used expressions. Like quick text entry on every phone except the iPhone. The technical limitations of the iPhone prevent anyone (save the jailbreakers) from offering in-app shortcuts. The next best thing it seemed was to have a clipboard that you could select from, and then paste it into either an email or an SMS.

One thing led to another and Pastie now supports email natively and uses the clipboard for SMS. The original use case is still supported.

I submitted the app for approval almost two weeks ago. The benefit of the extended approval cycle is that I’m busy at work on the next major version of Pastie. It will include multiple email recipients, text for both the subject and body of the email and maybe even some cover-flowish goodness to allow you to flick those often used expressions.

Check it out and give me your feedback.

AppStoreBadge

, ,

No Comments

AddressBook displayedProperties — iPhone SDK

There aren’t many examples of how to control the displayed properties of an ABPeoplePickerNavigationController. Displayed properties allow you to control which attributes of a contact are displayed when selecting a person.

The following code does the trick:

1
2
3
4
5
6
   ABPeoplePickerNavigationController *picker =  [[ABPeoplePickerNavigationController alloc] init];
    picker.peoplePickerDelegate = self;
    [picker setDisplayedProperties:[NSArray arrayWithObjects: [NSNumber numberWithInt: kABPersonPhoneProperty], [NSNumber numberWithInt:kABPersonEmailProperty], nil]];
 
    [self presentModalViewController:picker animated:YES];
    [picker release];

The displayed properties can include phone (kABPersonPhoneProperty), email (kABPersonEmailProperty), instant messaging (kABPersonInstantMessageProperty) etc. See ABPerson.h for a full list.

No Comments