Downgrade iOS 4.3.3 to iOS 4.3.2, 4.3.1, 4.3, 4.2.1 [iPhone 4, 3GS, iPad 2, iPad, iPod Touch]

iOS 4.3.3 is out with Location tracking bug fix. In case you have updated to iOS 4.3.3 and want to downgrade iOS 4.3.3 to 4.3.2 / 4.3.1 / 4.3 / 4.2.1 on iPhone 4, iPhone 3GS, iPad 2, iPad or iPod Touch, this guide is for you. These are the instructions to downgrade iOS 4.3.3 to 4.3.2, 4.3.1, 4.3, 4.2.1 using TinyUmbrella or by editing Hosts file.

NOTE: You must have SHSH blobs saved for the firmware you’re downgrading to, otherwise this won’t work. You can see for which firmware SHSH blobs are saved for your iDevice in Cydia.
How to: Save SHSH blobs for iPhone, iPod Touch, iPad

*** You cannot downgrade iPhone Baseband, at least for now.

Downgrade iOS 4.3.3 to 4.3.2, 4.3.1, 4.3, 4.2.1

Download your desired firmware for which you’ve SHSH blobs saved and wanna downgrade to:

Method 1: Using TinyUmbrella

Download TinyUmbrella

If you’ve SHSH blobs saved on Saurik’s server via Cydia, download them into your computer first. To do that:

Connect your device, Fire up the TinyUmbrella
Select your device and hit the save SHSH button. that’s it.

Step 1 – DFU Mode

Put your iPhone, iPad or iPod Touch into DFU Mode (How to: enter DFU Mode)

Step 2 – Start TSS Server

Run the TinyUmbrella
Select your device from the left pane and make sure that downloaded SHSH blobs has been cached (right pane) by TinyUmbrella for iOS 4.3.2, iOS 4.3.1, 4.2.1, 4.1 or older.
Now hit the Start TSS Server button.

Step 3 – Restoring The Firmware

Open the iTunes
Hold down the Shift (Windows)/Alt (Mac) key and hit the Restore button.
Select the downloaded firmware (iOS 4.3.x, iOS 4.2.1, iOS 4.1 or older) and let the restore process complete.
iTunes should bring up the error 1015, 1013 or 1011 message. Don’t worry, it’s normal. You’ve successfully downgraded your iPhone/iPod Touch firmware.

Step 4 – Getting Out Of Recovery

Now in order to get out of recovery mode, hit the “Kick Device Out of Recovery” button on TinyUmbrella right below the Start TSS Server button or you can also use RecBoot. That’s it!



Method 2: Edit Hosts File

**We assume that you’ve SHSH blobs saved via Saurik’s Cydia server.

Download your desired firmware for which you’ve SHSH blobs saved and want to downgrade:

Step 1 – DFU Mode

Put your iPhone into DFU Mode (How to: enter DFU Mode)

Step 2 – Editing Hosts File

Now we are going to redirect iTunes from Apple Servers to Saurik’s server.


Windows:

Go to C:\Windows\System32\drivers\etc\ and locate hosts file.
Open and edit the hosts file in Notepad.

NOTE: Win 7 and Vista users MUST run Notepad with admin privileges. Right click on Notepad app and select Run as Administrator.

Mac OS X:

Go to \etc\ directory and locate hosts file. Copy it on your desktop
Open the hosts file in TextEdit.


Add the following line at the end of the hosts file and then save and close the file:

74.208.105.171 gs.apple.com

Mac OS X users needs to copy the edited hosts file from desktop back to /etc/ directory and replace the older one.

Step 3 – Restoring The Firmware

Now Open the iTunes.
Hold down the Shift (Windows)/Alt (Mac) key and hit the Restore button.
Select the downloaded firmware (4.3.1 / 4.3 / 4.2.x / iOS 4.1, iOS 4.0.1 or older) and let the restore process complete.
iTunes will bring up error 1015, 1013 or 1011 message. Don’t worry, it’s normal. You’ve successfully downgraded your iPhone/iPod Touch/iPad 2, 1 firmware.

Step 4 – Getting Out Of Recovery

Now in order to get out of recovery mode, hit the “Kick Device Out of Recovery” button on TinyUmbrella right below the Start TSS Server button or you can also use RecBoot. That’s it!

Note: You must now remove 74.208.105.171 gs.apple.com line from the host file and save it. Doing this will let iTunes to prompt you about future updates from Apple.

You can follow us on Twitter, Google Buzz, Facebook, and Subscribed to RSS Feed to receive latest updates.

Digg Twitter StumbleUpon Facebook Reddit del.icio.us

Download iOS 4.3.3 for iPhone, iPad, iPod Touch

Apple’s iOS 4.3.2 firmware for iPhone, iPad and iPod Touch is now available for download. You can download iOS 4.3.3 for iPhone 4/3GS, iPad 2, iPad, and iPod touch 4G/3G. iOS 4.3.3 firmware comes with minor fix for Location tracking bug.

How to Install iOS 4.3.3

*** iOS 4.3.3 requires iTunes 10.2.2

Connect your iPhone/iPod Touch/iPad to iTunes 10.2.2, new firmware 4.3.3 availability message will appear then hit the “Download and Install” button. (Not recommended for jailbreakers and unlockers)

You can also download iOS 4.3.3 firmware from the links below. Hold down the Shit (Windows) or Alt/Option (Mac) key and hit the restore button on iTunes and select the downloaded IPSW file.

iOS 4.3 was released on March 10, iOS 4.3.1 on March 25th, and iOS 4.3.2 on April 14 this year.

Download iOS 4.3.3 Firmware

Direct download iOS 4.3.3 firmware (IPSW files) links for iPhone 4, iPhone 3GS, iPad 2, 1 and iPod Touch 4G and iPod Touch 3G:

Digg Twitter StumbleUpon Facebook Reddit del.icio.us

iOS 4.3.3 Firmware Coming in Next 2 Weeks [Update: Out Now!]

BGR reports that they have the upcoming iOS 4.3.3 firmware and their sources inside Apple claims that iOS 4.3.3 will be out within next 2 weeks to fix the iOS location tracking bug in iPhone and iPad.
UPDATE: Download iOS 4.3.3

iOS 4.3.3 Update will include:

  • The update will no longer back up the location database to iTunes.
  • The size of the location database will be reduced.
  • The location database will be deleted entirely when Location Services are turned off.
  • Battery life improvements.
  • iPod bug fixes.

Apple is also expected to patch the iOS 4.3.2 jailbreak ‘untethered exploit’ developed by i0nic and featured in PwnageTool, Sn0wBreeze and RedSn0w.

We’ll update you as we know more about the upcoming iOS 4.3.3 firmware. Stay Tuned!

You can follow us on Twitter, Google Buzz, Facebook, and Subscribed to RSS Feed to receive latest updates.

Digg Twitter StumbleUpon Facebook Reddit del.icio.us

Android App Development:Threading part 1: Handlers

Multi-Threading concept is essential in most platforms. it provides maximum utilization of the processor. threading is used when the program executes time consuming processes (such as calling a web service) and to give a good user experience by unblocking the UI.

Android provides threading techniques to perform time consuming tasks in a background thread with coordination with the UI thread to update the UI.

Android provides the following methods of threading:

  1. Handlers.
  2. Async. Tasks.

Handlers:

When you create an object from the Handler class, it processes

Messages and Runnable objects associated with the current thread MessageQueue. the message queue holds the tasks to be executed in FIFO (First In First Out) mannser. you will need only ine Handler per activity where the background thread will communicate with to update the UI.

The Handler is associated with the thread from which it’s been created

We can communicate with the Handler by two methods:

  1. Messages.
  2. Runnable objects.

In this post we will demonstrate how to use both using a simple example which is updating the text of a TextView using multiple threads.

Using Messages:

The steps of using a Handler are as follows:

  1. You create a Handler object with an asscociated callbackmethod to handle the received messages (it is the method where the UI updatewill be done).
  2. From the background thread you will need to send messages to thehandler.

Here’s the code of our activity:

public class MainActivity extends Activity {
TextView txt;
// our handler
 Handler handler = new Handler() {
  @Override
  public void handleMessage(Message msg) {
//display each item in a single line
  txt.setText(txt.getText()+"Item "+System.getProperty("line.separator"));
     }
 };

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  txt=(TextView)findViewById(R.id.txt);
 }

 @Override
 protected void onStart() {
  super.onStart();
              // create a new thread
  Thread background=new Thread(new Runnable() {

   @Override
   public void run() {
    for(int i=0;i<10;i++)
    {
     try {
      Thread.sleep(1000);        b.putString("My Key", "My Value: 

"+String.valueOf(i));
// send message to the handler with the current message handler          

handler.sendMessage(handler.obtainMessage());
     } catch (Exception e) {
      Log.v("Error", e.toString());
     }
    }
   }
  });

  background.start();
 }
}

After running the following code the TextView will display the following,

Each second a new line is written:


This example is pretty basic, it just sends the same message for a number of times.

What if we want the message sent to hold data that’s changed each time the message is sent, the answer is to use Message.setData(Bundle bundle) method by creating a Bundle object and adding the data to it like this:

public class MainActivity extends Activity {
 TextView txt;
 // our handler
 Handler handler = new Handler() {
  @Override
  public void handleMessage(Message msg) {
   // get the bundle and extract data by key
   Bundle b = msg.getData();
   String key = b.getString("My Key");
   txt.setText(txt.getText() + "Item " + key
   +System.getProperty("line.separator"));
  }
 };

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  txt = (TextView) findViewById(R.id.txt);
 }

 @Override
 protected void onStart() {
  super.onStart();
  // create a new thread
  Thread background = new Thread(new Runnable() {

   @Override
   public void run() {
    for (int i = 0; i < 10; i++) {
     try {
      Thread.sleep(1000);
                                        Message msg = new Message();
      Bundle b = new Bundle();
      b.putString("My Key", "My Value: " + String.valueOf(i));
      msg.setData(b);
      // send message to the handler with the current message handler
      handler.sendMessage(msg);
           } catch (Exception e) {
      Log.v("Error", e.toString());
     }
    }
   }
  });

  background.start();
 }
}

We put a string to the bundle and send a message with that bundle. in the handler method we receive the bundle and get the value with the predefined key.

After executing that code the text view would look like this:


Using Runnables:

another way to use Handlers is to pass them a Runnable by using the

Handler.post() method like this:

Runnable r=new Runnable() {

   @Override
   public void run() {
    txt.setText("Runnable");

   }
  };

  handler.post(r);

This will add the Runanble object to the message queue to be executed by the handler.

Sending Messages in a timely manner:

we can use handlers to send messages or post runnables at time intervals using

The following methods:

  1. handler.sendEmptyMessageAtTime(int what,long uptimeMillis):sends an
    empty message at a specific time in milli-seconds, can be defined by using the
    SystemClock.uptimeMillis() method to get the time since the device boot
    in milli-seconds and concatinating to it.
  2. handler.sendEmptyMessageDelayed(int what,long delayMillis):sends an
    empty message after a certain amount of time in milli-seconds.
  3. handler.sendMessageAtTime(Message msg,long uptimeMillis).
  4. handler.sendMessageDelayed(Message msg,long delayMillis).
  5. handler.postAtTime(Runnable r,long uptimeMillis).
  6. handler.postAtTime(Runnable r,Object token,long uptimeMillis):posts a
    runnable with an object as a distinguishing token.
  7. handler.postDelayed(Runnable r,long delayMillis).

All the above messages return a boolean indicating whether the message or the runnable has been placed successfully in the message queue.

Removing Call backs:

If you want to remove a runnable or a message from the message queue, you can use the following methods:

  1. handler.removeCallbacks(Runnable r).
  2. handler.removeCallbacks(Runnable r,Object token).
  3. handler.removeCallbacksAndMessages(Object token).
  4. handler.removeMessages(int what).
  5. handler.removeMessages(int what,Object object)

That’s was all about handlers, stay tuned for another tutorial next week.

Guide And Tool For Mapping The iOS SDK To Windows Phone 7

A new website has been created by Microsoft for those looking to translate their iOS based apps to Windows Phone 7..

On the site you will find a searchable guide containing many different iOS classes, and their related Windows Phone 7 classes, and a nice little guide containing a collection of tutorials for those translating iOS apps to Windows Phone 7 Included is a nice tutorial on how to go from Objective-C to C# which makes for a great refresher for those who haven’t used C# in a while.

So if you have the need to convert an app to Windows Phone 7 you can check out the website here.

No need to signup either, the site is available to all.

Read More:  iPhone Dev News

©2011 iPhone, iOS 4, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.

.

DeliciousTwitterTechnoratiFacebookLinkedInEmail

Open Source: Mosync Mobile Cross Platform SDK

Just found out about a very interesting looking project known as Mosync.  What Mosync is, is a cross platform mobile SDK which utilizes C/C++ and the gcc compiler to create applications that run on a multitude of mobile devices including iOS devices (iphone/iPad), Blackberry, Android, and Symbian based devices.

This looks like a very interesting solution, and the fact that it is open source, and offers a free licensing option for those developing open source applications appears to have developed quite a following.

There are Windows/Mac downloads available for Mosync, and included and the Mosync development environment is based on Eclipse.

You can check out the Mosync homepage here.  The source code for Mosync along with tool downloads are available on the Mosync download page here.

Thank you to Leo and Jonas for mentioning the Mosync SDK in their comments.

©2011 iPhone, iOS 4, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.

.

DeliciousTwitterTechnoratiFacebookLinkedInEmail

Foursquare: Should a Company Owner Be the Mayor of His Own Venue?

Foursquare Check In

This post may be irrelevant to non-users of Foursquare, but I wanted to relay an interesting debate I had with my friend the other day: should the owner (or employees) of a company be the mayor of their own venue on Foursquare?

If you’re not familiar with Foursquare, the idea is that you “check in” to venues that you visit in the real world, and you in turn earn badges, points, mayorships and other rewards based on your check-in activity.

Many venues use Foursquare to reward customers who frequent their establishments. So if you are the mayor of your favorite Italian restaurant, for example, you might get special treatment such as your own exclusive table or a free glass of wine if the venue chooses to reward the Foursquare mayor. But here arises the dilemma:

Foursquare Etiquette & Ethics

If you are the mayor or employee of your own venue — that is, you own a restaurant and you check in every time you go to work — then you lose the opportunity to reward your best customers who are competing for the mayorship at your venue.

Personally, if I was the owner of a brick-and-mortar business, I would not check in to my own venue. Lots of people are using Foursquare nowadays, and I would want to find out who my best customers were and reward them.

The owner of a bar I frequent is the Foursquare mayor of his bar, and my friend upheld an opinion opposite my own, arguing that if you own a business — i.e. you are “king of the castle,” so to speak — then you are entitled to be the mayor of your own restaurant.

I have a friend who works at a restaurant and only checks in if he purchases something from the restaurant before or after work.

What’s Your Opinion?

If you use Foursquare, do you think that owners and employees of businesses should check in to their own establishments? Feel free to share your opinion in the comments.

Foursquare: Should a Company Owner Be the Mayor of His Own Venue? is a post from Apple iPhone Review.


TechCrunch: Twitter buying TweetDeck

Rumors are flying around that Twitter has purchased TweetDeck, the popular Twitter client that originally started out on iPhone and the Mac. There’s no confirmation from either company yet, but a purchase like that would obviously have a big effect on the Twitter client landscape. TechCrunch says a source tells them that Twitter is simply making the purchase to cut off UberMedia from buying the app itself.

Twitter purchased the Tweetie client last year, and as you may know, Tweetie essentially became the official Twitter for iPhone client and the Twitter for Mac client. Given the widespread adoption of the Adobe AIR-driven TweetDeck app, it’s not hard to see that Twitter might make the desktop Tweetdeck client official (keeping in mind that there’s no official Windows app at the moment). But the question is what might happen to the Tweetdeck for iPhone app? Will it get deleted entirely or get rolled up into the main Twitter app?

No idea. At any rate, whatever happens, we’ll have to wait for the official announcement of the acquisition. If the deal is really happening, the future of a popular Twitter client might be up in the air.

TechCrunch: Twitter buying TweetDeck originally appeared on TUAW on Wed, 04 May 2011 00:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

iPad ‘If You Asked’ TV ad aims for the heartstrings, fails to miss

Granted, I am the sort of dude who will admit to occasionally choking up while watching a television ad (what? C’mon, the AT&T Berlin Wall ad was amazing), but even the most jaded adwatcher might have a moment of something-in-my-eye watching Apple’s latest iPad ad, posted at the bottom of the Apple home page and on the company’s YouTube page.

I won’t spoil it for you; just click through to watch. Where’s that damn hanky?

[hat tip Beau Giles]

Continue reading iPad ‘If You Asked’ TV ad aims for the heartstrings, fails to miss

iPad ‘If You Asked’ TV ad aims for the heartstrings, fails to miss originally appeared on TUAW on Tue, 03 May 2011 22:31:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Notificant is a helpful reminder no matter where you are

Carmel Cloud has released the iOS version of Notificant, which ties schedule notifications made on your Mac with your iOS device. The Mac version of this program debuted shortly after the Mac App Store rolled out in January, but the lack of iOS integration caused many not to use it to its full potential.

Notificant also syncs with a web app, which allows you to access your notifications via any browser; that’s handy for when you have to integrate a Windows computer into your daily workflow like I do.

Notificant is a fairly simple app. You get a 160-character limit to write a detailed schedule reminder, including URLs that can be shortened using a built-in shortner, and you can set a time for the reminder to trigger. What sets it apart from notifications through iCal and Google Calendar is that you can specifically target where the notification goes.

For example, I can write a notification using the web app at work and have it go to my iPhone at a specific time. Or, my husband can use my iMac at home to send a schedule reminder to my MacBook Air when I’m out without it going to my iPhone or email.

The one thing that I wished Notificant had was the ability to add extra email addresses. It would be handy for sending reminders to my husband or to my work email. Notificant also does not do repeating events, which can be a turn-off for some potential users.

Notificant for iPhone is US$2.99, and a universal version for the iPad will be available in the future. Notificant for Mac is $4.99 and is available on the Mac App Store.

Notificant is a helpful reminder no matter where you are originally appeared on TUAW on Tue, 03 May 2011 22:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

DigiTimes: Amazon to unveil tablet to compete with iPad later this year

DigiTimes is reporting that its sources have confirmed that Quanta has received OEM orders from Amazon to begin building a tablet computer. Though details are scarce, Amazon’s iPad competitor will reportedly feature a multitouch screen from E Ink Holdings and Fringe Field Switching (FFS) technology. Quanta will reportedly produce up to 800,000 units of the tablet a month and could begin shipping it as early as the second half of this year.

Since the iPad was unveiled a little over a year ago, there hasn’t been a tablet that’s even come close to matching its popularity. Many in the industry had high hopes for Motorola’s Xoom, but sales have continued to disappoint. If anyone could take on the iPad, it just might be Amazon. Their Kindle ebook reader is widely popular in America and Europe, and if they decide to offer a full-fledged “Kindle tablet,” they at least would have the brand-name recognition going for them.

[via Engadget]

DigiTimes: Amazon to unveil tablet to compete with iPad later this year originally appeared on TUAW on Tue, 03 May 2011 19:30:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Report: 40% of App Store game downloads are freemium

Xyologic is a company that analyzes mobile app sales and trends, and its latest report says that a full 40% of game downloads from Apple’s App Store consist of freemium titles — games that are free to download, but make money with ads or in-app purchases. Ngmoco made a big splash a while back by saying that freemium was the future of the App Store, and according to this report, that is turning out to be more and more true.

Xylogoic says that there were 99.9 million downloads of free iPhone games last month, and 80.8% of all app downloads were of free apps. It’s well known that free games have a wider audience than paid apps (just because the barrier to entry isn’t there), and while some developers say that free audience is always better, the question has always been how to monetize all of those users.

In-app purchases seem to be working — the number of free games with in-app purchases available on the App Store is rising every month, and of the top 150 free games on the store, Xyologic says that 94 of those (63%) are making use of in-app purchases. There are certainly still apps benefiting from other models, but there’s no question that freemium is still growing as one way to put a successful app on the App Store.

Report: 40% of App Store game downloads are freemium originally appeared on TUAW on Tue, 03 May 2011 19:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Microsoft, RIM announce collaboration, Bing to power BlackBerry search

In what appears to be a joint effort to stave off both Apple and Google, Microsoft and RIM have teamed up to form a mobile partnership. The partnership will put Bing as the default search engine on all BlackBerry devices and Bing Maps as the default mapping software. The surprise announcement was made today at BlackBerry World where Microsoft CEO shocked the audience when he took the stage.

“We’re going to invest uniquely into the BlackBerry platform,” Ballmer said in his keynote address. “Bing will become the default search provider in the browser and maps. I’ve never been more excited about where our future is going.”

The news comes just days after RIM warned investors that its first quarter smartphone sales will be lower than expected and as a result they cut their earnings forecast for the upcoming quarter. With Apple’s iPhone and Google’s Android devices consistently gaining smartphone market share, many on Wall Street have begun to lose faith in RIM’s future. It remains to be seen if today’s Microsoft/RIM announcement will have any meaningful impact on Blackberry sales.

Microsoft, RIM announce collaboration, Bing to power BlackBerry search originally appeared on TUAW on Tue, 03 May 2011 18:30:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Adobe Creative Suite 5.5 out, adds publish to iPad option

Adobe has released its Creative Suite 5.5 software. The big news about Creative Suite 5.5 is, of course, the ability to create content for any number of tablet devices, including the iPad. In addition to the focus on tablets, CS 5.5 also includes a host of HTML5 tools, which also lends itself to content creation for tablets — or the iPad at least, as it does not support Flash.

Adobe Creative Suite 5.5 is priced at US$2599 for CS5.5 Master Collection, US$1899 for CS5.5 Design Premium, US$1799 for CS5.5 Web Premium, US$1699 for CS5.5 Production Premium and US$1299 for CS5.5 Design Standard. Also of note is the subscription-based pricing which is offered in 12-month plans or a month-to-month plan. You can check out the subscription prices here.

[via 9to5Mac]

Adobe Creative Suite 5.5 out, adds publish to iPad option originally appeared on TUAW on Tue, 03 May 2011 18:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Designer pitches concept for usable iOS notifications in video

Notifications concept by Andreas Hellqvist.Like many of us here in the TUAW compound, designer Andreas Hellqvist is dissatisfied with the intrusive and often downright annoying notifications system iOS 4 offers today. Like me, he expresses his distaste for iOS’s notifications by turning them off in almost every app on his device. After exploring other concepts on the web and finding most didn’t adhere to existing iOS concepts, the Swedish designer took it upon himself to illustrate his own vision of what iOS notifications should be.

Hellqvist begins by consolidating all notifications into a single system level app. Users could then position the notifications software — on the launch bar, a page of apps, or hidden in a folder — to suit her own personal desire to see incoming alerts. A single badge displaying a summed total of messages across all apps on the device would allow users to see how many unread notifications they had at-a-glance. Upon launching the app, Hellqvist suggests users could see a complete list of all notifications, filter messages by app, and perform some basic notification management. Tapping on a notification would launch the appropriate action on the device: opening an incoming text message or dialing the number from a missed call, for example.

The new notifications concept also addresses incoming alerts on the lock screen. Users would see a short listing of recent messages here. To avoid embarrassing pocket dialing, Hellqvist employs a nifty “slide-to-read” concept (pictured above) that allows users to quickly respond to a notification by sliding app icons from left to right much like the familiar “slide to unlock” interface currently available in iOS.

Overall, the video succinctly summarizes what notifications in iOS could and should be. While some developers already offer software with similar capabilities to jailbroken devices, I would welcome many of the enhancements pictured in this video in an official iOS release. Hopefully, Apple is listening and will implement some of Hellqvist’s ideas into a future version of iOS. Then, maybe I’d use notifications more.

Keep reading to watch the concept video and tell us what you think in the comments.

Continue reading Designer pitches concept for usable iOS notifications in video

Designer pitches concept for usable iOS notifications in video originally appeared on TUAW on Tue, 03 May 2011 17:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments