Posts tagged words

Nexus One from an iPhone Developer’s Perspective

Okay, this article has been a long time in the coming. THe delay is partially because I’ve just been crazy busy, but it’s also because I wanted to spend enough time with the Nexus One and Android so that I wasn’t judging them purely on what I was already accustomed to. I think that I’ve spent enough time with them now to be able to do that. Not only has it been several weeks, but when I was in the U.K. for NSConference, I had only my Nexus One most of the time because I didn’t want to incur AT&T’s incredibly high data roaming rates. As a result, I got a real feel for what it’s like to use the Nexus One as my main phone.

In this posting, I’ll talk about the device from my perspective as a user. My thoughts on the Android SDK as a developer will come in a future installment, hopefully in the not-too-distant future.

Let me state that I tried to be as objective as I was capable of being, but this is in no way an unbiased or objective report. These are my subjective impressions, which is to say that they are the subjective impressions of somebody who has used and developed for iPhones for nearly two years, who teaches workshop on developing for the iPhone, and who has written books on the topic. While I tried to be fair, it should come as no surprise that I believe in Apple’s approach to both hardware and software, so caveat emptor.

Hardware

The Nexus One hardware is so close to being a home run that it’s painful to have to bash it around a little bit. But, it misses in a few really major ways. If Google and HTC can solve a handful of annoyances, the Nexus Two could be pure awesome from a hardware perspective. I can’t honestly bestow that adjective on the Nexus One, however, because these few flaws were enough to make me want to throw the damn phone at the wall. Hard. Repeatedly.

First, the good. The phone feels really nice in your hand. It feels like a quality piece of hardware. Not chintzy or cheap like the Motorola Droid or most cell phones. It feels solid and very much like the iPhone. The first impression was very good.

The screen is vivid and high-resolution and looks really, really nice… that is, as long as you are indoors. Outside on a sunny day, the OLED screen is almost completely unusable. That’s kind of a big deal for a phone. I applaud HTC for pushing OLED technology forward, and I can see it being a great technology today for devices that require mostly indoor use, but this is a phone, and as such, I need to be able to use the damn thing outside.

The touch screen is noticeably less precise and sensitive than the iPhone’s. It really makes you appreciate the iPhone’s touch screen, which is something I think most of us take for granted since we’ve had so few points of comparison. The Nexus One’s isn’t horrible, but it’s also not great. Mis-taps are far more common and the finger tracking isn’t nearly as accurate. How much of this is the hardware and how much is the averaging algorithm used to determine where the touch registers, I have no idea.

One real issue I have with all of the Android phones is the four hardware buttons they all have: back, menu, home, and search. Three of the four shouldn’t be there. Coming from Google, I can understand the emphasis on search, but it simply doesn’t belong in a hardware button. I don’t need to search while I’m playing a game, for example. Likewise, the menu button isn’t applicable in all situations, nor is the back button. Of the four, only the home button really needs to be a hardware button, and it’s not a coincidence that Apple made that exact design choice. You have a touch-screen, for crying out loud. Anything that’s context sensitive rather than universal, should be contained in an on-screen control, not a hardware button. Search, back and menu are not universal. Home, power, volume – those you might need at any time and should be hardware.

To make matters worse, the sensors on the Nexus One for the four hardware buttons is not exactly aligned with the silkscreened icons. You have to tap noticeably above the button to get it to register. That was very frustrating for me until someone (from Google nonetheless) pointed out the mis-alignment. Up until then, I consistently had to hit the buttons three or four times to get it to register.

But even worse than that, the home button on the Nexus One is right below the fracking space bar on the portrait keyboard. Combine that with the not-completely-precise touch screen, and you have a UX disaster. I can’t tell you how many times I’ve been typing and ended up leaving my application due to accidentally hitting the home button. Leaving an application mid-sentence is hardly a good user experience.

The Nexus One also has a Blackberry-style scroll ball. It serves no purpose whatsoever. You can use it for navigation on Android’s home screen, and in some table views, but it’s never necessary (touch screen, remember?) and never offers a better experience than the touch screen. I’ve seen the argument that it could be used for games. Well, I tried a few games that supported the trackball. It sucks as a game controller. It sucks in general. It should never have been put into production. For the most part, you can just ignore it, but you can’t help but to wonder what the thought process was that led to this completely superfluous control being included.

The final issue I have on the hardware side is minor, but the SIM card can’t be removed or inserted without taking the battery out, which means you have to re-boot. And, on the Nexus One, rebooting takes quite a long, long time. Most people won’t need to do this very often (if ever), but as I had to do it several times, I really came to appreciate the location of the iPhone’s SIM card slot and the fact that the SIM card can be hot swapped.

When it comes down to it, the Nexus One gets it about 90% right. Unfortunately, it’s that last 10% that really seals the deal for most non-geek consumers, and the Nexus One just doesn’t have it.

But the Nexus One does have a few advantages over the iPhone. Unfortunately, most of these advantages will only appeal to geeks and not the larger consumer base. For one thing, it has a faster processor and a much higher resolution screen. The faster processor isn’t all that obvious in day-to-day use, however, because Android 2.1 doesn’t seem to leverage the GPU for most OS-level tasks. Things like table scrolling (for example) are often skippy, which is just inexcusably bad engineering given the 1Ghz chip and powerful GPU inside. That big screen is also partially responsible. The Nexus One has an awful lot more pixels to push than the iPhone, and the end result is that it simply can’t do as much work per second as the half-year older iPhone 3Gs, though a firmware update might be able to rectify that, at least for games specifically written to take advantage of the GPU.

The higher resolution screen makes text and drawn elements look a touch smoother and less jaggy, but there’s a high price for something most people won’t notice. I could see a difference when placed side-by-side next to my iPhone, but the Nexus One’s screen didn’t jump out at me as that much noticeably better than the iPhone’s screen, and even when placed side-by-side, the difference wasn’t earth-shattering. Besides that, having all those extra pixels to display text smoothly is rather a waste given that text on the Android’s quite simply looks like ass.

The iPhone’s 150 ppi screen has a higher-resolution that the vast, vast majority of LED or CRT devices ever created. I don’t know of a single person who ever looked at the iPhone’s 150 ppi screen and said “if only I needed a more powerful magnifying glass to see the jaggies”. The Nexus One’s screen seems like a pure case of trying to compete on specs without regard to whether there was any need for a better spec. In other words, a solution looking for a problem. After all this time with the Nexus One’s “better” screen, I don’t find my iPhone to be at all lacking in that regard.

“Because you can” is rarely a good reason for including a feature.

I do like the ability to mount the device to gain access to its contents, but most people won’t care about that, and for the average user, not having tight integration with iTunes and iPhoto makes this phone that much less accessible.

The last hardware feature I’ll mention is the haptics, which I’m ambivalent about. The Nexus One issues a little shiver when you touch certain onscreen controls. Most of the places where I appreciated having it was due to some other design flaw that the haptics compensated for, such as the misaligned hardware button sensors. It’s kind of a neat feature, but I don’t miss it on my iPhone. If it could be designed to tell you specifically which button was pressed instead o just that some button was pressed, I could see it as being a very useful feature, but as it is, it really doesn’t add much value.

Software

The Neuxs One shipped with Android 2.1. As far as I know, it was the first and so far is still the only phone to ship with this version of the operating system. When I first got the phone, the most noticeable aggravation for me was the lack of multi-touch gestures such as pinch-in and swipe in the delivered applications like the browser. An update has since added these gestures, and it helps some. Not enough, but some.

As I mentioned earlier in the hardware section, one big shortcoming of the Nexus One is the fact that it doesn’t seem to leverage the full processing power available to it very effectively. The hardware in the Nexus One is capable of doing amazing things, yet everyday tasks like scrolling are still often jumpy and unimpressive looking. Games written to use the GPU (presumably using OpenGL ES) seem to be better in this regard, so it’s not that the hardware isn’t up to the task (based on specs, it’s quite impressive actually), it’s just that the operating system isn’t taking full advantage of the hardware.

Android’s home screen can be configured in a much greater variety of ways than the iPhone’s. In addition to application icons, you can also add “widgets” for searching the web, reading headlines, or discovering the weather. Third party developers can also develop additional widgets. Not a bad idea, and it reminds me of Mac OS X’s dashboard. The implementation isn’t as polished as I’m accustomed to with Apple products, however. The shipped widgets lack a uniform aesthetic and some of them are just ugly (Analog Clock, I’m looking at you!). With a little nicer execution, this could be a really great feature, but it left me unimpressed.

One of the small things that really bothered me on the Android is the lack of scroll bounce. I always thought it was silly eye-candy on the iPhone when you scrolled to the end of a list and it went a little past the end and bounced back. But you know what? That’s powerful visual feedback. You know that you’re at the end of the list. On the Android, when I came back into an application with a scroll list, I often didn’t know if the phone was frozen or if I was just already the top or bottom of the list. This is especially important in apps like Twitter apps where the contents of the list may have changed since last use. That scroll bounce is part of that last 10% I was talking about, and the Android software doesn’t have it either, for the most part.

“Multitasking” is one of the much lauded benefits of Android over the iPhone. Of course, it’s not really multitasking. Everybody except most “tech pundits” knows that the iPhone’s Mach kernel supports full preemptive multitasking and also knows that at any given moment there are somewhere on the order of twenty daemons and other processes running on a stock (non-jailbroken) iPhone.

What people mean when they misuse this term is the ability to run more than one GUI application at a time, the way we do on our regular computers. And the Android certainly allows this. Only, it’s not really a point in Android’s favor. When you hit the home button, the previous application keeps running, which means it keeps eating memory, keeps using processor cycles, and keeps eating battery. To truly quit most applications requires a multi-step navigation that is neither intuitive nor well-documented. The ability to have more than one GUI application at a time on a device with such a small screen isn’t as important as some make it out to be, since you can’t actually interact with more than one a time.

In the early days, I was a big proponent of having Apple add the ability to run multiple apps to the iPhone OS, but I’ve come to change my mind on that. I think most people don’t need it and Android’s implementation only confirms it. Yes, the app keeps running, so when I go back to it, it doesn’t have to relaunch. But, if the app were designed to go back where I left it and launched quickly, the end result would be exactly the same, only without the wasted processor cycles and battery time, not to mention the confusion about which apps are currently running. Most people don’t want to ever see a process monitor or to even know what one is.

To the extent that there may be a need to have more than one GUI app going at a time, it’s also a non-trivial problem to solve. Oh, the technical problem has long-since been solved, but the user experience issues around presenting multiple GUI applications on a small screen have not yet been adequately resolved. Android’s solution is simply bad. If Apple does offer a solution to allow more than one GUI application at a time, I’m sure it will be much better, but given the choice between having only one GUI app running and Android’s system of keeping everything running, I’d rather have only one app running.

This post has gotten longer than I intended, so I’m going to finish off with just a general statement. Basically, when it comes right down to it, most of the delivered applications on Android just aren’t as good as the apps that come on the iPhone. The differences are minor and often subtle, but they make a big difference in the user experience.

To give one example: setting an alarm. Both Android and the iPhone have the ability to set alarms and act as an alarm clock, buzzing and playing a sound at a given time. The day of my flight home from the U.K., I set alarms on both devices (I’m paranoid bout missing flights). It took me quite literally three to four times as long to configure and enable the alarms on the Nexus One as it did on the iPhone. Add that extra time by the number of tasks you do on your phone in a given day, and it can add up to a considerable amount of time.

To make matters worse, on the Nexus One, if you snooze an alarm, there’s no obvious way to prevent it from going off again at the end of the snooze interval. You can turn off the alarm, but the snoozed alarm still goes off after the interval (in my case, while in the shower). On the iPhone, if you go manually turn off the snoozed alarm, you never hear it, which is as it should be.

Conclusion

Overall, it’s just a general lack of attention to detail that defines the differences between the iPhone and the Nexus One, and that lack of attention to detail exists on both the hardware and software side. The Nexus One isn’t a bad phone by any stretch of the imagination. Had it come out three years ago, it would have been revolutionary. But you do have to train yourself to Android’s idiosyncrasies much more so than the iPhone. If you’ve never owned or used an iPhone, you’ll probably find the Nexus One to be a very adequate device and will assume that the minor annoyances are just part of owning a smart phone. If you’ve owned an iPhone for any length of time, you’ll likely feel, as I do, that it’s a rather half-baked device with some good ideas but generally weak execution.

Then, the question becomes, are the other advantages, such as it being a truly (mostly) open platform or being able to not use AT&T as your mobile provider important enough to you to justify using a less-polished device. Certainly, the answer for some will be “yes”. For me, it’s a resounding no. I would never willingly choose the Nexus One over my iPhone for daily use, nor would I recommend it to someone who didn’t explicitly state that avoiding AT&T or using an open platform was among their top priorities.

But, if the iPhone is not an option for one reason or another, the Nexus One is definitely a most adequate phone. I’d gladly recommend it over any currently available Blackberry, Windows Mobile, or Palm smartphone.



Android App – Spend Smart

Spend Smart is my first published Android application that helps you track your personal finances. You can find it in the Finance section of the Android Market. Its features include:

* Multiple accounts


* 4 types of accounts: asset, liability, income, and expense


* Monthly budget


* Check transactions


* Password projection

It’s FREE. Please try it out and help me spread the words. Also, please join its Facebook Page at . Thanks.

[Via http://codinghard.wordpress.com]

Android Braodcast Receivers

As we all know There are four types of components which can be used in Android, a good android developer should be Familiar with these components and the idea behind them in order to design and implement efficient applications.
I think it is safe to say that the most significant thing about android is the sharing philosophy on which it is based and understanding this concept could help us to have a more solid view on when and how to use each one of these component types.
Android applications can share their stuff and interact with each other and that is the main idea behind Content Providers,Services and Broadcast Receivers in Android: Sharing Data, Services and Events.
In this article I am gonna talk about Broadcast Receivers in Android and I will try to cover almost everything that we might need to know about them in different situations. Broadcast Receiver is actually a mechanism to send and receive events so that all interested applications can be informed when something happens. there are heaps of System events which get broadcast by Android OS such as SMS related events, Connectivity related events, Camera related events and many more.
We are able to broadcast our application specific events as well, so for example if we have a RSS news reader application and we want to do something whenever a new item is available, it would be a good idea to use Broadcast Receiver method, not only because it will separate your event handling code but most importantly because it will enable other applications to register and receive a notification whenever that event takes place.
The first thing we will be talking about is how to implement a Receiver and register it so that you can receive events that you want to receive. Implementing a Receiver is pretty simple and straight forward, all you need to do is to extend Broadcast Receiver class and override its onReceive() method. once you implement your Receiver you need to register it and determine what kind of events you are interested in to be sent to you.
For example if you want to get notified whenever there is an incoming call or SMS you will need to add something like this to you manifest file :

      

and here is CallAndSMSListener class source code :

public class CallAndSMSListener extends BroadcastReceiver {

 @Override public void onReceive(Context context, Intent intent) {

  String action = intent.getAction();         if(action.equalsIgnoreCase("android.intent.action.PHONE_STATE")){          if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(                              TelephonyManager.EXTRA_STATE_RINGING)) {

           doSomething(intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER));          }                  }         else {

         Bundle bundle = intent.getExtras();         Object[] pdus = (Object[]) bundle.get("pdus");         SmsMessage message = SmsMessage.createFromPdu((byte[])pdus[0]);         if(!message.isEmail())             doSomething(message.getOriginatingAddress());

         }

 }

 private void doSomething(String number){  Log.d("<<<>>>",number); }

}

In this example I have registered my Receiver in Manifest file, but we can also register a Receiver dynamically in our code like this :

        this.reciever = new ConnectivityListener();        IntentFilter filter = new IntentFilter();        filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);        registerReceiver(this.reciever, filter);

in this case after calling registerReceiver our ConnectivityListener will be notified when Wi-Fi state or Connectivity state of mobile phone change. Just remember to unregister all Receivers that you have registered in your code using unregisterReceiver() method.
ConnectivityListener class looks like this :

public class ConnectivityListener extends BroadcastReceiver {

 @Override public void onReceive(Context context, Intent intent) {

  String action = intent.getAction();

    if(action.equalsIgnoreCase(WifiManager.NETWORK_STATE_CHANGED_ACTION)){

     int state = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN);     //Do Something.....    }    else {

      NetworkInfo info = (NetworkInfo)intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);    //Do Something.....

    }

 }

}

So far we have seen how to register a Receiver both statically and dynamically,but it is just half the story; as i said we can not only receive events but can also broadcast our events either locally for just a specific Receiver or globally for all other applications.
In my application I have something like this :

 Intent intent = new Intent(this,MyReceiver.class); intent.putExtra("Message", "Something has Changed!!");

 this.sendBroadcast(intent);

As you can see i specified the class type for the Intent, so when i broadcast the Intent, only MyReceiver will be notified. if we wanted to globally broadcast it we should set an Action string for our Intent so that all receivers which have indicated that action in their intent filter would be notified.
this is what you need to put in your manifest file for this example:

   

and MyReceiver class:

public class MyReceiver extends BroadcastReceiver {

 @Override public void onReceive(Context context, Intent intent) {

         String msg = intent.getStringExtra("Message");            Vibrator vib = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);

         Toast.makeText(context, msg, Toast.LENGTH_LONG).show();         vib.vibrate(2000);

 }

}

Sometimes you dont want to broadcast an event directly from your activity but for whatever reason you want another application do that on your behalf, in these sort of cases you should use PendingIntent class instead of Intent. AlarmManager class is a good example to illustrate this kind of scenarios, AlarmManager class allows you to set a time to alarm system goes off, you can also specify a PendingIntent object to be broadcast when alarm goes off.
I have used this piece of code in my Activity onStop() method :

         Calendar calendar = Calendar.getInstance();         calendar.setTimeInMillis(System.currentTimeMillis());         calendar.add(Calendar.HOUR, 4);

         Intent intent = new Intent(this, Receiver.class);         intent.setAction("Start");         PendingIntent sender = PendingIntent.getBroadcast(this,                 0, intent, 0);

         AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);         am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);   

It means that alarm goes off 4 hours after each time we close the application and when it happens it also broadcast the specified intent it has been provided earlier.
and here is the content of Reciever’s onRecieve() method :

   Intent startIntent = new Intent(context, MainActivity.class);   startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

   context.startActivity(startIntent);

so simple, it just starts our activity again. 4 hours after that we close the application the alarm goes off and the application comes up again.

when we send an ordinary broadcast all Registered Receivers will get notified but the order in which they are notified is undefined, in other words you wouldn’t know which Receiver is called first and which one last. another thing to remember is you are not allowed to stop the propagation of an event in a Receiver. but what if you really need to be able to stop the propagation of an event in an Receiver so that other receivers dont get it or what if you need to set an order according to which Receivers should be called, thankfully it’s not a big deal, all we would need to do is to call sendOrderedBroadcast() method instead of sendBroadcast() to solve the problem.
For example I have used this code in my application :

  Intent intent = new Intent("com.test.ACTION");  intent.putExtra("Random", (int)(Math.random()*10));

   this.sendOrderedBroadcast(intent,         null,         new LastReceiver(),         null,                       Activity.RESULT_OK,         null,         null);

I also have two receivers in my manifest file :

           

                  

When we call OrderedBroadcast() method we have two registered Receiver which need to be called, but as you can see we have used android:priority attribute for them, it means that Receiver with higher value will be called first, in this example FirstReciever is notified first and then SecondReciever get notified if FirstReciever have not aborted the intent.
LastReciever is always gonna get notified regardless of what has happened in other Receivers.
and here is these three classes source codes :

public class FirstReceiver extends BroadcastReceiver {

 @Override public void onReceive(Context context, Intent intent) {

            int value = intent.getIntExtra("Random", -1);

     Bundle bundle = getResultExtras(true);             bundle.putInt("FirstReciever", value*13);     setResultExtras(bundle);

            if(value < 0 || value%2 != 0)              abortBroadcast();  

 }

}

public class SecondReceiver extends BroadcastReceiver {

 @Override public void onReceive(Context context, Intent intent) {

  int value = intent.getIntExtra("Random", -1);    if(value > 0){   Bundle bundle = getResultExtras(true);    bundle.putInt("SecondReciever", value*17);      setResultExtras(bundle);     }   

 }

}

public class LastReceiver extends BroadcastReceiver {

 @Override public void onReceive(Context context, Intent intent) {

   Bundle bundle = getResultExtras(false);   StringBuilder builder = new StringBuilder();   builder.append("---Last Reciever---n");   builder.append("<<>>"+intent.getIntExtra("Random", -1)+"n");   builder.append("<<>>"+bundle.getInt("FirstReciever")+"n");   builder.append("<<>>"+bundle.getInt("SecondReciever")+"n");

   Toast.makeText(context, builder.toString(), Toast.LENGTH_LONG).show();

 }

}

Do not forget to add these Permission if you want to test these examples:

                  

Google Nexus One – a threat to iPhone

Google has recently announced Google Nexus One, the Google phone which challenges the throne on which the iPhone had been reigning thus far. With this phone, Google has entered the scenario with an innovation that simply pushes the limits a level higher. Nexus One, the Google phone, surely challenges the throne on which the iPhone had been reigning thus far.

The following 6 evident reasons why the Google Nexus 1 can possibly better than the iPhone’s status in the market.

1. Screen – First things first. When you look at a smartphone, the first thing that catches your attention is its screen. Clarity and size of the screen would be a major turn on for any smartphone lover. Well, in this aspect, the Nexus One surpasses the iPhone easily given its bigger screen and also higher resolution which contributes to better clarity.

Nexus One has a 3.7-inch screen compared to a 3.5-inch screen of an Apple iPhone.
Google Nexus One – a threat to iPhone
The Nexus one also has a widescreen WVGA AMOLED touchscreen with 800×480 pixels resolution display where as the iPhone has a 480×320 pixel resolution at 163 ppi. This simply means that Nexus One is more appealing when it comes to watching video and playing games or browsing the net as it gives sharper details and livelier images.

2. Camera – Next thing one would look for in a high-end phone would be its camera. Well in this aspect the Nexus One again defeats the legendary iPhone conveniently as the Google phone has been blessed with a huge 5-megapixel camera which is way ahead of the 3.15-megapixel camera of the iPhone 3GS. The zooming capability combined with the LED flash of Nexus One leaves the iPhone behind as the Apple device lacks both zooming option and a flash. Nexus One users can also include location of photos by syncing it with the phone’s AGPS receiver.

3. Processor – Any smartphone would surely boast about its processor and when it comes to the Nexus One it can confidently scale above the iPhone with its powerful Qualcomm Snapdragon 1GHz processor. The iPhone, on the other hand, has ARM Cortex A8 600MHz processor, which is very slow and is nowhere close to the performance of the Nexus One snapdragon processor. In other words, things seem to happen faster and crispier on a Nexus One than on an iPhone.

4. Operating System – First and foremost, the Android OS used in Nexus One is an “Open system” so that if someone creates a better browser, address book, calendar, or email client, you can install it. Now Nexus One is the first smartphone using the Android 2.1 operating system which is an advanced version of the Android 2.0 OS used in Motorola Droid. The new operating system has better graphic, widgets and customizable homescreens. It also makes multitasking much easier and you can listen to music, surf the net and call a number at the same time without any hindrance or any delay.

The open source platform further enables a user to carry out things that are not possible on an iPhone because of its proprietary iPhone OS (based on Mac OS). Things such as getting updates from Facebook or receiving a Tweet from a friend on the phone, sending emails and listening to music from a website, all can be done in one place rather than spread across programs.

5. Memory – It’s always better to have more. And when it comes to storage capacity surely higher storage is always an added advantage. Nexus One comes with a 512MB RAM which makes it faster compared to the iPhone which has a 256MB RAM memory.
Also Nexus One comes with a 4GB microSD card that can be fitted in its microSD card slot, and the option to expand up to 32GB makes storage of songs movies and other files makes Nexus One better and more convenient than iPhone, which comes with only two choices of internal storage – 16GB and 32GB.

6. Voice Recognition Feature – This feature has been mentioned in the specs of almost all the smartphones in the market but none could give the purpose and the real usage for such a feature. Nexus One, on the other hand, has taken this character of the phone a notch higher and has made it look really useful. The voice recognition feature is compatible with almost all the software and applications and is of practical use, as users can use the voice recognition feature for text messages, emails, updated of community sites, search Google, call contacts, as well as obtain driving directions. On the other hand, the same function in iPhone is of little use as it is not compatible with most of the applications and this makes the feature rudimentary.

The Nexus One surely wins the battle ‘big time’ in this aspect. The Nexus One, given its superiority to the iPhone is extremely reasonable, as it’s cheaper than the iPhone. Nexus One comes at $529.99 unlocked, which is about $70 cheaper than iPhone 3GS (16GB). And a subsidized Nexus One on a 2-year T-Mobile contract comes at $179.99, which is $20 cheaper than a subsidized iPhone 3GS and hence it’s a better value for money product, given its superiority in its features and functionality.

Nexus One


nexus ryhmes with my name? can you figure it out haha yes i know lame but im extremely bored! can you blame me. anyways couldnt really find anything on this topic today slow day for consumer electronics. but enjoy this one.

Q: In reviewing Google’s new Nexus One phone, you said its memory is expandable to 32 gigabytes, but that the portion of memory used for storing apps is just 190 megabytes. Is the expandable memory unusable for apps? Is memory for apps expandable?

A: On the Nexus One, the Motorola Droid and other Android phones, there are two main types of memory: one internal, which is fixed, and the other external, in the form of removable memory cards, which the user can increase in capacity. In general, apps can be stored only in a small, restricted portion of internal memory, which on the Nexus One is a meager 190 megabytes. Although there are exceptions, apps can’t generally be stored on the roomier removable memory cards, though some files they rely upon, like graphics, can be offloaded onto the cards.

Google acknowledges this is a limitation, but says it designed the system to protect apps from being copied by merely removing the memory card and inserting it into a PC which could duplicate its contents. The company says it is working on ways to secure the memory cards to the satisfaction of the app developers, so that apps could be stored on them. Meanwhile, Android phones can’t hold nearly as many apps, especially sophisticated large apps, as some users might like.

Q: AT&T and Verizon are each saying that they have wide areas of coverage. Can you tell me who really has the widest area of coverage for cellphone signals?

A: If you are comparing basic cellphone signal availability, each of the two leaders has a very wide footprint. However, Verizon claims a larger geographic footprint when it comes to 3G networks, which are currently the fastest widely deployed cellular data networks. AT&T claims its 3G is the fastest. But, partly because AT&T has the iPhone, which is both popular and makes heavy data usage very easy, its network too often seems overwhelmed in large cities, in my experience. Verizon so far lacks a specific phone with similar popularity which users employ to consume as much data, and thus network capacity, as iPhone users typically do. However, iPhone-class phones like the Motorola Droid and the Nexus One, if they sell well, will test the Verizon network’s robustness.

Q: Any idea how well or badly the new Google Nexus One syncs with Macs for things like Calendars, Notes, Address Books etc.?

A: The Nexus One doesn’t come with software for syncing with computers, whether Macs or PCs. It is primarily intended to sync with online calendars and address books, not those stored locally on computers. It also lacks software for syncing even larger files, like music, photos and videos. Its method for transferring those files from Macs and PCs is to connect the phone via a USB cable, causing the phone to appear to the computer as an external hard disk. You then must manually drag and drop files onto the Nexus One’s icon. In other words, Google doesn’t supply any equivalent to Apple’s iTunes or the BlackBerry media-syncing software. However, the third-party program doubleTwist, available at doubletwist.com, is designed to function as a sort of iTunes for syncing Android, Palm and BlackBerry devices. It runs on Macs and PCs and even looks a bit like iTunes. But it only syncs media files, not calendars or address books

original article.

Category:DVD Home Player/Recorders
Products featured on bayho: 10.2″” Portable DVD Player

Amazing Android Apps – Text Edit

I have been using Android-powered phones since the release of the g1 and have always been happy with the Android Market. One of the first things I did after buying the g1 was make a list of what I felt were “essential apps”. One of the tools I needed was a text editor, because, let’s face it, with a “mini computer” in your pocket you’ll need a way of creating and editing text files. After testing several text editors I found that Text Edit was the best.

Text Edit is, in the words of the developer, “a simple notepad app for the Android OS“. It opens, edits and saves text files on the SD card. However, I feel it’s much more. I find it difficult to put a price on an app that is essential for everyday use, and this app is “free”. Text Edit allows me to create and edit text files while I’m on-the-go. I regularly have 20 or so text files that I use on a daily basis ranging from a personal journal to taking notes in a conference.

Features

  • Open, edit and save text files
  • Saves state when switching to other apps
  • Includes a file browser to select files
  • List of recently opened files
  • Rename and delete files
  • Email file as text or attachment
  • Optional line wrapping of long lines
  • Optional auto-correct for misspelled words
  • Automatic capatilization of the first word in a sentence
  • Change font size and type
  • Change font and background colors

Using Text Edit
The user interface is clean and includes several features to let the user personalize it. The standard menu has options for New File, Save, Save As, Open File and Recent Files. Extended features, available from the “More” submenu, allow a text file to be emailed which comes in quite handy if you’re in a waiting room and want to write a bash script or make a grocery list.

The iPod Touch, Android and the Carrier-Free Cellphone

Om Malik has a great piece up today on the iPod Touch, calling it the ace up Apple’s sleeve. In his words:

“it is just like an iPhone except that it has more storage, is skinnier and has none of the hassles of dropped calls.”

In other words, the Touch is a better device than the iPhone because it doesn’t have a primary identity as a phone. You can still make voice calls with it (using a VOIP app like Skype), but you don’t have to have a service contract with AT&T (or any other carrier) to do so.

In fact, the Touch is a good proxy for the future of mobile communications: it’s a really great, really small mobile computer that covers every communications need – IM, email, voice, SMS – equally gracefully and at much lower cost than any contract-based cellphone. If you want to talk on the road you’ll still want a wireless data connection, but that’s a commodity you can obtain from lots of providers, often under pay-as-you go pricing models.

While the iPhone gets all the press, the Touch represents 40% of the installed base of iPhone OS devices and a roughly equal share of mobile data traffic, according to recent stats from mobile analytics provider Flurry.

With relatively few handsets in market, Google’s Android operating system is also climbing the charts as a source of mobile data requests, and – by watching what’s happened with the Touch – it’s not hard to imagine a near future with tens of millions of Android-powered devices playing a similar role. Some of these will be “cellphones” sold by wireless carriers, but I’m betting an even larger number will be Touch-like entertainment and communications devices that perform all the functions of a smartphone, but without a cellphone contract.

Google is rumored to be building a “Google phone” of its own, but if they do in fact have a hardware product up their sleeve, I’m guessing it’s more like a Touch than it is like a phone. And if they don’t build it, some smart handset or laptop maker like HTC, Acer or Asus will.

The future of cellphones is already here, and – in Om’s words – it’s “just like an iPhone except that it has more storage, is skinnier and has none of the hassles of dropped calls.”