Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

February 26 2014


February 18 2014

Sponsored post

February 10 2014


How To Create A Self-Paced Email Course


When I realized I had written what seemed to be a course (i.e. not my usual article or book), I was left with a sense of panic. There are so many options for running an online course, and all of them seem slightly confusing or time-intensive to set up.

Then I remembered the autoresponders feature in my newsletter application (I use MailChimp, although every newsletter software has it). I could trigger lessons with autoresponders and deliver course material to where most people spend most of their day: the inbox.

Another problem was that the course was about writing a book, and some of the lessons were slightly onerous — like “Write a first draft.” So, setting a fixed time delay wouldn’t work because some people complete things like that much more quickly than others.

Instead of automatically firing off each lesson after a set amount of time, I created a series of lessons via autoresponders that fired only when the previous lesson was marked as finished. That way, I got to deliver each new lesson only when the student had finished the previous. This method does not require you to configure any website, plugins or additional software (beyond setting up a mailing list and creating pages on your existing website, which you probably already know how to do).

I made my own course, Write and Sell Your Damn Book, free for a few reasons. First, I was able to bring some sponsors on board to give me enough money to make it worthwhile to create and set up. Secondly, I felt that the course material should be available to anyone, on any budget, who is writing a book.

Thus, the course made money before it launched, but the downside is that it made a fixed amount of money. I set up additional (albeit minor) revenue streams for it — affiliate links on Amazon to recommended books on the same subject, links to my own paid books, as well as the course in Kindle format, just in case people wanted to read the material all at once.

Using the method outlined below, I created a self-paced email course that had over 1,000 registrations in the first 24 hours, and almost 2,500 in the first week. There are other ways to do this using MailChimp, such as triggering the completion of a course with a URL, but this is how I set up mine.

1. Create A List

This list is only for people who will take your email course. Make sure the publicity settings are set to non-public and non-archivable (otherwise, people will be able to share the lessons with whomever they want).

Check “No, my campaigns are not public,” and uncheck “Activate the archive bar.”

When creating autoresponders, ensure that you remove the “View this campaign in a browser” link, to further discourage shareability. To take things one step further and make sure only subscribers see some or all of the course’s content, read up on conditional merge tags.

2. Match The Colors And Fonts In The Course Material To The Registration Process

You’ll find these by going to “Signup Forms” and then “General Forms.” Match the fonts, colors and logo of the course’s website for a consistent user experience.

3. Select “Send A Final Welcome Email”

You’ll find this option in the drop-down menu on the “Create Forms” page; it will be automatically selected, unless you’ve unchecked the box. Add text to this email (scroll down to edit the contents), informing users to “Click the completed lesson” button in each lesson to get the next lesson.

Later, we’ll get into how to set this up, but essentially each lesson’s email will have a link that users can click when they’re finished to notify MailChimp to deliver the next lesson.

Also, in this final welcome email, let users know when the first lesson will be delivered.

4. Set Up The First Lesson And Autoresponder

Go to “Autoresponders” and then “Create autoresponder.” Select the entire list to be the recipients. On the next page, the event that triggers this autoresponder is “Subscription to the list.” Make sure that “Also trigger on list import” is checked if you want to use Twitter cards or if you will be charging for the course (more on this later).

Lesson One
(View larger version.)

Choose whether to send it within the hour or at another time and date. On the set-up and campaign information page, give the campaign a subject line and make sure that, under “Tracking,” “Goal Tracking” is checked — this is important because it will trigger the next autoresponder lesson.

5. Set A Goal For Your Campaign

A goal is simply a URL that you add to the lesson. For my own email course, I created a few pages on my website that thanked the user for completing the lesson. For example, I added a button to the campaign for lesson 1, reading “I have completed this lesson” and linking to

The URL may be anything, but if you are setting a reminder email (more on this later), then the URL must contain the same folder — in this case, lessons. If you use WordPress, this is simply the parent page, and each individual lesson would be a child page of the parent, /lessons/.

These pages that live on your website are important for firing off autoresponders, as well as for letting the user know that a lesson has been completed and that a new one is on the way.

A good marketing strategy is to add some social engagement to the completion page for each lesson, such as “Tweet that you’ve finished lesson 1,” with a hash tag for your course or sharing buttons, so that users can let others in their network know about the course and where to sign up.

6. Set Up Subsequent Lessons By Creating A New Autoresponder

Set the entire list as the recipients. On the next page, set “Specific link in the campaign is clicked” as the event to trigger the autoresponder.

Lesson Two
(View larger version.)

Then, select the previous lesson. If you’re creating lesson 2, then select lesson 1’s autoresponder from the drop-down menu. Then, choose “Select a link from your campaign” and select the URL that you used for the button that tells the user they have completed that lesson.

Set the autoresponder to send either within the hour or at a time and date of your choosing. I always pick “Within the hour,” so that the user gets the next lesson fairly quickly.

Make sure to track goals for every lesson you create (otherwise, the URL clicks won’t be tracked by the following lesson).

To create lesson 3, you’d follow the steps above but would select lesson 2 from “For what campaign” and the lesson 2 completion URL for “Select a link from your campaign.” And so on, until you’ve added all of the lessons.

7. Set Up Additional Emails (If Needed)

In addition to the lessons, you may want to send out a different type of email a day or two after the final lesson has opened. The email could include additional resources, an “About the author” section, or perhaps a review of the course (if you’ve got one).

Select “Send to the entire list” for the recipients.

For the autoresponder, select “Campaign is opened” as the event to trigger the follow-up email, and select “For what campaign” as the final lesson (via the drop-down menu). Then, select the amount of time for “When the autoresponder should be sent.” If the email is a review or list of resources, then sending it a day or two after makes sense, while the lessons are still fresh.

8. Set Up A Reminder Email

Because the course is self-paced, people won’t get the next lesson if they forget about the email for the current lesson, so setting up a course reminder autoresponder is another good idea.

From step 5, if the same folder is in the URL for each lesson (in this example, /lessons/), then it’s simply a matter of creating a new reminder autoresponder that sends to a new segment of the list.

(View larger version.)

To do this, start an autoresponder, select “Send to a new segment,” then pick “Subscribers match,” and then “Any” from the drop-down menu.

In the next drop-down menu, choose “Goal Activity,” then “Doesn’t match,” and in the field type in the folder URL of all lessons (in this case, lessons) (don’t type the full URL or any slashes).

On the next page, select “Subscription to the list” as the event to trigger the autoresponder.

When setting the autoresponder, estimate a reasonable time which people would take to complete a lesson. For my own list, I’ve set the reminder to “45 days” after a user has stopped clicking anything.

Remind people that they’ve signed up for the course and, if they’ve forgotten about the lessons, to go back and read the current one (and click that they’ve finished it once they have). I also offer helpful suggestions on how to get over being stuck in the writing process.

Integrate With Payment Solution (Optional)

If you want to charge for the course, you will need to collect the user’s money before the course lessons start firing. I use Gumroad to sell items online; while it doesn’t directly integrate with MailChimp, one easy additional step makes it happen.

Giving your course a price can be done in one easy step. (View larger version.)

In your Gumroad account, click “Add a Product,” and then select the product. Where it asks for a file, create and upload a PDF of the text in your “Final welcome email” that tells people they’ve successfully signed up for the course and will get the first lesson within an hour.

Give it a price, and then “Add” the product. The next screen lets you upload a graphic (or video) and a description of the course. When it’s ready, click “Publish.”

To add an incentive (for example, to reward users with a discount for signing up early), click on the “Options” tab and create an offer. Otherwise, you’re done!

To integrate with Zapier, create a secret “free” offer, which you can use to finish the process, and delete it when you’re done.

Next, to connect Gumroad to MailChimp, sign up for an account with Zapier. Free and paid options are available. If you expect fewer than 100 users, go with a free account. Otherwise, it’s fairly cheap, and it scales. If 50,000 people are signing up a month, then the $99 per month price tag is well worth it.

By connecting Gumroad to MailChimp you can automatically add purchasers of your Gumroad product to your course’s mailing list. (View larger version.)

Once you’ve got an account, click “Create a Zap.” The trigger service is Gumroad, and the action service is MailChimp. For “Choose a trigger,” select “New sale.” For “Choose an action,” select “Add subscriber,” and then continue. From there, follow the steps to connect both your Gumroad and MailChimp accounts to Zapier.

Next, choose your “Product” (which would be your course if you have more than one product in Gumroad), and then continue. Then, choose which MailChimp mailing list to put subscribers in. When you click on “Insert fields” in the email section, Zapier will ask you to create a new purchase of your product. Go back to Gumroad and do that (using the free discount code), and continue with the process. Make sure to select “Email” in the email drop-down menu.

Also, select “No” for “Send a welcome email” because subscribers will get the PDF as a download immediately upon paying. Click “Continue,” name the Zap whatever you’d like, and turn it on!

Now, whenever someone purchases the Gumroad product for your email course, they will be automatically added to the course’s mailing list and will start receiving lessons.

And that’s how you create a self-paced email course using MailChimp, Gumroad and Zapier.

(al, il, ea)

Credits for the image used on the front page: zapier.

© Paul Jarvis for Smashing Magazine, 2014.


January 22 2014


15 Smart Clocks And Calendar Widgets For Android

Here, we have come up with yet another useful list of Android widgets, and this time we are focusing on clocks and calendar widgets. Android platform is getting popular all over the world and is one of the reasons of the popularity of smartphones. Widgets basically are the iconic feature of the Android Operating System that are used in order to dress up the Android devices home screens. Or you can say that widgets are used to personalize Android devices for your use.

Widgets are there not only for improving the functionality of your Android devices but also to make them look pretty awesome as well. These days, widgets are designed in a pretty stylish manner without compromising on their functionality. Here is the complete list for you. Feel free to share your opinions with us via comment section below. Enjoy!


Opensource digital style clock widget. Based around the Cowon D3 clock.

Minimalistic Text

Minimalistic Text is a widget app that displays information in a minimalistic way. It can be configured to display time, date, battery and weather information. The layout of the widget is highly customizable through the layout editor.

DashClock Widget

DashClock is a replacement lock screen clock widget for Android 4.2+ phones and tablets. It also exposes additional status items called extensions.

Advanced Clock Widget

Are you running Android 4.0 or later? Please check out also Zooper Widget for more complex customization! Small (<200kb), fully configurable and extremely battery efficient WIDGET with clock, weather, battery status, world clock, uptime, network status and much more.

Jelly Bean Clock Widget

Free 14 Square & Circle Jelly Bean Clocks Widget with 7 Colors: Black, White, Holo Blue, Green, Red, Pink, and Yellow.

MIUI Analog Clock widget

MIUI Analog Clock in 3 sizes, 4×3, 2×2, 1×1. Touch to launch Alarm Clock.

Neon Clock Widget

Neon look, glowing and great feel. Combination of analog and digital clock. Plus! It has complete yet useful additional information.

MIUI Evolution Reload Clock

MIUI Evolution Reload Digital Weather clock widget with Calendar, Time, System info,weather & forecast A Digital Clock widget with size 4×2.


A digital, text or word clock widget with many options.

Pretty Binary Clock Widget

Lock screen widget support added for 4.2 devices, Most logic for desktop clock & live wallpaper already in app.

Lines Clock

Super sexy, liney home screen clock with the date and today’s weather.

ClockQ – Digital Clock Widget

Simple digital clock widget for your homescreen. The power of this widget is in variety of customization options.

D-Clock Widget

D-Clock Widget is simple digital clock widget.

Minimal Date & Time

A minimal date & time UCCW widget, Widget showing current date, date of week and current time.

Simple Calendar Widget

This widget calendar is analog of standard calendar widget, support a lot of configuration options: Different skins, Possibility to choose which calendars to show, Font style and background customization, Show or hide current day of month

January 02 2014


40 Mobile Game App Website Layouts using Creative Designs

Advertise here with BSA

How many new Android + iOS mobile games are released each year? The user interfaces and graphics have been improving rapidly to create a large marketplace of mobile games. Marketing-savvy developers will usually create a personal website or webpage dedicated to information each new game release.

In this gallery you’ll find 40 brilliant examples of mobile smartphone game website layouts. Some are hosted on their own domain while others are subpages within a game studio’s website. But the design is always focused around the game itself, pushing curious visitors to look deeper into the features and maybe purchase a copy. If you’re looking for design ideas to build into your own mobile game website, this showcase has a lot of great concepts.

Angry Birds

angry birds mobile ios app website layout

One Epic Knight

one epic knight game mobile smartphone website layout

Infinity Blade

infinity blade mobile ios app game website


carcassonne iphone app website layout texture

Band Stars

band stars iphone mobile app website layout colorful musicians

Hipster CEO

hipster ceo mobile game app website layout

Kingdom Rush

mobile iphone website layout inspiration homepage kingdomrush


lume ios app game website layout

Run That Town

run that town mobile website layout inspiration

Dead Ahead

dead ahead zombies mobile ios game layout website


spell tower spelling ios ipad game mobile website layout


karateka 8bit classic mobile video game website

Plants vs Zombies

mobile ios game plants vs zombies website

Broken Sword

bs5 broken sword mobile game website layout


transistor mobile game app website layout bright

Fruit Ninja

fruit ninja website mobile app layout

Cannon Cat

blue sky background cannon cat iphone game website


terraria trees rpg video game mobile website layout

Run Roo Run!

run roo run

Ridiculous Fishing

ridiculous fishing mobile app video game website

Fog of World

fog of world website app mobile layout iphone ipad ios

Where’s My Mickey?

mickey mouse disney mobile app game website layout wheres


incredipede game mobile colorful illustration background website


machinarium amanita games mobile website layout

Bee Leader

bee leader project flightless inspiring design

Usagi Yojimbo

usagi yojimbo karate game inspiration website layout

Theatrhythm Final Fantasy

theatrhythm final fantasy square enix iphone ipad mobile game website


red dark machines badland website layout inspiring homepage


osmos blue dark game website layout mobile

My Singing Monsters

my singing monsters website colorful iphone android game


poume pou mobile game smartphone website simple clean

Conquist II

conquist 2 mobile smartphone app game website layout

Ittle Dew

ittle dew mobile app game simple white layout design

Super Crate Box

super crate box homepage website layout


fieldrunners subatomic mobile app game website

Time Surfer

illustration website mobile app game layout time surfer


benjamin rivers horror adventure mobile game home website

Knightmare Tower

knightmare tower ios iphone mobile smartphone game website layout purple graphics

Bad Piggies

bad piggies mobile game website layout design

Tasty Tadpoles

textures colorful water tadpoles tasty ios mobile app game website

Advertise here with BSA

November 04 2013


9 Free Android Apps To Manage Your Finances

There are times when managing your finances becomes a tough job may be because it is something that is not taught in school or universities. But hey, relax! It is not that difficult either. Thanks to the new technology. Today, we have some very smart applications that will help you manage your finances efficiently. Not only these apps let you control your finances but they will also help you spend within your budget. Consequently, such finance management apps may also help you keep some savings at the end of the month.

Keeping this in mind, here we are showcasing a list of 9 most useful and excellent Android apps that will help you in managing your finances. We hope that you will like this collection and find these apps useful for you. So, take a better control of your expenditure with these Android apps. Enjoy!

Financisto – Expense Manager

Open-source personal finance manager, Multiple accounts, multiple currencies, Home currency and exchange rates, Transfers with downloadable rates, Scheduled & recurring transactions and much much more.


Cash is personal finance accounting application, freely and available for all android devices. Designed to be easy to use, yet powerful and flexible, Cash allows you to track bank accounts, stocks, income and expenses. As quick and intuitive to use as a checkbook register, it is based on professional accounting principles to ensure balanced books and accurate reports(similar to GnuCash, Microsoft Money, Quicken).

CoinKeeper: expense tracker

Personal finance management, budget, bills, income and expense tracker. Famous budget tracking app for Android! Find out where your money goes! Plan your budget and savings. Enjoy the fastest way to track daily expenses using a comprehensive one-screen view of your finances. Improve your skills with a unique, game-like feel.

AndroMoney ( Expense Track )

The one of best tools for keeping accounts, efficiently tracking each expense report, AndroMoney is a personal finance tool for use on your mobile phone. By using this tool, we hope you can better manage your wealth.

Expense Manager

Expense manager is great application for managing your expenses and incomes.

Money Tracker Free

Money Tracker is application to control your daily expenses and save money that you might miss at the end of month. Specify desired monthly budget, and then easily control everyday expenses in our application. Enter daily all expenses, and your end of month balance is immediately calculated. You can see whether your expense is over the budget or is in the limit.

CWMoney Expense Track

CWMoney is a Finance Management Software for Android, This Free Version have almost full function, it’s easy to record daily expense, income money.

Cash Droid

If you’ve already tried all other similar programs, I assure you this is the best. It has all the useful features to keep your personal finances, some of them you will not find in any other program.

Colorful Budget

Simple and minimalistic budget planner / money tracker. Keep track of all incomes and expenses or just check how much money you spend on your hobbies or bad habits!

August 26 2013


13 Awesome And Useful Mac Apps For Developer

With this collection, we aim to showcase some of the awesome and truly helpful Mac apps that will help developers a lot. Developers constantly need a lot of apps and tools in order to organize their work and hence increase their productivity. With the use of helpful and time saving apps, developers can design different types of applications for our use. In this collection, we have collected 13 awesome and great Mac apps that every developer must check out.

Do not forget to share your opinions, comments and suggestions with us via comment section below. Also, feel free to share this post with your friends as well as on social networking websites. Enjoy!


Now you can expand into mobile marketing with our tool that lets you create impressive mobile sites easily.


Alfred saves you time when you search for files online or on your Mac. Be more productive with hotkeys, keywords and file actions at your fingertips.

Net Beans

Quickly and easily develop desktop, mobile and web applications with Java, HTML5, PHP, C/C++ and more. NetBeans IDE is FREE, open source, and has a worldwide community of users and developers.

Little Ipsum

The best Latin text generator for OS X. Incredibly quick and lightweight.And it’s completely free!

D Term

Command line work isn’t a separate task that should live on its own—it’s an integrated part of your natural workflow. DTerm provides a context-sensitive command line that makes it fast and easy to run commands on the files you’re working with and then use the results of those commands.

Css Hat

SS Hat is a simple and highly useful Photoshop plugin that generates CSS3 based on your Photoshop layer styles.


You code the web. We revolutionized that process in Coda, putting everything in one place. An editor. Terminal. CSS. Files. But we knew we could do better.

Code Kit

CodeKit helps you build websites faster and better. Its flagship features are listed below and the one-minute teaser video to the right is a good place to start.


Flow is an award-winning, beautiful, fast, and reliable FTP + SFTP client. With URL Copying, Droplets, a built-in editor, and QuickLook, it’s no wonder why Flow is the go-to choice for those who want the best.

X Scope

Created specifically for designers & developers, xScope is a powerful set of tools that are ideal for measuring, inspecting & testing on-screen graphics and layouts.

Spark 2

Spark is a powerful, and easy Shortcuts manager. With Spark you can create Hot Keys to launch applications and documents, execute AppleScript, control iTunes, and more. You can also export and import your Hot Keys library, or save it in HTML format to print it.

Clipboard History

Clipboard History is a very simple and straightforward application that keeps your history of copied items, and provides a configurable hotkey so you can paste them inside of any app. These items can be images, text or a mix of them (rich text, like PDFs and HTML).

Fluid App

Web applications like Gmail, Facebook, Campfire and Pandora are becoming more and more like desktop applications every day. Running each of these web apps in a separate tab in your browser can be a real pain.

June 13 2013


Building An App In 45 Minutes With Meteor


The other day, I finally accomplished one of my long-standing goals: to go from one of those “Wouldn’t it be cool…” ideas to a working, live app in less than 1 hour. 45 minutes, actually.

It all started with a design meet-up in San Francisco. I can honestly say this was the best meet-up I’ve ever been to: Even though it was announced only two days in advance, more than 200 people RSVPed, and a good number of them showed up. It was a great chance to put faces to familiar names, as well as to make new friends.

But I got to talking with so many people that I didn’t have a chance to get contact info for everybody. So, the next day, I asked the organizers about it and they suggested that everyone who attended leave a link to their Twitter account in a shared Google Doc.

That would work, but I was afraid it would prove to be too much effort. If I’ve learned one thing in my years as a designer, it’s that people are lazy. Instead, what if I built an app that lets the user add their Twitter account to a list in a single click?

The app would work something like this:

  1. The user signs into Twitter,
  2. A link to their Twitter profile appears on the page,
  3. That’s pretty much it!

With my list of requirements complete, I set to work to see how fast I could build this, and I thought it’d be interesting to walk you through the process.

At first, take a peek at how the final app looked like:

Our very bare-bones (but working!) app.
Our final bare-bones (but working!) app.

You can also see a demo of the finished product, and find the code on GitHub. (Note: Give it some time to load. Apps hosted on Meteor’s free hosting service often slow down under a lot of traffic.)

A word of warning: This won’t be a traditional tutorial. Instead, it will be a play-by-play walkthrough of how I coded the app in one hour, including the usual dumb mistakes and wrong turns.

Introducing Meteor

I decided to build the app with Meteor. Meteor is a fairly young JavaScript framework that works on top of Node and has a few interesting characteristics.

The Meteor homepage
Meteor’s home page

First, it’s all JavaScript, so you don’t need to deal with one language in the browser and another on the server. That’s right: the same language you use to set up jQuery slider plugins can also be used to query your app’s database! The added benefit of this is that your app now has only a single code base — meaning you can make the same code accessible from both the client and server if you need to.

Meteor is also reactive, meaning that any change to your data is automatically reflected everywhere throughout the app (including the user interface) without the need for callbacks. This is a powerful feature. Imagine adding a task to a to-do list. With reactivity, you don’t need a callback to insert the new HTML element into the list. As soon as Meteor receives the new item, it automatically propagates the change to the user interface, without any intervention on your part!

What’s more, Meteor is real time, so both your changes and the changes made by other users are instantly reflected in the UI.

Like many other modern frameworks, Meteor also speeds up your Web app by transforming it into a single-page Web app. This means that instead of refreshing the whole browser window every time the user changes the page or performs an action, Meteor modifies only the part of the app that actually changes without reloading the rest, and then it uses the HTML5 pushState API to change the URL appropriately and make the back button work.

Not having to update the whole page enables another very powerful feature. Instead of sending HTML code over the network, Meteor sends the raw data and lets the client decide how to render it.

Finally, one of my favorite features of Meteor is simply that it automates a lot of boring tasks, such as linking up and minifying style sheets and JavaScript code. It also takes care of routine stuff for you on the back end, letting you add user accounts to the app with a single line of code.

I’ve been experimenting with Meteor for the past six months, using it first to build Telescope (an open-source social news app), and then in turn using Telescope as a base to create Sidebar (a design links website), and I’ve just released a book about it. I believe that, more than any other framework, Meteor helps you get from idea to app in the shortest possible amount of time. So, if all of this has made you curious, I recommend you give it a try and follow along this short walkthrough.

Step 0: Install Meteor (5 Minutes)

First, let’s install Meteor. If you’re on Mac or Linux, simply open a Terminal window and type:

curl | /bin/sh

Installing Meteor on Windows is a little trickier; you can refer to this handy guide to get started.

Step 1: Create The App (1 Minute)

Creating a Meteor app is pretty easy. Once you’ve installed Meteor, all you need to do is go back to the Terminal and type this:

meteor create myApp

You’ll then be able to run your brand new app locally with this:

cd myApp
meteor myApp

In my case, I decided to call my app twitterList, but you can call yours whatever you want!

Once you run the app, it will be accessible at http://localhost:3000/ in your browser.

Step 2: Add Packages (1 Minute)

Because I want users to be able to log in with Twitter, the first step is to set up user accounts. Thankfully, Meteor makes this trivially easy as well. First, add the required Meteor packages, accounts-ui and (since we want users to log in with Twitter) accounts-twitter.

Open up a new Terminal window (since your app is already running in the first one) and enter:

meteor add accounts-ui
meteor add accounts-twitter

You’ll now be able to display a log-in button just by inserting {{loginButtons}} anywhere in your Handlebars code.

A more complex version of the accounts-ui widget, as seen in Telescope
A more complex version of the accounts-ui widget, as seen in Telescope.

I didn’t want to have to bother with styling, so I decided to also include Twitter Bootstrap with my app.

I went to the Twitter Bootstrap website, downloaded the framework, extracted the ZIP file, copied it to my app’s Meteor directory, and then hooked up the required CSS files in the head of my app’s main file.

Ha ha, not really. What is this, 2012? That’s not how it works with Meteor. Instead, we just go back to the Terminal and type:

meteor add bootstrap

Client Vs. Server

I guess at this point I should briefly tell you more about how Meteor apps work. First, we’ve already established that a Meteor app’s code is all JavaScript. This JavaScript can be executed in the browser like regular JavaScript code (think a jQuery plugin or an alert() message), but can additionally be executed on the server (like PHP or Ruby code). What’s more, the same code can even be executed in both environments!

So, how do you keep track of all this? It turns out Meteor has two mechanisms to keep client and server code separate: the Meteor.isClient and Meteor.isServer booleans, and the /client and /server directories.

I like to keep things clean; so, unlike the default Meteor app that gets generated with meteor create (which uses the booleans), I’d rather use separate directories.

Also, note that anything that isn’t in the /client or /server directories will be executed in both environments by default.

Step 3: Create the Markup (10 Minutes)

I like to start from a static template and then fill in the holes with dynamic data, so that’s what I did. Just write your template as if it were static HTML, except replace every “moving part” with Handlebars tags. So, something like this…

 <a href="">Sacha Greif</a></p>

… becomes this:

 <a href="{{userName}}">{{fullName}}</a>

Of course, those tags won’t do anything yet and will appear blank. But we’ll match them up with real data pretty soon. Next, I deleted the contents of twitterlist.html and got to work on my HTML. This is the code I had after this step:

  <title>Who Was There?</title>
  <div class="container">
    <div class="row">
    <div class="span6">
      <div class="well">
        <h4>Did you go to the <a href="">Designer Potluck</a>? Sign in with Twitter to add your name.</h4>
      <table class="table">
  <a target="_blank" href="{{userName}}"><img src="{{image}}"/> {{fullName}}</a>


Step 4: Configure Twitter Sign-In (3 Minutes)

You’ll have noticed the {{loginButtons}} Handlebars tag, which inserts a log-in button on your page. If you try to click it right now, it won’t work, and Meteor will ask you for additional information.

You need to fill in your app's Twitter credentials.
You’ll need to fill in your app’s Twitter credentials. Larger view.

To get this information, we first need to tell Twitter about our app. Follow the steps on the screen and create a new Twitter app; once you’re done, try logging in. If everything has worked right, you should now have a user account in the app!

Creating a new Twitter app.
Creating a new Twitter app. Larger view.

To test this out, open your browser’s console (in the WebKit inspector or in Firebug) and type this:


This will retrieve the currently logged-in user, and, if everything has gone right, it will give you your own user object in return (something like Object {_id: "8ijhgK5icGrLjYTS7", profile: Object, services: Object}).

Step 5: Split It Into Templates (5 Minutes)

You’ll have noticed that our HTML has room to display only a single user. We’ll need some kind of loop to iterate over the whole list. Thankfully, Handlebars provides us with the {{#each xyz}}{{/each}} helper (where xyz are the objects you want to iterate on, usually an array), which does just that.

We’ll also split the code into a few templates to keep things organized. The result is something like this:

  <title>Who Was There?</title>

  <div class="container">
    {{> content}}

<template name="content">
  <div class="row">
    <div class="span6">
      <div class="well">
      <table class="table">
      {{#each users}}
        {{> user}}

<template name="user">
  <a target="_blank" href="{{userName}}"><img src="{{image}}"/> {{fullName}}</a>

Step 6: Hook Up Our Template (5 Minutes)

Our template is all set up, but it’s iterating over empty air. We need to tell it what exactly this users variable in the {{#each users}} block is. This block is contained in the content template, so we’ll give that template a template helper.

Delete the contents of twitterlist.js, and write this instead:

Template.content.users = function () {
  return Meteor.users.find();

What we’re doing here is defining Template.content.users as a function that returns Meteor.users.find().

Meteor.users is a special collection created for us by Meteor. Collections are Meteor’s equivalent of MySQL tables. In other words, they’re a list of items of the same type (such as users, blog posts or invoices). And find() simply returns all documents in the collection.

We’ve now told Meteor where to find that list of users, but nothing’s happening yet. What’s going on?

Step 7: Fix Our Tags (5 Minutes)

Remember when we typed this?

<a target="_blank" href="{{userName}}"><img src="{{image}}"/> {{fullName}}</a>

The {{userName}}, {{image}} and {{fullName}} are just random placeholders that I picked for the sake of convenience. We’d be pretty lucky if they corresponded to actual properties of our user object! (Hint: they don’t.)

Let’s find out the “real” properties with the help of our friend, the browser console. Open it up, and once more type this:


The object returned has all of the fields we need. By exploring it, we can quickly find out that the real properties are actually these:

  • {{services.twitter.screenName}}
  • {{services.twitter.profile_image_url}}
  • {{}}

Let’s make the substitutions in our template and see what happens.

It works! Our first and only user (you!) should now appear in the list. We’re still missing some fields, though, and only the user’s full name appears. We need to dig deeper into Meteor to understand why.

A Database On The Client

We haven’t really touched on what Meteor does behind the scenes yet. Unlike, say, PHP and MySQL, with which your data lives only on the server (and stays there unless you extract it from the database), Meteor replicates your server-side data in the client and automatically syncs both copies.

This accomplishes two things. First, reading data becomes very fast because you’re reading from the browser’s own memory, and not from a database somewhere in a data center.

Secondly, modifying data is extremely fast as well, because you can just modify the local copy of the data, and Meteor will replicate the changes for you server-side in the background. But this new paradigm comes with a caveat: We have to be more careful with data security.

Step 8: Make the App Secure (1 Minute)

We’ll address data security in terms of both writing and reading. First, let’s prevent people from writing whatever they want to our database. This is simple enough because all we need to do is remove Meteor’s insecure package:

meteor remove insecure

This package comes bundled with every new Meteor app to speed up development (letting you insert data client-side without having to set up all of the necessary checks and balances first), but it is obviously not meant for production. And because our app won’t need to write to the database at all (except for creating new users — but that’s a special case that Meteor already takes care of), we’re pretty much done!

More On Security

While we’re on the topic of security, Meteor apps also come with a second default package, autopublish, which takes care of sending all of the data contained in your server-side collections to the client.

Of course, for a larger app, you probably won’t want to do that. After all, some of the information in your database is supposed to remain private, and even if all your data is public, sending all of it to the client might not be good for performance.

In our case, this doesn’t really matter because we do want to “publish” (i.e. send from the server to the client) all of our users. Don’t worry, though — Meteor is still smart enough not to publish sensitive information, such as passwords and authentication tokens, even with autopublish on.

Step 9: Add Follow Buttons (8 Minutes)

While visitors can now click on a name to go to their Twitter profile, simply displaying follow buttons for each user would be much better. This step took a little tinkering to get right. It turns out that Twitter’s default follow button code doesn’t play nice with Meteor.

After 15 minutes of unsuccessful attempts, I turned to the Google and quickly found that for single-page apps, Twitter suggests using an iframe instead.

This worked great:

<iframe style="width: 300px; height: 20px;" src="//{{services.twitter.screenName}}" height="240" width="320" frameborder="0" scrolling="no"></iframe>

Step 10: Deploy (1 Minute)

The last step is to deploy our app and test it in production. Once again, Meteor makes this easy. No need to find a hosting service, register, launch an instance, and do a Git push. All you need to do is go back to the Terminal and type this:

meteor deploy myApp

Here, myApp is a unique subdomain that you pick (it doesn’t have to be the same as the app’s name). Once you’ve deployed, your app will live at Go ahead and ask a few people to register: You’ll see their Twitter profiles added to the list in real time!

Going Further

Of course, I had to gloss over a lot of key Meteor concepts to keep this tutorial light. I barely mentioned collections and publications, and I didn’t even really talk about Meteor’s most important concept, reactivity. To learn more about Meteor, here are a few good resources:

  • Documentation, Meteor
    This is a required reference for any Meteor developer. And it’s cached, meaning you can even access it offline.
  • EventedMind
    Chris Mather puts out two Meteor screencasts every Friday. They’re a great help when you want to tackle Meteor’s more advanced features.
  • Discover Meteor
    I’m obviously biased, but I think our book is one of the best resources to get started with Meteor. It takes you through building a real-time social news app (think Reddit or Hacker News) step by step.
  • Blog, Discover Meteor
    We also make a lot of information available for free on our blog. We suggest looking at “Getting Started With Meteor” and “Useful Meteor Resources.”
  • Prototyping With Meteor
    A tutorial we wrote for NetTuts that takes you through building a simple chat app.

I truly believe Meteor is one of the best frameworks out there for quickly building apps, and it’s only going to get better. Personally, I’m really excited to see how the framework evolves in the next couple of months. I hope this short tutorial has given you a taste of what Meteor’s all about and has made you curious to learn more!

(il) (ea) (al)

© Sacha G for Smashing Magazine, 2013.

June 03 2013


April 18 2013


Seamless: Millions of Wallpapers in Your Pocket

We sure do love it when people do cool things using the COLOURlovers API. The latest awesome creation to hit your iDevice is an app called Seamless.

This delightful new app uses the Creative Commons wallpapers from the COLOURlovers community, giving you access to over 3 million wallpapers, right in your pocket. They've been adapted specifically for your device and presented beautifully within a delicate and detailed design. Just take a look at the lovely UI:

You can bookmark your favorite wallpapers in the app, save them to your phone to show off to your friends, view the original pattern on COLOURlovers, and even share them to Facebook and Twitter. Sounds pretty fantastic, right?

Seamless is one of those apps that's just great to browse and get those creative juices flowing. If you find yourself enjoying it as much as we do, share the love and give a shout out to the gents who built it. It was created by Mic Pringle & William Szilveszter and it's available for free right now in the App Store.

Tags: Apps Patterns

April 15 2013


January 11 2013


$10,000 Contest: Design Tablet App Templates for Oomph Marketplace

10000 Oomph App Contest Banner

The tablet app development platform Oomph has launched Oomph Marketplace, an app marketplace for self-service customizable app templates. Like Themeforest is to Wordpress templates, designers can create and sell their templates in the Oomph store.

Oomph will be launching new functionality in the coming weeks so Designers can sell templates they have created in store.

Leading up to the release of Marketplace, Oomph has launched a $10,000 app design competition on crowdsourcing website DesignCrowd. The competition comprises of four separate contests focussed on four popular app genres. The interactive template designs should be suitable for organisers of arts or music festivals, industry conferences, travel agencies marketing holiday destinations, retailers who want to build a rich media interactive experience for customers and branded magazines.  (See examples of tablet app covers are below.)

Brand Magazine


Travel Brochure


Retail Catalogue


How to Enter

Click here for the DesignCrowd contest page. Read the brief and guidelines. Oomph has included template creation guidelines that are required reading. To help you design an Oomph app template, Oomph is giving away a best practice app template, icons and artwork and a blank template. Register at Oomph Marketplace and you’ll receive the free templates in your account, or take a sneak-peak at the tools and guidelines here.

The Prizes

Each contest offers $2,500 in cash prizes awarded to the top 3 designs in the following contest categories:

  1. Event Apps
  2. Brochure Apps
  3. Retail Catalogue Apps
  4. Magazine Apps

Designers designers have until January 19 to submit designs to be in the running to win cash prizes.

December 20 2012


The Top Ten Games Apps of 2012

The iPhone App Store hit the internet back in 2008 and in just four years apps have been well and truly accepted into the mainstream. From getting on top of your finances to managing your personal fitness, there’s an app for it. But the most fun aspect of apps is the possibilities they present for the gaming industry. And things have come a long way in just a few years. It’s now possible to get games with console-style graphics quality on the go; video and animation you’d only expect to find in a games arcade. Here are some of the games that have swallowed our spare time in the past twelve months – our top ten games apps of 2012.

Angry Birds Star Wars

Somewhere in a galaxy far, far away, the ultimate games app just got a whole load better. Star Wars Angry Birds isn’t just the best incarnation of the game, it’s also the best movie spin off we’ve seen in a long time. Yup, you still shoot birds at pigs, but in this game you get to do it with lightsabres and lasers. What’s not to love?


Fieldrunners 2

The original Fieldrunners was one of the Apple App Store’s first hit games and this version takes to the next level for 2012. It’s a simple premise. Protect your tower and stop the bad guys from getting to the other side of the screen by using a variety of weapons. The more bad guys you kill the more money you get for weapons.


Toca Tailor

The first app from Swedish interactive toy maker Toca Boca, Toca Tailor is a cool game for the over fours. This game lets users dress a variety of characters in an almost endless choice of clothes and is a brilliant game for encouraging creativity.


Toca Band

Hailed as one of the best children’s apps of 2012, Toca Band gets kids to create a song through an easy-to-use interface. All they have to do to make their music is drag and drop the colourful characters across the screen – each one has its own unique sound!


Clash of Clans

Clash of Clans is a cool cross between FarmVille and a war game. Build a village, train your troops and fight with other players. One of the most popular free apps of 2012 on Apple devices.


New Star Soccer

It might not look like much, but New Star Soccer is utterly addictive. Your aim is simple; score as many goals as possible while more obstacles – such as high walls and winds – are put in your way. You need to upgrade from the free version to the 69p incarnation for the real fun though. This version lets you live like a real player, earning wages and building professional relationships with other players and your club manager. Improve your skills and you make more money. You’ll also have to make lifestyle choices to help improve your fitness or, more importantly, attract your very own WAG.



SongPop is a free music-trivia app that was named app of the week by ABS News back in July. Guess song clips and challenge your friends – and there are thousands of songs on there, ranging from golden oldies to today’s top tracks.

Rayman Jungle Run

The legendary console platform hero made a successful jump to mobile this year with Rayman Jungle Run. The graphics are gorgeous and the smooth touch-based controls are a pleasure to use. No wonder it was named the App Store’s Game of the Year 2012; it’s an easy game for all ages to get to grips with, but addictively tricky to master.

Waking Mars

This app was one of the biggest smashes of 2012. The narrative is one of the most engaging we’ve seen on this platform and involves the discovery of alien life on Mars and the subsequent mission of first contact. It’s an intelligent, adrenalin-fueled race against the clock to determine the fate of a sleeping planet.


Batman: Arkham City

It may only have been launched last week, but Batman: Arkham City is set to be a last-minute big-hitter of 2012. It’s based on the most popular Batman video game on record and sees Batman fight some of the toughest villains ever – including Catwoman. It’s a hefty download, clocking in at 10.67 GB, so make sure your Mac can handle it before you buy.


This is a guest post contributed by Neeru Pallen who writes on behalf of Print Express UK.

August 05 2012


Hackathons – Giving Birth to Awesome Apps and Startups

A hackathon is a portmanteau of “hack” and “marathon”, which means that it’s a marathon for developers to create an application within a certain theme within a limited amount of time. Hackathons have been around since 1999 but have just hit the mainstream in the last couple of years.

If you think a hackathon is an intensive program to participate in, you’re correct! Hackathons are generally nerve-wracking, but they’re also great at testing one’s abilities and pushing them to the limits. Some hackathons last for several hours while some even last for a week, depending on the theme.

In the past there have been 24-hour hackathons that have yielded great results which turned into multimillion dollar companies in just under a year.

So, are you itching to get your hands started on that dream startup of yours? Why not host or join a hackathon?

In this article:

  • Hackathon in the Philippines (Aug. 25, 2012) and TechCrunch’s Disrupt event (Sep. 8-9, 2012)
  • Successful startups born from hackathons

What’s Special About Hackathons?

Have you ever felt the urge to finish something quickly because of a deadline? Yep, I’m talking about when you were still in school, writing that essay 2 hours before submission, or that last-minute change on your web app school project, or that Power Point presentation that can’t play the audio. All of these translates to one thing: the sense of urgency leads to something very creative and unique!

The process of developing an application for serious use normally takes several weeks of planning and developing, but during hackathons everything you’ve learned up to that point should be poured and condensed into an idea that will be made into a working application by the end of the event. Most hackathons require you to be in a team, but there are a few that will allow the lone wolves to participate. No matter what, it’s a fun event to share, discuss, and create something new in just a few hours or days!

Photo by i eated a cookie

So, what’s special about hackathons?

  • You get to know people who share the same interests
  • It might be your road to finding a co-founder for that startup you’ve been thinking of
  • You get to test your skills to the limit
  • Finally, you’ll get to see the Sun after months of shying away from the “outside”

Upcoming Hackathons

Hackathon in the Philippines

I’m very excited about this event because I will participate! If you think that you have the creative ingenuity and the patience under pressure to create an amazing web app in just six hours, then WebGeek DevCup wants you to show what you’ve got. WebGeek Philippines is inviting all web developers with an appetite for fun and excitement to join the WebGeek DevCup.

Date: August 25, 2012

Venue: Meralco Multi-Purpose Hall, Meralco Compound, Ortigas Center

Visit WebGeek DevCup for more info!

Disrupt SF Hackathon in San Francisco, California

If you are familiar with hackathons then I’m pretty sure that by now you’re fairly familiar with TechCrunch Disrupt events. Don’t miss your chance to join the next hackathon! Disrupt SF will be a 2-day hackathon, where only those who have a stout heart dare enter. If you’re somewhere near SF, then participate!

Date: September 8, 2012 to September 9

Venue: The Concourse at San Francisco Design Center – 635 Brannan at 8th Street, San Francisco, CA 94107

Visit TechCrunch for more info!

Here’s a good list I found of upcoming hackathons in the US.

Applications Born from Hackathons


GroupMe is a group messaging application that was built in under 24 hours through a hackathon. A couple of years back it was bought by Skype for $50 million.


Docracy is a free repository for legal documents, much like GitHub but for legal documents. The original plan was to just create a prototype of the idea, but Matt Hall and John Watkinson took home the first prize. After about seven months they were funded for $650k.

Plan Your Next Trip

Plan Your Next Trip is a web application that lets you choose your preferred destination and schedules your day for you!


Zaarly is a very successful service that was born from a hackathon, now funded with over $15 million, according to Business Insider.


Banjo‘s goal is to notify you when a friend is near, learn and share interests with people, and explore the world with its users!

Have an Awesome Idea that You’re Itching to Build?

I’m not saying that you should join a hackathon to actually create something, it’s just an event where you can mingle with people and have an extra boost of motivation to actually create.

If you want to feel the same pressure, why not start your own hackathon with friends? You can even invite other developers near you, or even the local colleges! In fact, I have heard of a company in the Philippines where every Friday, they hold a company-wide hackathon for their employees. Why not do the same?

April 19 2012


Design on the Go: Designer Apps for Android


As smartphones have advanced, and the display and photo capture technologies have improved, many have desired the ability to design and to edit images on their mobile phones. In fact, today hundreds of design applications exist on Google Play (previously known as Android Market). So in order to help you sift through the noise to find the ideal one for your needs, we decided to take a look at our top twenty designer apps for Android.

1. Adobe Photoshop Express

Photoshop express is an application based around the hugely successful computer program of the same name, but now adapted to mobile phone use. Though the app doesn’t have all the functions available on the PC version, it remains extremely popular for a wide range of photo editing functions.

2. WordPress Mobile

WordPress Mobile is a simplified version of the popular website blog managing software, which enables users to update, edit and create new websites straight from their smartphones. Ideal for any person who requires round the clock updates for their websites.

3. Color Dictionary

This useful application enables users to search and discover a variety of colors that can then be used in different design purposes. The Color Dictionary app can identify a color, or allow the user to select a color on a slider, and it will then apply a name to that color. Handy for all sorts of uses, whether choosing a website background or what color paint to buy for decorating your house!

4. ColorSnap

Similar to the Color Dictionary app, ColorSnap can capture colors from photos taken by your Android phone’s camera or pics from your library and identify them by matching to Sherwin-Williams‘ paint colors. The app is optimized for MDPI and HDPI phones and has never been tested on LDPI devices. It’s said to work well on old devices like the HTC Droid Incredible or the LG Ally, however, according to users’ reports, it doesn’t work well on Samsung’s Galaxy Nexus.

5. Color Mood Designer

In case you don’t like Color Dictionary and ColorSnap, Color Mood Designer is another app you can use to find the right color combination for your design project.

6. Finger Colors

The title of this app can make you think it’s another color-choosing app, but no, it’s actually used for painting and drawing with a user-friendly interface that won’t distract or interrupt you. The Finger Colors app enables you to set the width, transparency and color of your strokes, so you can draw or paint almost anything you want, including oil and watercolor paintings (well, digital ones).

7. Autodesk SketchBook Express

Similar to the previous apps, Autodesk SketchBook Express is a painting and drawing application with a huge range of useful tools. It works on smartphones that support multi-touch and run Android 2.1 or above; a powerful processor with a good amount of RAM will make the app run faster, but you can use it on mid-range devices like the Samsung Galaxy Ace, too.

8. Fotolab

Fotolab is an application that specializes in enabling users to alter the effects and colors of an already taken photo. Selective color draining, blurring and effect creating are all available, plus more. The app is easy to use, and even allows the user to set an initial effect and then add patches for alternative effects with just the press of a finger.

9. Photo Effects

Photo Effects provides the ability to apply numerous effects to your photos. Whether it be thermal, fisheye, hazed or pixelated, this application can provide the edit that you require. Normal edits can be made to improve photos, or they can be made entirely wacky! Easy to use and control.

10. Reduce Photo Size

Reduce Photo Size does exactly what it says on the tin. It can be used for editing image sizes, but its main use is to compress the actual file size. Many find that storing multiple images on their phone can deplete their memory rapidly, and so this app could be a useful solution to such a problem.

11. Photaf Panorama

This application enables easy arranging of panorama-style shots. While Android 4.0 is likely to provide this function itself, anyone who requires panorama creation without the new operating system will want to use this easily controlled app.

12. BeFunky Photo Editor

BeFunky is one of the most popular online photo editing programs, and now it’s available on Android, too. You can use the app to edit photos, apply different effects or add frames from the big collection it offers.

13. PicsArt – Photo Studio

PicsArt is one of the best and most complete photo editing apps that can be found on Google Play for free. You can use it not only for editing pics and applying effects to them, but also for drawing and sharing the works and the edited pics via Facebook, Flickr, Tumblr and a number of other social networking sites. It also adds new features to your smartphone’s camera and gives you the opportunity to take photos with effects the standard features don’t include.

14. Photo Enhance

Photo Enhance is another good photo editor to easily adjust brightness, contrast, balance and colors of your photos and make them look more detailed, as if they were taken with a very cool camera.

15. Dash of Color

Many users look for apps that turn usual pics into black-and-white ones. But if you’re looking for just the opposite, Dash of Color will help you add colors to any kind of black-and-white photo. You can also use this app to convert any image to a black-and-white one and then add some selective colors of your own choosing.

16. Fontroid

Most designers have to deal with fonts, and Fontroid is an app that can be useful in that arena. It enables you to draw and create your own fonts, upload them and share with your friends/colleagues. The best fonts become available for download from the official website in TrueType format.

17. Photo Grid

With Photo Grid by RoidApp you can turn your photo galleries into collages and easily add thumbnail photos for them. This is one of the most popular apps on Google Play with a huge number of positive user reviews, so you might find it worth trying.

18. Gallery+

Gallery+ is an application that provides greater flexibility for gallery organization for the images on your phone. Android has been criticized in the past for not enabling this on the operating system supplied gallery, and so Gallery+ has attempted to rectify this in order to make the organization of photos more convenient. Features that brighten up the backgrounds and style of the albums also exist.

19. PicWorld

PicWorld is a highly rated application that enables easy search of images across the Internet, using a variety of filters. Whatever photo you’re searching for on your mobile, PicWorld is likely to produce great results compared to manually searching through an Internet browser search engine.

20. HP e-print

This app, brought to you by the computing giant Hewlett Packard, enables easy printing of documents that are stored on your Android phone. Rather than needing to transfer the file from phone to computer and then to printer, the app enables the user to print straight from the mobile. Saving time and headaches.

That’s a Wrap

So what are your favorite design related and image editing apps for Android, either ones that made the list or those that didn’t? Feel free to leave us your thoughts in the comment section below. We look forward to hearing your two cents.


February 10 2012


Designing a Custom iPhone App Navigation Bar

Advertise here with BSA

App development for iPhone and iPod Touch has become a booming industry. Designers from all over the world are jumping at the chance to have their ideas published into the App Store. It’s no surprise more tech enthusiasts are moving onto Apple devices.

It can be tough to build an entire app from scratch and Xcode menus don’t make things easier. In this tutorial I’m hoping to introduce some bare-bones essential ideas for customizing an application’s top navigation bar. There is a bit of Objective-C code required but it shouldn’t be too overwhelming. It’s also worth noting that you will need a computer running Mac OS X in order to install Xcode and compile these apps in the first place.

Featured image - custom iPhone app navigation bar

Download Source Code

Getting Started

So without too much delay let’s pop open Xcode! From the main menu create a new project and a series of windows will appear. First you select the application template – I’ve chosen Master-Detail Application since this already includes a navigation controller.

When building iPhone apps you want to focus on your core functionality and build off the components already available. It’s pointless to reinvent the wheel and it just requires more of your time. So now hit Next and you’ll be prompted to give this project a name.

choosing the original project template

I set the name customNavBar with a company identifier of designmag. The identifier will not affect your application at runtime. It’s more like metadata to keep track of which applications are published under which developer or studio. If you are building for iOS5 make sure Automatic Reference Counting is checked as well as Storyboards.

Naming your new iOS5 Xcode project

Hit next, save your new project and we are good to go. Let’s start out simple by customizing the navigation bar’s color setting.

Custom Tint Colors

In Xcode the left pane window contains all your project files. Inside should be a set of MasterViewController .h/.m files. These stand for header and implementation codes which are used to build custom classes.

You don’t need to understand this concept just yet as it’s geared more towards software developers. But we will be working within these classes so it’s good to recognize their purpose. Click once on MasterViewController.m and the source code will appear in your center window.

Now scan the document for a function labeled viewDidLoad. This is a default method called on every view once the page first loads. Here’s a bit of the syntax:

- (void)viewDidLoad
// code here

Inside the curly braces we want to place a line of code which updates the navigation bar’s tint color. This value can be set using RGB which I’ll explain in the next part. But to keep things simple for now we’ll use the colorRed keyword afforded to us within Cocoa Touch. Here’s the code I’m using inside viewDidLoad:

[super viewDidLoad];
[self.navigationController.navigationBar setTintColor:[UIColor redColor]];

self.navigationController.title = @"Custom Nav";

Working the Navigation Controller

You’ll notice that Objective-C 2.0 has adopted a dot-syntax similar to JavaScript. You aren’t expected to fully understand the code above – it’s especially deterring to newbies who have never used Xcode before. But when I’m calling self.navigationController.navigationBar it’s a target to the internal nav bar inside our controller.

Then the setTintColor method will change the styles of all buttons and elements inside the navigation bar. You may also notice I’ve set the navigation controller’s title property. This is just a plain string of text which appears at the top of your page view.

tinted navigation bar to red

Build and run the application with CMD+R or click the play button in the top left corner. This will open the iOS Simulator so you can catch a glimpse of how the app will function on a mobile screen. This method works and it’s a great place to start.

However I want to include just a bit more code so that we can use a custom image as the navigation background instead. Quit the simulator for now and let’s pop back into Xcode.

Creating BG Graphics

To save a bit of time I’ve already put together the background images in Photoshop. I’m using a similar design pattern as this indigo nav bar created originally by Jonathan Mulkey. He is a very talented app designer based out of Tennessee.

It’s worth mentioning that we need to create two(2) different image files for the background. Regular iPhone 3/3GS users are on the standard 320×480 pixel grid. However the iPhone 4/4S uses a 640×960 grid fitted into the same physical screen size. This means 1 point = 2 pixels and our images will look much more crisp.

iOS dev guidelines require that both images are saved under the same name with the larger retina image title appending “@2x” on the end. In our code we will only reference CustomNavBG.png. The Cocoa framework is smart enough to detect when a user is on a retina device and will automatically fill the @2x version instead.

Implementing the Background

The fastest and most proper way to accomplish a custom navigation background is to build a new UINavigationBar subclass. I know this sounds a bit confusing but it’s really a lot simpler than you think.

creating a new file in Xcode 4.2

Right-click(or control+click) on your project in the left pane and select New File. We want an Objective-C Class with a subclass of UINavigationBar. If this isn’t offered in the dropdown menu just manually type it in. You can name this class whatever you’d like – I chose CustomNavBar. Hit “Next” and you’ll end up with a new set of .h/.m files in your project.

All we want to do is overwrite a method named drawRect. This is used to create the original background gradient for any default navigation bar. I’ve added my code below for both of the .h and .m files. It should work perfectly if you copy/paste into your own assuming you are using the same class name.

# CustomNavBar.h codes
@interface CustomNavBar : UINavigationBar


#CustomNavBar.m codes
@implementation CustomNavBar

- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"CustomNavBG.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];


Save any changes in both of these files and then click onto your MainStoryboard.storyboard. This contains all the different views within the application. At the very far left is a Navigation Controller and this is what we’re targeting. Click on the top blue bar and open your Identity Inspector(View -> Utilities -> Show Identity Inspector). This should appear in the right-hand window pane.

setting the custom UINavigationBar class

Within this new window you should see a class setting with the value UINavigationBar. You want to change this to CustomNavBar or whatever you named your class files in the previous step. Now the navigation bar is pulling from our custom code instead of the default iOS bar.

Build & Run!

If you run the application now you’ll notice our top nav bar is pulling in the background image. Success! But the only problem is when you tap on the table cell it loads a new view which uses a back button. This back button is still colored by the red tint we were using earlier.

hideous red-tinted back button

Luckily this is a simple fix. We just need to match a purple/grey color from the background image and use this as our new tint. Click back into MasterViewController.m and find the previous code inside viewDidLoad. I’ve taken the liberty of grabbing an RGB value which fits this background color and set each to different variables. Below is my new tint code:

NSInteger red = 95;
NSInteger green = 100;
NSInteger blue = 130;

[self.navigationController.navigationBar setTintColor:[UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:1.0]];

We place each color value over the max of 255 and this returns a floating integer. Strictly speaking this is the easiest way to convert RGB from Photoshop into a color in Objective-C. Save and run the project again and you should see much nicer results.

recolored button tint

Download Source Code


If you’ve having any trouble be sure to download my demo source code for this project. I’m using Xcode 4.2 with iOS5 which may not convert perfectly down to older versions. But for beginner iOS developers this tutorial should give you a bit of insight into building and customizing your own apps. It’s a truly challenging skill to master yet very rewarding in the long term.

Advertise here with BSA

December 24 2011


Advantages of Converting Your Blog into an App and How To Do It

Mobile Media is trending for those who live on Internet Marketing. If you create a website but forget to test it on various mobile platforms then you simply ignored a huge chunk of your visitors. Users using mobile phones to visit various websites and catch up with the latest updates online has resulted in a new business focus which runs solely on Mobile compatibility of websites. An industry that grew simultaneously along with the increased mobile traffic was the App development industry. Today, there is an app for almost everything. I mean you might even stumble on an app that helps you search for dentists in your city. Crazy!

This discussion will focus more on the advantages of having a mobile app for your blog. Later, I will introduce you to few online services that help you generate a mobile app for your blog. Remember, an app for your blog is important because you cannot afford to scare away your blog’s visitor just by pushing a crappy looking mobile design of your blog.

Keeps the readers engrossed

I agree that most readers use RSS feeds, but your updates tend to get lost in between the multiple feed updates. This is when a dedicated app for your blog will keep the readers engaged with your blog only. One can design an app which pushes updates to a reader’s mobile after every new blog update which multiplies the user engagement level with that app.

Increase blog’s visibility

All that you have to do is generate engaging content and then let your app do the rest for you. Options like recommend the app to a friend increases the visibility of your blog if current users start recommending the app to others. This will increase your blog’s visibility among those readers who will stick with you for long.

Another added feature of having an app comes in when your app is listed in various app worlds (like that of Apple, Android and BlackBerry). Users usually tend to search for new apps in such app worlds and if your app is listed then be rest assured that it will be downloaded by many. Remember, after the download it is good content that will prevent the users from uninstalling the app. So, make sure you generate great content.

Give readers the “special” feeling

There are zillions of blogs and soon there will be an equivalent number of apps. This is when you get to do something different in order to keep the readers engaged. How about you give away special content only for those who use your app? Push content which will be visible only to readers who use your app. This will keep your readers engrossed and make them feel special. Remember to make that special content actually special.

Recognize readers for special suggestions

Request reader feedback to improve your blog’s app and, if possible, implement those suggestions. After successful implementation push a message to all the users of the app which will recognize the special contribution of one user. It will surely make the user feel important and increase your credibility in the community.

It is wonderful to see what we can do if we have an app for our mobile readers. It is just a matter of time before having an app for a blog will become as normal as having a custom theme designed for a blog. Just a matter of time. You can choose to flow with the tide or get ahead of it.

Now, let me list a few services that will help you generate an app for your blog. We haven’t tested them all but we can (hopefully) rely on their words. Let us know your view in comments below.

App Maker for Android

I thought that I should start with something android specific as it is the best known mobile platform (or not?) at present. Also, I don’t want to start the Apple vs Android (and if possible add “vs BlackBerry”) war here so please keep such comments away from this article. Coming back to what we were discussing. App Maker for Android creates an Android App for free within minutes. Try them and have fun.


Mippin takes your app to the next level and creates one for Android as well as Apple iPhone. Mippin is smart enough to keep your app in sync on both the platforms and uses HTML5 in order to produce an app that fits with almost all platforms.


Conduit happens to be one of the most famous services to create mobile apps for various platforms. Conduit creates an app which is compatible with almost every mobile platform and the reviews backing them seem to be very satisfactory.


AppsGeyser seems to take the mobile app creation business to a whole new level. After you are done creating your app, AppsGeyser will help you get traffic to your app, help you engage your audience and monetize your blog’s app for the best possible returns. Money well spent.

Shout Em

Shout Em seems to be the big dog in the market. With strong reviews from the likes of Mashable and The Next Web, Shout Em is rolling high on confidence. Their app creation process helps you create apps for iPhone and Android platforms. Also, they will help you push the apps into the respective market places which is surely a plus.


GENWI is another big player in the market with reviews from the likes of Forbes. GENWI might charge you for specific services but the value is amazing. GENWI gives you apps for iPad, iPhone and Android. The HTML5 based apps are compatible with almost all platforms and will surely attract the mobile user.


Another famous (and well respected) app developer is Zubibu. They too support the iPhone and Android platforms. Zubibu smartly provides services that not just help you create an app but also analyze the results and improve on them. Zubibu is one of the very few services out their that provide mobile e-commerce solutions which will be an advantage for bloggers who tend create an e-commerce platform.


TapLynx follows a different approach towards the app development market. TapLynx gives away an SDK which can be used by bloggers to create apps in no time. The SDK comes loaded with multiple features that can be used by bloggers to enhance their TapLynx app which will be compatible with iPhone and Android based phones. Later on TapLynx will help you monetize your apps for better returns.

Mother App

Mother App is one of the few in this list that provide a custom app development which helps them focus on clients and their minute needs. Mother App has been in business for over 5 years and they have some really satisfied clients. You will have to get in touch with them in order to get a quote and understand how they will satisfy your requirements.

Phone Gap:Build

Phone Gap is another sleek service that keeps aside SDKs to create apps. They provide the blogger with the liberty to create apps using HTML, CSS and JavaScript. Design your own simple looking app and upload it to Phone Gap. The service will return you with a working app that will work with iPhone, Android, BlackBerry (finally!) and lot of the other platforms. Upload them to the respective app worlds and you are ready to roll.

December 17 2011


Introducing Nettuts+ Builder – Version 2

We’re pleased to announce the release of Version 2 of Nettuts+ Builder, a Mac app that handles the process of concatenating and compressing your assets, optimizing your CSS by running it through, and uploading to your FTP server.

What Exactly Does it Do?

Intended for small projects and demos, all you need to do is drag your project folder onto Builder’s icon in the menu bar. Once you do so, it will:

  • Concatenate all scripts that are contained within <!-- js --> .. <!-- end js --> comments.
  • Concatenate all stylesheets that are contained within <!-- css --> .. <!-- end css --> comments.
  • Compress all CSS, JavaScript, and HTML files.
  • Run your CSS through
  • Organize folder structures, if necessary
  • Optionally upload to a directory on your server.

See it in Action


Nettuts+ Builder V2 is currently available free to all Tuts+ Premium members.

December 02 2011


16 Google Services And Apps For Your WordPress Blog

Google offers seemingly endless services and apps. Even though it began as (and primarily is) a search engine, today Google has a solution for every internet user’s needs. And when it comes to meeting needs, Google doesn’t forget the needs of web designers and developers. In this article, we will be taking at a look at some of the major Google services and how they can be useful for a WordPress user.

1. Google Custom Search

Google Custom Search creates a custom search engine for your website. You can tweak it to your heart’s content – it can search your entire website, parts of the website or even multiple websites specified by you! You can also connect your Adsense account to the ads displayed with the search results (free version). The paid version lets you remove ads completely (starting at $100 per year).

Google Custom Search

Google Custom Search

2. Google Web Fonts

Google Web Fonts is perhaps the best friend for web designers/developers looking to use non-standard fonts in their projects. This fonts’ directory lets you easily implement the CSS @font-face technique.

Google Web Fonts

Google Web Fonts

Google Web Fonts are totally free and can be implemented within minutes. You can either use a plugin or an @import command at the top of the CSS file (and then simply use the font’s name in your stylesheet). For instance:

@import url(‘’);

#body { font: normal normal normal 14px/20px ‘Droid Sans’, Arial, sans-serif; }

3. Google Adsense/AdWords

If you wish to have advertisements on your website, Google Adsense is the easiest way to start. There are many tutorials that let you get the most of Adsense, as well as numerous plugins that help you implement Adsense in WordPress.

Google AdWords

Google AdWords

With AdWords, you can use the Keyword Search to see the trends in search for specific keywords.

4. URL Shortener

WordPress has its own version of URL shortener in the form of – and this feature has now been very well integrated in Jetpack. However, Google claims its URL shortener is one of a kind! Further more, Google has also released its own URL Shortener API. So if you don’t already use it, it is time you started doing so. To get started, here is an excellent tutorial by Konstantin Kovshenin to help you get started with its integration in WordPress. If you do not wish to code yourself, there are many plugins out there to help you.

Google URL Shortener

Google URL Shortener

5. Feedburner

Who doesn’t know Feedburner? It is a great tool that lets you track your website’s progress, number of subscribers, manage RSS and email subscriptions, apart from setting up and tweaking your blog’s feeds.

Google Feedburner

Google Feedburner

6. Google Analytics

Everyone uses Analytics – well, almost! Analytics is a wonderful tool when it comes to tracking the progress of your websites, clicks, advertisements, referrers and other related information. You can target specific sections and see what portions of your website are more popular than the rest. For WordPress users, Definitive WordPress Analytics by Joost de Valk is perhaps the most popular plugin for Analytics. If you are not familiar with Analytics, you should consider tutorials by KISSmetrics.

Google Analytics

Google Analytics

7. Google Website Optimizer

Google Website Optimizer lets you perform experiments to see what works best for your website and how you can boost its performance. In other words, it can be useful in ‘split-testing’ your website.

It is, however, fairly advanced in its operation and if you are looking for a simpler alternative, you should consider the MaxA/B WordPress plugin.

8. Google Libraries API

Google Libraries API contains code frameworks which can be used on many platforms, including WordPress. While the truth behind this claim is anyone’s guess, it is often said that the Google Libraries’ framework is faster than the one that comes packaged with WordPress itself. The easiest way to integrate Google Libraries’ framework is using a plugin, but just in case you are adventurous, you can code it manually along the following lines (I’d personally suggest you use this method in custom extensions/plugins preferably):



wp_register_script(‘jquery’, ‘’);



Code Credit: Frederick Townes

Google Libraries API currently supports Chrome Frame, Dojo, Ext Core, jQuery, jQuery UI, MooTools, Prototype,, SWFObject, Yahoo! User Interface Library (YUI), and WebFont Loader. You can check its developer guide here.

9. Google Chrome Developer Tools

Google Chrome now accounts for nearly 10% of total browser usage. It comes with its own set of Developer Tools, which is comparable to Firefox’s Firebug. Owing to the browser’s ever-increasing popularity, the extensions offered in Chrome DT are also on the rise.

10. Google Project Hosting

Google Project Hosting lets you maintain a project online. It is similar to Github in its mode of operation. You can host projects up to 2 GB in size for free, and it also offers you many features such as subversion, project wikis and issue tracking. From a WordPress user’s perspective, many heavy-weight projects such as Thematic are listed.

Google Project Hosting

Google Project Hosting

11. Google Checkout

Google Checkout is a service similar to Paypal. The best thing about Checkout is its excellent integration with many Google services, such as Adsense and AdWords. On the downside, however, it is not yet available in many countries.

Nevertheless, integrating Google Checkout as an alternative payment solution along side Paypal doesn’t seem to be a bad decision. For WP users, there are many plugins that can help you integrate Google Checkout in your website, such as Simple Google Checkout and LBAK Google Checkout.

12. Google Docs and Chart Tools

Google Docs is a web-based Office suite that lets you edit, create and share documents, spreadsheets, presentations and forms. You can even live-edit documents with multiple users.

Google Docs

Google Docs

Google Docs can be embedded into WordPress too, if you so desire.

Along similar lines, Google Chart Tools let you create interactive charts for your blog.

13. Google Maps

The benefits of Google Maps are not unknown to anyone. You can integrate Google Maps on your blog using multiple plugins, of which the most popular one is MapPress, that lets you integrate Maps on your WP site in an easy manner.

Google Maps

Google Maps

14. YouTube

YouTube is another extremely popular Google service that lets users upload and share videos. From your blog’s perspective, you can easily upload the bulky videos on YouTube and save a considerable amount of bandwidth. With the advent of HTML5, integrating a YouTube video in WordPress is a matter of minutes using embeds – simply enter the URL of the video in a fresh line, and you’re good to go!

However, if you wish to have total control over the embedded video, you may consider using plugins such as TubePress or Viper’s Video Quicktags.

15. Google Reader

Google Reader is a free web-based RSS feed tool. If you wish to blog about stuff from your RSS reading pane, you can add a ‘Send to’ button for your WordPress blog (by default, such mechanism exists for Facebook, Twitter and few other sites, but a WP-powered blog).

Google Reader

Google Reader

You might be tempted to use WordPress’s ‘Press This’ function in Reader too, but sadly, that is not possible because Press This is javascript and Reader will need a full-fledged URL.

In such a case, we will need to post directly to press-this.php

To do so, navigate to ‘Send To’ tab under Settings in Google Reader, and click ‘Create a custom link’. In the URL field, enter the URL to your website, along the following lines:${url}&t=${title}&s=${source}&v=2

Make sure you substitute ‘sample-website’ in the above snippet with the URL of your site.

16. Google Summer of Code

While this is not an extension or an app, Summer of Code offers a wonderful opportunity for young talents to, well, do awesome stuff! WordPress has been a regular participant since 2007, and you can check about its progress on the codex.

To Sum it Up…

As we have seen, Google offers many services (don’t forget GMail) that can be employed to boost our WordPress blogs. Which of these do you use/do not use? Do let me know in the comments!

Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.
No Soup for you

Don't be the product, buy the product!

YES, I want to SOUP ●UP for ...