Workaday

April 12, 2010 in Workaday, business, iPhone | Comments (0)

Tags: , , , , , , , ,

workaday_icon_nogloss_300px

Workaday is a unique timepiece for visual thinkers.

  • Avoid burnout by keeping work, rest and sleep in balance
  • See how your inner work day is progressing, regardless of the real time
  • Includes a visual reminder for breaks so you won’t skip meals
  • Press the green Time Bar to enter the time you woke up
    The Time Bar will show your current activity and next break time
    Pending breaks appear as yellow buttons
    Press a break button to set it’s status to Taken (dark) or Skipped (light)

    workaday_4_snapshots

    Available at the Apple App Store.

    DisCalc

    March 13, 2010 in DisCalc, business, iPhone | Comments (2)

    Tags: , , , , , , , , ,

    DiscountIcon_300px

    Quickly calculate discounts and/or sales tax.

    • No typing.
    • Large, easy-to-read numbers.
    • View total with or without sales tax.

    Use the slider to set the Original Price
    Use the arrow buttons to adjust the exact amount
    Pick a discount amount and set your local sales tax
    Touch the price tag to switch between total with and without tax

    DisCalc_screenshots4up

    Available at the Apple App Store

    Tipidy 2

    February 27, 2010 in Tipidy, iPhone | Comments (0)

    Tags: , , , , , , , , , , , ,

    tipAppIconD_300px

    Now with bill splitting, up to 10 ways!

    You don’t need a calculator, you need to know what to write on the credit card receipt.

    Tipidy will tell you!

    1. Use the slider to set the Bill Amount.
    2. Tap to toggle among three tip types. Don’t be a tightwad.
    3. Tally the Total.

    Too easy!

    Instructions for Tipidy

    February 8, 2010 in Tipidy, iPhone, shiny | Comments (0)

    Tags: , , , , , , , , , ,

    1. Use the slider to set the dollar amount from the check.
    2. Put the tip and total on the check.
    3. There is no step 3.
    tipiddy_blog_instructions_470px_269px

    Available on the iTunes App Store for US$0.99

    Warning about files included in builds

    February 4, 2010 in ProTip, Uncategorized, programming, traps | Comments (0)

    If you have text files in your Xcode project that you use to keep notes and other documentation, remember to exclude them from your builds. Otherwise anyone with your app can view that file by renaming and unzipping your app .ipa file.

    To check for these stray files, look in your Groups and Files panel, under Targets –> AppName –> Copy Bundle Resources.

    sekrits

    To exclude it (or them), turn on your detail view with SHIFT-COMMAND-e. There’s a column icon that looks like a bullseye that determines if a file is included in your app bundle. Look down that column until you get to the row with your file. Uncheck the box.

    exclude_file

    Now your text file(s) won’t be included when you build your app.

    Tipidy

    January 27, 2010 in Tipidy, Uncategorized, iPhone | Comments (0)

    Tags: , , , , , , , , , ,

    Tipity Icon

    You don’t need a calculator, you need to know what to write on the credit card receipt.

    Tipidy will tell you!

    1. Use the slider to set the Bill Amount.
    2. Tap to toggle among three tip types. Don’t be a tightwad.
    3. Tally the Total.

    Too easy!

    Available on the iTunes App Store for US$0.99

    Problem: Using a CGPoint in an NSLog() statement causes program to crash

    November 21, 2009 in Objective-C, iPhone, programming, traps | Comments (0)

    Tags: , ,


    Example:

    CGPoint somePoint = CGPointMake(160.5, 240.0);

    NSLog(@”The point is %@”, somePoint);

    // result —> program crashes

    Reason: A CGPoint is a struct, not an object. It must be wrapped inside an object to work with the format symbol %@

    Solution 1: Use the NSStringFromCGPoint() function to wrap a CGPoint into an NSString object

    NSLog(@”The point is %@”, NSStringFromCGPoint(somePoint));

    // result —> The point is {160, 240}

    Solution 2: Since a CGPoint is made up of two floats .x and .y, you can print those directly using dot notation

    NSLog(@”The point is %f, %f”, somePoint.x, somePoint.y);

    // result —> The point is 160.500000, 240.000000

    If you want to print the two floats without the trailing zeros use %g instead of %f

    NSLog(@”The point is %g, %g”, somePoint.x, somePoint.y);

    // result —> The point is 160.5, 240

    Solution 3: You can also put a CGPoint inside an NSValue object

    NSValue *somePointValue = [NSValue valueWithCGPoint:somePoint];

    NSLog(@”The point value is %@”, somePointValue);

    // The point value is NSPoint: {160.5, 240}


    // This allows you to put a point inside an NSArray or other collection

    NSArray *pointArray = [NSArray arrayWithObjects:somePointValue, somePointValue, somePointValue, nil];

    NSLog(@”Array of points %@”, pointArray);

    /* result —> Array of points (

    NSPoint: {160.5, 240},

    NSPoint: {160.5, 240},

    NSPoint: {160.5, 240}

    )

    */

    All of this applies to CGRect, CGSize and CGAffineTransform as well as many other structs. See the documentation for more converter functions. They all start with NSStringFrom…

    Newbie iPhone Programming Mistakes #0

    in Objective-C, iPhone, programming, traps | Comments (0)

    Tags: ,

    If you’re new to iPhone software development and serious programming in general, you’re learning a lot of things simultaneously: C, Objective-C, Cocoa, Xcode and Object Oriented Programming.

    You’ll make a mountain of errors while you learn. Some of these mistakes are so elementary that experienced programmers can hardly understand how they could happen.

    I’ll be posting some common mistakes and errors with solutions.

    Objective-C 3.0 spit-balling ideas

    November 3, 2009 in Ideas, Objective-C | Comments (0)

    Boxing NSNumbers and NSValues for inclusion in an NSArray are a verbose pain in the ass.

    I mean, just look at this monstrosity:

    NSArray *ranks = [NSArray arrayWithObjects:

    [NSNumber numberWithInt:5],

    [NSNumber numberWithInt:3],

    [NSNumber numberWithInt:1],

    [NSNumber numberWithInt:1],

    nil];


    Objective-C uses the @ symbol to prefix it’s bolt-on keywords, right? How about we take it a little further. Let’s use it to box common types and structs like int, float, CGPoint, and CGRect.
    This is already done with NSStrings:

    NSString *str = @”sunChainedInInk”;

    Here’s an example with NSNumbers:

    NSArray *ranks = [NSArray arrayWithObjects:@5i@3i@1.0f@1i];

    Look at how short that is. Ahhh.
    Use a postfix like i for int, f for float…you get the idea.

    How Old am I?

    June 28, 2009 in How Old (Am I) app, iPhone | Comments (1)

    howOldIcon_300px

    Have you ever forgotten how old you are?

    It seems silly to pull out a calculator and enter your birth year. Even sillier to strain your brain and do the math in your head.

    That’s where “How Old” comes in. Just launch it and it will remind you. No fuss, no muss.

    Available for free at the iTunes app store.

    iTunes Store link