White iPhone to arrive tomorrow (4/28) says Apple

Apple has announced that the white iPhone 4 will be available tomorrow, April 28th. You’ll be able to find it at Apple’s online store, Apple retail stores, AT&T and Verizon Wireless stores and some Apple Authorized Resellers (call to confirm). The white iPhone will go on sale in 28 countries tomorrow, including Austria, Australia, Belgium, Canada, China, Czech Republic, Denmark, Finland, France, Germany, Hong Kong, the U.S. and the UK.

“The white iPhone 4 has finally arrived and it’s beautiful,” said Apple’s Phil Schiller. “We appreciate everyone who has waited patiently while we’ve worked to get every detail right.”

As of this writing, the white iPhone has commandeered Apple’s homepage.

At last, the wait is over! Rumors suggested we’d see it this week, and here it is. If you pick up one of the snowy beauties tomorrow, please share your photos and stories. We’d love to hear all about it.

White iPhone to arrive tomorrow (4/28) says Apple originally appeared on TUAW on Wed, 27 Apr 2011 08:51:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

TUAW’s Daily App: Third Blade

Com2Us is a Korean publisher that’s produced some quality iPhone titles, and its latest release, Third Blade, keeps that trend going. Unfortunately, there’s not a lot of original iPhone gameplay here (it’s a traditional beat-em-up, though there are some nice RPG elements as you go), but while the actual game style is pretty well traveled, the action is well-done anyway. With an on-screen analog control and three different blade types that you can use to hack and slash through the well-rendered enemies, there’s plenty of fun to be had, especially if you’re up for a relatively hardcore action experience.

Each of the three blades that you can use (a faster dual wield, a stronger one-hand sword and a huge, but slow, two-hand “buster sword”) also levels up, and as the game goes along, there are also abilities to uncover and use against the enemies you meet. The enemies themselves are kind of repetitive (though I find most action games repetitive in this way — it’s more about the moves you can pull off rather than the variety of bad guys you come across, I think), but the graphics look great, and the hack-and-slash action is satisfying.

There are a few modes to play with, Game Center is integrated, and Com2Us says that more content will be available in the app soon. Third Blade is a more hardcore experience than your standard casual iOS action game, but for those looking for a little bit tougher action experience, it’s worth the US$2.99 to download and play.

TUAW’s Daily App: Third Blade originally appeared on TUAW on Wed, 27 Apr 2011 08:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

iPhone 101: Location data and GPS

gps data in a photoUpdate: Look here for official word on the iPhone location data controversy from Apple.

Recently, the Apple community has become interested in location data as gathered by iPhones. Specifically, The Guardian has reported that researcher and former Apple employee Pete Wardensome and data visualization scientist Alasdair Allan believe that your iPhone’s travel history is backed up to a file on your Mac, eliciting questions and concerns about iOS location services.

With that in mind, TUAW offers this brief primer so that you can better understand what’s going on under the hood of your iOS device when it comes to location matters.

What are location services and how do they work?

Location services allow certain apps to determine your iPhone’s approximate location and make use of that information. This is done through a combination of cellular network triangulation, Wi-Fi triangulation and the Global Positioning System, or GPS.

Here’s how it works. Your iPhone will first attempt to communicate with GPS satellites to determine its approximate location. This is a series of medium Earth orbit satellites deployed by the US Department of Defense several years ago. For a more in-depth explanation, look here.

When a solid GPS connection is unavailable (the iPhone is indoors, amid many tall trees outside, etc.), the iPhone tries Wi-Fi triangulation. As our own Auntie TUAW recently explained, this works because Wi-Fi hotspots rarely move. Apple has amassed a database of known hotspots and, when your iPhone is connected to one of those, can use them to determine an iPhone’s approximate place on the Earth. Of course, this method is less accurate than GPS.

Finally, determining location via cellular towers works in a similar fashion. Nearly every cell tower is built in a known, constant location (except for COWs). These fixed positions allow your iPhone to determine an approximate location by triangulating its distance from the nearest towers. Cell towers are less accurate because there are fewer of them than there are Wi-Fi hot spots. Therefore, you’re dealing with larger distances.

The first time an app tries to access location data, it asks for permission. A dialog box asks to use your current location. If you’re OK with that, tap Allow. Otherwise, tapping Don’t Allow prevents the app from accessing your location data until you turn it back on as described below.

Continue reading iPhone 101: Location data and GPS

iPhone 101: Location data and GPS originally appeared on TUAW on Wed, 27 Apr 2011 07:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Android App Development:Building Android Content Providers

In this tutorial I will cover building Android content providers. Content providers are the way that Android applications can share info between each other. an application can ask for info from another application using content providers.

In this post we’re going to create a content provider to access data from our previous Employees simple application from the SQLite post.

To remind you the database has two tables Employees and Dept:

Remember that any content provider must provide the following:

  1. A URi from which we can run queries.
  2. MIME type corresponding to the content.
  3. Insert() method.
  4. Update() methd.
  5. Delete() method.

Creating the content type:

First we will create a new class, I will call it EmployeesContentProvider and choose its super class to be ContentProvider. the class initially will be like this:

package mina.android.DatabaseDemo;

import android.content.ContentProvider;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;

public class EmployeesContentProvider extends ContentProvider {
DatabaseHelper db;
public static final Uri CONTENT_URI=Uri.parse("content://employees");
 @Override
 public int delete(Uri arg0, String arg1, String[] arg2) {
  // TODO Auto-generated method stub
  return 0;
 }

 @Override
 public String getType(Uri uri) {
  // TODO Auto-generated method stub
  return null;
 }

 @Override
 public Uri insert(Uri uri, ContentValues values) {
  // TODO Auto-generated method stub
  return null;
 }

 @Override
 public boolean onCreate() {
  // TODO Auto-generated method stub
  return false;
 }

 @Override
 public Cursor query(Uri uri, String[] projection, String selection,
   String[] selectionArgs, String sortOrder) {
  // TODO Auto-generated method stub
  return null;
 }

 @Override
 public int update(Uri uri, ContentValues values, String selection,
   String[] selectionArgs) {
  // TODO Auto-generated method stub
  return 0;
 }

}

We added a member of type DatabaseHelper db to hold a reference to our database.

Also we added a static URi object that represents the URi of our content provider.

It has all the abstract methods implementations of the ContentProvider class. so let’s check each method

onCreate() method:

The onCreate() method is the first method invoked when the content provider is created (similar to the Activity’s onCreate() method). here you can load your database or check for files you may read/write to them.

The method return a Boolean. it should be true if everything is ok, otherwise it should be false.

In our case we will just reference our SQLite database:

@Override
 public boolean onCreate() {
  // TODO Auto-generated method stub
  db=new DatabaseHelper(this.getContext());
  if(db==null)
   return false;
  else
   return true;
 }

query() method:

the query() method is the method that gets invoked when a content provider data is requested by a URi.

First let’s talk a little about content providers URI.

The content provider URi has the following format:

content://Authority/[(n) path]/[instance indentifier]

explanation:

  • The URI starts with content:// scheme.
  • The authority is a unique identifier for the content provider.
  • The authority can be followed by one or more paths (optional) refer to data paths within the content.
  • There can be an instance identifier that refers to a specific data instance.

For example we can have a URi like this:

content://Employees/Marketing//11.
this URi has Employees as the authority, Marketing as a data path and 11 as an instance (employee) identifier.

Back to our query method, we have the following parameters:

  1. Uri: the URi requested.
  2. String [] projection: representing the columns (projection) to be retrieved.
  3. String[] selection: the columns to be included in the WHERE clause.
  4. String[] selectionArgs: the values of the selection columns.
  5. String sortOrder: the ORDER BY statement.

the first step in our query method is to parse the client URi.
we expect the URi to be in one of the following forms:

  1. content://employees/: retrieves all employees.
  2. content://employees/id: retrieves a certain employee by ID.
  3. content://employess/IT: retreives employees of IT Dept.
  4. content://employess/HR: retrieves employees of HR Dept.
  5. content://employees/Sales: retreives employees of sales Dept.

So we will add some constatnt values to our class to refer to the above URis:

//authority and paths
 public static final String AUTHORITY="employees";
 public static final String ITPATH="IT";
 public static final String HRPATH="HR";
 public static final String SALESPATH="Sales";

 //URiMatcher to match client URis
 public static final int ALLEMPLOYEES=1;
 public static final int SINGLEEMPLOYEE=2;
 public static final int IT=3;
 public static final int HR=4;
 public static final int SALES=5;

Then we’re going to define a URiMatcher object that matches the client URI

static final UriMatcher matcher=new UriMatcher(UriMatcher.NO_MATCH);
 static{
  matcher.addURI(AUTHORITY,null,ALLEMPLOYEES);
  matcher.addURI(AUTHORITY, ITPATH, IT);
  matcher.addURI(AUTHORITY, HRPATH, HR);
  matcher.addURI(AUTHORITY, SALESPATH, SALES);
  //you can use '*' as a wild card for any text
  matcher.addURI(AUTHORITY, "#", SINGLEEMPLOYEE);
 }

The static initializer block loads the URimatcher objects with the values to match when the class initializes.

So let’s write our query method:

@Override
 public Cursor query(Uri uri, String[] projection, String selection,
   String[] selectionArgs, String sortOrder) {
  SQLiteQueryBuilder builder=new SQLiteQueryBuilder();

  builder.setTables(DatabaseHelper.viewEmps);

  String order=null;
  Cursor result=null;
  if(sortOrder!=null)
   order=sortOrder;
  int match=matcher.match(uri);
  switch(match)
  {
  case ALLEMPLOYEES:
   //content://employees//id
   result=builder.query(db.getWritableDatabase(), projection, selection, selectionArgs, null, null, sortOrder);
   break;
  case SINGLEEMPLOYEE:
   //content://employees//id
   Listsegments=uri.getPathSegments();
   String empID=segments.get(0);
   result=db.getEmpByID(empID);

   break;
  case IT:
   //content://employees//IT
   result=db.getEmpByDept("IT");
   result=builder.query(db.getReadableDatabase(), projection, db.colDeptName+"=?", new String[]{"IT"}, null, null, sortOrder);
   break;
  case HR:
   //content://employees//HR
   result=db.getEmpByDept("HR");
   result=builder.query(db.getReadableDatabase(), projection, db.colDeptName+"=?", new String[]{"HR"}, null, null, sortOrder);
   break;
  case SALES:
   //content://employees//Sales
   result=db.getEmpByDept("Sales");
   result=builder.query(db.getReadableDatabase(), projection, db.colDeptName+"=?", new String[]{"Sales"}, null, null, sortOrder);

   break;

  }

  return result;
 }

the function just parses the URi and returns the data in a cursor.

Insert() method:

the insert methods inserts a new record to the db;
the insert method has the following form:

public Uri insert(Uri uri, ContentValues values) {

  return null;
 }

The method has two parameters:

  1. URi uri: the URi of the content provider, we need to check it’s correct.
  2. ContentValues values: object holding the info of the new item to be inserted.

The method returns the URi of the newly inserted item to be used for further manipulations.
so here’s the implentation:

@Override
 public Uri insert(Uri uri, ContentValues values) {
  int match=matcher.match(uri);
  //not the Uri we're expecting
  long newID=0;
  if(match!=1)
   throw new IllegalArgumentException("Wrong URi "+uri.toString());
  if(values!=null)
  {
   newID=db.getWritableDatabase().insert(DatabaseHelper.employeeTable, DatabaseHelper.colName, values);
   return Uri.withAppendedPath(uri, String.valueOf(newID));

  }
  else
   return null;
 }

We first check the Uri if it is not correct, throw an exception.
then check the content values object, if null return null otherwise insert the new item and return the URi with the id of the new item.

The Update() method:

The update method updates existing record(s) and returns the number of updated rows.

A trick rises from the fact that you need to specify whether to update a collection of records or a single record, based on the URi.

The method has the following parameters:

  1. URi uri: the URi of the content provider, we need to check it’s correct.
  2. ContentValues values: object holding the info of the new item to be inserted.
  3. String Selection : the filter to match the rows to update
  4. String [] selectionArgs : the values of the filter parameters

Here’s the implementation of the update method:

@Override
 public int update(Uri uri, ContentValues values, String selection,
   String[] selectionArgs) {
  int match=matcher.match(uri);
  //not the Uri we're expecting
  int rows=0;
  //update single instance
  if(match==2)
  {
   if(values!=null)
   {
    Listsegments=uri.getPathSegments();
    String empID=segments.get(0);
    rows=db.getWritableDatabase().update(DatabaseHelper.employeeTable, values,DatabaseHelper.colID+"=?", new String []{empID});

   }

  }
  //update all emps in a certain dept
  else if(match==3 ||match==4||match==5)
  {
   Listsegments=uri.getPathSegments();
   String deptName=segments.get(0);
   int DeptID=db.GetDeptID(deptName);
   rows=db.getWritableDatabase().update(db.employeeTable, values,db.colDept+"=?", new String []{String.valueOf(DeptID)});

  }
   return rows;
 }

The Delete() method:

The delete method has the following parameters:

  1. Uri uri: the URi of the content provider.
  2. String Condition: the condition of the delete statement.
  3. String[] args: the delete condition arguments

So here’s the implementation:

@Override
 public int delete(Uri uri, String where, String[] args) {

  int match=matcher.match(uri);
  //expecting the URi to be in the form of
  if(match==1)
  {
   SQLiteDatabase dataBase=db.getWritableDatabase();
   return dataBase.delete(db.employeeTable, where, args);
  }
  else
  return 0;
 }

We just check for the URi and perform a delete command.

The getType() method:

The last mthod to implement is getType() method which returns the

MIME type associated with the URi passed to it.

If the URi is of a group of employees, then the MIME type is a collection type, otherwise it’s of an instance type

@Override
 public String getType(Uri uri) {
  int match=matcher.match(uri);
  // single employee
  if(match==2)
  {
   return "mina.android.Employee";
  }
  //collection of employees
  else
  {
   return "mina.android.Employees";
  }
 }

Modifying the Manifest.xml file:

The last thing we need to do is to add an entry in our application’s manifest.xml file to register our class as a content provider class.
So add this entry just below the <application>

<provider android:name="mina.android.DatabaseDemo.EmployeesContentProvider"
    android:authorities="employees"/>

When an application requests data through our content provider, Android system will search all the manifest files of all aplications on the device and when it finds such an entry, it will process the request.

Testing the content provider:

Now suppose you are in another activity and you want to use our activity.
Testing queries:
To make a query to retrieve all employees:

Uri empsUri=Uri.parse("content://employees");
Cursor cursor=getContentResolver().query(empsUri, null, null, null, null);
Cursor cursor=getContentResolver().query(empsUri, null, null, null, null);

The cursor should have all the records.

To retrieve a certain employee by ID or all employees in a certain department:

Uri empUri=Uri.parse("content://employees//5");
Uri empDeptUri=Uri.parse("content://employees//Sales");

Inserting:

Uri empsUri=Uri.parse("content://employees");
ContentValues cvs=new ContentValues();
        cvs.put("EmployeeName", "Mark Anderson");
        cvs.put("Age", 35);
        cvs.put("Dept", 1);
        // URi of the new inserted item
        Uri newEmp=getContentResolver().insert(empsUri, cvs);

Updating:
To update a single employee:

//Uri with the id of the employee
Uri empsUri=Uri.parse("content://employees/8");

        Cursor cursor=getContentResolver().query(empsUri, null, null, null, null);
        txt.setText(String.valueOf(cursor.getCount()));

        ContentValues cvs=new ContentValues();
        cvs.put("EmployeeName", "Mina Samy mod");
        cvs.put("Age", 35);
        cvs.put("Dept", 1);
// number of rows modified
int rowsNumber=getContentResolver().update(empsUri, cvs, "EmployeeID=?", new String[]{"8"});

To update all employees in a certain department

Uri empsUri=Uri.parse("content://employees/Sales");

        Cursor cursor=getContentResolver().query(empsUri, null, null, null, null);
        txt.setText(String.valueOf(cursor.getCount()));

        ContentValues cvs=new ContentValues();
        cvs.put("EmployeeName", "mod");
        cvs.put("Age", 35);
        cvs.put("Dept", 1);
        int rowsNumber=getContentResolver().update(empsUri, cvs, "colDept=?", new String[]{"1"});

As a matter of fact, in both cases we don’t need to specify the wher clause and the where parameters as they are implicitly specified in the URi. so we just can replace the update statement to be like this:

int rowsNumber=getContentResolver().update(empsUri, cvs, null,null);

Deleting:
I left the delete operation open to any criteria, you can delete a single employee or employees of a certain department or even all employees

Uri empsUri=Uri.parse("content://employees");
// delete employee of id 8
int rowsNumber=getContentResolver().delete(empsUri,"EmployeeID=?",new String[]{"8"});

Final Word:

Creating a content provider for a certain type of data can be done in many ways, this example can be implemented in several variations.

Another thing is that you need to create a strongly typed class for you data model to be used by clients accessing your content. in this example when I tested the query i wrote the column names of the database as strings like this: “EmployeeID” and “EmployeeName”.
this is not ideal in a production release of an application. I should created a class library that holds all the info about the database to be used by other client applications.

Today you learned about creating content providers, stay tuned next week for another Android tutorial.

Add custom links to WordPress admin bar

To add a custom link to WordPress admin bar, simply paste the following code into your functions.php file. Modify the code as needed to fit your needs.

function mytheme_admin_bar_render() {
	global $wp_admin_bar;
	$wp_admin_bar->add_menu( array(
		'parent' => 'new-content', // use 'false' for a root menu, or pass the ID of the parent menu
		'id' => 'new_media', // link ID, defaults to a sanitized title value
		'title' => __('Media'), // link title
		'href' => admin_url( 'media-new.php'), // name of file
		'meta' => false // array of any of the following options: array( 'html' => '', 'class' => '', 'onclick' => '', target => '', title => '' );
	));
}
add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );

Thanks to Jeff Starr for the cool tip!

Looking for WordPress hosting? Try WP Web Host. Prices starts at $5/month and you can try it for free!

Add custom links to WordPress admin bar

Ask the iPhone.AppStorm Editor #3

Today is our third post in a series titled “Ask the Editor”. This is a great way for you to ask questions and get help for all things iPhone. Whether you’ve just purchased your first iPhone and need help setting it up or are a pro with an advanced technical question, I’ll tackle your problem and see if I can help!

We’ve had some great questions submitted since last time, so read on to find out what my responses are and how you can submit your own questions for the next article.

Is there any free timer app for OS 4.0 that chimes every 15 minutes (or at a custom interval)?

Wvit

This is a great question. There are several timer apps out there, but many of them are aimed at creating one-off timers that don’t have the ability to repeat indefinitely.

However, if you know where to look, these types of apps are easy to find. There is a method of productivity discipline called the Pomodoro Technique, which is built on the premise of going through brief periods of uninterrupted work followed by quick breaks.

Because of the unique structure of this system, there are several apps in the App Store that help you stay on top of your work and break periods. You can use these to set up a recurring timer that chimes at a custom interval.

One free app in this genre is dPomodoro. This simple app allows you to create a task, then set up both pomodoro and break timers for that task.

screenshot

dPomodoro

If you don’t need the break functionality, simply set it to the same interval as the pomodoro and the result is a timer that repeatedly goes off at a frequency of your choosing. If you have trouble focusing at work, I highly recommend that you give the pomodoro technique a try!

Is there an app that will allow me to write notes in books I’ve downloaded?

Latanya Williams

You can do this right inside of iBooks, Apple’s default e-reader application. To start, tap and hold a word. Next, select the portion of text that you want to create a note for. Finally, tap the “note” button in the pop-up menu to bring up a yellow notepad with simple text capabilities.

screenshot

Creating notes in a book

Once you create a note for a specific passage, that text will be highlighted inside the book. To see all your notes for a given book, go to the Bookmarks tab.

screenshot

Viewing your notes

You’ll find similar features in Kindle, Nook and other iPhone reader apps.

Are there any dedicated iPhone apps that let me name and organize voice memos?

Latanya Williams

As with the previous question, some of this functionality can be found right in Apple’s free default app. For a long time, I too was frustrated in my assumption that the iPhone’s default Voice Memo app doesn’t allow you to name your entries, but it turns out you can!

By default, voice memos come up titled as the date and time that you recorded them. However, if you tap on the little blue arrow on the right side of the memo, you’ll be taken to a screen where you can trim or share the recording. From here, tap the box containing the title, which will allow you to set a generic label. At the bottom of the labels menu is an option to insert a custom label.

It’s definitely an annoyingly round-about way to apply a simple title to a recording, but it works!

screenshot

Naming a Voice Memo

Now, despite there being a ton of alternative voice memo apps in the App Store, many of which have better features than Apple’s, it’s actually really difficult to find one with decent organization abilities (tags, searching, folders, etc.) The best solution I can recommend is just to use good old Evernote.

The app may be more than you bargained for but it’s one of the best free apps around and is perfect for creating, naming and organizing all types of notes, including those of the audio variety.

screenshot

Evernote is awesome for voice notes

Didn’t See Your Question?

If you asked a question but didn’t have it answered today, don’t worry! I’ll do my best to get to it in a future week. If you’d like to submit a new query, you can do so here:

Online Form – AppStorm > Ask The Editor

VoiceMod: The Best Voice-Modification App Ever?

Voice modification apps are always good for a few laughs. They allow the toughest of men to sound like squeaky wimps and the littlest of girls to sound big and scary.

Today we’re going to take a look at VoiceMod. An app that just may be the best voice-modification app around and the most fun than you’ve had in years on your iPhone.

Voice Modification Done Right

The developers behind VoiceMod recently asked me to take a look at their app. We’ve looked at one or two voice-modification apps in the past, so I wasn’t particularly interested in reviewing another, but I downloaded and fired up the app just so I could be sure to tell them that I gave it a shot.

Twenty solid, laughter and smile-filled minutes later I still hadn’t put the app down. It turns out that VoiceMod is a gorgeous and extremely well done application that is just plain fun whether you’re six or sixty.

Before you start, you’ll want to put on some headphones, preferably the set that came with your iPhone because of the built-in microphone. Since the app modifies your voice live, headphones heighten the experience by covering up much of your own voice.

How it Works

When you fire up VoiceMod, the first thing you’ll want to do is choose a voice. There are nine of these included in the app, each of which is represented by a goofy illustrated character. To start off, we’ll choose the “Cosmos” voice. To do this, simply navigate to that character in the vertical strip shown below.

screenshot

Cosmos

Once you’ve chosen your character, the interface will revert to a simple metallic mesh shown above on the right. As you speak, you’ll instantly hear the result in your headset, no render time required. The quality of this and the other voices is quite impressive and is sure to elicit a laugh from any first time user.

Modifying the Voice

If this app contained static voices, it would’ve still be pretty decent, but the developers went one step further and brought the app into greatness. As you’re speaking, you can modify the voice by tapping and dragging around on the metal background. The place you’re currently touching lights up as shown in the screenshot above on the right.

Each voice has a unique set of controls that add to and modify the overall effect. For instance, Cosmos is a sort of electrified voice with freestyle modification. By moving your finger around, you can start with a fast, high-pitched voice and quickly jump to something slow and deep.

It’s hard to describe, but as soon as you start waving your finger around and hearing your voice perform impossible stunts, you really can’t help but appreciate this awesome use of the iPhone’s technology. Too see what other types of modifications you can perform, lets look at a few of the other voice.

Darth Father

As you can probably guess, Darth Father is based on a certain sith dark lord who spent too much time hanging around volcanoes. As you speak, your voice is transformed into something much deeper with a little bit of tinny reverb to achieve that mechanical sound.

screenshot

Darth Father

In the middle of Darth Father’s screen are the controls for the classic Darth Vader heavy breathing sounds. Swipe your finger between the dotted blue line and the volume icons to increase or decrease the sound of Darth’s labored breathing.

Further, if you drag your finger around elsewhere on the screen, it makes the sound of a light saber being swung back and forth. Swipe your finger rapidly up into the corner and you’ll hear the light saber hitting something.

All of these are fantastic effects that are expertly implemented. I recorded a few Vader lines from A New Hope and showed them to a friend who couldn’t believe that the voice had started out as my own.

Story

Story is another fun option that is obviously perfect for narrating a tale. It’s a bit like Cosmos only the sections of the screen are labeled this time to give you a good idea of how to achieve a particular effect or character.

screenshot

Story

As you can see, tapping down low will give the “grr” sound, which is a low rumble, while tapping high will give you the “chipmunk” or “fly” sounds, which are perfect for quick chatter or high pitched squeals.

Exorcist

Exorcist is one of my favorites to play with simple because it makes your voice sound so horrifyingly creepy. The super deep voice is combined with heavy breathing and heartbeat effects to really get the listener’s blood pumping. This one would be great for blasting over a stereo to freak out a friend.

screenshot

Exorcist

Other Voices

As I mentioned, there are currently nine different effects to play with. Here is a brief description of those that we haven’t gone over yet.

  • Megaphone: Give your voice a bullhorn effect. Three separate crowd controls give you a range of adoring or angry audiences.
  • Robote: Act out the film Wall-E in its entirety.
  • DJ Trip: No voice effects here, just tap and drag the screen to lay down some crazy sounds and mad beats.
  • Walkie-Talkie: Pretty self-explanatory, make your voice sound like it’s coming through a distorted radio frequency.
  • Idiotizer: This one is really fun and really hard to describe. Basically, it makes you slur your words like a drunk by adding a bunch of delay to your voice. When you try to speak quickly with the headphones on, the delay confuses you and causes you to frequently pause and stumble.

Recording

VoiceMod doesn’t just do live voice modification, it also allows you to save recorded messages to show off later or share with friends.

screenshot

Record and share a brief message

You can share recordings on Facebook and Twitter, send them in an email or download them into iTunes on your computer.

Closing Thoughts

For the most part, I take my iPhone pretty seriously. I download productivity and note applications, file sharing tools and other general utilities far more than games or other “fun” apps. Even when I do grab a game, I usually try it for a few seconds, lose interest and forget it exists.

However, VoiceMod really broke through my boring tendencies and reminded me that the iPhone is more than a business tool. In the hands of the right developers it’s also a ridiculously fun toy that can make a grown man in a room all by himself thoroughly enjoy pretending to be Darth Vader.

I absolutely recommend spending the $0.99 to get the full version, but if you’re still skeptical, try out the scaled-back free version.

Quick Look: IOD Intelligent Dialing for People in Motion

Quick Look posts are paid submissions offering only a brief overview of an app. Vote in the polls below if you think this app is worth an in-depth AppStorm review!

In this Quick Look, we’re highlighting IOD Intelligent Dialing for People no Motion. The developer describes IOD Intelligent Dialing for People no Motion as follows: Imagine you walk in the city or you drive a car and you need to lookup a name in your address book to make a phone call. This is difficult because you have to find the magnifier and then the single small letters on the displayed keyboard. I-O-D helps to find persons with only 3 big buttons. Less focus is needed to dial, focus can stay where it has to be!

Read on for more information and screenshots!

Screenshots

screenshot

IOD Intelligent Dialing for People in Motion

About the App

Here are the top five features you can expect to see in the latest version:

  • Find phone numbers with less distraction
  • 3-Button search instead of 26 button search
  • Easy to handle application with clear interface
  • Thick buttons for thick fingers
  • Integrated help page

Requirements: iPhone IOS 4.2
Price: $0.99
Developer: MiPi

Vote for a Review

Would you like to see us write a full review of IOD Intelligent Dialing for People no Motion? Have your say in our poll:

Would you like to see IOD Intelligent Dialing for People in Motion reviewed in-depth on AppStorm?Market Research

Quick Look posts are paid submissions offering only a brief overview of an app. Vote in the poll if you think this app is worth an in-depth AppStorm review! If you’re a developer and would like to have your app profiled, you can submit it here.

20 Delicious Recipe Apps for iPhone

Remember when owning a recipe collection required a huge binder, innumerable stacks of index cards or at least a modest library of cookbooks? With your iPhone, you can wave goodbye to cumbersome recipe collection techniques and carry thousands of recipes in your pocket.

Today we’ve compiled a list of twenty of the best recipe apps for iPhone, including several from world-famous chefs like Jamie Oliver, Rachel Ray and Gordon Ramsay. Whether you’re a novice chef or a true artist in the kitchen, download one or two of these apps and you’ll be well on your way to culinary bliss.

Jamie’s Recipes

“This app is all about letting you guys choose the recipes you want, when you want them. You get a free taster pack of recipes to get you started with seven all-new packs available to purchase. For those of you who haven’t tried my 20-Minute Meals app, I’ve broken those down into bite-size packs too. Each recipe is really easy to follow with beautiful step-by-step photography so you really can’t go wrong. I’ve also included a clever Shopping List that makes life a breeze, sorts ingredients by aisle and lets you cross off items as you shop.”

Price: $4.99

screenshot

20 Minute Meals – Jamie Oliver

Nigella Quick Collection

“Nigella Quick Collection features 70 recipes that will help you create speedy, simple and of course delicious meals. Watch videos to pick up tips and enjoy full length recipe run-throughs of Nigella cooking dishes such as chocolate pear pudding or sesame peanut noodles. Nigella provides advice alongside clear, concise step-by-step instructions to keep you on track and cooking with confidence. ”

Price: $7.99

screenshot

Nigella Quick Collection

Gordon Ramsay Cook With Me

“Gordon Ramsay’s Cook With Me has 56 mouth-watering recipes that you’ll come to swear by! Watch Gordon run through the recipe and then follow the step-by-step guides featuring photos at every stage to help you master the meals. Think you’ve got what it takes to take on Gordon? Compare your dish with Gordon’s at the end of the recipe and send it to your friends for their opinion. Get some extra advice in the cooking tips section by watching the helpful how-to videos.”

Price: $7.99

screenshot

Gordon Ramsay Cook With Me

Martha’s Everyday Food: Fresh & Easy Recipes

“Get thousands of Everyday Food magazine’s quick, easy, family-friendly recipes, as well as powerful shopping tools, right on your iPhone. Discover a quick, easy dinner recipe, delivered daily, along with expert tips from Martha’s team. Our editors choose recipes that are simple to prepare, seasonal, and family friendly.”

Price: $3.99

screenshot

Martha’s Everyday Food: Fresh & Easy Recipes

Mario Batali Cooks!

“I’m so excited to present my first ever app – the most advanced, robust, comprehensive cooking app ever built! I personally created 100% of the content in this app – 63 of my most requested recipes from the many regions of Italy each with it’s own video and still images made exclusively for this app. Then I added 25 technique and kitchen basics videos along with my own, personal introduction. This app allows me to get as close as I’ve ever been to personally cooking with you in your kitchen. So grab some extra-virgin olive oil, and let’s cook some great food!”

Price: $9.99

screenshot

Mario Batali Cooks!

Rachael Ray’s Tasty Bytes

“Tasty Bytes brings together Rachael Ray’s best recipes from her TV Show, books and magazine, plus some exclusively created by Rach for this app. Planning a party or a special dinner? Mark the recipes you want added to your Shopping List. Your Shopping List will combine the recipes and give you one list to take to the market. You can mark off items on the phone as you add them to your cart and make notes on any additional goodies you want to pick up while you’re out shopping. It will make entertaining a breeze!”

Price: $1.99

screenshot

Rachael Ray’s Tasty Bytes

RecipePal

“RecipePal puts George Duran’s cool, new cookbook Take This Dish and Twist It at your fingertips—serving up an instant digital shopping list for his simple, delicious and unique comfort food concoctions. From Pepperoni Pizza soup to PB&J Bread Pudding—Chocolate Chip Cookie Cake to Pina Colada Crisp!—let RecipePal be your gastronomic guru and your epicurean inspiration—no matter how comfortable you are in the kitchen! ”

Price: Free

screenshot

RecipePal

Rachel Allen

“Cooking at home is a great way to bring family and friends together. I’ve hand-picked 66 of my favourite home recipes for the app, which I think you’re going to love! Every recipe has simple steps to follow – you can even have me read them out to you – and there are exclusive video tips to give you that helping hand in the kitchen before you start to cook. The interactive shopping list helps you to find what you need, with the ability to view your list by recipe or by aisle.”

Price: $4.99

screenshot

Rachel Allen

Gino D’Acampo – Eating Italian

“Eating Italian food is simply one of the greatest pleasures in life and I have created a fantastic new app where I show you how to make amazing food for any occasion. The app contains 30 completely new recipes that you will love, from classic dishes to meals that can be made in minutes. I guarantee they will bring out the Italian in you! There is also a glossaries section to help you know your rigatoni from your macaroni and choose the perfect pasta shape for your dishes.”

Price: $4.99

screenshot

Gino D’Acampo – Eating Italian

Epicurious Recipes & Shopping List

“Recipes from the award-winning food site Epicurious.com are now available on your iPhone and your iPad. Search more than 30,000 delicious, professionally created recipes from Bon Appetit, Gourmet, Self, and renowned chefs and cookbooks. Save your favorite recipes, and sync your Favorites list in the app with your online Recipe Box at Epicurious.com. You can also create shopping lists, and e-mail recipes and shopping lists to yourself and friends. Plus, get access to authoritative recipe reviews from Epicurious members. ”

Price: Free

screenshot

Epicurious Recipes & Shopping List

Allrecipes.com Dinner Spinner

“Allrecipes.com Dinner Spinner is a fun and useful recipe app from the world’s #1 food site, delivering over 40,000 of our members’ favorite quick and easy recipes to your iPhone/iPod Touch. Thousands of top-rated recipes – each featuring photos and reviews from our community of millions of home cooks – right in the palm of your hand! Plus, time-saving recipe tips from Allrecipes.com Members and their ideas for recipe variations that help to eliminate any guesswork!”

Price: Free

screenshot

Allrecipes.com Dinner Spinner

170,000+ Recipes – BigOven

“With over four million downloads, BigOven is one of the top iPhone food apps. View recipes easily anywhere, such as on vacation or at the store – no awkward cookbooks or recipe cards. Get ideas to use up leftovers: just enter ingredients from your fridge or pantry to find out what you can make.”

Price: Free

screenshot

170,000+ Recipes – BigOven

Weber’s On the Grill

“If you love to grill or barbecue, you are going to love this app! Weber’s On the Grill features 265 classic Weber recipes plus 40 recipes for rubs, marinades, and sauces that are sure to get you fired up to get out and grill. You can tag your favorites, and even create and share a master grocery list for your grilling recipes that you can take with you to the store. There’s a timer within the app, too, so you know exactly when to take your food off the grill. ”

Price: $4.99

screenshot

Weber’s On the Grill

Good Food Healthy Recipes

“Healthy eating isn’t just for January. That’s why our healthy recipes app has over 175 ideas to help you stick to your resolve, and see you through the year. There’s something for every course – including the most important meal of the day – breakfast. We’ve also added over 35 recipes that contain less than 200 calories per portion, as well as healthy twists on classic dishes like Chicken korma and Chocolate brownies. ”

Price: $2.99

screenshot

Good Food Healthy Recipes

Whole Foods Market Recipes

“Looking for healthy and delicious food? Search Whole Foods Market Recipes for recipes featuring the finest natural and organic foods. You can search recipes by ingredients and dietary preferences such as gluten-free, low fat, and vegetarian/vegan. Every Whole Foods Market recipe includes nutritional information and cooking instructions. You can also enter up to 3 items you have on hand to find recipes using those ingredients.”

Price: Free

screenshot

Whole Foods Market Recipes

The Betty Crocker Mobile Cookbook

“Wondering what’s for dinner? Or how to make your favorite cake? Turn to the expert who’s been answering those questions for decades. Betty Crocker is here to help you with this mobile version of the world-famous Betty Crocker Cookbook.”

Price: Free

screenshot

The Betty Crocker Mobile Cookbook

The Photo Cookbook – Baking

“Baking with this app is easy as pie! The Photo Cookbook – Baking clarifies the preparation of 60 recipes for cakes and pies, sweet and savoury pastries, cookies and breads. Beautiful photography, which is displayed in high resolution especially on your iPad, illustrates every step.”

Price: $4.99

screenshot

The Photo Cookbook – Baking

RecipeGrazer

“RecipeGrazer from Key Ingredient is a feast for the eyes. Skim fresh, beautiful recipes and photos from all over the world! Powered by Key Ingredient – the free social recipe website with over 400,000 recipes posted and rated by our members – one of the largest and fastest growing recipe collections in the world. The free RecipeGraze app streams thousands of beautifully photographed recipes to your iPhone or iPad in a paged format – perfect for those times when you are seeking inspiration, surprise or just flipping pages for something new.”

Price: Free

screenshot

RecipeGrazer

Real Simple Recipes: No Time to Cook?

“Looking for quick and easy dinner ideas? Introducing Real Simple’s No Time to Cook? for iPad and iPhone, with nearly 850 easy recipes for dinner that you can make—start to finish—in 40 minutes or less. You’ll find recipes for everything from chicken to chili to pasta to pork chops. Looking for low-calorie, make-ahead, or no-cook recipes? The app has these too.”

Price: $4.99

screenshot

Real Simple Recipes: No Time to Cook?

Classic Camping Cookbook & Meal Planner

“Coleman is pleased to announce the launch of the Cookout Cookbook & Meal Planner iPhone application to help families prepare meals during the busy summer camping and cook out season. Based on top-rated recipes by Coleman, the Cookout Cookbook & Meal Planner application allows users to find the perfect meal based on food type, category, and ingredients. Rank your favorite recipe for kids, best dessert or ideal recipe for the boat.”

Price: Free

screenshot

Classic Camping Cookbook & Meal Planner

Do Eat Raw

“Find more than 300 delicious raw vegan recipes! Discover new dishes with the chance to add your own photo to the recipes, easy-to-use shopping lists, and user ratings. Do you want to eat more raw foods, but are unsure what to make? Are you looking for new raw recipe ideas? Would be easier for you looking for your favourite raw recipe while you are at the supermarket? Here you can find your answers, healthy and easy delicious raw recipes that include everything from dressings to desserts and beverages to incorporate into your daily life.”

Price: $0.99

screenshot

Do Eat Raw

What Is Your Favorite Recipe App?

The apps above should provide enough recipes for several lifetime’s worth of meals. Some of my favorites from this list are Jamie’s Recipes and Nigella’s Quick Collection. Both are stellar apps with loads of quality content and detailed instructions.

Leave a comment below and let us know which of the apps above is your favorite. Also be sure to point out any great iPhone recipe apps that we missed!

Vimeo: Browse, Shoot & Edit in the Palm of Your Hand

Recording and publishing video has become incredibly easy in the last couple of years. Services like YouTube and Vimeo provide great places to share our professional and amateur videos alike. High definition video capture is built into many smartphones (iPhone 4 included) so we have a high quality camera with us all the time ready to capture whenever the moment calls.

Vimeo is a fantastic platform for sharing video and they have recently released an accompanying iPhone application. The app aims to be a full companion to the website while offering some services which utilize the hardware of the iPhone itself. It seems like a perfect place for Vimeo to be, but does their app do everything we hope it does? Let’s find out.

Design and Interface

Vimeo is known for it’s beautifully designed website. Their style is one of class, simplicity and functionality and it is quite apparent in their iPhone application as well. You definitely feel like you are working with Vimeo while using the application.

The application is capable of quite a lot with almost no functionality lost from their website. It would be easy to end up with a cluttered, difficult-to-use app while trying to offer this amount of functionality in such a small package, but Vimeo has done a great job avoiding this.

Vimeo design and interface

Vimeo design and interface

The interface combines the classic Vimeo style with the expected iPhone application functionality. The core areas of the app can be found in a navigation bar at the bottom of the display. Context-specific navigation appears where it makes sense at the top of the display. In short, the application is intuitive and is very simple to use.

Functionality

As I mentioned, Vimeo was able to pack in nearly all of the functionality you’d find on their website into this application. The camera and touch interface of the iPhone has provided some new functionality as well. You’re able to see your own Vimeo videos along with browsing and watching those of others. You can also “like” videos or mark to watch later along with commenting on them. The new features allow you to record video and edit video right within the application.

Browse & Watch

A big part of the Vimeo service is browsing and exploring their huge video library. I’ll admit, I’m not much of a film maker so I primarily use Vimeo to find and watch interesting films. Browsing on the website is a great experience, and though not exactly the same, the experience on the iPhone application is still excellent.

Under the section My Stuff you’ll find your Inbox as you would on the website along with subscriptions to your Watch Later and My Likes channels. The videos are displayed in a list with each entry showing a thumbnail of the film, the title and creator along with the channel in which it lives and how long ago it was uploaded. All lists of videos are shown like this throughout the application and are easy to quickly flip through.

My Stuff - showing the Inbox and Watch Later lists

My Stuff – showing the Inbox and Watch Later lists

The Browse section will show you a list of eleven (at the time of this review) categories to browse through. I’m not positive where these categories come from, but it appears that they may be chosen and curated by the Vimeo staff and may change over time. Whatever the case, it is a simple way to discover new films within the application and it would carry much of the same function as Discover on the Vimeo website.

I was expecting the film discovery functionality to be really cumbersome in such a small form factor. While you don’t have access to the entire film library and you won’t be able to do any serious searching, it is a really nice way to discover some really fantastic films. For casual browsing, which is what you’ll most likely be doing on your phone, it works very well.

Browse to a video and view its details

Browse to a video and view its details

Viewing videos is obviously an important part of the Vimeo application and the experience is great. After choosing a video to watch you’ll see a large screenshot of the video with options to add to your watch later list or your like list and of course the option to play it. You’ll also see the details of the video and can also post a comment if you would like.

Watching a video in portrait mode with controls showing

Watching a video in portrait mode with controls showing

When you play a video you’ll be taken to full screen mode. The video will adjust depending on the orientation of the phone. Video controls will disappear after a few sections and will reappear when you touch. Watching videos in full screen landscape view on the retina display of an iPhone 4 is just fantastic.

Watching a video in landscape mode

Watching a video in landscape mode

Shoot & Edit

The Vimeo application adds some new features and functionality to the product by taking advantage of the iPhone hardware. You are able to shoot video from within the application itself. Under the Recordings menu, you’ll see an option to record a new video. Selecting the camera icon will take you to the video camera, which is similar to the camera app. Record your video and it it will be saved within the application.

It’s possible to then quickly upload your video to your Vimeo account. You may, however, want to take advantage of the video editing functionality to make some quick adjustments before you upload. All of your videos and video projects will be shown in thumbnail view. Selecting one will take you the details page and from here you’re able to hop into the video editor.

View all your recordings and projects (press and hold to delete)

View all your recordings and projects (press and hold to delete)

The video editor is basic and pretty simple to use. You can make some quick cuts, add titles and transitions and things of that nature. The touch interface is really great for working with video. While you won’t be making any major edits, it will allow you to do some basic video production and upload straight to Vimeo. It seems like a perfect fit for working on some vacation video while you’re still on the road.

Video editor

Video editor

Once you have your video ready, it’s simple to upload it to Vimeo. You’ll be able to see a listing of all of your videos under the My Videos section. It looks just like other listings. It is also possible to download your videos to the device so you can use the application editor if you’d like. It is also possible to upload videos from your cameral roll from here as well.

My Videos showing video details and options on what you can do with it

My Videos showing video details and options on what you can do with it

Conclusion

Vimeo is a wonderful video sharing service and this iPhone application is a fantastic complement to it. The mere act of sharing and browsing would have been enough to make this a useful application, but the addition of creating and editing video on top of that really makes this a must have app for Vimeo users. I did have some random crashes while using the app, but it wasn’t enough to be of any real issue and I’m guessing something that will be addressed in an upcoming update.

The application is free so if you are a regular Vimeo user this app is a no-brainer. Even if you are not, I would recommend checking it out if you have any interest in video. Creating, editing and producing video all from your pocket is something that will appeal to a lot of people and Vimeo has done an excellent job of creating this package.

Only 10 Days Left For Our “PFhoe-ly Cow!” Matchmoving Contest!

Here we are almost into May and that means our “PFhoe-ly Cow!” Matchmoving Contest is soon coming to an end. I can tell you that there haven’t been a crazy amount of submissions thus far, so on a personal note… this would be a good one to try your hand at. :) In fact… at this point, I’ve had so few entries, that they’re all winners… all you’d have to do is beat one of them and you could win your own copy of PFtrack. Best of Luck!

banner


Read More

Windows “Copy & Paste” Dialogue Box Recreation – Day 1

This entry is part 1 of 1 in the series Window’s Dialogue Box

In this tutorial we are going to learn how to recreate a Windows 7 copying dialogue box completely inside After Effects using only build in tools. There are a lot of nifty little tricks we can do in AE without using 3rd party plug-ins to get a pretty impressive “Copy & Paste” of the real thing.


Tutorial

Download Tutorial .flv

File size: 146.2 MB


Read More

Free Vector Downloads: 50+ Illustrator Patterns for Vintage Design


Alrighty then, we’ve rounded up a whole slew of Adobe Illustrator patterns for you to download today. They are all free vector downloads with a retro style. The designs vary, from simple circles, to ornate patterns. Some are quite unique, adorned with vain peacocks or colorful butterflies. Many have a vintage wallpaper design feel to them. There are numerous patterns for Illustrator that are composed of floral and organic elements. Also, a bunch of them have flowing symmetry. Jump in and download these free seamless vector patterns now, and use them on your next retro design project to add a timeless feel.

Continue reading “Free Vector Downloads: 50+ Illustrator Patterns for Vintage Design”

Workshop #171: Her Eyes by Hiko Chase

This track has been submitted for your friendly, constructive criticism. What useful feedback can you give the artist? The floor is yours to talk about the track and how they can fix problems in and improve upon the mix and the song.

Download audio file (196HEREYES.mp3)

Description of the track:

A gabber inspired ghastly tale of redemption, and betrayal.

Artist’s website: trueheromusic.com

Terms of Use: This track is available for download.

Have a listen to the track and offer your constructive criticism for this Workshop in the comments section.

Need constructive criticism on your own tracks? Submit them for a workshop using this form.


Read More