Two weeks ago today I embarked on a journey to switch to an iPhone 6 as my daily driver. It started off a little rocky with a trip to three different T-Mobile stores in order to get a SIM card. The first store was out, the second store wanted to charge me for them. Luckily the third store was able to give me one and suddenly my phone number and universe was driven by an iOS device.
Rather than go into a long narrative, here's a list of the pros and cons I have experiences.
- Swiftkey for iOS isn't ready yet. It has no number row on the keyboards, it has no voice recognition, it has no rapid/accuracy selector.
- iOS custom keyboards aren't ready. It's a hugely jarring experience to be using a custom keyboard and to be dumped back to the iOS standard keyboard for password prompts.
- Notifications suck. On Android, Notifications drove my entire mobile workflow. With iOS this feels impossible. There's no way to interact with many notifications quickly. You have to launch an app, interact, then jump back to the notifications. They need quick actions really badly. I have no idea how their wearables are going to work without these.
- Google Apps aren't as good on iOS. Most notably, you can't click on phone numbers in emails. What?!
- Where are the wearables? I've gotten used to a buzz in my pocket causing a corresponding wrist or head nod to take a peek at what's going on. With iOS I know the Apple watch is coming, but today I still have to pull the entire device out of my pocket (by which point the notification is gone) and take a peek.
- The iPhone 6 is slippery! I'll post a video later, but hold an LG G3 or a Nexus 5 in one hand and an iPhone 6 in another. As you start tilting your hands, the iPhone is going to drop to the floor first. This matters because some acrobatics are required to interact with a 4.7 or 5.5 inch phone. My 5.5 inch LG G3 makes it easier to touch the top of the phone than the 4.7 inch iPhone.
- Epic Camera. The iPhone 6 camera is the best smartphone camera I have ever used. Night time, day time, it's fast and reliable. I would LOVE to see this camera on every phone I ever use again.
- Touch ID is great. Finger prints are a surprisingly good security mechanism. I always took pleasure in using it, it's basically just fun. The only glitch is that it goes a little bit slower sometimes.
- Apple Pay is awesome. I've used Google Wallet for years, but Apple has done something amazing. Not only do they have broader support (banks!) from partners, but the experience of using your fingerprint for authentication in combination with a simple tap (even from the phone being off) is much better than having your Android phone on and unlocked prior to making a transaction.
- Weight and slimness of the device is highly desirable. There's no Android phone this fast, slim, and light. Which is nice, as long as it doesn't bend, :).
Cameras have been almost the same for hundreds of years. Whether it was digital or analog, we stored a single two dimensional image of a scene. Modifications could be made to the photo, but there wasn't any magical extra data that could be recovered.
HDR photography has improved this; by taking multiple pictures different exposures, your camera can blend and combine multiple photos in different ways to visualize a scene differently. Somestimes this even gets closer to the way the human brain procesess light and information. Lytro is a company that also took this challenge on, building new sensor technology to allow the user to refocus a picture after it is taken.
With Google's Project Tango, it seems like the realm of computer vision and modeling is beginning to pick up steam as we are seeing the fruits of a huge amount of innovation. Project Tango takes a relatively standard smartphone, adds two cameras, a high quality gyroscope, compass, and a depth sensor to turn images of the world into a 3d model of the world automatically.
But Google has gone further, proving you don't even need two cameras or a depth sensor to gather some of this information. Using advanced algorithms, the new Google Camera for Android asks the user to move their device after taking a picture, and measures the 2d parallax effect to calculate a depth map. Using this depth map, Google allows the user to create a photo with properties of a high-quality DSLR and lens, featuring a low depth of field that the human eye finds very appealing. This depth map is even stored with the image. This depth map allows you to selectively blur the photo based on distance, and many other cool things.
Thankfully Google has even exposed this depth map to users. Visit http://depthy.stamina.pl/ on your phone and you will be able to see and manipulate and play with any of the photos you have taken with lens blur.
The technology isn't perfect yet, and we will require higher and higher camera resolutions to take advantage of these technologies, but the future is bright.
I was lucky enough to attend an IO Extended event in 2011, and ever since I've been hooked. Google IO is a conference that combines the latest in technology, with a spirit of advacement and disurption. As a consumer and a developer, it's like Christmas. You get a bunch of new toys and tools to play with.
I'm attending Google IO 2014 in person in San Fransisco this year, and here are my top 10 predictions:
- 10. New Nexus 5 (or Google Phone)
- 9. New Nexus 10 (or 10 inch Tablet)
- 8. Android 5.0
- 7. New Chromebook Pixel
- 6. Chrome Web Store / Google Play Semi-Merger
- 5. Multitasking on Android
- 4. Public Availability of Google Glass
- 3. Google+ New Features
- 2. In-Car Android with Several Car Manufacturers (Tesla?!)
- 1. Android Wear / Google Glass Merger
It has almost been a year since Google IO 2013, where Google Announced a new IDE for Android, called Android Studio. Android Studio has been a major problem for developers and development companies since this date due to the schism between Eclipse and Android Studio.
Developers have to decide whether they build applications using Eclipse and Ant using the stable toolchain and tools they have been using for years, or whether to adopt the less stable and constantly changing Android Studio. What complicates this matter is that new Android capabilities and support and documentation is coming to Android Studio faster than Eclipse.
Grade at the Heart
Whether JetBrains or Eclipse have figured out the "best" way to build an IDE doesn't really matter to me as a developer. What matters most is that my toolset gets out of the way of me writing great applications.
This may be my naivete or lack of skills, but I find Gradle to be a terrible build system. It's not terrible from a feature set, or from it's logical architecture or flexible structure. It's terrible because it gets in my way. With Eclipse and Ant, the Android build system is exposed to me as a single file configuring the use of proguard. This file is optional. To get any Android application to work, I just need to tell Eclipse that it's an Android app, and it will handle the build process. My code will work if I create a new project, or if I move my code into someone else's system.
With Gradle, this process is bad. When I check out code from the internet and try to import it into my project, it fails. If I am missing one of the five gradle files that have meaningful configured content that I must protect, nothing is going to work on my application. Why is this build system trying to hard to get in my way?
Example Gradle Failure - ChromeCast Video for Android
Code sharing should be easy. To help developers learn to build applications for ChromeCast, they have created and released a starter project called CastVideos-android. This project is available publicly on Github here:https://github.com/googlecast/CastVideos-android
When I clone this project and attempt to import it into Android Studio, everything seems to go wrong. The first time I attempted to open it, it opened the /gradle/ folder, rather than the project file, meanining there was no source code. The second time I tried, I noticed that it wanted me to find the gradle.settings or build.gradle files, and I did that, but then my project wouldn't run because Error, configuration with name 'default' was not found. How am I supposed to fix that? Your default configuration is missing? Gradle is too complicated, and its use and existing right next to working code means it gets in the way of development.
SEPARATE BUILD AND DEVELOPMENT PROCESSES. I understand they are connected and should be as smooth as possible, but look at Yeoman and Grunt, these tools do the same thing Android Studio is trying to do with Grunt, but they do them much better.
Gradle may be great for huge teams or multi-year development projects, but I would argue that most of Android development doesn't happen this way. Android is most commonly used by small 1-5 person teams that need to write code quickly and get it out to users.
Having just returned from a trip to my local Best Buy, I was posed the question by a friend "Would you rather live in a walled garden, or in a desert?". This can feel like the choice we are forced to make between propretiary technologies and free or standardized technologies.
The context of the question was with the Samsung Galaxy S4 google edition (i9505g) and Miracast. At Google IO 2012, Google announced that Android 4.2 and above would be supporting the wireless display standard known as Miracast. Since then, support has been virtually non-existant. This includes both the Nexus 7 and the Nexus 10, both of which were launched with Android 4.2 (after the announcement), but without miracast.
Since then, Google has launched exactly two devices with Miracast support, the first is the Nexus 4, and the second is the Galaxy S4 Google edition.
Giving it a Try
Searching the internet for Miracast-capable devices results in around 4 devices, which state support for a confusing blur of standards, sometimes ignoring Miracast entirely. They all seem to cost $60+ at this point.
The closest thing that Samsung is pushing hard is the Allshare Cast capability, which all of their TVs and devices are equipped with. This proprietary version of display streaming seems to work very well when you have a handful of samsung devices, but do I want to be forced into using Samsung's standard and only buying their devices? If I wanted to do do that, I could just buy only Apple products and most likely have a superior experience with an iPhone, iPad, and an Apple TV.I went to Best Buy to try out Miracast's compatibility with these devices before making a purchase.
We found 6 TVs that stated support for Wireless Display, and 4 of them even showed up on my SGS4 GE as available, but connecting was flaky. Although I was able to mirror my phone on 2 Samsung TVs, the connection was slow and only lasted around 20 seconds before failing.
Perhaps the Miracast technolgy is too new, it's disappointing that neither the proprietary Android world has adopted it, nor any open source versions. Theoretically Linux or Ubuntu could provide direct support for the streaming standard over Wifi, but to date there seem to be no attempts to do so. The closest was a project to add Miracast XBMC on the raspberry pi.
In the modern world, there is a lot of complexity, and software is no exception. There's a hilarious xkcd that describes the splinter groups within hobbyist crazy straw fanatics, describing the fractal nature of such complexities.
One of the most annoying example of these comes with the complexity of publishing a polished high-profile mobile application. Within cameras we have digital cameras, within digital cameras we have the sports enthusiast market, within that market we have products like the GoPro. The GoPro announced The Hero 3 last year. WIthin the Hero 3 there are 3 editions. And for these editions there are mobile applications for both iOS and Android. The problem arises with the amount of effort it takes to launch applications like this.
In the 1980s there were hundreds of programmers working across the globe, in the year 2013 there are tens of millions of programmers working on building, rebuilding, and connecting software all across the globe. The net result is that there is a lot of software being built now, and it can be very hard to ensure it is all polished.
It's maddening to see applications where it's evident that a lot of time was spent, but then they miss some of the most basic details. This is the case with the Hero 3 Android Application. I haven't tried it out, but despite all of the time it took to design, build, test, and launch the application, the team responsible for putting it in the store completely failed.
"With the GoPro App you can now control your GoPro camera remotely using an iPhone, iPad, or iPod touch." This is one of the main descriptions for the application in Google Play, the Android marketplace. How much work would it have been for the person who copied and pasted the description to fix this? How much work would it have been to tweak 3 words at any point when working on publishing updates?
Perhaps this is irrelevant, and it obviously hasn't hurt their brand or their sales, but it's still amazing that oversights like this happen, propagate, and persist. If you try to look at how to prevent and fix this paradigm, constant minor incremental improvements are the only way. Every day, try to do better than the day before, and don't like with broken windows.
There is now a fourth player in the smartphone arena (and it's not RIM).
Today at 12:00PM CST, Canonical released a video recognizing the past, and announcing the future of Ubuntu. The future as proposed by Canonical's Mark Shuttleworth, is for Ubuntu to be a universal computing platform. Recognizing apps, content, and data as being universal, with customized interfaces for different form factors like Tablets, TVs, Phones, and Desktops.
This news is exciting, because being Linux and open source-based, multiple architecture and multiple device application development will be an easier dream to achieve. This would be a strong message to Apple, Microsoft, and Google that they have failed to unify all of the devices of a user. Ubuntu is a platform that I have used every day of my life for the last 4 years in the desktop space, taking that level of capability, stability, and power to other devices may be a winning combination.
In late 2012, Ubuntu TV was announced as the first extension to the Desktop Ubuntu experience. Shortly thereafter, Ubuntu for Android was announced. Ubuntu 12.10 was heavily optimized for touch and tablet interfaces. Now to complete the specturm, Ubuntu for phones is here.
The biggest and most exciting accomplishment has been the promotion of web applications as true applications. I've been predicting this from Google's Android for a while, but it looks like Ubuntu may beat them too it. Apps built using HTML5 for iOS and Android will work perfectly on this device.
Finally, Ubuntu has been working on intelligent and context-based menus for more than a year now. On Ubuntu phone they are exposing all of these interfaces via phone commands. Surpassing even Google's voice capabilities.
Support for Android-designed hardware is a part of the plan. This is a huge deal and something neither Microsoft or Apple could ever replicate. This means that any Android phone (and there are a ton of great ones) should be able to run Ubuntu. This means that all of the great Android hardware I've acquired should work very well with this new exciting mobile operating system.
The biggest challenge facing them is a lack of expeirence with heavy cloud applications. Historically they have relied on third parties, which could result in a fragmented or broken experience. This is exacerbated by the fact that the major service providers also have their own mobile platforms, so support may be slow coming or completely missing.
As of 1:00PM CST, their app development website is offline due to heavy load. This in interesting sign of the level of interest around developing for this platform.
Currently there's no plans for wearable computing, which will be an area for Google to innovate and easily exceed the capabilities of Apple, Microsoft, and Ubuntu.
I'm a huge fan of Android and Google's line of devices running the latest and greatest version of Android. In my backpack right now I currently have a Nexus 7 and a Nexus 10. In my pocket is the Galaxy Nexus. In the past I used Samsung phones like the Vibrant (USA T-Mobile version of the SGS1) and the SGS2, but since I received my Galaxy Nexus at Google IO 2012, I haven't really pined for any other phone. The Galaxy Nexus is a dual core device running the Android Jelly Bean 4.2.1. Compare this to the non-Nexus world, my family and friends on Verizon all use the Samsung Galaxy S 3 (SGS3). I have a huge amount of epxerience with other Androdi devices. Our company tests our software on a wide variety of devices, so I'm familiar with most of the devices available today.
With my passion for Nexus devices and my typical cycle of upgrading my phone every 6-10 months, I'm shocked with myself that I haven't bought the Nexus 4. Despite having been sold out almost constantly since its launch, I've had 4 or 5 opportunities to buy this device through friends and through brief periods of availability. The device itself is very exciting. With its glass back, bezeled edge, and improved camera, there are a lot of things to like about the device. It's a material upgrade in technical specifications, performing on par or exceeding the latest generation such as the SGS3.
The problelm with this device is that although its technical specs are more than a 100% increase from those of the Galaxy Nexus (my primary daily driver), it's only a 3-10% increase in user experience. What I mean by this, is that although its a supercharged device, it wouldn't really change my life very much. The version of Android it runs is the same as what I have today. It doesn't come with an inductive charger, and no official inductive charger or any sort of official dock has been launched to date. It lacks an expandable battery. I don't use an expanded battery in the Galaxy Nexus, but I feel like I could if I wanted to. Samsung and Apple are decimating Google with their accessory support, and its hurting the Nexus devices. In many cases a phone or tablet isn't a complete experience until there are quality cases and docks for it.
There have been two or three occasions when I really wanted to upgrade my device. The first is when playing Ingress. It would be really nice to hack portals more quickly, and for the appilcation to load faster. I've missed a couple of portals while driving around because I was waiting for my Galaxy Nexus to catch up. The second was on bootup. I run CyanogenMod 10.1, so some of this may be my fault, but I feel like from all of the videos of this device I have seen, the power seriously manifests itself on bootup. The Nexus 4 boots in tens of seconds, rather than in minutes. This material difference can be frustrating when turning my device on and off while travelling, or when flashing custom ROMs.
Overall, due to the lack of material improvements, I'm waiting on the Nexus 4. Perhaps I'll get one if my experience with my Galaxy Nexus to degrades, or if they launch a new Nexus phone in 2013, or if Google hands me a Nexus 4 at Google IO 2013.
All of a sudden 5 days ago my Nexus 7 would fail to update any application, with the error "Update for "Evernote" could not be downloaded due to an error. (Error retrieving information from server. [RPC:S-5:AEC-0])". I looked around on the internet for solutions. A lot of people recommended clearing data, enabling/disabling/clearing play services. None of these things worked for me.
In the end, I had to remove my main Google profile from the device, and add it back. Then all of a sudden the applications on my Nexus 7 updated perfectly. Hope this helps someone else.
Google needs to move faster with Android and adopt a fixed release cycle. The recent launch of Android 4.2 caused several issues for Nexus device users. Everything from experiencing new sources of lag and stutter in the user experience, to completely losing December in the contact application. Some may take this as an indication that Google needs to move slower with their Android releases and perform additional testing stagegates. My feeling is that this is the exact opposite of what they should do. Google, and modern software development in general, benefits from going faster.
What I mean by going faster is building more frequent rolling updates to the platform that do not require user intervention. Chrome for Windows/Linux/Mac is the gold standard representing this ideal. Chrome development happens in the open, meaning all source code for the application is developped using open source licensing, and is immediately availlable after developers commit it to the Chromium project. The Chrome team also has a fixed release cycle, meaning that every 6 weeks all of the users of the software will receive an update. Users can additionally opt in to what they call the Beta or Developer channel to get early access to features, in exchange for giving up stability.
If Android moved to a fixed release cycle, it would have many benefits. First of all, Partners such as Carriers, Manufacturers would be able to develop standardized processes around the adoption of Android. More frequent, smaller updates to the Android platform would force Google to improve their update capabilities. Right now non-Google Android devices are lucky if they are upgraded for a full year after launch. If these devices were build and planned with the expectation of a 6 week release cycle, Google would be forced to improve the robustness, speed, and quality of the Android update mechanism. Making this process transparent and irrelevant to users would be a huge win for the Android platform in general and would continue to encourage user adoption.
With Google's Android 4.1 - Jelly Bean release having landed at Google IO 2012, Google seemed to be poised to continue its strong market share growth in the US and internationally. A lot of users stating for the first time that Android as an operating system was good enough (read fast and smooth enough) to take on iOS.
Having been a huge fan of Android and the ANdroid philosophy for years, this was great to see. Android 4.1 was truly faster and better in a lot of ways. Google focused more on polish and stability than on new features. Having said that, it is now November of 2012, and we have yet to see Jelly Bean on more than 3% of devices. This metric is disappointing, but the blame can clearly be placed on the US phone carriers and on the manufacturers.
Now than Android 4.2 has been released as the latest version of Jelly Bean, Google seems to be shooting themselves in the foot even further. They are back at adding additional features to the platform, with major revisions to Google Now, Camera, the Play Store, and Gmail. They also have made several frustratingly minor updates to the UI of the platform, moving the Back, Home, List buttons from the lower left of the UI to center of the bottom of the screen. Allegedly this is to match how people really hold the device, but as someone that always holds my tablets by the corners, I'm skeptical.
Additionally, tons of user reports are coming in, myself included, that Android 4.2 is really slow on the Nexus 7. I notice that starting up the phone I experience tons of "Jenk" and lag before I can get in and perform actions. Even things like rotating the device can be greviously slow now, taking upwards of one or two seconds.
The mobile landscape is like a riptide. Across the public sector, Android is dominant across the smartphone market, and up-and-coming in the tablet world. Intel, ASUS, Acer, Samsung and LG are working on Ultrabooks to continue the desktop's legacy. In the enterprise, Apple reigns with the iPad. Microsoft, former champion of the personal computig world is a relative latecomer to the mobile space. With their Surface tablet, Microsoft is attempting to extend their former desktop dominance into the mobile space by consolidating the ideas of mobile and desktop into a single platform, and a single device.
Within hours of the launch announcement, I pre-ordered a Microsoft Surface with a cyan touch keyboard, and around noon on October 26th, I first got my hands on this new device. The following is a chronology of my feelings and observations with the tablet.
Overall now that I'm almost a week into the Surface, I find myself pulling out my Nexus 7 or Galaxy Tab 10.1 with keyboard when I really need to get things done. Whether it's missing a battery % indicator, or even just being able to see the time without touching the screen, the tiny details are adding up to a lot of frustration. I've gotten better at the keyboard, and I think that as a hardware device, the Surface is a piece of art.
In my time with the Surface, I've also experienced several fatal application and OS-level crashes. I haven't seen the Windows RT blue screen of death, but I've had several times where the system would become unresponsive entirely, or where the visual system would become corrupted.
Windows 8 RT is going to be a confusing disaster for consumers. With all of the downsides of a new empty mobile platform, and none of the benefits of the Windows ecosystem, I predict Windows 8 RT is going to flop. Users will be happier with a traditional Windows 8 device (possibly with a touchscreen or ultrabook), or an Android or iOS tablet.
The Nexus Q launched at Google I/O 2012 amid applause and confusion. Google is positioning this little device as the solution for "social streaming", a concept they are introducing that would theoretically allow anyone to visit your home, share their music and video collection with you, and then allow group control of the device throughout a gathering or party.
While the idea is sound, the execution is questionable. The device as-is today only works with Jelly Brean Android devices. As of July 2012, there are only 2 devices running Jelly Bean officially (Nexus 7 and the Galaxy Nexus). Second, the device only works with content streamed from YouTube or the Google Play store. This means that the applicability and usefulness of this device is extremely limited.
Nexus Q for Gingerbread
According to the Nexus Q guidebook (found on their website at http://commondatastorage.googleapis.com/support-kms-prod/SNP_2672134_en_v0 [PDF]), the Q is intended to support everything back through Android 2.3. While this is great to be stated in a guidebook, actual support for these devices has not been launched or scjeduled. If Google wants to gain any traction with the Q beyond a grand experiment, they will need to prioritize this process.
The one thing that can be said in their defense, is that they haven't actually started shipping to consumers. The only devices out in the wild are those owned by 2012 Google I/O attendees, 100% of whom own Jelly Bean Devices. This is great, but for a social streaming device to work, not just the owner needs the app, but all of his / her friends as well.
From June 27th - June 30th I was visiting the Moscone Center in San Francisco, California for Google IO. Google IO is the annual developer conference run by Google that focuses on its efforts with Android, Chrome, programming languages, maps, Google TV, and other products and services. Overall the conference was one of the best events I have ever intended. There was a huge number of great people, both presenting and attending. Sitting among that group of people, hearing about some of the most cutting edge technology on the planet.
Key announcements were made at the Day 1 and Day 2 keynotes.
- Android 4.1 Jelly Bean
- Project Butter - A project to increase the speed and responsiveness of Android overall
- Tripple buffering for parallel rendering
- Synced entire OS to VSYNC
- Prediction of touch events for more responsive touch prediction (predict where touch will be when screen refreshes)
- New Home Screen - Widgets and apps move icons, auto resize for easier maintenance
- Swiftkey-like native android keyboard
- Offline and local speech recognition
- Improved gallery for quick photo review
- Filmstrip view within gallery
- Android Beam - Send a photo or video by tapping phones together
- Pair and connect with bluetooth devices by tapping.
- Notifications (short and long versions, adding actions to notifications)
- Search - New UI, Voice Search, Google Now
- Search results in card format
- Google now - uses history, calendar, to figure out what you need and when
- PDK - Platform Development Kit to help carriers and manufacturers stay up to date.
- App encryption (in Jelly Bean)
- Delta Android App Updates - Fast updates of android applications by only sending APK deltas
- Android Push notifications evolving from C2DM into Google Cloud Messaging (Multicasting, payloads) free, no Quota
- Purchasing video instead of just renting
- TV episodes and series
- New Hardware
- Nexus 7 - 7 Inch Quad Core tablet for $200
- Nexus Q - Streaming Media Server connected to Google Play
- Nexus 7
- Galaxy Nexus
- Nexus Q
Additionally, each attendee got the opportunity to pre-order the $1500 Google Glass, launching to US-based IO attendees in early 2013. I signed up for these, as this is an extremely exciting leap in wearable technology. This years giveaways were great. I have since switched to the Galaxy Nexus (From the T-Mobile Galaxy SII) as my daily driver, due to high quality of the hardware and the quality of Android 4.1, Jelly Bean. Additionally, I have also started to carry around the Nexus 7 as my primary tablet and interface, rather than my Galaxy Tab 10.1. The speed, thinness, and lightness of this device are shocking, and make this one of the best tablets in existence.
Today Microsoft announced the Surface tablet. It's a relatively standard tablet with a 10.6 inch screen, but they are attempting to include greater computing power, a stand, and a new ultra-flat keyboard that is similar in size to Apple's smart cover.
There are really two things that tablets have thus far failed at, despite the best we have seen from Apple with the iPad and from Google with Android 3.x and 4.0.
The First Success - Tactile Keyboards
The first big win is the presence of a touchable keyboard on the new tablet. This is an absolute requriement for successful adoption of a computing platform. Half of what we do with a computer is highly repetetive, low-creativity data input. Human speech is faster than typing on a keyboard, but typing on a keyboard is still an order of magnitude faster and more accurate than typing on a touch screen. Human speech is pretty great on Android 4.0, but definitely won't replace typing in any meaningful way because of privacy concerns, as well as lower limits on sustained high-speed input. People aren't yet used to talking to their computers for 3 hours, but they are absolutely used to sitting at their keyboard for 3 hours.
I expected touchscreens with tactile keyboards to solve this problem, similar to some of the products announced at CES this year. Microsoft has gone a different way with building a tactile keyboard in the case. I should have expected this. Every day I carry around a Galaxy Tab 10.1 with a Logitech case that doubles as a keyboard. The keyboard makes the full tablet feel heavier than it needs to though, so Microsoft's solution is suprisingly elegant.
The Second Success - Multitasking
The second success in Microsoft's Surface tablet comes with the Windows 8 capability for multitasking. Android is capable of running multiple tasks simultaneously for users, but offers no interface for showing two screens at the same time. This is an absolutely critical feature for tablets to take a spot in the long term computing world. Countless times, I've wanted to type or edit a document while looking at an email. This is completely impossible on Android or iOS. I have even resorted to taking a picture with my phone, or combining my phone and tablet to achieve this effect in desperate situations.
Although they have not yet proven this feature, and the word is that it will require developer support, being able to show multiple applications simultaneously will win this tablet a solid place in the world of computing. Android has a huge opportunity to take the lead here though, because their applications are already optimized
for multiple screen resolutions. Imagine the email app running on 70% of the screen, and then phone version of 4 square running in the remaining 30% space. If Google had the guts and the brains, they would have already done this with Jelly Bean, and my fingers are crossed.
For the past week or so I have been running my SGS-T989 on the Ice Cream Sandwich rom called BlackEdition. This ROM takes the ICS hardware support from the Galaxy S II Skyrocket currently available on AT&T, and ports it back to our SGS II -T-Mobile. While it's very exciting to get access to ICS, the speed, the data monitor, and most of all, access to Chrome on my phone. There are still a few issues.
Media Scanner Issues
The media scanner in this kernel has some sort of major malfunction, as it will not stop scanning. What this means for me, is that the phone never goes into a proper sleep, and my battery just gets shredded to bits. As in, less than 6 hours from fully charged to dead. It also makes charging super-slow, so it's almost better to turn my phone off to charge.
Wifi Tether Issues
Initially when I went into the Android Settings to turn on the Wifi-Tether on which I have grown completiely reliant, the setting would not turn on. After experiementing and trying all of the different configuration options, I gave up. A few days later, I noticed that there was a configuration toggle in the top bar of the notification pull-down. I tried it out, and lo-and-behold, there was the Wifi-Tether that I had been hoping for so strongly. It now works great, although combined with the Media Scanner Issue, my battery can be shredded to bits in an hour or two.
About once every 20 or so minutes of use, the android core process will stop, freezing my entire phone, and preventing any operation for about 8-9 seconds. While not actually losing any work, or preventing me from being effective, it's very annoying.
In the past month or so, three new ICS ROMs have become available for the Samsung Galaxy SII for T-Mobile. These ROMS have their own issues and problems, and I don't feel like any of them are ready as daily drivers yet.
None of the ROMs worked "out of the box" for me, and I had to do some digging to get them to work. Each one entered an infinite boot loop that I had to pull the battery to get out of. Remember, if you want to boot into recovery, ensure the SGS2 is powered off, then hold volume up, volume down, and power until the Samsung logo appears. The solution for these boot loops was to do a more thorough wipe than the standard Factory Reset. There is a special tool called DARKSIDE.SUPER.WIPE that will fully erase your system, cache, and data partitions. Make sure you do a full Nandroid backup before doing this, as this will definitely erase parts of your OS.
Here are my notes on each rom.
This ROM was the first ROM I tried. After getting it to boot successfully, I attempted to make a phone call and discovered that there were no APNs included with the ROM for T-Mobile. Not wanting to manually install APNs, this ROM was not for me. I may come back to this one though, as it was the only pure Android ROM, without any TouchWiz, ruining the quality and asthetic of Ice Cream Sandwich.
[ROM] Skyrocket ICS Port
This was the second ROM I tried. This ROM had no APNs either unfortunately. This meant that for me it was unsuitable as a daily driver.
[ROM][cwm]-BLACKEDITION FOR THE SGS2 3-29-2012-ICS
Finally a ROM with APNs, but overall I am definitely not a fan of TouchWiz, and the continuing issues with autorotation and a general lack of polish across all of these ROMs prevented me from adopting it as a daily driver.
HexSLayer recently launched a few new versions. In the Android Marketplace (Now known as Google Play), HexSLayer 1.0.19 was launched, and in the Amazon App Store, HexSLayer 1.0.20 was launched. These may be the last updates for a few weeks, as there has been a major update to the packing system I use, known has PyGame Subset for Andoir. Both of the published versions of HexSLayer use PyGame Subset for Android (PGSA) version 0.9.3. This has been a great framework for me, as I have been able to write applications and games in Python, and then launch them simultaneously on Windows, Mac, Linux, and Android.
With the latest update of PGSA to version 0.9.4, there has been a change to how the system packages applications. Before, the system would copy over the raw Python source files (or .py files), but now the tool packages only the optimized and compiled versions of Python applications (the .pyo file). This means that if you come from an earlier version on Android and upgrade, you will end up having both versions on your device.
The problem with this upgrade path is that it leaves both versions of the files on your device, and the Python subsystem by default runs the old version of the application. That means that there is new code on your device, your phone will always run the old code. This has been the core issue preventing me from releasing HexSLayer 1.1.x.
I wrote to the author of PyGame Subset for Android, and discovered that he had a fix prepared that will allow me to continue using the old packaging method, while waiting for my users to upgrade to a version compatible with the new method.
As soon as PGSA 0.9.5 is release, I should be able to repackage and release the next set of features and bugfixes for HexSLayer.
Thanks for playing!