Nobody is going to make an Android-exclusive software
"Nobody" is a strong word. Consider these three scenarios:
One could develop an Android-exclusive application and use the revenue to buy a Mac, an iTrinket, and a developer certificate on which to port the application to iOS.
One could develop an Android-exclusive application in one of the categories that Apple is known to ban.
One could develop an Android-exclusive application that requires a gamepad. The forthcoming Ouya game console runs Android, and for game genres that aren't point-and-click, an on-screen gamepad isn't really a substitute for physical buttons. Let me know when Apple even ships a standard game controller for its current iBaubles.
As would analysis of apps like this to see why they buck the trend
I think the object of publishing an anecdote like this is to encourage someone else to make such an analysis as a response.
Android 2.3 gets all relevant security updates
Like Windows XP, Android 2 never got the update to Transport Layer Security to allow connecting to web servers that host more than one SSL site on one IP address.
Doesn't matter that the screen is "small", or that the processor is barely 1GHz, if that, or it has 512MB of RAM, and ships with 2.3.
Server Name Indication (SNI) allows name-based virtual hosting to work on SSL sites. The only remaining major web browsers that aren't compatible with SNI are Internet Explorer on Windows XP and Android Browser on Android 2.2 or 2.3. Try visiting SNI Test or Pin Eight on Chrome, Firefox on desktop, Safari on recent Mac OS X, or IE on recent Windows. Then try visiting it on your Android 2.x device.
Why does it matter, as an app developer? If your program runs without a force close and doesn't use any specific features to an Android version, your app shouldn't care if it is running on the latest code.
The upgrade from Android 4.1 to Android 4.2 broke a lot of apps that act as drivers for Bluetooth input devices. It broke "Sixaxis Controller", a driver for Sony's Dual Shock 3 controller. That eventually got fixed. It also broke "Wiimote Controller", a driver for Nintendo's Wii Remote controller. That still isn't fixed.
When I saw "people with physical challenges", I thought of "people with marathons to run"
And now that you point that out, I can't look at that without thinking of Nickelodeon's game show Double Dare .
Host: "What's the capital of Kentucky?"
Team 1: "Dare"
Host: "Now worth 20, or you can double dare them back. What's the capital of Kentucky?"
Team 2: "Double dare"
Host: "Now worth 40. What's the capital of Kentucky? You can answer or take a physical challenge."
Team 1: "Physical challenge"
Host: "The answer is Frankfort." (goes on to describe something sloppy that Team 1 must do in 30 seconds)
Why drive nails with a screwdriver when you could use a hammer instead?
Because hosting plans, especially budget shared hosting plans, are more likely to come with a screwdriver than with the particular version of a hammer that your application needs. You could have the best web app in the world written in Perl or Python, but you'll pay more to run it than you might on PHP-only hosting. MySQL is popular for the same reason: ubiquity on entry-level hosting.
for video, for a given bit stream size, are you better off with higher resolution and higher compression, or lower resolution and lower compression?
That depends. Downscaling and compressing at lower resolution is in theory equivalent to running a blur filter over the whole high-resolution picture and then compressing the blurred high-resolution picture. But in practice, video codecs prefer to handle features of a given size. MPEG-1 and MPEG-2 use 8x8 pixel cosine transform blocks, as do H.263-style codecs such as Spark, ASP (DivX), and Theora. H.264 and VP8 use variable transform block size to efficiently handle both flat areas and detailed areas in the same picture. Video codecs also differ in what sizes of motion they compensate for. Some codecs support precision down to the quarter or even eighth pixel, while others support only half pixels. Other codecs aren't effective at 1080p HD because their maximum displacements aren't big enough.
My rule of thumb is that if the escape function is a method of a database connection object, such as the $conn->escape_string() of MySQLi, it's the real deal. But most of the time, I just use prepared statements, reserving manual escaping for things like the right side of operator IN that would need a large, variable number of placeholders.
"Marriage is low down, but you spend the rest of your life paying for it." -- Baskins