8 ms·
> Google does the same thing with Android How so? They have no restrictions on web browser development. Firefox has been there and I use it as my daily drive
by cptskippy 10y ago
> Google does the same thing with Android
How so? They have no restrictions on web browser development. Firefox has been there and I use it as my daily driver. Since KitKat, Android System WebView has been an app on in the Play Store based on Chrome that gets updated regularly.
- problems 10y agoNot to mention that Android also lacks a lot of restrictions that iOS has, JIT code = no problem, mono for android has many more features than the iOS one for that reason. You also don't have to use Google Cloud Messaging, you can do your own push notifications via IMAP, XMPP, etc. (Assuming you and your users are okay with pushing an 'okay I'm willing to sacrifice some battery life for this' button). Mapping components that use OSM are freely available, etc. Heck, you don't even have to use their phone app, you can install a SIP client. It's perfectly possible to use Android as it exists in AOSP without Google stuff at all. Some 3rd party apps may want to use things like Google Maps embedded, but there are projects that replace those and an Xposed module to fake the signatures to match. The Google-less Android system is really a decent experience if you're willing to put the work in to it.
- kuschku 10y ago> (Assuming you and your users are okay with pushing an 'okay I'm willing to sacrifice some battery life for this' button) That doesn’t work in Marshmallow, due to a bug, even if the user opts out, it will still disable the app during Doze. The bug has been fixed in later versions, but you as a dev obviously can’t just leave a huge share of your users without working push notifications.
- problems 10y agoI'm running marshmallow and I use SIP constantly - is this fixed in CM? Because as far as I know I haven't had any issue here, could just be that my phone doesn't Doze for another reason though.
- kuschku 10y agoSIP works, but excepting a native app from Doze doesn’t. For example, if an app has its own push notification system, even if it is whitelisted, it will be terminated during doze.
- problems 10y agoI'm unable to find any reference to this issue on Google. Is it device or ROM specific perhaps? Surely another constant connection like SIP would also be terminated, no? I don't see how that would differ from another push notification system. edit: to be clear I'm using a 3rd party SIP client (Bria), which I have indeed excepted via this method.
- kuschku 10y agoNo, but this is a bug, confirmed by Dianne Hackborn on G+
- problems 10y agoAre you referring to https://code.google.com/p/android/issues/detail?id=193802 https://code.google.com/p/android/issues/detail?id=193802 perhaps? This was fixed at https://android-review.googlesource.com/#/c/221708/ https://android-review.googlesource.com/#/c/221708/ and probably merged into many custom roms generated since. It also only occurred under fairly specific circumstances. EDIT: Yup, https://romhut.com/versions/cm-13-0-20160508-v8-0 https://romhut.com/versions/cm-13-0-20160508-v8-0 indicates it's been in CM for a while, which is probably why I haven't experienced it. Dianne Hackborn fixed this as far back as November 2015, it might have made it into 6.0.1 on some devices too, though I could be misreading.
- kuschku 10y agoYup, it got fixed on some devices, but the Nexus 5, for example, never got the fix. This leads to the problem that you, as a dev, either have to leave a huge amount of users without working push notifications, or use GCM anyway.
- madeofpalk 10y ago> Assuming you and your users are okay with pushing an 'okay I'm willing to sacrifice some battery life for this' button This is the fundamental difference in philosophies behind Android and iOS. Apple likes to build their software (most of the time) like Python - its an opinionated platform that strives to make that best decisions for users. They've determined there's very little user benefit from having multiple push notification services, and they don't want to give users a way to shoot themselves in the foot by enabling such a setting that would impact battery life like that. Many of Apple's decisions can be viewed through that lense.
- problems 10y ago> They've determined there's very little user benefit from having multiple push notification services, and they don't want to give users a way to shoot themselves in the foot by enabling such a setting that would impact battery life like that. Well, I'm the user and I've determined that I'd rather not send private data through their servers, that I'd rather be able to do things like run a proper IMAP, XMPP, SSH or SIP client on my device without disconnections, etc. Those seem like pretty major use cases to me, ones which Apple shouldn't be making decisions for the user about. If I ran an Apple device I couldn't use SIP and I'd be required to pay 4x as much for a phone plan rather than using a cheap data-only tablet plan for example. That seems prohibitive to say the least...
- madeofpalk 10y agoYup. That's fine. Apple's made an opinionated decision (which IMHO probably suits the masses). If you want to make a different decision and don't want Apple to handle your notifications you can disable push notifications system wide, or switch to another platform. This is of course ignoring that the user doesn't get much of a say in what push notification delivery mechanism is used - that's up to the developer. But, to be honest, if you don't trust Apple to handle your push notifications then I doubt you would trust them to do much else, and you should choose another platform.
- problems 10y ago
- lucb1e 10y ago> You also don't have to use Google Cloud Messaging Unless you want Signal, which everyone (rightly) recommends. Finally off of almost every Google service, wanna install the latest and greatest encrypted chat app... too bad. But I recently heard Signal is finally working on it (after they closed my Github Issue as wontfix/by-design a year or two ago).
- evv 10y agoAlmost none of the following APIs are available to web applications on Android: https://developer.android.com/about/versions/marshmallow/android-6.0.html https://developer.android.com/about/versions/marshmallow/and... Edit: I'm getting down-voted, presumably because people think web apps should have different capabilities than native apps. To those responding this way: why? I can't imagine why you'd prefer the locked-down app distribution channel of the Play Store, in comparison to the open web..
- cptskippy 10y agoI think there's a distinction between an HTML App like those made with PhoneGap/Cordova and a Web Application like Gmail.com. And I personally don't think that's a bad thing to restrict most of those APIs from Web Applications. Do I want or need a webpage to be able to turn my Camera Flash on and off? Nope Nope Nope. I think a lot of the newer APIs being exposed to the Web via the Browser are not very well thought out and will eventually be removed because of the risks they present.
- CaptSpify 10y agoPersonally, I think if Android had a better permissions setup then I'd be happier with being able to control those options, but I agree.
- deleted 10y ago[deleted]
- threatofrain 10y agoAsking ignorantly here -- are you saying that those API's are accessible to Google Chrome and not to other browsers? That Google is playing in an unfair playing field?
- gcp 10y agoare you saying that those API's are accessible to Google Chrome and not to other browsers Those APIs are available to all Android apps, including other browsers. The only complaints I've heard are about Push-style APIs and power saving essentially forcing you to use Google Services.
- pjmlp 10y agoThey forked Java by cherry picking features and APIs, and are making it increasingly difficult to write portable code across standard Java and Android Java. Any Java library that depends on Java 7 or 8 standard libraries not available on Android, newly introduced JVM bytecodes, some of the Java 8 language features, annotation processors, ... isn't usable on Android. Good luck getting Java 9 modules, or eventually Java 10 value types and updated generics when they become available.