iOS7 is not about flat
medium.com
medium.com
Also battery life has improved a great deal since the first Android or iPhone device came out. What may have been true years ago isn't necessarily an issue anymore.
Like Battery Saver?
http://www.windowsphone.com/en-us/how-to/wp8/basics/battery-...
I also get the impression that Apple's idea about the perfect balance between flexibility and "it just works" neighs more towards the latter than Google's ideas about it, as witnessed by some remarks that Google's Sync adapters that app developers _can_ use are exactly the same as Apple's solution that app developers _must_ use.
Actually, one of the biggest savings comes from apps all syncing at about the same time... firing up the cell modem is expensive, cheaper to do a bunch of transfers at once than spread out over time.
I can think of many ways Google could fix some of this bad behavior by throttling apps running in the background.
I was reading the article thinking: "Uh oh, now let's see the comments on HN..."
Similar to how the iPhone 5 has a 4" screen, but it's much smaller than a normal 4" screen in width. That's the product category. "7 inch tablet" as a market segment doesn't mean exactly 7 inches. Just because Apple said they'd never make a 7" tablet doesn't mean their product doesn't compete in the 7 inch tablet market.
Do you realize how ridiculous you sound?
Have you used both? Two very different experiences.
So I'm saying the two categories are insufficient. The iPad mini is a compact iPad. It's a third category. 7" tablets are more like large smartphones.
Well its a good thing the parent is saying they're just two items in a category. Not two exact same things.
I hope I don't sound ridiculous because someone miscategorized the iPad in the same category as Windows XP Tablet Edition.
Why are almost all Android tablets 16:9?
www.pocketables.com/2013/01/the-ipad-mini-has-me-convinced-that-a-43-android-tablet-is-a-good-idea.html
No one can possibly imagine that there could be an alternative (but still correct) choice if that wasn't the choice they themselves made.
The app requests to wake up at intervals, and if the OS decides it's OK (based upon battery, network activity and how often you use the app) the app is granted that access.
The mechanisms are wildly different:
On Android the app developer chooses if he is a good citizen or not and can if he puts the effort to use the SyncAdapter (Bobz mentions this in the thread). The SyncAdapter afaik provide the same benefits as the iOS method.
On iOS the app developer can only provide the hooks for the OS to call and the OS decides when to call them. This is similar to how SyncAdapter works from what I can tell.
So Android provides developers with the capability to shoot the proverbial foot. We can argue that it's a good or a bad thing based on that but calling people fanboys isn't conducive to a good discussion.
Apple has a great method of taking existing ideas, refining them until they shine, and putting them into a beautiful product. I have nothing against that, it's helped the industry immensely. I hope Apple keeps making improvements year over year and pushing the market along. What I take offense with is Apple's audience pretending these features never existed before, or that they were bad ideas then but great ideas now. That's exactly what I'm seeing you and others in this thread doing.
"Apple's audience pretending these features never existed before or that they were bad ideas then but great ideas now." First off, that's a wild generalization. Who is saying that? Sounds like you saw some random comments on the internet and now that represents a whole group of people that you disagree with.
"That's exactly what I'm seeing you and others in this thread doing."
Really? Xutopia's comments seem pretty reasonable to me. He pointed out a minor, but key difference. It's true, it's not "wildly different", but it is a significant, non-negligible difference. I don't see how him pointing that out turns him into your current bogie man.
I'd also venture that that key difference is where your "Apple audience" had an issue, not your claim that background updates as a whole was somehow seen as the devil. It could be abused by developers, and it was.
Arron61's comment more reasonably addresses how that was handled, and so yes, at times, you would have to do manual power management with certain unscrupulous apps. I think that aspect of it is/was annoying, but I've never thought the general idea of background tasks/multitasking as a whole was bad; that's just silly. And that's significantly different than the attribution you are making.
"On Android can't the app just run forever and decide on its own how often to poll the servers? This is a different thing. The OS decides when to schedule things if the app supports it. What may have been true years ago isn't necessarily an issue anymore."
vs
"When a competitor does it and Apple says they won't, it's the worst thing in the world. Once the competitor proves its worth and Apple does it, it's now the best thing ever"
Sure I'm using hyperbole, but I think I adequately summed up the argument. xutopia implied that Android's battery life suffered from having background jobs running, and that this was a bad thing. Since Apple is only letting the jobs run at predefined intervals and all at the same time to save battery life, this is a good thing. That is exactly "it was bad when Android was doing it, and it's good when iOS is doing it". I accept that perhaps he didn't know how Android's background scheduler works, but that still says to me "background tasks are a bad thing except when Apple does it."
You're also conveniently ignoring that I called out just about everyone who had responded at that point, not just xutopia. xutopia's comment was the least offensive of all of them, and I certainly understand his argument. Apple is doing it in one of the many correct ways. It's not, however, significantly different from how Android recommends developers accomplish the same task. The only difference is, on Android this is discretionary and on iOS this is enforced. Neither of these are bad things.
[1] https://news.ycombinator.com/item?id=6264617
This is a discussion I participated in not that long ago where people were legitimately stating that Windows Mobile and Windows tablets don't count because the iPhone and Android phones look different and have faster processors. I just gave up.
Who is everyone? Where? Those people over there?
Rather, it's a feature with some negative repurcussions as well as benefits, some possible tradeoffs.
Apple, for better or for worse, these days, esp on iOS, generally chooses not to jump into such features right away. They wait until they can expend the developer time on them to consider all the trade-offs and all the choices and different decisions that could be made in implementing that feature. And then they spend that time, and try to implement the feature in a way that minimizes downsides, maximizes upsides, and minimizes technical debt too.
Doesn't mean they always get it right. And this strategy itself, even when gotten right, has it's own pro's and con's -- there are certainly reasons, especially for hackers, to prefer Android's wild west over Apple's walled garden.
But there are evaluations that are neither "Android was stupid to implement it 5 years ago" nor "Apple was stupid NOT to implement it 5 years ago."
1. Blame something on Apple "fanboys" or commentariat.
2. When someone calls you out proclaim "but I use/like a Mac".
We are not fans of apple fanboy commentary, AND we don't care.
[1] https://developer.mozilla.org/en-US/docs/WebAPI/Simple_Push
Not a new concept, I'm sure the patent battle lines are already well drawn.
- Apple: http://www.faqs.org/patents/app/20100227632
- RIM: http://www.uberphones.com/2010/12/rim-sues-kik-patent-infringement/
- MS: http://www.microsoft.com/en-us/news/press/2009/mar09/03-25AXIGENPR.aspxThe self-centered perspective of the article is even slightly disturbing, basically implying that their app needs to pre-load data because it's so important and can't make the user wait. A common perspective, sure, but this is the tragedy of the commons in app form.
This will require some careful government.
In practice for occasionally used apps it seems to happen once a day, and while you're on wifi and charging if possible.
Or are you comparing random API doc material and actual technical details?
Apple says a lot of things, not all of them turn out to be technically accurate.
For example, do you know it actually will not allow poorly behaved apps to drain battery, or is this just an assumption based on what apple says will happen?
What always happens in these discussions is people say "apple's docs say x, so it must be like x". Quite often, when people actually go and look at how it operates, it isn't like x at all.
Given only that, you cannot possibly make informed commentary on how it will behave in practice, you are just parroting a story.
In particular, you said "it let poorly-behaved apps drain significant amounts of battery in the background and it's not true that Apple has now added that possibility."
You cannot possibly assert this with any real details to back it up, because you do not know how this architecture operates past "apple says they won't be woken up enough or run long enough to drain battery". If you have the actual details necessary to back this statement up, please add them.
Unless you are talking at such an abstract level where everything that matters is an implementation detail, in which case it's very easy to design perfect architectures that have no problems!
We don't believe people when they make crazy claims about crypto, without seeing the actual details and implementations. We should not trust Apple or Google's marketing points about their architectures when trying to make "architectural criticism".
In the end, if you really believe "architectural criticism" is possible without actual detailed design info, carry on.
But to me, that's a worthless discussion based on what are essentially talking points.
In any case, all that matters in the end is performance in the field, so this entire discussion is mostly technical masturbation until real users have phones in hands.
> But you have no real architecture details, only a small
> number of bullet points on how it's supposed to behave
> and a simple but not horribly descriptive API.
And WWDC presentation.Regardless, I think your pedantry is based on a statement I intended to be read in a less formal fashion than you're choosing to read it. When I said that it was not a possibility for poorly-behaved apps to drain significant amounts of battery under iOS 7, I didn't mean that it was absolutely impossible under any and all circumstances including system bugs, unforeseen architectural weaknesses, or gamma ray induced bitflips. People say "Linux uses memory protection to keep processes from corrupting the memory of other processes" and we all understand that they don't mean that it's literally impossible for memory problems to ever happen.
Likewise, my point was that it is generally true that iOS 7 doesn't allow apps to wake up as often as they want. That is a design goal behind its architecture. Doubtlessly, neither its architecture nor its implementation are perfect — I'd be surprised if it were utterly impossible for an app to end up running whenever it wants in the background. But it'd be boorish to belabor that point.
The original post that has led to this discussion was saying that Android has been criticized for being designed to allow apps to run in the background arbitrarily and now iOS has been redesigned to allow that too. That's not true. And the conclusion of hypocriticalness that was drawn from this faulty premise was untrue.
They do not appear as supporting details of your argument, so ...
Again, you are trying to make it seem like pedantry and that i am addressing only extreme cases or bugs , and my point is you have offered no details to support any part of your argument.
"Likewise, my point was that it is generally true that iOS 7 doesn't allow apps to wake up as often as they want. "
I quoted your statement about battery life, and said you have offered no details to show this to be the case. Rather than offer details to refute that, you have now instead said "I said something different".
I'd appreciate it if you would stick on point and address my contention that you have not offered details about this statement:"it let poorly-behaved apps drain significant amounts of battery in the background and it's not true that Apple has now added that possibility."
Please offer details to back this up. IE what architectural details you know that you believe make it the case that apple has not added the possibility of apps using large amounts of battery in the background.
If the details are "apps can't arbitrarily wake themselves up", then your statement about the possibility of background apps draining battery life is easily shown to be wrong, and i'll be happy to refute it for you. If it is something else, i'd love to hear it, so i know exactly what argument i am addressing.
Let's stay with this one part of the argument, please.
The crazies have come out in this thread.
I don't think they changed their mind, they made it less restrictive probably because newer processors can complete tasks faster and go to sleep faster which preserves battery life.
I would need the ability to completely turn this off - which according to another comment here it will be.
I did when switching carriers and was shocked at how little non-wifi data I was really using. I use plenty of apps, get they typical corporate load of emails, upload photos, read stuff on the internet... and my cellular usage was in the low hundreds. Which made sense thinking about it, wifi at home, wifi at work.
But even without knowing that, I wasn't worried because I'm judicious on what apps I allow on my phone. And I would like it if my podcasts were downloaded without me having to explicitly open the app in the morning, FB is already updated when I open it, or the NY Times already has the news.
To date, the way most developers solve this (Aside from optimizing for performance where possible) is to use loading indicators of some kind, but that's a bandaid at best. Some work will definitely have to be done to manage the battery drain concerns that can arise from this, but more time spent in your app actually doing stuff, and less time waiting for the app to update will be a huge gift of time back to users (basically 2 - 5 seconds every time you open an app is about to be given back to you). Add that up over many app opens every day over many days every year; its substantial.
*There are a few exceptions, such as Mail which the average user understands.
For much larger apps the "fake screenshot" is harmful. Take the Facebook app for example - what should the "fake screenshot" be? iOS does not differentiate between a completely fresh launch vs. a simple restore from background, and will show the same image no matter what.
So now you're in a situation where you've presented your users with a fake/blank Facebook stream, but really they were restoring to a photo they were looking at. Oops.
Or hell, do you even know if your user's logged in? Would be a shitty experience to show them the fake/blank stream but suddenly pop them back to the signup/login page no? What if they are logged in? Would be a shitty experience to show them the signup/login page and suddenly yank that out from under them.
This whole business is a shitty solution to a shitty problem: apps take forever and a day to launch.
I don't see how backgrounding solves any of this.
<whistles>
As for slow app startups, Apple hates that too. It's fine to show a loading screen, if there is loading to be done. Showing marketing videos and other bullshit? No. Not fine.
If the app is loading, show a loading screen. Don't tell developers to lie to their users to make the platform look faster.
Given about 90%+ of mobile users have access to a wifi point + charger on a nightly basis, this seems reasonable.
I'd mainly use it for podcasts and Audible - keep my casts and books updated so I don't have to sit in the car for 5min downloading the daily selections.
That said I also played a ton of the radio last month too but I wish I could turn 3g for the radio stuff and not the rest instead of toggling it all the time.
Also, I'm not quite sure API enhancements are what a release is "about". Admitting that the crazy 3D designs were over the top and adopting a design similar to Metro and Android Holo seems like a rather large shift for Apple.
- Size limits. It's a push notification, so the amount of payload you can attach is pretty limited. Not the whole conversation history of a chat, for example.
- Lack of guarantees or SLA means using it this for time-ordered information is a bad idea. For example, assembling a chat history from a series of pushes is generally a recipe for awfulness. Pushes are not guaranteed to arrive at all, nor arrive in a certain order.
- No sensitive information in pushes, since it's (mostly) transmitted in the clear. Apple recommends payloads be IDs and such and the human-readable component be general. "You have a new message!" rather than "You have a new naughty pic from Jane!".
Long story short, when your app wakes due to a push notification it's almost always smarter to fetch the canonical state over the networking than try to piece it together from the push payload. This incurs a pretty hefty user-visible delay and results in a shitty experience.
This was an interesting line. I had a debate with my designer friend about this who pointed out that this wasn't new. Turns out, the line about no splash screens is part of the Human Interface Guidelines today. The splash screens seems to have been a community driven interface decision rather than an Apple one.
Circa 2002.
Everything old is new and magic and amazing now folks!
What exactly is your point ?
Remember 7inch tablets would need you to file down your fingers to use? Or that "if you see a task manager, they blew it" and low and behold, a task manager appeared on iOS.
I'm all for Apple implementing these features, but I'm tired of them badmouthing things they don't have, only to trot them out as amazing once they do have them.
Microsoft used to badmouth HTML5 Canvas, then when they finally got a great implementation in IE9, all of a sudden, its WebGL that sucks.
Don't badmouth features just because a competitor has them and you don't, badmouth them if they are indeed, bad features.
Is there any way for users to manage this behavior? If not it seems ripe for abuse or just plain laziness.
The OS tries to be smart about it, lumping fetches together when it can, and noticing things like when the user opens the app typically.
So say the user launches GREAT WEATHER app app normally at 8 am, the OS notices and performs a background fetch a few minutes before (for example).
From other comments it sounds like iOS might figure out I like to listen to podcasts en route to work and learn to pre-fetch. But I don't want to rely on it noticing this or wait for it to learn.
I have a mix of Android and iOS and it's for this use case that Android handles all my podcasts.
Optimizing response times seems like a better, more universal approach.
I think if you're not careful the future will creep up on you without fixing anything.
The unlikely day that Apple takes the approach that "you don't fix what ain't broke" would be a sad sad day indeed.
Where I do agree with you is that Springboard needs a major update - I want to see a grid of apps I've recently launched for example (the recents tray on double-tap home is way too small). Or ones that have updates/badges so I don't have to hunt over my 5-6 screens for updates. Perhaps the notifications enhancements (and the "today overview" a la Google Now) might alleviate this.