Favorite iPhone Apps/Hacks

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Joined
Jul 24, 2006
Messages
14,260
Reaction score
786
Location
Southwest
After a bit of a struggle with Verizon, I finally pulled the trigger on iPhones for SWMBO and I. I wish I'd done this as soon as the price on the 3g fell to $199! Both of us REALLY like them.

So, here's a thread for posting your favorite apps. My list so far (all free):

App Store:
  • HBCalc - a homebrew calculator (developed by an HBT member!)
  • midomi - sing or play a song into the mic, and it will tell you the title and artist (and provide a "buy from iTunes" option)
  • To Do's - a to-do list that pretty much takes the place of "Notes"
  • Units - a very complete unit conversion tool

Cydia:
(jailbroken phones only)
Note: we all know that jailbreaking an iPhone is a potentially risky/potentially warranty voiding operation. Let's avoid the debate here. If you don't want to jailbreak your phone, simply don't do it. There is no need to preach to those of us who have done it or wish to do so.

  • Airspeed Battery - replace the green charging battery with an airspeed indicator that shows charge level
  • Apple Wifi - show a colored apple in place of the wifi bars
  • Five Icon Dock - use five icons instead of four in the dock
  • Flashlight - supposedly better than the App Store version
  • MakeItMine - replace the AT&T banner with custom text
  • NES - play Nintendo ROMs on the iPhone (probable copyright issues with this one...dunno how long this will stay on my phone)
  • OpenSSH - SSH server (if you don't know what SSH is, don't bother)
  • PwnPlayer - play media directly from the file system instead of messing with iTunes
  • ReflectiveDock - makes the dock look cool (add source david.ashman.com/apt/)
  • SBSettings - powerful tool for toggling common options and customizing the springboard
  • Veency - VNC server (for remote desktop viewing)
  • WinterBoard - powerful theme customization tool

Other:

  • iRinger - a Windows app to make custom ringtones from nearly any media file for FREE


Here are a few screenshots of my current configuration:

iphoneshotsmv7.jpg
 
While it is not very useful I think it is somewhat entertaining and can be appreciated around these parts.

[ame=http://www.youtube.com/watch?v=A3MfQIswl3k]YouTube - iBeer Download Magic for iPhone & iPod touch[/ame]
 
flashlight.... by far the most useful app i've seen for the iphone... I've thought about getting one just for that app (I use my phone more for a watch and flashlight than anything else)
 
I just deleted NES - fun, but not really enough fun to keep, especially with the possible copyright issues.

I added Processes, an SBSettings add-on from Cydia that works like a task manager.

iBowl (free from the App Store) was fun, but you're nearly guaranteed to throw your phone across the room while playing.
 
I just got an iPod Touch, as I'm not interested in having an expensive long-term phone contract. Possibly the coolest gadget ever! I'm loving this thing.

Just grabbed HBCalc, looks very nice. So far, the apps I'm using most are AP Mobile News, Yelp, i.TV and Fring. The VNC and Remote Desktop clients are fun...I'm not sure how useful they are, but it's pretty cool to have your computer's desktop appear on your iPod!
 
clinometer: digital level/inclinometer $.99

Pandora. Digital music. you pick something you like and it makes a playlist and plays through the speaker

mini piano.
Fake a call Barack calls me all the time, and I have to take it. Good for getting out of meetings.

fs5 hockey. Air hockey. can be played over a wireless network.

B
 
fake-a-call is good.

urbanspoon is kinda cool.

BJCPstyles is handy for a quick look at the style guidelines.

Sportsacular is handy and well designed.

mancala FS5 is fun if you enjoy the game
 
I use trailguru a lot on the bike.
Airme, auto geotags photos and sends them to flickr or picasa web.
topple is fun timewaster.
aroundme or iwant are both nice if you travel.
 
Evernote for taking text, audio, or picture notes
iTalk for recording audio clips
EveryTrail for recording and posting trail routes
 
Lars, how are you using i.TV? A friend recommended it, but when I installed it, I didn't get much out of it.

Just as an electronic TV guide, which includes detailed info on the shows and previews for some. It will even let you schedule recording on your Tivo.

I also like the movie & theater guide, where you can see what's playing, watch trailers, and buy tickets. Bought tickets for "Slumdog Millionaire" tonight, very cool. (Great flick, BTW!)
 
The voice activated Google app is pretty cool.

When I went to Paris last month I loaded 3 French phrase books, the Fromme's city guide, and a museum guide. I also picked up Paris Envi, a metro guide that kicks ass.

I have a Spanish/English dictionary and a couple Spanish phrase books for all my travel in Mexico.

A couple cool utilities are Equivalence and Army Knife.

iXpenseit allows you to track expenses and take a pic of the receipts.

I'm using OmniFocus for a task manager. It works well but won't sync with Windows.

Everything is from the App Store.
 
Here are some of the ones I use most often:

PROGRAMS:
-----------------
Google Mobile
Pandora
VNC
Shazam
Urbanspoon
Weather Bug
HBCalc
Sportacular

GAMES:
-----------------
Sudoku Daily
Live Poker
Astrotilt
iShoot
 
When I went to Paris last month I loaded 3 French phrase books, the Fromme's city guide, and a museum guide. I also picked up Paris Envi, a metro guide that kicks ass.

Hey, I was in Paris last month too! But, I only installed 2 french phrase books.

I also have Spanish, Japanese, and Mandarin phrase books.

Other helpful apps:
Facebook
Google
BeerPad (tasting notes)
HBCalc
BJCPStyles
Urbansppon
Converters (currency converter)
Simple DoF (Depth of Field calculator for photography)
 
Starting to dabble a little in development, but the documentation is so sparse (unless you're an official Apple developer, which requires money and a Mac), it's rough going. Google's Android project is promising:

androidtestbm0.jpg




Continuing with favorite apps:

App Store:
  • vLingo - kicks the crap out of the Google search tool
 
Pandora
Sportacular
BJCP Styles
BofA
WootWatch
iBeer
iFart
Trace
JellyCar
BeerPong
Flashlight
PBJTime
 
vLingo is definitely still in the App Store. A friend just downloaded it last night.

Here's the website: vlingo

Perhaps it's only available via iTunes, as when you search for it in the App Store on the device, it says "No Matches."

EDIT: Ahh... I just read that you cannot install it on an iPod Touch, it's just for iPhones. Too bad, guess I'm stuck with the Google voice app.
 
New favorites from Cydia:
  • Erica Utilities - iPhone specific command line utilities
  • lighttpd - a tiny web server

With lighttpd, you can access local files on the iPhone via Safari (browse to http://localhost). You can also access the iPhone via web browsers on other local network computers. Some symlinks in the /var/www directory make this VERY useful (i.e., ln -s /var/mobile/Media/DCIM/100APPLE /var/www/Pictures).

Below is a bash script I wrote to manipulate iPhone contacts via the command line. Using SSH, you can type addressbook info on a real keyboard rather than the iPhone's virtual one. Use at your own risk. Make a backup of your addressbook first. Critique my crappy scripting skills at will.

Code:
# This is just the comment block for the script in the next post...
# ...it took the post beyond the 10K character limit.

# ******************************************************
# A shell script to manipulate iPhone Contacts
#   by Yuri, Feb 09
#
# This script may permanently corrupt or damage your
#   address book.  Use at your own risk!
# 
# Strongly recommend making a backup of AddressBook.sqlitedb
#   Use this command:
#     cp /var/mobile/Library/AddressBook/AddressBook.sqlitedb \
#     /var/mobile/Library/AddressBook/AddressBook.sqlitedb.backup
#
# Requirements:
#   - Jailbroken iPhone
#   - SQLite v3 from Cydia
#   - Erica Utilities from Cydia
# ******************************************************
 
Here's the script:

Code:
#!/bin/bash

# *** variables ***

# filename
system=`uname`
if [ "$system" = "Darwin" ]; then
  db_file="/var/mobile/Library/AddressBook/AddressBook.sqlitedb"
else
  db_file="AddressBook.sqlitedb" # for debugging
fi

# property values
phone=3
email=4
address=5

# label values
mobile=1
home=2
work=4

# key values
street=1
state=2
zipcode=3
city=4
countrycode=5

# *** functions ***

# helpMsg() returns a help message
function helpMsg() {
  echo "
iPhone Contacts Script
  by Yuri

List of recognized commands:
  .backup  - make a backup copy of the Address Book
  .help    - display this message
  .info    - display contact information
  .new     - create a new contact
  .refresh - respring the iPhone springboard
  .search  - search contacts by name
  .quit    - exit the script"
}

# formatPhoneNumber() formats a phone number with parentheses and dashes
formatPhoneNumber() {
  if [ ${#1} = 10 ]; then
    val="(${1:0:3}) ${1:3:3}-${1:6:4}"
  elif [ ${#1} = 7 ]; then
    val="${1:0:3}-${1:3:4}"
  else
    val=$1
  fi
  echo "$val"
}

# getSortCode() converts the first argument to a suitable "sort" value for iPhone Contacts
# "Key" is: (ASCII code - 64) x 2 + 39
function getSortCode() {
  oldstring=`echo $1 | tr "[:lower:]" "[:upper:]"`
  for i in $(seq 0 $((${#oldstring} - 1))); do
    char=${oldstring:$i:1}
    char=`printf "%d\n" "'$char"`
    code=$((($char-64)*2+39))
    char=$(printf "\\$(printf "%03o" $code)")
    newstring="$newstring$char"
  done
  echo $newstring
}

# insertName() creates a new contact.  $1 is the first name, $2 is the last name
function insertName() {
  if [ "${#}" -lt 1 ]; then
    echo "Too few arguments."
  else
    if [ "${#}" = 1 ]; then
      first=`echo $1 | sed s/\'/\'\'/`
      last=""
      firstsort=`getSortCode $first | sed s/\'/\'\'/`
      lastsort=$firstsort
    else
      first=`echo $1 | sed s/\'/\'\'/`
      last=`echo $2 | sed s/\'/\'\'/`
      firstsort=`getSortCode $first | sed s/\'/\'\'/`
      lastsort=`getSortCode $last | sed s/\'/\'\'/`
    fi
    sqlite3 $db_file <<SQL_INSERT_1
      INSERT INTO ABPerson (First, Last, Note, Kind, FirstSort, LastSort, CreationDate, ModificationDate, StoreID, FirstSortSection, LastSortSection, FirstSortLanguageIndex, LastSortLanguageIndex)
      VALUES ('$first', '$last', 'Auto-created by bash script', 0, '$firstsort', '$lastsort', 254356088, 254356088, 0, '${firstsort:0:1}', '${lastsort:0:1}', 0, 0);
SQL_INSERT_1
  fi
}

# listAll() displays all contacts and returns a string
function listAll() {
  sqlite3 $db_file 'SELECT ROWID, First, Last FROM ABPerson ORDER BY LastSort, FirstSort;' | sed 's/|/: /' | sed 's/|/ /'
}

# listOne() displays all info for a given contact
function listOne() {
  name=`sqlite3 $db_file <<SQL_SELECT_1
    SELECT First, Last
    FROM ABPerson
    WHERE ROWID=$1;
SQL_SELECT_1`
  if [ -n "$name" ]; then
    echo "Contact:  $name" | sed 's/|/ /'
    echo "Mobile:   "`sqlite3 $db_file <<SQL_SELECT_2
      SELECT value
      FROM ABMultiValue
      WHERE record_id=$1 AND property=$phone AND label=$mobile;
SQL_SELECT_2`
    echo "Home:     "`sqlite3 $db_file <<SQL_SELECT_3
      SELECT value
      FROM ABMultiValue
      WHERE record_id=$1 AND property=$phone AND label=$home;
SQL_SELECT_3`
    echo "Work:     "`sqlite3 $db_file <<SQL_SELECT_4
      SELECT value
      FROM ABMultiValue
      WHERE record_id=$1 AND property=$phone AND label=$work;
SQL_SELECT_4`
    echo "E-mail:   "`sqlite3 $db_file <<SQL_SELECT_5
      SELECT value
      FROM ABMultiValue
      WHERE record_id=$1 AND property=$email;
SQL_SELECT_5`
    parent_id=`sqlite3 $db_file <<SQL_SELECT_6
      SELECT UID
      FROM ABMultiValue
      WHERE record_id=$1 AND property=$address;
SQL_SELECT_6`
    if [ -n "$parent_id" ]; then
      echo "Address:  "`sqlite3 $db_file << SQL_SELECT_7
        SELECT value
        FROM ABMultiValueEntry
        WHERE parent_id=$parent_id AND key=$street;
SQL_SELECT_7`
      echo "          "`sqlite3 $db_file << SQL_SELECT_7
        SELECT value
        FROM ABMultiValueEntry
        WHERE parent_id=$parent_id AND key=$city;
SQL_SELECT_7`", "`sqlite3 $db_file << SQL_SELECT_8
        SELECT value
        FROM ABMultiValueEntry
        WHERE parent_id=$parent_id AND key=$state;
SQL_SELECT_8`" "`sqlite3 $db_file << SQL_SELECT_9
        SELECT value
        FROM ABMultiValueEntry
        WHERE parent_id=$parent_id AND key=$zipcode;
SQL_SELECT_9`
    else
      echo "Address:  "
    fi
    echo "Note:     "`sqlite3 $db_file <<SQL_SELECT_12
      SELECT Note
      FROM ABPerson
      WHERE ROWID=$1;
SQL_SELECT_12`
  fi
}

# updateMultiValue() creates/updates phone numbers/addresses
updateMultiValue() {
  if [ $# -lt 4 ]; then
    echo "Too few arguments."
  else
    query=`sqlite3 $db_file <<SQL_SELECT_1
    SELECT value
    FROM ABMultiValue
    WHERE record_id=$1 AND property=$2 AND label=$3;
SQL_SELECT_1`
    if [ -z "$query" ]; then
      sqlite3 $db_file <<SQL_INSERT_1
      INSERT INTO ABMultiValue (record_id, property, label, value)
      VALUES ($1, $2, $3, '$4');
SQL_INSERT_1
    else
      sqlite3 $db_file <<SQL_UPDATE_1
        UPDATE ABMultiValue
        SET value='$4'
        WHERE record_id=$1 AND property=$2 AND label=$3;
SQL_UPDATE_1
    fi
  fi
}

# searchByName() searches the database
searchByName() {
  if [ "${#}" -lt 1 ]; then
    echo "Too few arguments."
  else
    if [ "${#}" = 1 ]; then
      result=`sqlite3 $db_file <<SQL_SELECT_1
        SELECT ROWID, First, Last
        FROM ABPerson
        WHERE First LIKE '$1' OR Last LIKE '$1';
SQL_SELECT_1`
    else
      result=`sqlite3 $db_file <<SQL_SELECT_2
        SELECT ROWID, First, Last
        FROM ABPerson
        WHERE First LIKE '$1' AND Last LIKE '$2';
SQL_SELECT_2`
    fi
  echo "$result" | sed 's/|/: /' | sed 's/|/ /'
  fi
}

# updateNote() adds a note to a contact
updateNote() {
  if [ $# -lt 2 ]; then
    echo "Too few arguments."
  else
    sqlite3 $db_file <<SQL_UPDATE_1
      UPDATE ABPerson
      SET Note='$2'
      WHERE ROWID=$1;
SQL_UPDATE_1
  fi
}

# *** execution starts here ***

# a little warning
if [ "$1" != "--skip-warning" ]; then
  echo "******************************************************
A shell script to manipulate iPhone Contacts
  by Yuri, Feb 09

This script may permanently corrupt or damage your
  address book.  Use at your own risk!
******************************************************"
  echo -n "Type \"ok\" to continue > "
  read answer
  if [ "$answer" != "ok" ]; then
    exit
  fi
fi

# loop until user chooses to quit
cmd=-1
while true; do
  case "$cmd" in
    [0-9]*) # contact id
      info=`listOne $cmd`
      if [ -z "$info" ]; then
        echo "Cannot find contact #$cmd."
      else
        echo
        echo "$info"
        echo
        echo "Enter new contact info.  Press <Enter> to skip an entry."
        echo "Include no spaces, dashes, or parentheses in phone numbers."
        echo
        echo -n "New mobile number  > "
        read val
        if [ -n "$val" ]; then
          val=`formatPhoneNumber "$val"`
          updateMultiValue $cmd $phone $mobile "$val"
          echo "Mobile number updated to:  $val"
        fi
        echo -n "New home number    > "
        read val
        if [ -n "$val" ]; then
          val=`formatPhoneNumber "$val"`
          updateMultiValue $cmd $phone $home "$val"
          echo "Home number updated to:    $val"
        fi
        echo -n "New work number    > "
        read val
        if [ -n "$val" ]; then
          val=`formatPhoneNumber "$val"`
          updateMultiValue $cmd $phone $work "$val"
          echo "Work number updated to:    $val"
        fi
        echo -n "New e-mail address > "
        read val
        if [ -n "$val" ]; then
          updateMultiValue $cmd $email $mobile "$val"
          echo "E-mail address updated to: $val"
        fi
        echo -n "Add a note         > "
        read val
        if [ -n "$val" ]; then
          updateNote $cmd "`echo "$val" | sed s/\'/\'\'/`"
          echo "Note added:                $val"
        fi
        echo
        info=`listOne $cmd`
        echo "$info"
        echo
      fi
    ;;
    .backup)
      backup="$db_file.backup"
      i=0
      while [ -e "$backup" ]; do
        backup="$db_file.backup$i"
        i=$(($i + 1))
      done
      cp "$db_file" "$backup"
    ;;
    .help) # .help
      echo "`helpMsg`"
      echo
    ;;
    .info) # display contact info
      echo -n "Contact number > "
      read cmd
      info=`listOne $cmd`
      if [ -z "$info" ]; then
        echo "Cannot find contact #$cmd."
      else
        echo
        echo "$info"
      fi
      echo
    ;;
    .new) # .new
      echo -n "New name > "
      read name
      insertName $name
      echo
      searchByName $name
      echo
    ;;
    .refresh) # .refresh
      if [ "$system" = "Darwin" ]; then
        restart
      else
        echo "Unable to respring this device."
      fi
    ;;
    .search) # .search
      echo -n "Name to search > "
      read name
      searchByName $name
    ;;
    .quit) # .quit
      if [ "$system" = "Darwin" ]; then
        restart
      fi
      exit
    ;;
    *) # anything else
      listAll
      echo
      echo "Enter the number of a contact to edit."
      echo "Enter .help for a list of commands."
    ;;
  esac
  echo -n "Contacts > "
  read cmd
done
 
My favorite app is AppSniper. It allows you to search for apps that are temporarily on sale like free for the day, new apps added that day and hot apps. I have found tons of paid apps that are free for the day. I have many of the brewing apps but actually don't use them much. I do use Brew Math quite a bit for the refractometer calculator. It is the best brewing app for me on the iPhone. I use Tuner to stream the Brewing Network on the iPhone. The Google voice search is cool. I use Shazam all of the time to find the name of a song I hear on the radio and want to know who it is. Drinks Free is a decent cocktail recipe app. The Weather Channel and Weatherbug apps are great. Flixter is great for finding whats playing at the movie house. iTv is great as well. It is just a TV guide. I use it more at work to see whats on the cable system there as it is different than home. Beats waiting for the TV guide channel to scroll through the basic channels. CraigsMobile and BdCraigzlist are what I use to search Craig's List when away from the computer. eBay has a nice app to keep up with eBay auctions. iDicto is a nice voice recorder. I just wish I could delete the stock programs that came with the phone like Stocks, and the Weather program that came installed.
 
Smurfe, you can't delete the built-in apps unless you jailbreak. If you jailbreak, you can hide the icons or even delete the apps.

If you don't want to jailbreak, just move the icons to an unused pane (hold your finger on an app until it "wiggles," then drag the nuisance apps as far right as possible).
 
Smurfe, you can't delete the built-in apps unless you jailbreak. If you jailbreak, you can hide the icons or even delete the apps.

If you don't want to jailbreak, just move the icons to an unused pane (hold your finger on an app until it "wiggles," then drag the nuisance apps as far right as possible).

Yeah, thats what I do now. I have thought about breakin the phone when I got it but just never got around to it. I never really read up on the process. I would love to be able to delete the stuff off there though. I was just going to wait until after the warranty was out. You have re-kindled my interest though. I have hacked almost every other smart phone I have had though. I used to install a new beta OS on the Blackberry every other day.
 
QuickPWN seems to have the safest, easiest method.

If you don't like it or it fails (5+ installs for me, all successful on the first attempt), you can just restore to the unbroken Apple firmware via iTunes.
 
Giving it a try now. Sounds like just what I need. I can't unlock my phone as I had already installed the upgrade firm ware but that isn't really important to me I guess. Thanks for the link. It was uber easy to do. Took less than 5 minutes.
 
Well, installed it and appears to have installed correct. Can't figure out how to use it. Guess I will have to play with it a bit to figure out how to uninstall these unwanted stock issue programs. Is it done through iTunes or on the phone itself?
 
OK, I figured it out. Had to do a little Google searching to figure out how to use the hack. Had to download a program onto the PC called iPhone Browser. That allowed me to remove the unwanted Apple installed apps. Thanks for the info. Was easy breezy.
 
Cydia is where you want to explore next. It's like the App Store, except everything is free, and most of the apps provide functionality well above and beyond anything offered through Apple. See my list above.
 
Most of my faves have been mentioned here, but I'll continue the list.

Intelliscreen ( I can't live without this on a daily basis--I love it)
PDANet (Free tethering over 3G network-Truly awesome app)

Other fun ones:
Twitterfon ( A Twitter interface)
Diamond Hunter (SWEET game)
Lux Touch (Risk!)
Phase 10 (The classic game)
Koi Pond (If my 1 year old nephew is grumpy this works every time, plus, it is just an amazing use of the iphone graphics capability)
Ocarina (Think Zelda music)
Nightstand (Awesome digital clock)
Snapture & Cycorder (Why didn't the iphone have this capability from the get go?)

I need to work for Apple/AT&T--I've converted so many people over to the iPhone it isn't even funny.

Great thread Yuri.
 
Anyone play Underworld: Sweet Deal?

It has been taking up a lot of my spare time lately. Good fun.

There is a Cydia app that is supposed to turn it back into drug-wars terms instead of waffles and ice cream, but I think that might be more difficult to talk about in the office I have been working in lately.
 
Back
Top