Blog Archives

5 Great Mac Tools for Designing Apps

There comes a point in the creation of every great app that you move from concept to implementation.  On the design side, this is when you feel like you have your wireframes and storyboard walk-throughs (or collection of bar napkins) at a point where you want to start “real” development.  There are definitely some great tools for the iPad to help solidify your app concept from a more abstract design point of view. Looking at the more tangible side of visual design, I’ve found the following tools available in the Mac App Store to be quite helpful.

Choosing the Right Colors

ColorBenderColorBlender ($1.99). When choosing a color palette for your App, you either have an eye for it or you don’t. For those of us who don’t have it, ColorBlender can help out.  There have been a lot of studies on how humans are affected by different colors, and there are certainly combinations of colors that are hard on the eyes.  The main function of ColorBlender is to create a palette with six harmonious colors that will make looking at your app pleasant, or at least tolerable, for most people.  The only thing this app is missing is a good color picker, but that’s quickly remedied using OS X’s included DigitalColor Meter utility. After choosing a base color in the DigitalColor Meter, ColorBender will help you select a collection of harmonious colors to use throughout your app.

AppControlsAppControls ($19.99). Once you have a solid color palette picked out, the next step will be to use that palette when creating various controls throughout your app. AppControls will help you create the artifacts necessary to create some great looking controls. You can copy the values of the colors generated in ColorBender, and paste them into the Color Picker of AppControls. Even if you don’t like the limit of six colors that ColorBender generates, you can at least use it to select the two colors that will be used to create a smooth gradient on your controls. All you need to do is the following:App Control Color Bender Walkthrough

  1. Use the DigitalColor Meter to select the color you want to use as your primary color, and hit the Shift+Cmd+H key combination to hold the colors on the screen.
  2. Type the color codes into ColorBlender to set your six harmonious colors.
  3. Copy the value of the color you want to use directly from ColorBlender’s screen and paste it into AppControls color picker.

Preparing for App Store Submission

LittleIpsumLittleIpsum (Free). How many time have you tried to size up how a data entry or large text display field will look by pounding random keys on the keyboard? A tool named LittleIpsum provides a better way. It generates Latin text in varying lengths including words, sentences and paragraphs. The text is then copied to your clipboard, and ready to paste into your app.

StatusBarredStatus Barred ($0.99). Occasionally, you may want to pull together a collection of screen shots for the current state of the application, either to update documentation when designing a change in the way the application works or simply to craft your marketing material.  Status Barred is a simple little app that will crop off the carrier status bar from the images you take so that the focus in on your app, and not your carrier.

iOSIconsIcons ($2.99). The final Mac App in this collection of design apps will help in the creation of icons, both for and within the app.  It can also be used to help with the design of any support or marketing web sites that will be created.  Icons could not be easier to use. Start with a 512×512 square image, drop it into the tool, and generate your icons.  You can even round the edges and add that cool glass look.

While these tools individually are no match for Adobe’s creative suite of tools, for the price, they add up to a competitive package. And like the start of a thousand bee stings, it only makes sense that this tightly focused new breed of apps help others create more great task-specific software as the App Store model continues to propagate.

Related content from GigaOM Pro (subscription req’d):

Ten ‘Easter Eggs’ to Find in Your Mac OS and Applications

While this week many people are searching for Easter Eggs or the Afikoman, here are 10 hidden settings you can find in your Mac apps and OS X. These are all small changes you can make that make using the applications and the system slightly better.

First off, you’ll need to open up the Terminal application (/Applications > Utilities > Terminal), since these ‘Easter Eggs’ have to be run from the command line. Once you’ve got that open, you can copy and paste the commands below. Each command is one line only, and you should press Return after pasting in each command. To turn these off after, replace YES with NO (or vice-versa) and repeat the command.

Allow Dashboard Widgets to be Dragged Onto the Desktop

Sometimes it’s useful to keep one of you Dashboard widgets around after you close Dashboard, so paste the following into Terminal:

defaults write com.apple.dashboard devmode YES && killall Dock

To use this ability, click and hold a widget and then close Dashboard using your keyboard hotkey (usually F4 on newer Macs).

Stop Twitter’s Compose Window Floating

The compose window in Twitter for Mac floats above all other windows at all times, which can get annoying. To stop it floating, paste this into Terminal, then restart Twitter for Mac.

defaults write com.twitter.twitter-mac NormalComposeWindowLevel -bool NO

Allow Escape to Close Twitter Compose Window

Another one for Twitter for Mac, this allows you to press Esc to close the new tweet window. Once again, paste and then restart Twitter for Mac.

defaults write com.twitter.twitter-mac ESCClosesComposeWindow -bool YES

Show Hidden Files in the Finder

There are some files which the Finder keeps hidden, but you might want to be able to see them sometimes, such as .htaccess files for web developers. To show hidden files, paste this into Terminal:

defaults write com.apple.finder AppleShowAllFiles -bool YES && killall Finder

Your hidden files should now show up.

Disable the ‘Unexpectedly Quit’ Dialog

When an application crashes, you’ll see a dialog telling you the application quit unexpectedly. This can get annoying if it happens often, so you can disable that dialog using

defaults write com.apple.CrashReporter DialogType none

You may need to restart your computer for changes to take effect. To turn this back on again, replace ‘none’ with ‘prompt’.

Enable ‘X-Ray Folders’ in QuickLook

The QuickLook feature of Finder is great, but if you use it on a folder, you won’t see anything except a folder icon. Using this hidden setting, you’ll be able to see the contents of the folder when you use QuickLook.

defaults write com.apple.finder QLEnableXRayFolders 1 && killall Finder

To turn off, replace the ’1? with a ’0?.

Show the File Path in the Finder Window Title

It’s easy to get lost in your file system, so enable this to show the path of the current folder in the title bar of your Finder window. That should make it easier to remember where you are.

defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES && killall Finder

Disable iTunes Arrow Links

You’ll often see tips on how to change the arrow links in iTunes’ list view to go to your library instead of the store, but what about turning them off altogether? Paste this command and restart iTunes.

defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES

Stop the Help Window From Floating

Another troublesome floating window is the Help window which appears when you click Help in most applications. To stop it floating, use

defaults write com.apple.helpviewer NormalWindow -boolean yes

Change the Desktop Picture on the Login Screen

If you don’t like the default image shown behind the login screen, you can change it to any other image using the following command. Just add the path of the image after the word ‘path’.

defaults write /Library/Preferences/com.apple.loginwindow DesktopPicture -path

Bonus: Control Even More Hidden Settings Using Secrets

Secrets is a preference pane which allows you to control even more hidden settings in Mac applications using a friendly interface, rather than having to use Terminal. You can download it here, and once installed you’ll find it at the bottom of System Preferences.

Related content from GigaOM Pro (subscription req’d):

5 Great iPad Tools for Designing Apps

The best app ideas don’t necessarily come from the ranks of iOS developers. Anyone can have a good idea for a new app. The challenge is in getting that new idea down in a way that makes it easy to share and visualize. For both developers and non-developers alike, the App Store has a selection of design tools for the iPad that each play a unique role in the process of evolving a good idea into a great one.

UI Sketcher ($3.99) — In the “better than a bar napkin but still sort of a bar napkin” category, there’s UI Sketcher. In this app, all you get is virtual graph paper and a selection of five different pens.  If you want to pass around an iPad for a rapid session of brainstorming, then a free form based designer like UI Sketcher is the best choice. I would recommend investing in a stylus like the Pogo Sketch or the upcoming Cosmonaut to help your inner artist become more of a professional draftsman than a kindergarden finger painter.

Mocking Pad ($9.99) — Mocking Pad represents a step up from free form design.  There is a lot to be said about keeping the initial design as loose as possible, meaning you probably don’t want to spend a lot of time on color choices, pixel perfect button placement, or even the exact implementation of which widget to use.  This designer is that you have a pallet of roughed out widgets to choose from.  You drag and drop each widget onto a sketched outline of an iPhone or iPad screen.  The number of controls at you disposal is not limitless, but more than adequate to get the idea across.  This is a very good design tool to use early in the design process to work out user interaction scenarios and screen level functionality without getting too caught up in the overall look and feel of the final product.

Blueprint ($14.99) — This is the Rolls-Royce of designers. As with Mocking Pad, you’re presented with a pallet based drag and drop design interaction.  Where this differs from Mocking Pad is that the controls are almost an exact replica of the final product.  It can therefore provide pixel-perfect alignment of each element in your application.  This tool is most useful in the development of a high-level storyboard of the app.  You can see the entire navigation of the app you’re creating from one comprehensive view.  If you are not a developer, and you what a way to quickly piece together a story board of exactly how you want the application to work, then this is the choice for you.  If you are a developer, you may find that time is better spent on creating a series of well drafted XIB files in Xcode.  Then take some screen shots of the XIBs in Xcode’s designer to piece together in some sort of page layout tool, so you aren’t duplicating effort.

Runners UpDraft from 37signals is a good alternative to UI Sketcher as a free hand designer.  It’s worth considering if you’re already a Campfire (web-based chat client) user, as the designs can be shared with your fellow campers from within the app. iMockUps were both good alternatives for Mocking Pad, and are worth a second look if you decide that Mocking Pad is not right for you in this space.  I have found no replacement or competition for Blueprint. For what it has to offer, there is simply nowhere else to look.

Each design tool has its niche.  I would recommend UI Sketcher to get that initial idea down before you forget it. Once you have a good idea and are ready to think through some basic user interaction scenarios, then Mocking Pad will prove to be the tool you need.  I would avoid using a tool like Blueprint at first, as it has the potential to consume a lot of time and could limit your implementation choices when handing your design over to the development team. On the other hand, if you are not at all technically-oriented and really want to get as close to a final design as possible before you hand it over, then Blueprint is a great tool to work with and has no match.

Related content from GigaOM Pro (subscription req’d):

Serializing and DeSerializing XML Objects in .Net

these two simple extension methods with have you switching between XML and objects in no time

First off, it is pretty well known that if you have any Object and want to convert it into an XML strong, you can use the XmlSerializer to do so. I encapsulated the process is a simple extension method that run from any object – this will work as long as the object has a constructor with no inputs (ie: new SomeObject()) as that is the constraint passed up from XmlSerializer. Here is the method for converting from an object to an xml string:

public static string ToXmlString(this Object o)
{
    StringWriter xml = new
        StringWriter(new StringBuilder());
    XmlSerializer xS = new XmlSerializer(o.GetType());
    xS.Serialize(xml, o);
    return xml.ToString();
}

With this, now all you need to do is:

MyObject obj = new MyObject();
// a bunch of stuff here...
// now I want the xml representation of this:
string xml = obj.ToXmlString();

Now to go backwards, you can use the similar Deserialize along with the XmlSerializer with this method:

public static T XmlToObject<T>(this string s)
{
    var xR = XmlReader.Create(new
        StringReader(s));
    XmlSerializer xS = new XmlSerializer(typeof(T));
    T obj = (T)xS.Deserialize(xR);
    return obj;
}

It is important to notice that this is taking in a raw xml string, which would not be web safe. If you were taking in data from a web source, you would want to employ HttpUtility.UrlDecode(s) instead of just s above.
Now if you want to turn your above string ‘xml’ into an object again, simply call it like this:

MyObject obj2 = xml.XmlToObject<SomeObject>();

Mac Maintenance: An OS X Reinstall Checklist

It was the stuff of nightmares: What I expected to be a routine repartition of my hard drive for Boot Camp became a 12-hour slog of a reinstall. My pain can be your gain, though. It’s a good idea to reinstall OS X every once and a while to keep your system running smoothly, so here are a few things to keep in mind before you begin. While most are pretty obvious, the list might prevent one or two head-smacking moments of regret.

Time Is Not On Your Side

Assuming your reinstall isn’t an emergency from a hard drive failure, make sure you have plenty of time to devote to this task. As I often joke with a friend, do not anger or tempt the Data Gods. When’s a great time to do the reinstall? On a day you have the house to yourself, and nothing else to do. When’s a horrid time to decide to do this? When you’re on deadline, late on a project, or rushed. Because when there’s little time for anything to go wrong, everything will go wrong. Depending on how much data you have, a backup, reinstall, and data restore can take you about eight hours to complete. Don’t try it if you only have four, or decide you can “deal with stuff later.” It’s never that simple.

Your Backup Is Not Good Enough

Time Machine is a fantastic feature. It’s perfect for those “oops, I deleted that file” moments, but when you’re reformatting your drive, do not place your faith in Time Machine alone. I’ve run into a few problems restoring from it (it once told me there was “one minute remaining” for around 12 hours).  External hard drives are cheap. Buy a 1TB drive and manually backup your data. What data should you be sure to backup?

Your User Folder: Music, Downloads, Documents, Pictures, etc. Don’t forget to de-authorize your iTunes account (otherwise your prior install will count towards your maximum of five machines you can authorize). Make sure you’ve got your mobile apps backed up (they’re in the iTunes folder, so if you grab that folder, you should be ok). You don’t want to lose any apps you’ve downloaded that have since been removed from the App Store (like VLC, for instance).

Applications: You don’t need to grab the whole folder, but make sure you copy your favorite apps to save time, and in case you can’t find the original install media. Grabbing Application bundles and folders will also save you the time-consuming process of re-patching software after a reinstall.

Application Support and Preferences Folders: In your ~Library folder are two important folders to backup: Application Support and Preferences. While you can troll through them and grab what you think you need, I recommend just backing up both directories in their entirety. In these folders are any preferences or extra files an App needs. For instance, your custom templates for Pages are in Application SupportiWorkPages. OmniGraffle’s Stencils are also in its own Application Support folder. Preferences you may not need to grab anything from, but it’s good to make sure you’ve got a copy if an app writes data to it.

Fonts: If you use a lot of custom fonts, like I do, you might also take for granted they’re always there and overlook them. Make sure you back up that folder, too.

Preflight Checklist

Ok, now you’re sure you’ve got all your data backed up, so what else do you need before nuking your OS and starting from scratch?

Install Media and Serial Numbers: I keep all my serial numbers in the cloud on Google Docs and Evernote. Make sure you have the install media (be they discs or .dmg files) for apps like Microsoft Office, and that you have all your serial numbers in a safe place in the cloud or in hard copy.

Your Wireless Password: Remembering this can be like trying to find your birth certificate when you really need it. You’re sure it’s here, someplace, right? Make sure you can remember it, or reset it now (and write it down) while you’re still on the network.

Your Assorted Online Accounts: My bank account username is always a gotcha for me. Go through sites you access a lot and make sure you’ve got the usernames and passwords handy, since your browser cookies won’t be around to help your deficient memory post-reinstall.

Your Backups: Sure, I’ve gone into it at great length, but now’s the time to triple check you’ve backed everything up.

Good luck! Hopefully, this advice will save you a little frustration whenever you happen to reinstall OS X. Anything I’m missing? Let us know in the comments.

Related content from GigaOM Pro (subscription req’d):

 

Screencast: How to Create iPhone Ringtones for Free

One of the best things about the iPhone is how easily you can set your own custom ringtones. Creating those ringtones from music from your own library is incredibly easy, too, and doesn’t require any paid third-party software. All you need is Garage Band and iTunes. Check out the screencast below to see how you can make your own ringtones from virtually any song in under five minutes.

Related content from GigaOM Pro (sub req’d):

Use the Option Key to Pull Up System Preferences on a MacBook [Mac OS X Tip]

From the files of the Total Mac Beginner Dept.: Some things on a Mac require System Preferences fiddling to fix—keyboard settings, Expose/Spaces, and so on. Press Option and the related function key, and up comes the related preferences. More »







Hackety Hack Teaches Ruby Programming to Aspiring Beginners for Free [Video]

Windows and Mac OS X: Hackety Hack is an application designed to teach complete beginners how to program in Ruby, eventually giving you the ability to create actual applications for the desktop and the web. More »







360 Web Browser Adds Firefox Sync and Download Management to iPhones [Video]

iOS only: 360 Web Browser isn’t the first Safari alternative for Apple devices, but it is unique for what it offers. Flash clip conversion, Firefox Sync compatibility, a circular menu around finger presses, and much better management of browser downloads. More »







Generate random values in C#

all sorts of random values including date, times, numbers, binary, bit, etc.

Nothing new here, but it’s nice to have it all in one spot.

generate random values

public int Integer(int max = Int16.MaxValue)
{
    max = max > Int16.MaxValue ? Int16.MaxValue : max;
    return new Random().Next(-max, max);
}

public string Binary(int length = 8) {
    int decNum = new Random().Next(1000, int.MaxValue);
    return Convert.ToString(decNum, 2)
        .Substring(0, length);
}

public DateTime Date(int start_year = 1995)
{
    DateTime start = new DateTime(start_year, 1, 1);
    int range = ((TimeSpan)(DateTime.Today - start))
        .Days;
    start.AddDays(new Random().Next(range))
        .AddSeconds(new Random().Next(86400));
}

public TimeSpan Time()
{
    return Date().TimeOfDay;
}

public int Bit()
{
    return new Random().Next() % 2 == 0 ? 1 : 0;
}

public bool Bool()
{
    return new Random().Next() % 2 == 0 ? true : false;
}

public string String(int limit = 255)
{
    // added spaces so there will be
    // a higher chance of spacing words
    string legal = "        abcdefghijklmnopqrstuvwxyz" +
        "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789      ";
    StringBuilder s = new StringBuilder();
    //Random length for the string
    limit = new Random().Next(1, limit);
    for (int i = 0; i < limit; i++)
        s.Append(legal[new Random().Next(legal.Length)]);
    return s.ToString();
}

WP Like Button Plugin by Free WordPress Templates