iPhone 4 News Roundup
We have a slew of iPhone 4-related stories this morning, so I'm lumping them together for easier consumption/ignoring, depending on your personal feelings on the subject.
Here is a blog entry proclaiming that iOS 4 multitasking sucks and why. Here is a sketchy summary of privacy violations by Apple and AT&T — apparently they are reporting back jailbroken phones. Skunkpost has a story about the lines and sales of the new phone. But the big news of the morning is the reception problems that apparently only affect people who hold the phone in their left hands.
Possibly not for long though http://www.engadget.com/2010/06/24/iphone-4s-yellow-spot-issue-goes-away-with-a-bit-of-time/
Taxation is legalized theft, no more, no less.
Apple is using a bonding agent called Organofunctional Silane Z-6011 to bond the layers of glass. Apparently, Apple (or more likely Foxconn) is shipping these products so quickly that the evaporation process is not complete. However, after one or two days of use, especially with the screen on, will complete the evaporation process and the yellow "blotches" will disappear. How do I know? I was involved in pitching Z-6011 to Apple.
No one is denying that it exists, its just that it could very well just be the bonding agent not drying yet.
Taxation is legalized theft, no more, no less.
Seriously, is anyone else getting tired of the daily Apple story on the iPhone?
I get it, it's tech that people like, but do we really need daily updates on it? This site tends to be a heavy linux advocate and there is a nice writeup of the EVO 4G on Ars today. Not a peep of that though, MORE APPLE!
iPhone has preemptive multitasking, too, it's just not fully exposed to applications.
However, a misbehaving application cannot prevent others from running, which was the case with true cooperative multitasking OSes, such as Win3.x.
The new iPhone actually does address a lot of the calling complaints.
If you read the engadget review, the metal external antenna really do improve signal and ( for them) eliminated dropped calls.
The speakers are supposed to be improved for hearing people, and the phone had two microphones now so it can do noise cancelation.
Basically, they did a lot of things to improve call quality.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Comment removed based on user account deletion
From the TechWorld iOS4 multitasking article in the summary:
Waiting for a YouTube video to buffer over a 3G connection? It won't go anywhere unless you're staring at the loading screen.
Honestly, doesn't this also happen by default with applications on other mobile OS'es like Android, unless the developer specifies otherwise in the app's code?
From what I understand about the Android application life cycle under normal circumstances, once an Activity (the app's presentation layer, what you interact with) is completely obscured, the application's host process becomes a "background" process. Meaning, the app's Activities aren't visible and there are no Services running, thereby making the app's host process one of the first processes to be killed off so to allocate resources. (Service example: a media player running in the background while you're actively using another app). For an app's host process to remain in an active state, the app must have a running Activity, Service or Broadcast Receiver. In my following the Android dev tutorials, I've seen that only the Activity is absolutely required - Services and Broadcast Receivers are added only when you need them for your app to fulfill it's intended purpose.
So, in the case of buffering the YouTube video, if I were writing an Android app to do just that, I'd have to have explicitly created a Service to keep buffering the video while I used another app. If I didn't create a Service to keep buffering when the app's Activity exited the active state, then my app would do just what the article says - the app does nothing until I explicitly return to the app.
Am I missing something?
I think you are confused. Pre-emptive multitasking means that the kernel (technically, the scheduler) decides when a process runs and when it yields; the process has no control. In cooperative multitasking, there is a system call which the applications must use to yield control, and the scheduler simply decides which task gets control next (but not when it will yield). The iPhone has full pre-emptive multitasking (it, too, is built on UNIX, BSD in this case), it just limits the applications' ability to use it if you are publishing through the app store.
-- Two men say they're Jesus. One of them must be wrong. - Dire Straits
From a developer's perspective, iOS is the platform to beat.
Median iOS developer income per app: $682 per year.
Da Blog
Try again. iPhone apps can't call the equivalent even of Windows 3.1 yield(); - they either run in the foreground, or they're suspended - like the DOS 5.0 task swapper.
Don't be disingenuous. The parent was correct; iOS has a kernel with a preemptive task scheduler, and there are any number of API calls which explicitly yield or do the moral equivalent (any blocking I/O API call). Even while an app runs in the foreground it is always being multitasked with other parts of the system.
Also, by definition tasks in a preemptive multitasking OS either run or are suspended, at the operating system's whim. The difference between that and a system like DOS 5 is left as an exercise for the reader.
The few exceptions need to take advantage of a special api call for music, of all things.
And other 'special' APIs for other things. Apple has tried to come up with a comprehensive list of tasks which can usefully be backgrounded on a smartphone, such as messaging, downloads, and yes, audio playback. You simply register a thread (process? dunno the exact details) as providing such a service, and the OS allows it to continue to receive timeslices (assuming it's not blocked on I/O) while your main application is held suspended because it's not in the foreground. There are significant limits on what you can do in that context, but they all make sense in terms of limiting power consumption.
If you want a real multi-tasking OS on your phone, you won't get it from Apple. Not this year, and not next year. They're already starting to fall behind in the features race.
Oh please. You're smart enough to know that iOS is built on the Darwin kernel, and what that implies about its multitasking capabilities. All the limitations are deliberate and carefully thought out. It's undeniable that they're there because Apple thinks they will provide a better overall user experience, because the path of least effort for Apple would have let users multitask anything on day 1 of the app store going live. Instead they went to the trouble of doing extra work to restrict it.
Argue against the design of iOS 4's carefully limited multitasking if you like (oh no! That would require you to actually inform yourself! Can't have that), but pretending it's not "real" and that they're falling years behind is just trollish.