I got a letter from AT&T today. It read: "Dear Omari, You recently disconnected the qualified number above and we at AT&T want you back. Here are some compelling reasons that we've designed to make it as easy as possible: [blah blah blah]"
So here is my response, an open letter to AT&T:
Dear AT&T,
As you may have noticed, I've left you for Sprint. My service has been cancelled, and my iPhone is up for sale on eBay. I've left you my early termination fee and some rollover minutes in the fridge.
Don't get me wrong, there were a lot of good times. We spent 10 mostly-wonderful years together. You were my first mobile provider, back when you were called Cingular. And you introduced me to smartphones by providing me with the iPhone. I thought we would last forever, or for at least a few more contracts.
But I've moved on. I'm an Android man now. And while my phone has issues and I may return to the iPhone someday, I think I am done with you for good, AT&T. You just haven't catered to my needs. Sure, you have fast 3G, but that's about it. Your coverage is terrible in LA and worse elsewhere; your prices aren't very low; your "4G" is just embarrassingly slow, especially uploads. Your Android phone selection is poor and your Android phones are bloated and locked down. You wouldn't even allow non-Market apps until a few months ago! And your ridiculous anti-tethering policy is not Net Neutral. I lived in a constant state of fear, worried that I might get charged for a tethering plan when I used my jailbroken iPhone as a wifi hotspot. It was my shameful secret. I had to tell my friends that my phone fell down some stairs and couldn't tether anymore.
And then I heard that you want to merge with T-Mobile and ruin a perfectly good mobile carrier. I remember the moment I read the news—I spent all day crying. Why would my mobile carrier want to create an carrier oligopoly and a GSM monopoly? It was all too much to bear.
Sprint knows how to make a man feel good. I've got real 4G now and a powerful Android phone that'll be rooted soon. I've got unlimited texting. And unlimited data (with no throttling!). I even have mobile to mobile to any mobile, not just to Sprint phones. But most importantly, I can make a phone call from wherever I want. In the parking lot at work, in the Samurai Sam's near Bristol Farms… Sprint and I have done it everywhere that you refused to go.
I wish you luck in your endeavors, though I hope that merger dies in a fire.
Omari
Sunday, July 31, 2011
Friday, July 8, 2011
iPhone 4 Review, 1 Year Later
Just over a year ago, Apple released the iPhone 4 for AT&T.
Why review the phone now? A couple of reasons. 1) I just jumped ship to Android, so I need to review the iPhone before I sell it; 2) for some reason, no new iPhone was released this summer, so the iPhone 4 is still the newest iPhone; and 3) even a year later, the iPhone 4 is still one of the best smartphones available.
Let's break down the phone by comparing it to the newer Android phones that it is currently competing against.
Overall Experience
It's hard to compare the iPhone to non-Apple phones, mostly because I have such little experience with them. But, having owned an Android phone for a week now, there are some features (and lack thereof that stand out).
The fact that Apple tightly controls the software and hardware of the iPhone from start to end has become clear to me. This is good and bad. The iPhone may lack in features and developers may hate Apple's draconian app store approval process, but the iPhone is a solid phone, inside and out. The only "major issue" with the iPhone 4--hardware or software--is the signal attenuation issue, which is easily solved by a piece of tape or just holding the phone carefully. Well, all the iPhones also suffer from a generally crappy signal, especially on AT&T's crappy network, but I suspect that is a general smartphone issue. I wish someone would design a smartphone with an external antenna.
This is in contrast to Android phones which have features galore and are customizable as all get-out, but many seem to suffer from more severe and less fixable issues. My new HTC EVO 3D seems to have an issue with crappy sound recording and low sound playback. Others have reported a tinny sound during calls, which I have noticed, but not 100% of the time. Android had an infrequent issue that would send text messages to the wrong recipients. This was fixed in version 2.3 of the OS, but, of course, many Android phones have yet to receive this updated version of the OS. The Nexus 4G has slow 4G issues. Several Android phones (EVO 4G, Thunderbolt) have terrible battery life.
There are plenty of reasons for this, one being that Apple has the advantage of being able to focus all of its energy on just one phone. But regardless of reason, the consistent, bug-free experience of using an iPhone is a noticeable advantage.
But enough about experience. Let's get to specifics.
Design
At 9.3mm deep, the iPhone is still quite thin. It's thinner than new Android phones like the EVO 3D and the Atrix. It's got a glass back which makes it pretty and easy to clean, though is crackable if dropped. The size is nice: it feels comfortable in your hand, although it does limit the screen size (see Screen section).
The main flaws of the design versus other phones are the lack of a physical camera button (like the EVO 3D has), proprietary port (an Apple cable is required instead of a mini HDMI or mini USB cable) and the lack of a removable battery. Apple will probably never shift on their unremovable battery and proprietary port, but hopefully the iPhone 5 will see a dedicated camera button.
The iPhone having one physical button on its face is a drawback. It's less efficient than phones with multiple buttons. How do you search for something in iOS? Swipe left until you get to the search panel. In Android, just press the Search button. To go backwards in an app (like going to a previous webpage) you have to press something on the screen. Android has a dedicated Back button. Settings for an app? Use the Settings button in Android. Take a picture? For iOS it means pressing a little camera button on the screen, which is damned impossible if you want to take a picture of yourself with the good camera (the back camera). The EVO 3D (and some other Android phones) have a dedicated camera button. The only button omission on the EVO 3D and I think all other Android phones is a Vibrate/Silent Ring switch.
Cameras
The back 5MP camera with flash is quite good and is comparable to those found on new Android phones. At this point (the 5 megapixels point, that is) the measure of a camera's quality will be more about its sensor size, since upgrades in the amount of pixels means increasingly less. Since phones rarely list sensor information in their tech specs it's hard to compare. What I can say is that the iPhone 4, the Atrix, and the EVO 3D all have 5MP back cameras with flash capable of taking 720p video.
The front facing camera is less competitive as it only has VGA resolution (640x480) instead of the now standard 1.3 MP. But it does the job.
Screen
A lot of Android phones (EVO, Epic, Thunderbolt) have large 4.3" - 4.5" screens, and I feel those are better because you can more easily see what you're doing. Big screens mean big phones though and not everyone wants a huge phone filling up their pocket. The iPhone has a 3.5" screen, which feels small to me.
However, that small screen makes the resolution that much more impressive. Somehow, Apple crammed a 960x640 pixel screen into 3.5 inches making for a fabolous 326 pixels-per-inch. That's better than the qHD screens (960x540) found on the newest Android phones like the EVO 3D.
The one thing the iPhone 4's screen doesn't have is the brilliance and contrast of a Super AMOLED (let alone the newer Super AMOLED Plus) screen. The SAMOLED tech found on many Samsung Android and Windows Phone 7 screens is truly a beauty to behold, with blacks so dark it's hard to tell where the screen ends and the phone's black plastic begins. And forget trying to look at your iPhone in direct sunlight on a sunny day. Unless you have the brightness turned all the way up, you might as well be looking at a blank screen.
Surprisingly, even on the EVO 3D's non-SAMOLED screen, I have found it to be brighter with a better contrast than the iPhone 4's screen.
Battery
While the iPhone 4's battery is smaller (1420 mAh) than some new Android phones (like the EVO 3D's 1730mAh), the iPhone simply uses its battery more efficiently. When my iPhone was new, I could probably get three days' uses out of it with mild use and leaving 3G on. I doubt my brand new EVO 3D could last a day even with 4G turned off.
I used to think that multitasking ate up the battery on Android phones, but, looking at the battery usage on a my EVO 3D and a friend's Samsung Captivate, powering the display takes a greater percentage of the battery life than all the other apps, services and wireless technologies put together. This is probably why Samsung devices (what with their SAMOLED screens) get such great battery life. I haven't done enough research on all Samsung phones, but the Galaxy S II (not out in the US yet) reportedly has better battery life than the iPhone 4. I don't know of any other phones that best the iPhone 4 in battery life.
Speed
Speedwise, the iPhone's A4 chip is on par with any Android phone I've ever seen. There is little lag on the iPhone 4 (though jailbreaking will slow you down). Similarly, jumping around a fast Android phone like the EVO 3D (which uses a dual-core 1.2 GHz Qualcomm MSM8660) is like flying on a jet made of greased lightning. However, I'd wager that new Android phones' hardware is faster than the iPhone 4 simply because they are also handling true multitasking and background animations without skipping a beat.
Data Speed
The iPhone doesn't have any sort of 4G antenna yet. What this means is that while AT&T's 3G is fast (I could get near 2Mbps sometimes, some people in other areas get closer to 5Mbps) and Verizon's 3G is fast (but slower than AT&T's), it's slower to download movies, music and web pages than phones that use Sprint's 4G (WiMAX) and (sometimes) AT&T's 4G (HSPA+) and much slower than Verizon's 4G (LTE) and T-Mobile's 4G (HSPA+). What's interesting is that AT&T's 4G is spotty. The uploads are still slow and, at least when it first came out last February, the Motorola Atrix 4G had slower data downloads than the iPhone 4. So the iPhone 4, even without 4G data, may still have the fastest Internet access out of all AT&T phones.
Apps
The iPhone has more apps. I think. I was looking up the numbers and found this article talking about how it doesn't really matter. They're right. Both have more third party applications than I could ever hope to download and check out, let alone actually use.
One argument commonly given by iFans is that Apple has more "quality" apps in their App Store. However, fandroids are quick to point out that Android has more free apps in Android Market (and various other Android app stores). My personal opinion is that good, quality Apps are easier to find in Apple's App Store because of good organization and Apple's walled garden keeping a lot of crap apps out; but Android has more Apps that provide good functionality (video chat, widgets, synching options, etc.) because of the openness of the platform.
OS
UI-wise, iOS is more intuitive. Perhaps it's because I've been using it for over 2 years, but I don't think so. I have long believed that Apple has the world's best GUI designers working for them. The simplicity and restrictions make things easier. Where are all the apps in iOS? Press the home button. They're right there. What about Android? They're in the list of Applications, which requires you to press the Home button and then the Apps button. Some are also on your home screen, perhaps as an icon, perhaps as a widget. If it's a setting, you can set up a shortcut. But not all settings can have shortcuts. Notifications? In iOS, it's that big message box covering your screen (until iOS 5 comes out). Notifications are annoying, but very easy to see what's going on.
But functionality-wise, the iPhone 4 is still behind Android, and probably WebOS too. iOS lacks real multitasking, wireless synching, a halfway decent notification system and Adobe Flash. And, sweet mother of Vishnu, I hate that only some text messages have timestamps. A couple of these features will come with iOS 5 (to be released this fall); but right now, if you are a power user and want to get the most of your phone, the iPhone is not for you. Not only are these functions not included in the OS, but, unlike Android Market, you won't find these apps in the Apple App Store either. Apple doesn't like to approve apps that mess with the core functionality of the phone, which is why they rejected a WiFi Sync app a year ago and then decided to implement it in iOS 5.
Ecosystem
I'd say the main problem with buying an iPhone versus any other phone is that you are tied into the Apple ecosystem. You have to activate and sync your phone using iTunes (the buggiest and biggest memory hog on my computer), you have to use expensive proprietary Apple cables and chargers (though you can find third parties cables for some of them), and you can only wirelessly stream video to your TV via Apple TV. Wired streaming requires special Apple cables. If you're a developer (and I'd like to be one, someday), writing an app for iOS means you have to write in Objective C , Apple's terrible programming language, and you have to do it on a Mac. And if Apple doesn't accept your app, your only option is to try selling your app through Cydia, which only jailbroken iPhones have access to.
By contrast, Android phones aren't tied to anything. You can drop music files on your phone like an external hard drive. If you want to play video on your TV, most Android phones have HDMI out, or DLNA for wireless streaming. To charge your phone, you use a micro USB cable, which is compatible with not just Android phones and also WebOS phones and Blackberry phones, too. If you're a developer (someday...), writing an app for Android means using Java, one of the most popular programming languages and a personal favorite of mine. And that app should also work on the Blackberry Playbook, which promises support for Android apps.
Conclusion
Hardware-wise, the iPhone 4 is behind the newest Android phones, but is still competitive. It has a great battery, still undefeated screen resolution, and dual cameras. Really, the only major drawbacks compared to other phones, hardware-wise, are the lack of a 4G antenna, (which may not be that much of an improvement on AT&T, but would make a huge difference on Verizon) and the external antenna problem. Software-wise, Android has left iOS in the dust in terms of functionality and even the upcoming iOS 5 update won't make the iPhone as functional and customizable as any new Android phone. The only thing the iPhone has going for it, software-wise, is the excellently designed UI and the Apple App Store.
So the iPhone 4 is competitive, but compared to the amazing Android phones out now, it seems a bit dated. For every excellently-designed feature of the UI and solid hardware feature, there's a little feature that it's lacking. If Android was perfect, the iPhone 4 would get a much lower score, but as a useable, enjoyable phone that is perfect for some niche groups, it gets a 7.
Note: Working on another tech-related project, so this blog is still on hiatus until that is done.
Why review the phone now? A couple of reasons. 1) I just jumped ship to Android, so I need to review the iPhone before I sell it; 2) for some reason, no new iPhone was released this summer, so the iPhone 4 is still the newest iPhone; and 3) even a year later, the iPhone 4 is still one of the best smartphones available.
Let's break down the phone by comparing it to the newer Android phones that it is currently competing against.
Overall Experience
It's hard to compare the iPhone to non-Apple phones, mostly because I have such little experience with them. But, having owned an Android phone for a week now, there are some features (and lack thereof that stand out).
The fact that Apple tightly controls the software and hardware of the iPhone from start to end has become clear to me. This is good and bad. The iPhone may lack in features and developers may hate Apple's draconian app store approval process, but the iPhone is a solid phone, inside and out. The only "major issue" with the iPhone 4--hardware or software--is the signal attenuation issue, which is easily solved by a piece of tape or just holding the phone carefully. Well, all the iPhones also suffer from a generally crappy signal, especially on AT&T's crappy network, but I suspect that is a general smartphone issue. I wish someone would design a smartphone with an external antenna.
This is in contrast to Android phones which have features galore and are customizable as all get-out, but many seem to suffer from more severe and less fixable issues. My new HTC EVO 3D seems to have an issue with crappy sound recording and low sound playback. Others have reported a tinny sound during calls, which I have noticed, but not 100% of the time. Android had an infrequent issue that would send text messages to the wrong recipients. This was fixed in version 2.3 of the OS, but, of course, many Android phones have yet to receive this updated version of the OS. The Nexus 4G has slow 4G issues. Several Android phones (EVO 4G, Thunderbolt) have terrible battery life.
There are plenty of reasons for this, one being that Apple has the advantage of being able to focus all of its energy on just one phone. But regardless of reason, the consistent, bug-free experience of using an iPhone is a noticeable advantage.
But enough about experience. Let's get to specifics.
Design
At 9.3mm deep, the iPhone is still quite thin. It's thinner than new Android phones like the EVO 3D and the Atrix. It's got a glass back which makes it pretty and easy to clean, though is crackable if dropped. The size is nice: it feels comfortable in your hand, although it does limit the screen size (see Screen section).
The main flaws of the design versus other phones are the lack of a physical camera button (like the EVO 3D has), proprietary port (an Apple cable is required instead of a mini HDMI or mini USB cable) and the lack of a removable battery. Apple will probably never shift on their unremovable battery and proprietary port, but hopefully the iPhone 5 will see a dedicated camera button.
The iPhone having one physical button on its face is a drawback. It's less efficient than phones with multiple buttons. How do you search for something in iOS? Swipe left until you get to the search panel. In Android, just press the Search button. To go backwards in an app (like going to a previous webpage) you have to press something on the screen. Android has a dedicated Back button. Settings for an app? Use the Settings button in Android. Take a picture? For iOS it means pressing a little camera button on the screen, which is damned impossible if you want to take a picture of yourself with the good camera (the back camera). The EVO 3D (and some other Android phones) have a dedicated camera button. The only button omission on the EVO 3D and I think all other Android phones is a Vibrate/Silent Ring switch.
Cameras
The back 5MP camera with flash is quite good and is comparable to those found on new Android phones. At this point (the 5 megapixels point, that is) the measure of a camera's quality will be more about its sensor size, since upgrades in the amount of pixels means increasingly less. Since phones rarely list sensor information in their tech specs it's hard to compare. What I can say is that the iPhone 4, the Atrix, and the EVO 3D all have 5MP back cameras with flash capable of taking 720p video.
The front facing camera is less competitive as it only has VGA resolution (640x480) instead of the now standard 1.3 MP. But it does the job.
Screen
A lot of Android phones (EVO, Epic, Thunderbolt) have large 4.3" - 4.5" screens, and I feel those are better because you can more easily see what you're doing. Big screens mean big phones though and not everyone wants a huge phone filling up their pocket. The iPhone has a 3.5" screen, which feels small to me.
However, that small screen makes the resolution that much more impressive. Somehow, Apple crammed a 960x640 pixel screen into 3.5 inches making for a fabolous 326 pixels-per-inch. That's better than the qHD screens (960x540) found on the newest Android phones like the EVO 3D.
The one thing the iPhone 4's screen doesn't have is the brilliance and contrast of a Super AMOLED (let alone the newer Super AMOLED Plus) screen. The SAMOLED tech found on many Samsung Android and Windows Phone 7 screens is truly a beauty to behold, with blacks so dark it's hard to tell where the screen ends and the phone's black plastic begins. And forget trying to look at your iPhone in direct sunlight on a sunny day. Unless you have the brightness turned all the way up, you might as well be looking at a blank screen.
Surprisingly, even on the EVO 3D's non-SAMOLED screen, I have found it to be brighter with a better contrast than the iPhone 4's screen.
Battery
While the iPhone 4's battery is smaller (1420 mAh) than some new Android phones (like the EVO 3D's 1730mAh), the iPhone simply uses its battery more efficiently. When my iPhone was new, I could probably get three days' uses out of it with mild use and leaving 3G on. I doubt my brand new EVO 3D could last a day even with 4G turned off.
I used to think that multitasking ate up the battery on Android phones, but, looking at the battery usage on a my EVO 3D and a friend's Samsung Captivate, powering the display takes a greater percentage of the battery life than all the other apps, services and wireless technologies put together. This is probably why Samsung devices (what with their SAMOLED screens) get such great battery life. I haven't done enough research on all Samsung phones, but the Galaxy S II (not out in the US yet) reportedly has better battery life than the iPhone 4. I don't know of any other phones that best the iPhone 4 in battery life.
Speed
Speedwise, the iPhone's A4 chip is on par with any Android phone I've ever seen. There is little lag on the iPhone 4 (though jailbreaking will slow you down). Similarly, jumping around a fast Android phone like the EVO 3D (which uses a dual-core 1.2 GHz Qualcomm MSM8660) is like flying on a jet made of greased lightning. However, I'd wager that new Android phones' hardware is faster than the iPhone 4 simply because they are also handling true multitasking and background animations without skipping a beat.
Data Speed
The iPhone doesn't have any sort of 4G antenna yet. What this means is that while AT&T's 3G is fast (I could get near 2Mbps sometimes, some people in other areas get closer to 5Mbps) and Verizon's 3G is fast (but slower than AT&T's), it's slower to download movies, music and web pages than phones that use Sprint's 4G (WiMAX) and (sometimes) AT&T's 4G (HSPA+) and much slower than Verizon's 4G (LTE) and T-Mobile's 4G (HSPA+). What's interesting is that AT&T's 4G is spotty. The uploads are still slow and, at least when it first came out last February, the Motorola Atrix 4G had slower data downloads than the iPhone 4. So the iPhone 4, even without 4G data, may still have the fastest Internet access out of all AT&T phones.
Apps
The iPhone has more apps. I think. I was looking up the numbers and found this article talking about how it doesn't really matter. They're right. Both have more third party applications than I could ever hope to download and check out, let alone actually use.
One argument commonly given by iFans is that Apple has more "quality" apps in their App Store. However, fandroids are quick to point out that Android has more free apps in Android Market (and various other Android app stores). My personal opinion is that good, quality Apps are easier to find in Apple's App Store because of good organization and Apple's walled garden keeping a lot of crap apps out; but Android has more Apps that provide good functionality (video chat, widgets, synching options, etc.) because of the openness of the platform.
OS
UI-wise, iOS is more intuitive. Perhaps it's because I've been using it for over 2 years, but I don't think so. I have long believed that Apple has the world's best GUI designers working for them. The simplicity and restrictions make things easier. Where are all the apps in iOS? Press the home button. They're right there. What about Android? They're in the list of Applications, which requires you to press the Home button and then the Apps button. Some are also on your home screen, perhaps as an icon, perhaps as a widget. If it's a setting, you can set up a shortcut. But not all settings can have shortcuts. Notifications? In iOS, it's that big message box covering your screen (until iOS 5 comes out). Notifications are annoying, but very easy to see what's going on.
But functionality-wise, the iPhone 4 is still behind Android, and probably WebOS too. iOS lacks real multitasking, wireless synching, a halfway decent notification system and Adobe Flash. And, sweet mother of Vishnu, I hate that only some text messages have timestamps. A couple of these features will come with iOS 5 (to be released this fall); but right now, if you are a power user and want to get the most of your phone, the iPhone is not for you. Not only are these functions not included in the OS, but, unlike Android Market, you won't find these apps in the Apple App Store either. Apple doesn't like to approve apps that mess with the core functionality of the phone, which is why they rejected a WiFi Sync app a year ago and then decided to implement it in iOS 5.
Ecosystem
I'd say the main problem with buying an iPhone versus any other phone is that you are tied into the Apple ecosystem. You have to activate and sync your phone using iTunes (the buggiest and biggest memory hog on my computer), you have to use expensive proprietary Apple cables and chargers (though you can find third parties cables for some of them), and you can only wirelessly stream video to your TV via Apple TV. Wired streaming requires special Apple cables. If you're a developer (and I'd like to be one, someday), writing an app for iOS means you have to write in Objective C , Apple's terrible programming language, and you have to do it on a Mac. And if Apple doesn't accept your app, your only option is to try selling your app through Cydia, which only jailbroken iPhones have access to.
By contrast, Android phones aren't tied to anything. You can drop music files on your phone like an external hard drive. If you want to play video on your TV, most Android phones have HDMI out, or DLNA for wireless streaming. To charge your phone, you use a micro USB cable, which is compatible with not just Android phones and also WebOS phones and Blackberry phones, too. If you're a developer (someday...), writing an app for Android means using Java, one of the most popular programming languages and a personal favorite of mine. And that app should also work on the Blackberry Playbook, which promises support for Android apps.
Conclusion
Hardware-wise, the iPhone 4 is behind the newest Android phones, but is still competitive. It has a great battery, still undefeated screen resolution, and dual cameras. Really, the only major drawbacks compared to other phones, hardware-wise, are the lack of a 4G antenna, (which may not be that much of an improvement on AT&T, but would make a huge difference on Verizon) and the external antenna problem. Software-wise, Android has left iOS in the dust in terms of functionality and even the upcoming iOS 5 update won't make the iPhone as functional and customizable as any new Android phone. The only thing the iPhone has going for it, software-wise, is the excellently designed UI and the Apple App Store.
So the iPhone 4 is competitive, but compared to the amazing Android phones out now, it seems a bit dated. For every excellently-designed feature of the UI and solid hardware feature, there's a little feature that it's lacking. If Android was perfect, the iPhone 4 would get a much lower score, but as a useable, enjoyable phone that is perfect for some niche groups, it gets a 7.
Note: Working on another tech-related project, so this blog is still on hiatus until that is done.
Friday, April 1, 2011
Commentary: The Reasons Behind Android's Lockdown
It's come to my attention that the biggest problem with Android may not be fragmentation. Over 90% of Android devices are running 2.1 or 2.2 (2.1 Eclair and Froyo), and those two versions of the OS are quite compatible with one another (so I've been led to believe). Developers can target either version of the OS and users don't have to worry about incompatible apps, for the most part. This data shows that fragmentation is not a large issue. However, what is becoming an issue and what is the main cause of what Android fragmentation there is, is the lack of OTA (over the air) OS updates for Android phones.
It's not a major problem yet, since 2.1 and 2.2 are the 2nd and 3rd most recent versions of the OS and, as previously stated, most Android devices are running these versions. Android users are only one OTA behind. But this has the potential to be a bigger problem—even if this doesn't cause fragmentation, handsets could fall behind Google's OS releases. This means Android users won't get important updates (like the fix for the SMS bug that sent text messages to the wrong contacts) or less important updates (like version 2.3).
It's confusing why carriers and manufacturers wouldn't simply spend a couple days testing each update with the manufacturers' custom skins (MOTOBLUR, TouchWiz, etc.) and then send the updates to all their most popular phones, if not all phones. Why, then, is the Nexus S the only phone running Android 2.3 (Gingerbread) when 2.3 was released almost 4 months ago? This question plagued me for months until I discussed it with another commenter at Engadget.
But what about carriers? Why should they care if you buy a new phone or not, as long as you're tied to them with a contract?
One reason is that buying a new phone generally means renewing your contract. Whether a user upgrades mid-contract or after two years, that user is generally going to renew his or her contract, especially given the prices of off-contract smartphones. Mobile carriers want their customers to renew their contracts, so anything that forces them to buy new phones is good.
But probably most compelling reason for carriers to block updates is to ensure they can control the OS. The main purpose of controlling Android is to prevent tethering.
You can download free tethering apps on Android, but most of them require root access or heavy OS customization. By locking down Android handsets, carriers can prevent you from tethering for free.
So what's the solution?
One option, is for Google to better coordinate with manufacturers and carriers so they can release more Google-approved phones like the Nexus phones. Or they can take more aggressive measures.
Google can make Android more closed source. They can't make the entire OS closed, as it's built on a modified Linux kernel. Since Linux is protected with GPL (a type of open source license), any derivative software must also be open source. However, parts of Android (Google Maps, the Gmail app) could be removed for manufacturers that don't play nice. Android Market could be locked down, as I mentioned in an earlier post.
Another option is to simply create a hardware division. Google has the money to do this. Why not be like Apple and the rest and make the phones themselves? The only drawback is that if they kept Android open, other manufacturers will still create custom Android phones and Google phones might only have moderately successful sales, just like the Nexus phones do now.
The more I think about it, the more that locking down Android seems like the answer. Who takes advantage of the fact that Android is open? Only carriers and manufacturers, who lock down the phones, and hackers, who open the phone back up again. If Android was totally closed source, carriers and manufacturers wouldn't dare risk the legal troubles of messing with Android, and hackers—who don't mind breaking a law or two—would still find a way to hack Android, although they would have less of a reason to do so. Again, Google can't make Android totally closed source without at least rewriting the kernel, but they could close down parts of Android
And this seems to be the direction Google is taking. In the past week, Google has let carriers and manufacturers know that they can't make changes to Android without their approval and they have decided to withhold the source code for Honeycomb for an indefinite amount of time, even though Honeycomb is currently deployed on Motorola's Xoom. This has upset some manufacturers and set the blogosphere ablaze.
Time will tell if this will help Google or will end up as a terrible PR move they will eventually come to regret. Until then, we can only hope this move will spur Android phone makers and carriers to allow users to update their phones.
Update: I think Engadget has been reading my blog. A recent post "Android's problem isn't fragmentation" basically says what this post does in an admittedly more elegant way: Fragmentation isn't much of an issue, the slow desecration of the "Android experience" is. Google should lock down the OS to prevent carriers and manufacturers from ruining Android.
It's not a major problem yet, since 2.1 and 2.2 are the 2nd and 3rd most recent versions of the OS and, as previously stated, most Android devices are running these versions. Android users are only one OTA behind. But this has the potential to be a bigger problem—even if this doesn't cause fragmentation, handsets could fall behind Google's OS releases. This means Android users won't get important updates (like the fix for the SMS bug that sent text messages to the wrong contacts) or less important updates (like version 2.3).
It's confusing why carriers and manufacturers wouldn't simply spend a couple days testing each update with the manufacturers' custom skins (MOTOBLUR, TouchWiz, etc.) and then send the updates to all their most popular phones, if not all phones. Why, then, is the Nexus S the only phone running Android 2.3 (Gingerbread) when 2.3 was released almost 4 months ago? This question plagued me for months until I discussed it with another commenter at Engadget.
Because corporations are not [your] friends. They want to sell you a new phone. Just think if they updated their phones every six months to a year. At that rate as powerful as phones are, when are people going to need to upgrade? It's not like they're Apple and it seems like every successive update make your phone or Mac slower (with no logical reason). Android is made to run on damn near anything. If a ~500mhz phone can run 2.2 as smooth as silk (a new one like the Aria, not the MyTouch) don't you think any of these dual-cores would run anything Google threw at it with a proper uncrippled [ROM]? No one would buy new phones unless there was new innovation. I seriously don't see the masses selling their Droid X for another Droid XX with a better camera, better flash, screen with higher resolution and better battery life. That's the best Motorola can do with it. They are not Apple.This explains why manufacturers don't want to update their phones: planned obsolescence. A new version of a phone with a slight bump in specs sounds much more appealing when there is also a bump in the OS functionality. Outdated hardware isn't really an issue, as I previously considered.
-Ashiedu Nwadiei
But what about carriers? Why should they care if you buy a new phone or not, as long as you're tied to them with a contract?
One reason is that buying a new phone generally means renewing your contract. Whether a user upgrades mid-contract or after two years, that user is generally going to renew his or her contract, especially given the prices of off-contract smartphones. Mobile carriers want their customers to renew their contracts, so anything that forces them to buy new phones is good.
But probably most compelling reason for carriers to block updates is to ensure they can control the OS. The main purpose of controlling Android is to prevent tethering.
A Quick Aside About Tethering: Android, just like iOS, allows users to use their phones as an Internet hotspot, either wirelessly or by using a cable. Users can then use the phone's 3G or 4G data with their laptop, desktop, iPad or other device. Although I could do this back in 2005 on my Motorola KRZR dumbphone and I would only be charged for how much data I used, mobile carriers have decided that they should charge users extra for this data. Now tethering costs $20 (includes 4GB data) on AT&T and is supposedly $20 (unlimited data?) on Verizon, even though it required no work on the carriers' part to enable this feature on phones and doesn't cost the carriers any more than using the data on the phone. But I digress.
You can download free tethering apps on Android, but most of them require root access or heavy OS customization. By locking down Android handsets, carriers can prevent you from tethering for free.
So what's the solution?
One option, is for Google to better coordinate with manufacturers and carriers so they can release more Google-approved phones like the Nexus phones. Or they can take more aggressive measures.
Google can make Android more closed source. They can't make the entire OS closed, as it's built on a modified Linux kernel. Since Linux is protected with GPL (a type of open source license), any derivative software must also be open source. However, parts of Android (Google Maps, the Gmail app) could be removed for manufacturers that don't play nice. Android Market could be locked down, as I mentioned in an earlier post.
Another option is to simply create a hardware division. Google has the money to do this. Why not be like Apple and the rest and make the phones themselves? The only drawback is that if they kept Android open, other manufacturers will still create custom Android phones and Google phones might only have moderately successful sales, just like the Nexus phones do now.
The more I think about it, the more that locking down Android seems like the answer. Who takes advantage of the fact that Android is open? Only carriers and manufacturers, who lock down the phones, and hackers, who open the phone back up again. If Android was totally closed source, carriers and manufacturers wouldn't dare risk the legal troubles of messing with Android, and hackers—who don't mind breaking a law or two—would still find a way to hack Android, although they would have less of a reason to do so. Again, Google can't make Android totally closed source without at least rewriting the kernel, but they could close down parts of Android
And this seems to be the direction Google is taking. In the past week, Google has let carriers and manufacturers know that they can't make changes to Android without their approval and they have decided to withhold the source code for Honeycomb for an indefinite amount of time, even though Honeycomb is currently deployed on Motorola's Xoom. This has upset some manufacturers and set the blogosphere ablaze.
Time will tell if this will help Google or will end up as a terrible PR move they will eventually come to regret. Until then, we can only hope this move will spur Android phone makers and carriers to allow users to update their phones.
Update: I think Engadget has been reading my blog. A recent post "Android's problem isn't fragmentation" basically says what this post does in an admittedly more elegant way: Fragmentation isn't much of an issue, the slow desecration of the "Android experience" is. Google should lock down the OS to prevent carriers and manufacturers from ruining Android.
Thursday, March 10, 2011
Speculation: WebOS, WP7, and BlackBerry
Let's briefly talk about the dark horses in the mobile OS world.
WebOS
When I first read about the upcoming HP Pre3 (officially styled as Pre3), my first reaction was much like the gentleman in the latest Xtranormal video: HP wants to fail. Why else would they wait until the release of the iPhone 5 to release a phone with specs that are worse than the iPhone 4 and on par with an average 2011 Android phone? Worse resolution than the Retina Display, worse screen than the brilliant efficiency of Super AMOLED screens in many Android and WinPhone7 phones, worse battery capacity than both the iPhone and Nexus S, no gyroscope (for gaming), no HDMI out, no LTE, no WiMAX, and a mind-boggling lack of external memory, leaving only two embarrassing options for memory: 8GB and 16GB.
What are the Pre3's strengths? WebOS 2.2, an update to a relatively well-received OS; HSPA+, the "4G" technology available on AT&T and T-Mobile, and 5GHz n-Wifi. None of these features are blockbuster features that will put the Pre back on the map and I can't imagine that Apple and Google phones won't best these specs in almost every way come summer. And while WebOS is supposedly great, iOS and Android both become better every couple months. I suppose the Pre3's greatest strength is actually its compatibility with upcoming HP TouchPad, the upcoming WebOS tablet. If the TouchPad is really successful, just maybe HP won't follow Nokia's lead and quietly kill off their phone division sometime in the next couple of years.
As for the TouchPad, I'm not sure what to say about it. According to the specs, there is one interesting bit of information: it will have a 1.3MP front camera and no back camera, which makes sense. In this area, HP seems to be the only one that gets it. Front-facing cameras are necessary for video chatting, and you're seldom if ever going to hold up a 9+ inch tablet to take photos of your family. Other tablet makers all have a back-facing camera with a higher resolution than the front facing camera. While the addition of a back camera is definitely a positive, it is secondary. The front camera should take better pictures.
Also, the TouchPad will have a 32GB model, which is nice and a battery comparable to the Xoom and PlayBook. A bit heavy and thick, but the hardware seems decent. We just need to see how WebOS holds up on tablets.
Windows Phone 7
Windows Phone 7 is a really cool OS that I had high hopes for until recently. The hardware is great. What's more is that Nokia, who has a history of making good mobile phone hardware, has finally given up on Symbian and got on board the Windows Phones train. So WP7 should be able to keep up their solid hardware. The only issue is their software and its lack of features. It's been 4 months since the US launch of the new WP7 phones and they still lack copy and paste, multitasking, Flash, and unified email. They also trail behind in apps. WP7 has around 9,500 mobile applications, which is rather small when compared to Android's 275,000 and Apple's 350,000. Does MS really think they can just deliver a feature-less phone and have users eat it up because the UI is pretty and innovative? Who do they think they are, Apple? However, I don't predict MS will give up any time soon, as they can keep pouring that XBox and Office suite money into their phones.
As for a tablet strategy, there is none. All signs point to Microsoft tweaking their desktop OS to be more tablet friendly.
BlackBerry OS
Where to begin. I never liked BlackBerrys (BlackBerries?) since I first messed around with one a couple years ago. I found the organization of settings confusing and the trackball inferior to the up/down/left/right buttons found on most dumbphones. Since then, RIM has updated the OS and the hardware to compete in this new age of capacitive multitouch smartphones. However, it seems they have failed. Blackberry has dropped from #2 to #3 in the top smartphone OSes in the US. There doesn't seem to be a lot of excitement about BlackBerry anymore, and BlackBerry Messenger, the main reason for owning one is rumored to be coming to other phones. I'm not sure what and when their next phone will be and I don't really care.
But there is a tablet. The inappropriately-named business-oriented PlayBook is RIM's upcoming tablet. We can gather a few things from the specs. The 7" size is simply too small for me (that'swhatshesaid), but others will praise the size of this almost pocketable gadget. USB, HDMI, and Flash are all excellent features that will make this more useful out of the box than the new iPad 2. The cameras look excellent, spec-wise, and there's plenty of storage choice with 16GB, 32GB and 64GB models. 4G is promised.
On paper, it looks great. But will the OS be a big bucket of fail, like it is on their phones? BlackBerry Tablet OS is based on QNX, an operating system RIM bought in 2010. It actually looks decent (check out Engadget's video preview), with some comparing it to HP's WebOS (including HP themselves). Like all other phone-tablet combos, the tablet will run the same apps as the phone. What's more is that you can sync your PlayBook to your BlackBerry using Bluetooth so that the information is synced on both. That is, the phone and tablet play nice.
The small size kills it for me, but if this thing is really $500 like the rumors have hinted, the PlayBook might hold its own against the iPad 2, especially for enterprise BB users.
WebOS
When I first read about the upcoming HP Pre3 (officially styled as Pre3), my first reaction was much like the gentleman in the latest Xtranormal video: HP wants to fail. Why else would they wait until the release of the iPhone 5 to release a phone with specs that are worse than the iPhone 4 and on par with an average 2011 Android phone? Worse resolution than the Retina Display, worse screen than the brilliant efficiency of Super AMOLED screens in many Android and WinPhone7 phones, worse battery capacity than both the iPhone and Nexus S, no gyroscope (for gaming), no HDMI out, no LTE, no WiMAX, and a mind-boggling lack of external memory, leaving only two embarrassing options for memory: 8GB and 16GB.
What are the Pre3's strengths? WebOS 2.2, an update to a relatively well-received OS; HSPA+, the "4G" technology available on AT&T and T-Mobile, and 5GHz n-Wifi. None of these features are blockbuster features that will put the Pre back on the map and I can't imagine that Apple and Google phones won't best these specs in almost every way come summer. And while WebOS is supposedly great, iOS and Android both become better every couple months. I suppose the Pre3's greatest strength is actually its compatibility with upcoming HP TouchPad, the upcoming WebOS tablet. If the TouchPad is really successful, just maybe HP won't follow Nokia's lead and quietly kill off their phone division sometime in the next couple of years.
As for the TouchPad, I'm not sure what to say about it. According to the specs, there is one interesting bit of information: it will have a 1.3MP front camera and no back camera, which makes sense. In this area, HP seems to be the only one that gets it. Front-facing cameras are necessary for video chatting, and you're seldom if ever going to hold up a 9+ inch tablet to take photos of your family. Other tablet makers all have a back-facing camera with a higher resolution than the front facing camera. While the addition of a back camera is definitely a positive, it is secondary. The front camera should take better pictures.
Also, the TouchPad will have a 32GB model, which is nice and a battery comparable to the Xoom and PlayBook. A bit heavy and thick, but the hardware seems decent. We just need to see how WebOS holds up on tablets.
Windows Phone 7
Windows Phone 7 is a really cool OS that I had high hopes for until recently. The hardware is great. What's more is that Nokia, who has a history of making good mobile phone hardware, has finally given up on Symbian and got on board the Windows Phones train. So WP7 should be able to keep up their solid hardware. The only issue is their software and its lack of features. It's been 4 months since the US launch of the new WP7 phones and they still lack copy and paste, multitasking, Flash, and unified email. They also trail behind in apps. WP7 has around 9,500 mobile applications, which is rather small when compared to Android's 275,000 and Apple's 350,000. Does MS really think they can just deliver a feature-less phone and have users eat it up because the UI is pretty and innovative? Who do they think they are, Apple? However, I don't predict MS will give up any time soon, as they can keep pouring that XBox and Office suite money into their phones.
As for a tablet strategy, there is none. All signs point to Microsoft tweaking their desktop OS to be more tablet friendly.
BlackBerry OS
Where to begin. I never liked BlackBerrys (BlackBerries?) since I first messed around with one a couple years ago. I found the organization of settings confusing and the trackball inferior to the up/down/left/right buttons found on most dumbphones. Since then, RIM has updated the OS and the hardware to compete in this new age of capacitive multitouch smartphones. However, it seems they have failed. Blackberry has dropped from #2 to #3 in the top smartphone OSes in the US. There doesn't seem to be a lot of excitement about BlackBerry anymore, and BlackBerry Messenger, the main reason for owning one is rumored to be coming to other phones. I'm not sure what and when their next phone will be and I don't really care.
But there is a tablet. The inappropriately-named business-oriented PlayBook is RIM's upcoming tablet. We can gather a few things from the specs. The 7" size is simply too small for me (that'swhatshesaid), but others will praise the size of this almost pocketable gadget. USB, HDMI, and Flash are all excellent features that will make this more useful out of the box than the new iPad 2. The cameras look excellent, spec-wise, and there's plenty of storage choice with 16GB, 32GB and 64GB models. 4G is promised.
On paper, it looks great. But will the OS be a big bucket of fail, like it is on their phones? BlackBerry Tablet OS is based on QNX, an operating system RIM bought in 2010. It actually looks decent (check out Engadget's video preview), with some comparing it to HP's WebOS (including HP themselves). Like all other phone-tablet combos, the tablet will run the same apps as the phone. What's more is that you can sync your PlayBook to your BlackBerry using Bluetooth so that the information is synced on both. That is, the phone and tablet play nice.
The small size kills it for me, but if this thing is really $500 like the rumors have hinted, the PlayBook might hold its own against the iPad 2, especially for enterprise BB users.
Sunday, February 27, 2011
Speculation: Android Phones and Tablets in 2011
Now that we've talked about what Apple has coming, let's talk about Android's 2011 phones. Tablets are mentioned in the end.
Thinner, Better, Faster
Android phones are already heavy on features. The bulk of the upgrades this year will be evolutionary. Processors will be faster with the release of the dual-core phones, like the Motorola Atrix. RAM will be increased; the Atrix and Samsung Galaxy S II have 1 gigabyte of RAM and it's reasonable to consider that 1GB will be standard by the end of 2011. Screens will hopefully begin to approach the extraordinary resolution of the iPhone 4's Retina Display. But even if they don't approach that excellent resolution, new Super AMOLED Plus screens (like the one in the Samsung Galaxy S II) are thinner, brighter and more efficient than the old SAMOLED screens (http://www.oled-info.com/super-amoled-plus). Some phones will get thinner. The Samsung Galaxy S II will be 8.5mm deep, a bit thinner than the iPhone 4's 9.3mm. Video recording resolution will be bumped up to 1080p, like the LG Optimus 2X. Cameras on the front and back will increase their megapixels.
The New Stuff
Front and Back Cameras: Is this worth mentioning? The Nexus S, a dream phone in most other ways didn't have this, so perhaps it's worth saying that almost all Android phones will have this.
4G: A no-brainer (though also lacking from the Nexus S). Pretty much all Android phones will have 4G (be it LTE, WiMAX, or HSPA+) in 2011.
Gorilla Glass: This ultra-tough glass featured in the Atrix and some other phones will make the screens difficult to break.
NFC: It's hard to say whether NFC will be successful in it's attempt to replace our credit cards as payment devices, but this hardware feature already on the Nexus S and coming to the Galaxy S II will most likely be seen on more Android phones in the future. And even if it isn't used for payments, it could become a handy way to transfer information to and from the phone. For example, you'll be able to pair bluetooth devices just by tapping them together.
DLNA: DLNA is a technology that allows you to stream media to your TV (or other devices) wirelessly, as long as both are on the same network. This means, in short, streaming videos and pictures from your phone to your TV. We're getting to an age where everything including your toaster is hooked up to your wireless router, so it's exciting to see this interconnectivity actually have a point. Several phones have this already (Droid X, Droid 2, HTC Thunderbolt), so the only reason many phones may not get this in 2011 is because of seemingly slow adoption by TV manufacturers.
Cheaper Price: iPhone's have a rigid pricing structure, and unless you take your chances with eBay, you're gonna pay $200 for the cheapest iPhone with a new contract. Not so with Android. Secondhand phone dealers, such as Amazon.com and Radio Shack, have been knocking down prices on Android phones recently. The Motorola Atrix is currently $200 from AT&T, but is $150 when you buy it from Amazon Wireless and $130 at Costco. The availability of brand new, hi-tech, and less expensive Android phones will be the death knell of the iPhone. When the iPhone 5 comes out this summer, every carrier will already have an Android phone that can do everything the new iPhone does, and for less money. The iPhone will start to become a niche phone.
Ice Cream: In late 2011, a new version of Android OS will be released. All signs point to it being a mix of the Gingerbread and Honeycomb versions of the OS. All I can gather from this is that the beauty of Honeycomb's UI will make its way to phones. It also might mean greater interactivity between Android phones and Android tablets. But, if history is any indication, most 2011 Android phones won't receive the update in 2011, if they get it at all.
Hopes
Webtop: The absolute coolest thing about the Motorola Atrix is its "webtop" app that allows you to see your phone on a larger screen (laptop or TV) without simply stretching the screen. Google would do well to build this functionality into its OS. Even if it was a simple screen-stretching video out function, I can think of many uses putting your phone on the big screen. Hopefully, Google will put something like this in Ice Cream, though I won't hold my breath.
Battery: With Android's already short battery life, more powerful processors will necessitate a larger battery. Instead of making the phones thinner, let's make them a bit thicker with larger batteries.
Higher Resolution Screens: SAMOLED looks great and SAMOLED Plus should look even better, but it's hard to top the crisp, clean look of the iPhone 4's 326 pixels-per-inch Retina Display. I want to see high-resolution screens on Android and the new big thing in Android screen technology--SAMOLED Plus--actually has a worse resolution per inch than SAMOLED (check the oled-info.com link above).
Wish List: What I Want
I am determined to get a new phone this year, after I see what the iPhone 5 has to offer. Most likely, I will go with Android. If I can find a 4G Android phone with 16GB internal storage, a pretty screen (SAMOLED Plus or something with a high pixel density), a way to show media on my TV (either DLNA or an HDMI port), and stock Android (or rootable so I can put stock Android on it), then I will buy it. The Atrix almost fits most of this description and it was hard not to go out and buy it. The locked (or rather, signed) bootloader helped me save my cash.
Tablets
Tablets will get these features, slowly. It's hard to say what will happen because the Motorola Xoom (the tablet I'd call the first real Android tablet) is yet to be released. But just like with the iPhone and iPad, new features will appear in the phones first, then trickle down to the tablets.
That's it for Android. If I have time, I'll write about WP7 and the other OSes.
Thinner, Better, Faster
Android phones are already heavy on features. The bulk of the upgrades this year will be evolutionary. Processors will be faster with the release of the dual-core phones, like the Motorola Atrix. RAM will be increased; the Atrix and Samsung Galaxy S II have 1 gigabyte of RAM and it's reasonable to consider that 1GB will be standard by the end of 2011. Screens will hopefully begin to approach the extraordinary resolution of the iPhone 4's Retina Display. But even if they don't approach that excellent resolution, new Super AMOLED Plus screens (like the one in the Samsung Galaxy S II) are thinner, brighter and more efficient than the old SAMOLED screens (http://www.oled-info.com/super-amoled-plus). Some phones will get thinner. The Samsung Galaxy S II will be 8.5mm deep, a bit thinner than the iPhone 4's 9.3mm. Video recording resolution will be bumped up to 1080p, like the LG Optimus 2X. Cameras on the front and back will increase their megapixels.
The New Stuff
Front and Back Cameras: Is this worth mentioning? The Nexus S, a dream phone in most other ways didn't have this, so perhaps it's worth saying that almost all Android phones will have this.
4G: A no-brainer (though also lacking from the Nexus S). Pretty much all Android phones will have 4G (be it LTE, WiMAX, or HSPA+) in 2011.
Gorilla Glass: This ultra-tough glass featured in the Atrix and some other phones will make the screens difficult to break.
NFC: It's hard to say whether NFC will be successful in it's attempt to replace our credit cards as payment devices, but this hardware feature already on the Nexus S and coming to the Galaxy S II will most likely be seen on more Android phones in the future. And even if it isn't used for payments, it could become a handy way to transfer information to and from the phone. For example, you'll be able to pair bluetooth devices just by tapping them together.
DLNA: DLNA is a technology that allows you to stream media to your TV (or other devices) wirelessly, as long as both are on the same network. This means, in short, streaming videos and pictures from your phone to your TV. We're getting to an age where everything including your toaster is hooked up to your wireless router, so it's exciting to see this interconnectivity actually have a point. Several phones have this already (Droid X, Droid 2, HTC Thunderbolt), so the only reason many phones may not get this in 2011 is because of seemingly slow adoption by TV manufacturers.
Cheaper Price: iPhone's have a rigid pricing structure, and unless you take your chances with eBay, you're gonna pay $200 for the cheapest iPhone with a new contract. Not so with Android. Secondhand phone dealers, such as Amazon.com and Radio Shack, have been knocking down prices on Android phones recently. The Motorola Atrix is currently $200 from AT&T, but is $150 when you buy it from Amazon Wireless and $130 at Costco. The availability of brand new, hi-tech, and less expensive Android phones will be the death knell of the iPhone. When the iPhone 5 comes out this summer, every carrier will already have an Android phone that can do everything the new iPhone does, and for less money. The iPhone will start to become a niche phone.
Ice Cream: In late 2011, a new version of Android OS will be released. All signs point to it being a mix of the Gingerbread and Honeycomb versions of the OS. All I can gather from this is that the beauty of Honeycomb's UI will make its way to phones. It also might mean greater interactivity between Android phones and Android tablets. But, if history is any indication, most 2011 Android phones won't receive the update in 2011, if they get it at all.
Hopes
Webtop: The absolute coolest thing about the Motorola Atrix is its "webtop" app that allows you to see your phone on a larger screen (laptop or TV) without simply stretching the screen. Google would do well to build this functionality into its OS. Even if it was a simple screen-stretching video out function, I can think of many uses putting your phone on the big screen. Hopefully, Google will put something like this in Ice Cream, though I won't hold my breath.
Battery: With Android's already short battery life, more powerful processors will necessitate a larger battery. Instead of making the phones thinner, let's make them a bit thicker with larger batteries.
Higher Resolution Screens: SAMOLED looks great and SAMOLED Plus should look even better, but it's hard to top the crisp, clean look of the iPhone 4's 326 pixels-per-inch Retina Display. I want to see high-resolution screens on Android and the new big thing in Android screen technology--SAMOLED Plus--actually has a worse resolution per inch than SAMOLED (check the oled-info.com link above).
Wish List: What I Want
I am determined to get a new phone this year, after I see what the iPhone 5 has to offer. Most likely, I will go with Android. If I can find a 4G Android phone with 16GB internal storage, a pretty screen (SAMOLED Plus or something with a high pixel density), a way to show media on my TV (either DLNA or an HDMI port), and stock Android (or rootable so I can put stock Android on it), then I will buy it. The Atrix almost fits most of this description and it was hard not to go out and buy it. The locked (or rather, signed) bootloader helped me save my cash.
Tablets
Tablets will get these features, slowly. It's hard to say what will happen because the Motorola Xoom (the tablet I'd call the first real Android tablet) is yet to be released. But just like with the iPhone and iPad, new features will appear in the phones first, then trickle down to the tablets.
That's it for Android. If I have time, I'll write about WP7 and the other OSes.
Monday, February 14, 2011
Speculation: iPad 2 and iPhone 5
It's already February and I haven't listed the specs for all the upcoming gadgets. My bad. I'll start with the Apple products.
The Obvious: Thinner, Better, Faster
As usual, the next iPad and iPhone will likely be faster due to upgraded RAM or an upgraded processor (likely dual-core) or both. The iPad 2 might be thinner, but the iPhone 5 probably won't because Apple already went through a major design change with the iPhone 4 after three phones with the same design. They aren't likely to change it up again (except to fix that pesky antenna problem). The next iPad will come out in April or May and the next iPhone will be released in June or July.
iPad
The next iPad should have a CDMA antenna so it can be available through Verizon. Verizon has already promised a Verizon iPad, although the iPad 2 wasn't specifically mentioned. The iPad will NOT have the rumored SD card slot if for no other reason than it would ruin Apple's tiered pricing for different amounts of storage. Front and back cameras are rumored. I definitely agree with the front-side camera because it would mean Facetime was available on one more device. AppleInsider says it might have a mini DisplayPort. A price drop is somewhat out of character for Apple, but it would help them compete with the cornucopia of Android tablets that will be release this year. A price drop on the more expensive models is more likely than a price change on their cheaper models.
CrunchGear has a good article on what might and might not be in the iPad 2. I agree with them on most of it, especially the thinner body and better speakers. I disagree with the resolution. Putting a retina-display-style screen on such a large screen would be expensive (though not impossible). Upping the resolution slightly is more likely and could be done without "awkward" resizing of elements.
It will run iOS 4.3.
iPhone
The next iPhone will also be available on Verizon, so don't get that iPhone 4 yet. Seriously, just wait 4 months.
The iPhone 5 is rumored to have NFC (near field communication). Apple doesn't add features to their gadgets unless the features are implemented well, so if the phone does have NFC, you can bet that it will be set up to make payments. There is little else you can do with NFC. Apple will have partnered with credit card companies or perhaps worked out a payment system through Verizon and AT&T. It wouldn't make a lot of sense to force users to pay their bills through iTunes.
It might have 4G. There have been rumors that the next iPhone will have both a CDMA (Verizon) and GSM (AT&T) antenna since the Verizon iPhone 4 has a baseband chip that supports both technologies. That chip also supports HSPA+ (AT&T's initial "4G" network), but it doesn't have anything to do with LTE (Verizon's 4G network). If they add in support for LTE, then it would support Verizon's current 4G network and AT&T's future 4G network, while possibly supporting AT&T's current 4G network and both 3G networks. In short, it would be a multi-carrier future-proof phone. That would be great, but a bit out of character for Apple, who only puts the bare minimum of features in their phones, unless those features are shiny and pretty. But by then, most new Android phones will have 4G. Hard to call.
Price will be the same. No reason to change that.
There will be a 64GB model.
Some software updates to catch up with Android features.
iPhone Nano
The blogsphere has been awash with rumors of a smaller, cheaper iPhone ever since the Wall Street Journal posted this rumor. It could be true, but it seems like a mistake. Supposedly, the phone would have less storage, but MobileMe or iTunes would allow users to instead stream music from the Internet, or from their computers through the Internet. Thus, if you're without Internet, you're without music. It would also be "half the size of the iPhone 4", which would make Internet browsing ridiculously bad if this means the screen is half the height. Currently, the iPhone 3GS is $50 on contract (and other Android phones are even cheaper), so I don't see the point of an iPhone Nano unless it is super cheap without a contract. There are Apple fanboys that will buy anything with a fruit logo on it; perhaps Apple will release this just to test their loyalty.
That's it for Apple. I'll post soon (hopefully) with Android and WP7 speculation.
Update: The iPhone Nano didn't sound likely. The New York Times said today (2/17) that Apple is considering a cheaper phone, but not a smaller phone. This won't happen either, at least not this year. Old iPhones are already cheap: the 3GS is $50, and a used 3G will run you ~$150 with no contract on eBay. The only way Apple could compete with their old phones and successfully release a new, cheaper "iPhone Express" would be to make a phone that costs around $200 and somehow isn't worse than a 3G. They can't, so I don't think they will even try.
The Obvious: Thinner, Better, Faster
As usual, the next iPad and iPhone will likely be faster due to upgraded RAM or an upgraded processor (likely dual-core) or both. The iPad 2 might be thinner, but the iPhone 5 probably won't because Apple already went through a major design change with the iPhone 4 after three phones with the same design. They aren't likely to change it up again (except to fix that pesky antenna problem). The next iPad will come out in April or May and the next iPhone will be released in June or July.
iPad
The next iPad should have a CDMA antenna so it can be available through Verizon. Verizon has already promised a Verizon iPad, although the iPad 2 wasn't specifically mentioned. The iPad will NOT have the rumored SD card slot if for no other reason than it would ruin Apple's tiered pricing for different amounts of storage. Front and back cameras are rumored. I definitely agree with the front-side camera because it would mean Facetime was available on one more device. AppleInsider says it might have a mini DisplayPort. A price drop is somewhat out of character for Apple, but it would help them compete with the cornucopia of Android tablets that will be release this year. A price drop on the more expensive models is more likely than a price change on their cheaper models.
CrunchGear has a good article on what might and might not be in the iPad 2. I agree with them on most of it, especially the thinner body and better speakers. I disagree with the resolution. Putting a retina-display-style screen on such a large screen would be expensive (though not impossible). Upping the resolution slightly is more likely and could be done without "awkward" resizing of elements.
It will run iOS 4.3.
iPhone
The next iPhone will also be available on Verizon, so don't get that iPhone 4 yet. Seriously, just wait 4 months.
The iPhone 5 is rumored to have NFC (near field communication). Apple doesn't add features to their gadgets unless the features are implemented well, so if the phone does have NFC, you can bet that it will be set up to make payments. There is little else you can do with NFC. Apple will have partnered with credit card companies or perhaps worked out a payment system through Verizon and AT&T. It wouldn't make a lot of sense to force users to pay their bills through iTunes.
It might have 4G. There have been rumors that the next iPhone will have both a CDMA (Verizon) and GSM (AT&T) antenna since the Verizon iPhone 4 has a baseband chip that supports both technologies. That chip also supports HSPA+ (AT&T's initial "4G" network), but it doesn't have anything to do with LTE (Verizon's 4G network). If they add in support for LTE, then it would support Verizon's current 4G network and AT&T's future 4G network, while possibly supporting AT&T's current 4G network and both 3G networks. In short, it would be a multi-carrier future-proof phone. That would be great, but a bit out of character for Apple, who only puts the bare minimum of features in their phones, unless those features are shiny and pretty. But by then, most new Android phones will have 4G. Hard to call.
Price will be the same. No reason to change that.
There will be a 64GB model.
Some software updates to catch up with Android features.
iPhone Nano
The blogsphere has been awash with rumors of a smaller, cheaper iPhone ever since the Wall Street Journal posted this rumor. It could be true, but it seems like a mistake. Supposedly, the phone would have less storage, but MobileMe or iTunes would allow users to instead stream music from the Internet, or from their computers through the Internet. Thus, if you're without Internet, you're without music. It would also be "half the size of the iPhone 4", which would make Internet browsing ridiculously bad if this means the screen is half the height. Currently, the iPhone 3GS is $50 on contract (and other Android phones are even cheaper), so I don't see the point of an iPhone Nano unless it is super cheap without a contract. There are Apple fanboys that will buy anything with a fruit logo on it; perhaps Apple will release this just to test their loyalty.
That's it for Apple. I'll post soon (hopefully) with Android and WP7 speculation.
Update: The iPhone Nano didn't sound likely. The New York Times said today (2/17) that Apple is considering a cheaper phone, but not a smaller phone. This won't happen either, at least not this year. Old iPhones are already cheap: the 3GS is $50, and a used 3G will run you ~$150 with no contract on eBay. The only way Apple could compete with their old phones and successfully release a new, cheaper "iPhone Express" would be to make a phone that costs around $200 and somehow isn't worse than a 3G. They can't, so I don't think they will even try.
Wednesday, February 9, 2011
Code: Using JavaScript and CSS to Switch to and from a Mobile Site
There are many ways to detect an iPhone or other mobile browser on your website. I chose JavaScript for my professional website because my webhost restricts the use of PHP. (I'm not going to link to my website here because it needs some work.)
There are only a couple ways to set up a mobile version of a website. Using two CSS files is the best method for small sites that don't have a lot of images to resize. Alternatively, you can build a different site just for mobile browsers and redirect mobile users to that site. Right now, I have one website with two CSS files, but eventually I will build a separate mobile site.
This guide is for users that have one version of a website, but two CSS files: one for the full site and one for the mobile site. It shows you how to create dynamic links to the full site from the mobile site and vice versa. I think it's really important for mobile users to have the choice to view a website's full site and the option to go back to the mobile site, but full browser users shouldn't be bothered with a link to the mobile site. Surprisingly few websites do this.
Detecting Mobile Browsers Using JavaScript
This JavaScript code detects mobile browsers by checking the user agent string for the words "iPhone" or "iPod".
// Are we using iPhone or iPod to browse this site?
var mobileDetected = ( (navigator.userAgent.match(/iPhone/i) != null) || (navigator.userAgent.match(/iPod/i) != null) );
Selecting the CSS File
This code writes the code to select either the full site CSS file or the mobile CSS file based on whether or not a mobile browser was detected. It also involves checking cookies, and I'll explain that later.
// If not on mobile or full site was selected, use full site css
if(!mobileDetected || getCookie("occSkipMobile") == "true") {
document.write("<link rel='stylesheet' href='css.css'>");
} else { // else use mobile css
document.write("<link rel='stylesheet' href='iphone.css'>");
}
Allowing Mobile Browsers Access to the Full Website
Now that we can detect mobile browsers and get them to use the mobile CSS file, we need a way to prevent our site from always doing this so that the mobile browser can also access the full site. The way I do this is with cookies. This HTML code displays the link to the full website:
<div class="mobileOnly"><br>
<br>
<a href="index.html" onClick="skipMobileSite()">go to full site</a>
</div>
Notice that this code is wrapped in a class called mobileOnly. I ensure that only mobile browsers can see this text by making mobileOnly invisible in my full site CSS file:
/* Always hide this on normal site */
div.mobileOnly {
display: none;
}
But in my mobile CSS file, mobileOnly is visible:
div.mobileOnly {
display: inline;
font-size: 25pt;
font-style: italic;
margin-bottom: 30px;
}
You'll notice that in the link to the full site, a JavaScript function skipMobileSite is called. This sets the actual cookie:
function skipMobileSite() {
// Skip mobile site with a cookie setting, no expiration date
document.cookie = 'occSkipMobile=true; path=/';
}
Cookies with no expiration date expire when the user closes his browser.
So this link sets a cookie that tells us that the mobile user prefers to view the full website. This means we need to check for this cookie every time this page is loaded. That's what the getCookie function does in the "Selecting the CSS File" section. When a cookie is found that states a user's preference for the full website, the full website CSS file is selected. Here's an implementation of getCookie from quirksmode.org (paraphrased):
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') { c = c.substring(1,c.length); }
if (c.indexOf(nameEQ) == 0) { return c.substring(nameEQ.length,c.length); }
}
return null;
}
Let's look at that line for selecting the full CSS file again:
if(!mobileDetected || getCookie("occSkipMobile") == "true") {
So, if a mobile browser isn't detected, the full CSS file is selected. Or if the full website cookie is set to "true", the full CSS file is selected. Otherwise, we select the mobile CSS file.
Notice that the link to the full site links to "index.html", which is the page all this code is on. It's just an easy way to refresh the page. Alternatively, I could have linked to "#" and written a page refresh in the skipMobileSite function.
Allowing Mobile Browsers Access Back to the Mobile Website
Now we have two versions of one website where mobile users are automatically sent to the mobile version, but they can click a link that only they can see that will take them to the full website from that point on. We just need to link back to the mobile site.
<script language="JavaScript">
<!--
// only write this if we're on a mobile and deliberately selected full site
if(mobileDetected && getCookie("occSkipMobile") == "true") {
document.write("<a href='index.html' class='fullSiteOnly' onClick='allowMobileSite()'>go to mobile site</a>");
}
//-->
</script>
document.write is only called when a mobile browser is detected and the full website cookie is set. Just to be sure, the class is fullSiteOnly, which is invisible in the mobile CSS file:
/* Always hide this on mobile site */
div.fullSiteOnly {
display: none;
}
but is visible in the full website CSS (there's no code in the full site CSS for this). So this link is only visible to mobile browsers that have clicked "go to full site" and it calls a function called allowMobileSite before refreshing the page. What does allowMobileSite do? It simply removes the full website cookie by setting the cookie to an expired date:
function allowMobileSite() {
// Just delete cookie by setting it to past date
document.cookie = 'occSkipMobile=true; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/';
}
Result (click to enlarge pictures)
This is my website on a regular desktop computer. There are no links to a mobile or full website.
This is my website on an iPhone (two images have been combined to show the entire page). By default, the mobile edition is showing. Mobile-friendly CSS code allows for easy navigation on mobile browsers. It contains a link to the full website at the bottom.
This is my website on an iPhone after clicking "go to full site". It looks just like the website on a desktop computer, except for the link to the mobile site at the bottom. If a user clicks that link, he will go back to the "mobile edition" of the site.
All the Code Together
Let's review the whole thing. First the full website CSS file, css.css:
/* Always hide this on normal site */
div.mobileOnly {
display: none;
}
Then the mobile CSS file, iphone.css:
div.mobileOnly {
display: inline;
font-size: 25pt;
font-style: italic;
margin-bottom: 30px;
}
/* Always hide this on mobile site */
div.fullSiteOnly {
display: none;
}
And finally, the webpage, index.html. First we define the JavaScript functions, then we detect mobile browsers, then we check the cookie and select a CSS file, and finally we dynamically create links to the full site and mobile site:
<script language="JavaScript">
<!--
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') { c = c.substring(1,c.length); }
if (c.indexOf(nameEQ) == 0) { return c.substring(nameEQ.length,c.length); }
}
return null;
}
function skipMobileSite() {
// Skip mobile site with a cookie setting, no expiration date
document.cookie = 'occSkipMobile=true; path=/';
}
function allowMobileSite() {
// Just delete cookie by setting it to past date
document.cookie = 'occSkipMobile=true; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/';
}
// Are we using iPhone or iPod to browse this site?
var mobileDetected = ( (navigator.userAgent.match(/iPhone/i) != null) || (navigator.userAgent.match(/iPod/i) != null) );
// If not on mobile or full site was selected, use full site css
if(!mobileDetected || getCookie("occSkipMobile") == "true") {
document.write("<link rel='stylesheet' href='css.css'>");
} else { // else use mobile css
document.write("<link rel='stylesheet' href='iphone.css'>");
}
//-->
</script>
<div class="mobileOnly"><br>
<br>
<a href="index.html" onClick="skipMobileSite()">go to full site</a>
</div>
<script language="JavaScript">
<!--
// only write this if we're on a mobile and deliberately selected full site
if(mobileDetected && getCookie("occSkipMobile") == "true") {
document.write("<a href='index.html' class='fullSiteOnly' onClick='allowMobileSite()'>go to mobile site</a>");
}
//-->
</script>
Just embed those code snippets in your respective CSS and HTML files, and mobile users visiting your website will be able to switch back and forth between the mobile and full websites with ease.
Although this article as a whole and the code on my professional website are protected by copyright, feel free to use and tweak any of the code examples written in this article.
There are only a couple ways to set up a mobile version of a website. Using two CSS files is the best method for small sites that don't have a lot of images to resize. Alternatively, you can build a different site just for mobile browsers and redirect mobile users to that site. Right now, I have one website with two CSS files, but eventually I will build a separate mobile site.
This guide is for users that have one version of a website, but two CSS files: one for the full site and one for the mobile site. It shows you how to create dynamic links to the full site from the mobile site and vice versa. I think it's really important for mobile users to have the choice to view a website's full site and the option to go back to the mobile site, but full browser users shouldn't be bothered with a link to the mobile site. Surprisingly few websites do this.
Detecting Mobile Browsers Using JavaScript
This JavaScript code detects mobile browsers by checking the user agent string for the words "iPhone" or "iPod".
// Are we using iPhone or iPod to browse this site?
var mobileDetected = ( (navigator.userAgent.match(/iPhone/i) != null) || (navigator.userAgent.match(/iPod/i) != null) );
Selecting the CSS File
This code writes the code to select either the full site CSS file or the mobile CSS file based on whether or not a mobile browser was detected. It also involves checking cookies, and I'll explain that later.
// If not on mobile or full site was selected, use full site css
if(!mobileDetected || getCookie("occSkipMobile") == "true") {
document.write("<link rel='stylesheet' href='css.css'>");
} else { // else use mobile css
document.write("<link rel='stylesheet' href='iphone.css'>");
}
Allowing Mobile Browsers Access to the Full Website
Now that we can detect mobile browsers and get them to use the mobile CSS file, we need a way to prevent our site from always doing this so that the mobile browser can also access the full site. The way I do this is with cookies. This HTML code displays the link to the full website:
<div class="mobileOnly"><br>
<br>
<a href="index.html" onClick="skipMobileSite()">go to full site</a>
</div>
Notice that this code is wrapped in a class called mobileOnly. I ensure that only mobile browsers can see this text by making mobileOnly invisible in my full site CSS file:
/* Always hide this on normal site */
div.mobileOnly {
display: none;
}
But in my mobile CSS file, mobileOnly is visible:
div.mobileOnly {
display: inline;
font-size: 25pt;
font-style: italic;
margin-bottom: 30px;
}
You'll notice that in the link to the full site, a JavaScript function skipMobileSite is called. This sets the actual cookie:
function skipMobileSite() {
// Skip mobile site with a cookie setting, no expiration date
document.cookie = 'occSkipMobile=true; path=/';
}
Cookies with no expiration date expire when the user closes his browser.
So this link sets a cookie that tells us that the mobile user prefers to view the full website. This means we need to check for this cookie every time this page is loaded. That's what the getCookie function does in the "Selecting the CSS File" section. When a cookie is found that states a user's preference for the full website, the full website CSS file is selected. Here's an implementation of getCookie from quirksmode.org (paraphrased):
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') { c = c.substring(1,c.length); }
if (c.indexOf(nameEQ) == 0) { return c.substring(nameEQ.length,c.length); }
}
return null;
}
Let's look at that line for selecting the full CSS file again:
if(!mobileDetected || getCookie("occSkipMobile") == "true") {
So, if a mobile browser isn't detected, the full CSS file is selected. Or if the full website cookie is set to "true", the full CSS file is selected. Otherwise, we select the mobile CSS file.
Notice that the link to the full site links to "index.html", which is the page all this code is on. It's just an easy way to refresh the page. Alternatively, I could have linked to "#" and written a page refresh in the skipMobileSite function.
Allowing Mobile Browsers Access Back to the Mobile Website
Now we have two versions of one website where mobile users are automatically sent to the mobile version, but they can click a link that only they can see that will take them to the full website from that point on. We just need to link back to the mobile site.
<script language="JavaScript">
<!--
// only write this if we're on a mobile and deliberately selected full site
if(mobileDetected && getCookie("occSkipMobile") == "true") {
document.write("<a href='index.html' class='fullSiteOnly' onClick='allowMobileSite()'>go to mobile site</a>");
}
//-->
</script>
document.write is only called when a mobile browser is detected and the full website cookie is set. Just to be sure, the class is fullSiteOnly, which is invisible in the mobile CSS file:
/* Always hide this on mobile site */
div.fullSiteOnly {
display: none;
}
but is visible in the full website CSS (there's no code in the full site CSS for this). So this link is only visible to mobile browsers that have clicked "go to full site" and it calls a function called allowMobileSite before refreshing the page. What does allowMobileSite do? It simply removes the full website cookie by setting the cookie to an expired date:
function allowMobileSite() {
// Just delete cookie by setting it to past date
document.cookie = 'occSkipMobile=true; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/';
}
Result (click to enlarge pictures)
This is my website on a regular desktop computer. There are no links to a mobile or full website.
This is my website on an iPhone (two images have been combined to show the entire page). By default, the mobile edition is showing. Mobile-friendly CSS code allows for easy navigation on mobile browsers. It contains a link to the full website at the bottom.
This is my website on an iPhone after clicking "go to full site". It looks just like the website on a desktop computer, except for the link to the mobile site at the bottom. If a user clicks that link, he will go back to the "mobile edition" of the site.
All the Code Together
Let's review the whole thing. First the full website CSS file, css.css:
/* Always hide this on normal site */
div.mobileOnly {
display: none;
}
Then the mobile CSS file, iphone.css:
div.mobileOnly {
display: inline;
font-size: 25pt;
font-style: italic;
margin-bottom: 30px;
}
/* Always hide this on mobile site */
div.fullSiteOnly {
display: none;
}
And finally, the webpage, index.html. First we define the JavaScript functions, then we detect mobile browsers, then we check the cookie and select a CSS file, and finally we dynamically create links to the full site and mobile site:
<script language="JavaScript">
<!--
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') { c = c.substring(1,c.length); }
if (c.indexOf(nameEQ) == 0) { return c.substring(nameEQ.length,c.length); }
}
return null;
}
function skipMobileSite() {
// Skip mobile site with a cookie setting, no expiration date
document.cookie = 'occSkipMobile=true; path=/';
}
function allowMobileSite() {
// Just delete cookie by setting it to past date
document.cookie = 'occSkipMobile=true; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/';
}
// Are we using iPhone or iPod to browse this site?
var mobileDetected = ( (navigator.userAgent.match(/iPhone/i) != null) || (navigator.userAgent.match(/iPod/i) != null) );
// If not on mobile or full site was selected, use full site css
if(!mobileDetected || getCookie("occSkipMobile") == "true") {
document.write("<link rel='stylesheet' href='css.css'>");
} else { // else use mobile css
document.write("<link rel='stylesheet' href='iphone.css'>");
}
//-->
</script>
<div class="mobileOnly"><br>
<br>
<a href="index.html" onClick="skipMobileSite()">go to full site</a>
</div>
<script language="JavaScript">
<!--
// only write this if we're on a mobile and deliberately selected full site
if(mobileDetected && getCookie("occSkipMobile") == "true") {
document.write("<a href='index.html' class='fullSiteOnly' onClick='allowMobileSite()'>go to mobile site</a>");
}
//-->
</script>
Just embed those code snippets in your respective CSS and HTML files, and mobile users visiting your website will be able to switch back and forth between the mobile and full websites with ease.
Although this article as a whole and the code on my professional website are protected by copyright, feel free to use and tweak any of the code examples written in this article.
Subscribe to:
Posts (Atom)



