The Future of FaceTime


Ever since I saw a Dick Tracy comic for the first time as a kid I’ve been enamored by the idea of face to face conversations that defy the barrier of distance. Dick’s watch was an amazing feat in communication that allowed him to see and converse with his trusty sidekick from anywhere (for you fans out there, it started as a radio watch but eventually was upgraded to a two-way TV watch).

Other reputable sources such as the Jetson’s spurred on my childhood notion that in the future phone conversations would not be confined to mere audio.

The Birth of Video Conferencing

Skype didn’t invent video conferencing, but it did bring it to the masses. Suddenly grandparents, young children and everyone in between started to show interest in this crazy video calling technology.

screenshot

I wasn’t joking, Grandmas love this stuff

Apple’s iChat video chats followed and between the two the future of communication seemed closely within our grasp. However, since this technology is stuck on our computers, it hasn’t quite reached the point where most people find themselves using it daily, weekly or even monthly.

Instead we have one of those interesting quandaries that marketers love to study where someone presents an impressively improved product and yet the majority of people still cling to the old way of doing things (sorry Ralph but you were wrong on that one). Video conferencing from home to home is free over your Internet connection, provides a much richer experience than a phone conversation and is by default a hands-free event.

Nevertheless, most people don’t have a computer in their living room, dining room or other places you typically answer the phone. Most people don’t want to stay “signed on” to Skype or iChat 24/7. Most people don’t even know when, if ever, it’s appropriate to ask someone to join them in a video chat.

So is that it? Do we admit defeat? Have we reached a communication plateau with cell phones, Facebook and email that won’t easily be changed in the next decade?

A New Hope

With the advent of FaceTime, Apple has renewed the vision of every day video-driven communications. They’ve taken a huge step in solving the key problem: ubiquity. Rather than tethering video conferencing to your desk or laptop, iOS puts it in your pocket so it’s always with you.

screenshot

FaceTime, now on the iPod Touch

The awesome combination of front and rear facing cameras makes FaceTime even more flexible than traditional video conferencing as it’s easy to show the other person either your smiling face or whatever you happen to be looking at.

FaceTime is currently on the iPhone and iPod Touch and, as we predicted recently, will surely be coming to both the iPad and your Mac within the next year. I think Mac integration is a really natural step and would be quite surprised if Apple doesn’t see the potential there.

Plays Well With Others

Apple claims that FaceTime will be an open industry standard. Hopefully what this means is that in a few years, most smart phone manufacturers will be able to jump on the FaceTime bandwagon and easily add cross-phone compatible video conferencing to their devices.

This is another huge step towards ubiquity. Currently only new iPhone and iPod Touch owners can make FaceTime calls, leaving several iOS fans without a buddy to chat with. With FaceTime on other handsets the number of users will increase exponentially so that almost everyone will know at least a few people that have FaceTime compatible devices.

Major Hurdles

Despite the exciting outlook for the future of face to face communication, there are plenty of roadblocks to this video calling future, the first of which is the final step towards ubiquity (I promise that’s the last time I’ll use that word).

Currently FaceTime only works over Wifi (or 3G via Jailbreak). This is understandable as AT&T simply isn’t ready for the kind of boost in data transfer that would result from thousands of video calls being made every minute. Until this barrier is overcome, it will be far easier to stick to good old voice calls simply because you can make them from anywhere while you can only make FaceTime calls at home or in a place generous enough to offer free Wifi.

Perhaps the biggest hurdle is simply cultural. For most people not engaging in daily business-related video chats, it’s a little bit of an awkward experience. It’s a strange and new medium and we’re unsure as to the proper etiquette. Do we look the other person in the eyes on our screen or stare into the camera? Should I video call for casual conversations or only important topics that merit face to face interaction? When is it acceptable to video chat in public? Will the other person be annoyed if I ask to video chat with them?

screenshot

This is bound to get awkward.

Because of unspoken and perhaps even sub-conscious questions like these, video chatting is likely to remain a novelty for many people for years to come. In fact, the recent trend in communication has been more towards basic and impersonal rather than richer and more intimate. Where we used to make calls for quick questions or statements to a friend, most of us now fire off a text message. People are busy and will likely always show a preference for quick and easy over awkward and formal.

What Do You Think?

What say you? Will FaceTime remain a nerd-only affair, loved by Apple nerds and ignored by the rest of the world? Will simpler forms of communication like text messaging triumph over formal face-to-face interactions? Will the iPod Nano ever get FaceTime so I can have a real Dick Tracy watch?

Let us know your thoughts on all this in the comments below!

Save Everything with SpringPad


Do you like movies? Books? Cooking? Eating? Remembering stuff? Do you hate it when you just can’t seem to remember that name or that thing you have to do. You wrote it down somewhere, but where?

If you’re not lucky enough to have a personal assistant that follows you around recording anything that mildly interests you, then you might want to check out Springpad.

Where to Begin?

First things first: get set up with Springpad’s online service by jaunting over to their website and registering for an account if you haven’t already. Sure, you can register directly from the app, but it would be well worth checking out their video that explains the Springpad concept and how it works, as well as browsing around the information they have on their site.

Springpad’s services extend far beyond the reach of this humble review, so I’ll be focusing more on the actually app and less on the rest. It’s also worth noting that the app is free, so you may as well just get it now and follow along with me!

What Was That Movie Called Again?

So you’re hanging out with the gang and someone mentions a movie that you just have to see. Sounds interesting, but by the time you’re back home and get around to browsing Amazon, you’ve forgotten what that movie was called. So, you settle for that other movie and are forever frustrated at your lack of listening skills.

What do I do? Why it’s simple! I just fire up Springpad on my iPhone and add the movie while it’s still fresh on my mind. Then, without leaving the app, I add it to my Amazon shopping list and I’m back in the conversation, ready to complete my purchase in the car on the way home (someone else is driving of course), or from my iPad while I’m on the couch, or maybe from my computer at work. Now that’s a personal assistant!

How Did You Do That!?

You may be thinking that such an efficient process must involve a superior mind and astute attention to details (which I do not deny possessing), but the fact is that the Springpad syncing system makes it convenient and quick for anyone! Let me show you how it’s done:

You start out by choosing either the “Login” or “Register” option as it applies to you. Then, if you haven’t added anything already via the Springpad website or another device (such as your iPad, iPod Touch, etc…), you will have the simple option of adding stuff to your collection(s).

screenshot

Getting Started

Once you’ve clicked the “+” button, you’ll be ushered to a screen with a straightforward list. Just pick what you want to “Add to My Stuff”- in my case, I selected “Add by Type” to add a movie.

screenshot

Adding items

After selecting “Movie” from the list, I put in the name of the one that I’m looking for and choose “Search for it”. I chose to search instead of just saving the movie because searching allows me to find actual instances of the film from an online service such as Amazon.

Next, I get to choose from a list of suggestions that match my search and I’m almost done!

screenshot

Searching for an item

I chose the first suggestion, which took me to a screen with a summary of the selected movie including a cover image, source (Netflix in this case), rating, etc… With a touch to the “Add This” button up top, I’ve successfully added my movie.

Now comes the real hidden power of this portable assistant. By scrolling down the screen, I am offered a really nice selection of options related to the movie called the “Quicklinks” menu. From here I can add the movie to a list (coming up), watch a trailer, or even buy the it from within the app!

screenshot

Movie info and Quicklinks

Make It A List

One of the nice features of Springpad is the ability to create lists to help organize your stuff. It’s easy to add something to a list or create a new one, by simply selecting the “Add to List” button from the “Quicklinks” menu. If you already have any lists, they will show up for your selection. If not, you just put in a name for your new list and hit save! That’s all there is to it.

screenshot

Adding to a list

The Hidden Menu

Now, just when you think you’ve seen it all, I’ll surprise you with one more feature- what I call the “Hidden Menu”.
You can access this menu by scrolling beyond the top of the movie summary page. (Drag your finger down until you reach the top of the page and then keep dragging.) You’ll see a row of white icons contrasting a dark gray patterned background. (See below)

From this menu, you can flag the current item for quick access at a later time, give it a rating (1-5 stars), check that you’ve already seen it, make it visible to the public (your Facebook friends, etc…), or delete it from your Springpad.

screenshot

The Hidden Menu

Final Thoughts

At first use, I was a little intimidated by Springpad, but once I played around with it, it became very apparent how useful it could be! I love adding movies, but you can do so much more such as: add books, tasks, packing lists, music, photos, restaurants, contacts, recipes, notes, etc…

Since there’s no way I could have the time to go into detail on all of those, I’ll leave you with some of my favorite features of the iPhone app: (Keep in mind that Springpad is available on the iPad and from the web among other things.)

  1. My “stuff” is cached and therefore available for offline browsing and use.
  2. The app has a barcode scanning feature that lets you add stuff quickly using the camera.
  3. It’s quick and easy to save a short note that I won’t easily lose and can access from anywhere.

So, that in mind, plus the incredible free pricetag, puts Springpad on the top of my productivity apps and it could do the same for you!

Adding Local Weather Conditions To Your App (Part 2/2: Accessing Google’s XML Weather API)


In this Part 2 of ‘Adding Local Weather Conditions To Your App’, I’ll show you how to quickly add current temp, conditions, and today’s high / low temperature to your app.

If you’re lucky enough to already have the user’s zipcode or city and state, this should go very quickly for you. Otherwise, check out Part 1 (Integrating CoreLocation).

Let’s get started.

There are a handful of solid XML Weather APIs out there. The best one I’ve seen so far is Wunderground’s (it’s extremely well documented) but for the purposes of this tutorial, I decided to use Google’s “super secret” Weather API. It’s incredibly simple and should take care of all your basic weather needs. Though if you’re planning on releasing a production App, be sure to pick a public API and check out their TOS (some require API keys, or fees for production use). Here’s a good list of Weather APIs

Let’s look at some example calls to Google:

http://www.google.com/ig/api?weather=01451

http://www.google.com/ig/api?weather=nyc

http://www.google.com/ig/api?weather=Portland,OR

http://www.google.com/ig/api?weather=Jamaica

As you can see, there’s a bit of flexibility in how you can query the service. The one piece it’s lacking is querying by latitude and longitude. Lucky for you, I’ll show you how to use MKReverseGeocoder to determine your user’s City/State, which you can then plug right into the GET request. First, let’s take a quick look at the XML that comes back from the API:

<?xml version="1.0"?>
  <xml_api_reply version="1">
    <weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0">
      <forecast_information>
        <city data="Portland, OR"/>
        <postal_code data="97217"/>
        <latitude_e6 data=""/>
        <longitude_e6 data=""/>
        <forecast_date data="2010-09-20"/>
        <current_date_time data="2010-09-20 23:46:50 +0000"/>
        <unit_system data="US"/>
      </forecast_information>
      <current_conditions>
        <condition data="Cloudy"/>
        <temp_f data="64"/>
        <temp_c data="18"/>
        <humidity data="Humidity: 55%"/>
        <icon data="/ig/images/weather/cloudy.gif"/>
        <wind_condition data="Wind: SW at 8 mph"/>
      </current_conditions>
      <forecast_conditions>
        <day_of_week data="Mon"/>
        <low data="51"/>
        <high data="66"/>
        <icon data="/ig/images/weather/partly_cloudy.gif"/>
        <condition data="Partly Cloudy"/>
      </forecast_conditions>
      <forecast_conditions>
        <day_of_week data="Tue"/>
        <low data="50"/>
        <high data="68"/>
        <icon data="/ig/images/weather/partly_cloudy.gif"/>
        <condition data="Partly Cloudy"/>
      </forecast_conditions>
      <forecast_conditions>
        <day_of_week data="Wed"/>
        <low data="53"/>
        <high data="68"/>
        <icon data="/ig/images/weather/sunny.gif"/>
        <condition data="Sunny"/>
     </forecast_conditions>
    <forecast_conditions>
      <day_of_week data="Thu"/>
      <low data="53"/>
      <high data="65"/>
      <icon data="/ig/images/weather/rain.gif"/>
      <condition data="Showers"/>
    </forecast_conditions>
  </weather>
</xml_api_reply>

All this should be pretty self explanatory. The two pieces to pay attention to here are current_conditions, and forecast_conditions. For our demo app, we’re simply going to display current temperature, conditions, a conditionsIcon, and today’s high and low temp. We’ll be able to pull all this information out of current_conditions and the first forecast_conditions (which is the forecast for today). In the interest of keeping everything organized, let’s build a class to hold our weather info.

//
//  ICB_WeatherConditions.h
//  LocalWeather
//
//  Created by Matt Tuzzolo on 9/28/10.
//  Copyright 2010 iCodeBlog. All rights reserved.
//
 
@interface ICB_WeatherConditions : NSObject {
    NSString *condition, *location;
    NSURL *conditionImageURL;
    NSInteger currentTemp,lowTemp,highTemp;
}
 
@property (nonatomic,retain) NSString *condition, *location;
@property (nonatomic,retain) NSURL *conditionImageURL;
@property (nonatomic) NSInteger currentTemp, lowTemp, highTemp;
 
- (ICB_WeatherConditions *)initWithQuery:(NSString *)query;
 
@end

In the .m we’re going to pull the data out of the XML and store it in our properties. There are several 3rd party Objective-C XML parsers. I’ve chosen to use Jonathan Wight’s TouchXML as it’s become somewhat of a standard for parsing XML on iOS. You can find it here. You’ll have to jump through a couple hoops to get TouchXML into your project. Here’s an excellent tutorial on installing TouchXML that will walk you through the whole process if you’ve never done it before.

//
//  ICB_WeatherConditions.m
//  LocalWeather
//
//  Created by Matt Tuzzolo on 9/28/10.
//  Copyright 2010 iCodeBlog. All rights reserved.
//
 
#import "ICB_WeatherConditions.h"
#import "TouchXML.h"
 
@implementation ICB_WeatherConditions
 
@synthesize currentTemp, condition, conditionImageURL, location, lowTemp, highTemp;
 
- (ICB_WeatherConditions *)initWithQuery:(NSString *)query
{
    if (self = [super init])
    {
        CXMLDocument *parser = [[[CXMLDocument alloc] initWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com/ig/api?weather=%@", query]] options:0 error:nil] autorelease];
 
        condition         = [[[[[parser nodesForXPath:@"/xml_api_reply/weather/current_conditions/condition" error:nil] objectAtIndex:0] attributeForName:@"data"] stringValue] retain];        
        location          = [[[[[parser nodesForXPath:@"/xml_api_reply/weather/forecast_information/city" error:nil] objectAtIndex:0] attributeForName:@"data"] stringValue] retain];
 
        currentTemp       = [[[[[parser nodesForXPath:@"/xml_api_reply/weather/current_conditions/temp_f" error:nil] objectAtIndex:0] attributeForName:@"data"] stringValue] integerValue];
        lowTemp           = [[[[[parser nodesForXPath:@"/xml_api_reply/weather/forecast_conditions/low" error:nil] objectAtIndex:0] attributeForName:@"data"] stringValue] integerValue];
        highTemp          = [[[[[parser nodesForXPath:@"/xml_api_reply/weather/forecast_conditions/high" error:nil] objectAtIndex:0] attributeForName:@"data"] stringValue] integerValue];
 
        conditionImageURL = [[NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com%@", [[[[parser nodesForXPath:@"/xml_api_reply/weather/current_conditions/icon" error:nil] objectAtIndex:0] attributeForName:@"data"] stringValue]]] retain];
    }
 
    return self;
}
 
- (void)dealloc {    
    [conditionImageURL release];
    [condition release];
    [location release];
    [super dealloc];
}
 
@end

I’ve decided to write my own init method to handle making the request to our API. This will make for a clean implementation in our view controller.

Before we get to implementing ICB_WeatherConditions, I’ll touch briefly on location. Part 1/2 of this tutorial covered finding your user’s latitude and longitude with Core Location. Use MKReverseGeocoder to find city/state from coordinates. Start by adding both the MapKit and CoreLocation frameworks to your project.

MKReverseGeocoder works asynchronously to resolve location info; it has a delegate. In our example we set the delegate to the view controller (self). Be sure to add to your header as well. Since your view controller is now the delegate for the geocoder, make sure to implement the delegate methods for the MKReverseGeocoderDelegate protocol:

#pragma mark MKReverseGeocoder Delegate Methods
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
{
    [geocoder release];
    [self performSelectorInBackground:@selector(showWeatherFor:) withObject:[placemark.addressDictionary objectForKey:@"ZIP"]];
}
 
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error
{    
    NSLog(@"reverseGeocoder:%@ didFailWithError:%@", geocoder, error);
    [geocoder release];
}

Now we’re ready to implement ICB_WeatherConditions. I usually populate UILabels in viewDidLoad, but since we’re making API calls and downloading a remote image (the weather conditions icon), I decided to write a method to execute in the background. This lets us use synchronous requests (which a lot easier to deal with) to handle network requests without locking up the main thread. Once our network calls have finished, we call back to the main thread to update the UI accordingly.

// This will run in the background
- (void)showWeatherFor:(NSString *)query
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 
    ICB_WeatherConditions *weather = [[ICB_WeatherConditions alloc] initWithQuery:query];
 
    self.conditionsImage = [[UIImage imageWithData:[NSData dataWithContentsOfURL:weather.conditionImageURL]] retain];
 
    [self performSelectorOnMainThread:@selector(updateUI:) withObject:weather waitUntilDone:NO];
 
    [pool release];
}
 
// This happens in the main thread
- (void)updateUI:(ICB_WeatherConditions *)weather
{
    self.conditionsImageView.image = self.conditionsImage;
    [self.conditionsImage release];
 
    [self.currentTempLabel setText:[NSString stringWithFormat:@"%d", weather.currentTemp]];
    [self.highTempLabel setText:[NSString stringWithFormat:@"%d", weather.highTemp]];
    [self.lowTempLabel setText:[NSString stringWithFormat:@"%d", weather.lowTemp]];
    [self.conditionsLabel setText:weather.condition];
    [self.cityLabel setText:weather.location];
 
    [weather release];
}

Of course make sure your NIB is connected to your IBOutlets properly.

Now the final piece:

[self performSelectorInBackground:@selector(showWeatherFor:) withObject:@"97217"];

Build and Run:

And you’re done!

You can see the complete class below. I’ve also posted a demo project to github.

My name is Matt Tuzzolo (@matt_tuzzolo). I hope you found this post helpful.

//
//  LocalWeatherViewController.h
//  LocalWeather
//
//  Created by Matt Tuzzolo on 8/30/10.
//  Copyright iCodeBlog LLC 2010. All rights reserved.
//
 
#import <UIKit/UIKit.h>
#import "MapKit/MapKit.h"
 
@interface LocalWeatherViewController : UIViewController <MKReverseGeocoderDelegate> {
    IBOutlet UILabel *currentTempLabel, *highTempLabel, *lowTempLabel, *conditionsLabel, *cityLabel;
    IBOutlet UIImageView *conditionsImageView;
    UIImage *conditionsImage;
}
 
@property (nonatomic,retain) IBOutlet UILabel *currentTempLabel, *highTempLabel, *lowTempLabel, *conditionsLabel, *cityLabel;
@property (nonatomic,retain) IBOutlet UIImageView *conditionsImageView;
@property (nonatomic,retain) UIImage *conditionsImage;
 
- (void)updateUI:(ICB_WeatherConditions *)weather;
 
@end

And the .m:

//
//  LocalWeatherViewController.m
//  LocalWeather
//
//  Created by Matt Tuzzolo on 8/30/10.
//  Copyright iCodeBlog LLC 2010. All rights reserved.
//
 
#import "LocalWeatherViewController.h"
#import "ICB_WeatherConditions.h"
#import "MapKit/MapKit.h"
 
@implementation LocalWeatherViewController
 
@synthesize currentTempLabel, highTempLabel, lowTempLabel, conditionsLabel, cityLabel;
@synthesize conditionsImageView;
@synthesize conditionsImage;
 
- (void)viewDidLoad {
    [super viewDidLoad];
 
    if (1) //you have coordinates but need a city
    {
        // Check out Part 1 of the tutorial to see how to find your Location with CoreLocation
        CLLocationCoordinate2D coord;    
        coord.latitude = 45.574779;
        coord.longitude = -122.685366;
 
        // Geocode coordinate (normally we'd use location.coordinate here instead of coord).
        // This will get us something we can query Google's Weather API with
        MKReverseGeocoder *geocoder = [[MKReverseGeocoder alloc] initWithCoordinate:coord];
        geocoder.delegate = self;
        [geocoder start];
    }
    else // You already know your users zipcode, city, or otherwise.
    {
        // Do this in the background so we don't lock up the UI.
        [self performSelectorInBackground:@selector(showWeatherFor:) withObject:@"97217"];
    }
}
 
- (void)showWeatherFor:(NSString *)query
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 
    ICB_WeatherConditions *weather = [[ICB_WeatherConditions alloc] initWithQuery:query];
 
    [self.currentTempLabel setText:[NSString stringWithFormat:@"%d", weather.currentTemp]];
    [self.highTempLabel setText:[NSString stringWithFormat:@"%d", weather.highTemp]];
    [self.lowTempLabel setText:[NSString stringWithFormat:@"%d", weather.lowTemp]];
    [self.conditionsLabel setText:weather.condition];
    [self.cityLabel setText:weather.location];
 
    self.conditionsImageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:weather.conditionImageURL]];
 
    [weather release];
 
    [pool release];
}
 
#pragma mark MKReverseGeocoder Delegate Methods
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
{
    [geocoder release];
    [self performSelectorInBackground:@selector(showWeatherFor:) withObject:[placemark.addressDictionary objectForKey:@"ZIP"]];
}
 
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error
{    
    NSLog(@"reverseGeocoder:%@ didFailWithError:%@", geocoder, error);
    [geocoder release];
}
 
- (void)didReceiveMemoryWarning {
     [super didReceiveMemoryWarning];
}
 
- (void)viewDidUnload {
	// Release any retained subviews of the main view.
	// e.g. self.myOutlet = nil;
}
 
- (void)dealloc {
    [super dealloc];
}
 
@end

Postbox 2.0 available now!

We’ve covered Postbox in the past, and I’ve been using it regularly since the beta. Version 2.0 was just officially released, and there’s a lot to love in the latest incarnation of this Mail.app replacement.

Postbox already had some great organization capabilities, including “Conversation” views for email threads, and “Topics” for tagging messages and quickly sorting them. With version 2.0, organization is faster and even easier, thanks to features like Quick Move and some new keyboard shortcuts. There’s even a Quick Reply feature which lets you respond to a message from within the message or thread by hitting Shift-R (a lot like GMail). There are also keyboard shortcuts for navigating mailboxes and accounts without touching your mouse.

The new Universal Inbox and Account Groups views make it easy to manage multiple accounts and multiple inboxes from one screen. Combined with the tab features of Postbox, you can effectively handle quite a few accounts with very little effort. There are also new “Focus” panes, where you can view To-Dos and filter by Has Attachment, Unread, Topics, Favorite Contacts and Dates. For a full list of new features, check out the Feature List at the Postbox website.

Postbox is free to try, and $39.95US for a license. There’s also a free version, Postbox Express, if you don’t need all of the extra bells and whistles. There’s even a Windows version available! Check it out (especially if you’re a keyboard lover or running Mail.app with Mail Act-On or similar).

TUAWPostbox 2.0 available now! originally appeared on The Unofficial Apple Weblog (TUAW) on Wed, 29 Sep 2010 18:00:00 EST. Please see our terms for use of feeds.

Read | Permalink | Email this | Comments

YouTube options, iPad multitasking animation, Game Center flagging coming in iOS 4.2

9to5Mac has been digging through the brand new iOS 4.2 beta, and they’ve found a few new features hidden in the mix. First up, the build offers some new YouTube uploading options — you can now choose to make your uploaded YouTube videos public, unlisted, or private right on upload. Honestly, I’ve had hit-or-miss luck with uploading to YouTube straight from my iPhone, but it’s nice to know the process is being worked on. Maybe we’ll have some optimization come along with the new options.

Second, as you can see above, the iPad has gotten itself a brand new multitasking animation. Instead of just pulling up whatever app you’re switching to, it’ll actually spin the windows around (this functionality is already up and running on the iPhone, but now it’ll be available on the iPad as well). And finally, last but definitely not least, it looks like iTunes will be getting some Game Center indicators — you’ll be able to see directly from the App Store listing when an app is compatible with Apple’s official Game Center features.

That last one is a big one, given that Game Center integration seems to be selling games lately. It’s unfortunate that we probably won’t have any other icons like that — it would be cool to browse the App Store and instantly see whether a game is compatible with OpenFeint or Plus+, or whether it has local or online multiplayer or just leaderboard functionality. But Apple’s probably not interested in that other stuff — it’s just selling Game Center integration for now. You can look forward to all of these features in iOS 4.2, which is scheduled to come to the public in November.

TUAWYouTube options, iPad multitasking animation, Game Center flagging coming in iOS 4.2 originally appeared on The Unofficial Apple Weblog (TUAW) on Wed, 29 Sep 2010 17:30:00 EST. Please see our terms for use of feeds.

Read | Permalink | Email this | Comments

TUAW TV Live: The Steve and Sam show

As mentioned earlier today, my guest for today’s episode of TUAW TV Live is Sam Levin, the brains and voice behind AppMinute.com and the AppMinute podcast (iTunes link). I always enjoy having guests on the show, and today’s episode ought to be a lot of fun for viewers as well. We tried to do this show last week, but due to technical issues with our streaming provider, we were unable to.

To join in from your Mac or PC, just go to the next page by clicking the read more link at the bottom of this post, and you’ll find a livestream viewer and a chat tool. The chat tool allows you to join in on the fun by asking questions or making comments.

If you’re driving somewhere and would like to watch TUAW TV Live while you’re stuck in traffic, please don’t — keep your eyes on the road! However, if someone else is doing the driving, you can watch the show on your iPhone by downloading the free Ustream Viewing Application.

iPad users haven’t been forgotten, either, as you can tune in to TUAW TV Live on your iPad! That link will send you to a non-Flash page, although you won’t have access to our chat tool. And one final note — if the show has started and you’re seeing a previously recorded show instead of the livestream, you can always pop on over to ustream.tv/tuaw to join the show in progress.

TUAWTUAW TV Live: The Steve and Sam show originally appeared on The Unofficial Apple Weblog (TUAW) on Wed, 29 Sep 2010 16:55:00 EST. Please see our terms for use of feeds.

Read | Permalink | Email this | Comments

Sonos delivers free iPad remote for its wireless music systems

It must be ‘iPad Remote Week’ because hot on the heels of Apple releasing iTunes remote control for the iPad, Sonos has delivered a very nice, free iPad remote that is feature complete, and elegant in execution.

Previously, Sonos owners had to make do with the iPhone version of the app, which only ran in portrait mode and had to upscale to fill the iPad screen. That’s all fixed now, with the delivery of the Sonos Controller for iPad. I gave it a run through last night, and it is a pleasure to use. The larger iPad screen means most functions are right on the front page, so there’s no hunting around for hidden functions. You get album art, zone control, and music source selection at the tap of a finger.

Installing the app requires a software update to all your home controllers and Zone Players to version 3.3. That can be accomplished right from the new iPad remote, and the software will notify you if you need to update.

The 3.3 update adds support for AAC streaming radio stations, and for European countries adds the popular Spotify service. The iPhone version of the Sonos app has not been updated since May, and Sonos says an update to that app is pending approval from Apple.

The Sonos system is not inexpensive, but it is a bargain compared to wired whole-house systems. For your investment you get a very easy to set up entertainment center that you can add to as your desires dictate. The audio is very high quality, and the company commitment to the Mac platform is very strong.

Check the gallery for some screen shots.

TUAWSonos delivers free iPad remote for its wireless music systems originally appeared on The Unofficial Apple Weblog (TUAW) on Wed, 29 Sep 2010 16:00:00 EST. Please see our terms for use of feeds.

Read | Permalink | Email this | Comments

Apple TV deliveries begin — we have unboxing photos and video

Several TUAW readers have let us know that their Apple TVs have arrived, and reader Clint even sent us a link to his MobileMe gallery of his official unboxing of the new device.

As you can see from the photos, the thing is tiny. The Apple TV comes packaged with a power cord, a remote, a small user manual, and of course the ubiquitous Apple stickers. There’s no HDMI cable included, so if you don’t have one available, be sure to run to your nearest electronics store to pick one up so you can start playing with the Apple TV as soon as possible.

My personal Apple TV order was supposed to arrive tomorrow; it ended up getting delivered just after I finished writing the first draft of this post. By TUAW tradition, I am supposed to film and post an unboxing video immediately. You can view this instant classic on the next page — just click the Read More link below.

TUAWApple TV deliveries begin — we have unboxing photos and video originally appeared on The Unofficial Apple Weblog (TUAW) on Wed, 29 Sep 2010 15:30:00 EST. Please see our terms for use of feeds.

Read | Permalink | Email this | Comments

iFixit: Apple TV has 8GB of onboard flash storage

One of the big questions concerning whether or not the new Apple TV will be able to run apps of some sort is “how much onboard RAM does it have?”

That question has been answered by the guys at iFixit, who as usual have been the first to tear apart and document the internal workings of the Apple TV. The answer? 8 GB of NAND flash RAM made by Samsung. The iFixit team speculates that the RAM is most likely going to be used to cache incoming video streams, but it might also be used to temporarily hold apps that could run under iOS on the device.

More interesting news about the Apple TV is bound to come out in the next couple of days; stay tuned to TUAW for all of your Apple TV coverage.

Correction to original post: that’s 8GB of onboard flash storage, 256MB of actual RAM. We apologize for the error.

TUAWiFixit: Apple TV has 8GB of onboard flash storage originally appeared on The Unofficial Apple Weblog (TUAW) on Wed, 29 Sep 2010 15:55:00 EST. Please see our terms for use of feeds.

Read | Permalink | Email this | Comments

Queuing and downloading in the App Store

Here’s a great idea from Ryan Cash to put iOS apps unavailable for immediate download into a queue that will automatically resume when they can.

Ryan notes that he often buys iOS apps when he’s out-and-about, whether it be on the recommendation of a friend, riding in a car, etc. The problem is many of the target apps are over the 20MB 3G limit. I’ve experienced this myself, as well as the inevitable conclusion: I forget to try again once I’m within a Wi-Fi network and the app’s author has lost that sale.

Ryan suggests an “add to queue” option to accompany or follow the notification at right, which would put that download into a holding pattern until the iPhone found a Wi-Fi network. That way, the download would resume, we’d get that cool app we were motivated to buy earlier and the author will get the sale.

Additionally, Ryan suggests that a queue could keep the user from being pushed out of the store to initiate a download, so that they could tap and get several apps going at once.

They’re both interesting ideas, though I wonder if battery life would be affected if the a queued app were continually polling for a Wi-Fi network (say you’re out for 9 hours). What do you all think?

TUAWQueuing and downloading in the App Store originally appeared on The Unofficial Apple Weblog (TUAW) on Wed, 29 Sep 2010 15:00:00 EST. Please see our terms for use of feeds.

Read | Permalink | Email this | Comments

Apple to create new HTML5 content for website

Apple has published new job posting for a Creative Technology Manager, tasked in part with creating new HTML5 content at Apple.com, with support for iOS devices.

The listing seeks an individual who “…will be responsible for driving web-standard (HTML5) innovation that enhances and redefines the marketing of Apple’s products and services to millions of consumers. Work will also include exploring opportunities with apple.com, email and mobile/multi-touch experiences on the iPhone and iPad.”

Of course, HTML5-powered content has already begun to appear on Apple’s website. Recently, a movie showtimes page has appeared that lets users find location-based movie showings, view theatre locations on a map, and view trailers. I’ve added it to my iPhone’s home screen as it’s so useful.

Also, Apple added a “Compare Macs” page to its site in August, which lets customers view potential purchases side-by-side. For more on Apple and HTML5, look here.

[Via AppleInsider]

TUAWApple to create new HTML5 content for website originally appeared on The Unofficial Apple Weblog (TUAW) on Wed, 29 Sep 2010 14:00:00 EST. Please see our terms for use of feeds.

Read | Permalink | Email this | Comments

TUAW TV Live: If at first you don’t succeed, try again at 5 PM EDT

Due to technical issues last Wednesday, my planned TUAW TV Live episode with podcaster Sam Levin of AppMinute never got off the ground. Well, we’re not going to let a little DNS issue stop our fun!

Join Sam and me at 5 PM EDT today as we chat about iOS apps, whether or not Android poses a threat in the tablet computing world, and maybe even do a few giveaways.

Just drop by TUAW.com a little before the start of the show to get logged into the chat and get the Ustream ads out of the way before we begin. I’ll have full instructions on how to watch and participate in this live weekly event. And please, think good thoughts so we won’t have a repeat of last week’s technical problems…

TUAWTUAW TV Live: If at first you don’t succeed, try again at 5 PM EDT originally appeared on The Unofficial Apple Weblog (TUAW) on Wed, 29 Sep 2010 13:30:00 EST. Please see our terms for use of feeds.

Read | Permalink | Email this | Comments

Finnish broadband provider Elisa to sell unlocked iPhone 4 starting tomorrow

People who are anxious to get an iPhone 4 without a carrier lock-in in the land of Nokia will now have an opportunity to get an unlocked device.

Finnish broadcaster YLE is reporting that broadband provider Elisa will start selling unlocked iPhone 4s on Thursday, September 30th. The iPhone 4 is currently being sold in Finland with a contract by mobile carrier TeliaSonera.

The pricing for the unlocked phones is €589 for the 16GB model and €689 for the 32GB version. And in case you’re wondering what those words below the iPhone 4 banner in the picture above mean? “Coming soon.”

TUAWFinnish broadband provider Elisa to sell unlocked iPhone 4 starting tomorrow originally appeared on The Unofficial Apple Weblog (TUAW) on Wed, 29 Sep 2010 13:00:00 EST. Please see our terms for use of feeds.

Read | Permalink | Email this | Comments

China Unicom sells 100,000 iPhone 4s in four days

After 4 days of availability, China Unicom (CU) has sold 100,000 iPhone 4s in China (here are some photos from launch day). Pre-orders began on September 16th, and CU reported earlier this week that 200,000 orders were taken. Today, all online reservations have come to a halt. Customers must be physically at a retail store to buy one. For now, the iPhone 4 is outselling the iPhone 3GS many times over.

Phones bought through China Unicom require a two year service contract; however, the phone is also available contract-free at Apple stores.

Liu Liang, an analyst with consulting group iResearch, commented on the iPhone’s popularity.”The level of smartphone usage is hitting a new level in China,” he said. “A lot of users no longer want to use these older phones with few features and instead want to buy the latest models like the iPhone.”

The iPad was also met with enthusiasm in China, though sales figures are not yet available.

TUAWChina Unicom sells 100,000 iPhone 4s in four days originally appeared on The Unofficial Apple Weblog (TUAW) on Wed, 29 Sep 2010 10:00:00 EST. Please see our terms for use of feeds.

Read | Permalink | Email this | Comments