Android Dev - App Feedback Thread - January 25, 2020 |
- App Feedback Thread - January 25, 2020
- Insecure keystore implementations
- On the Storage Apocalypse: Isolating existing apps from negative reviews from Android 10 users
- Completely custom animations using DiffUtil
- How long does the approval of an app lasts?
- What is the best AdMob alternative wrt $ income
- Dalek: UI driven state machine that will exterminate your bugs
- State of Magisk: 2020 - topjohnwu
- Ad network for non Google Play app
- What are the most common tests you write for android app?
- Benefits of Writing as a Software Engineer
- Any devs using Navigation Components? Good, Bad or Great?
- Now in Android: January 23, 2020
- The Story of Our Big Android App Rewrite at Gojek
- How to mux/merge multiple mp4 files into one video file on Android
- Kotlin 1.3.70 Early Access Preview - EAP
- Anyone here using a collapsing toolbar with an image that draws under the status bar?
- What Android TV device does Google use when reviewing for Android TV?
- IntelliJ IDEA 2020.1 EAP: Java 14, improvements for Git and UI, and much more
- Use cases to use a service properly?
- facebook/hermes: Hermes is a small and lightweight JavaScript engine optimized for running React Native on Android.
- Can you give me examples of where Android 10's gesture exclusion zones are actually used? Even the Playstore and YouTube seem to be missing them in places where they should be
- SQLiteDatabase.query orderBy cluase: "SELECT": syntax error (code 1 SQLITE_ERROR):
| App Feedback Thread - January 25, 2020 Posted: 25 Jan 2020 04:28 AM PST This thread is for getting feedback on your own apps. Developers:
Commenters:
To cut down on spam, accounts who are too young or do not have enough karma to post will be removed. Please make an effort to contribute to the community before asking for feedback. As always, the mod team is only a small group of people, and we rely on the readers to help us maintain this subreddit. Please report any rule breakers. Thank you. - Da Mods [link] [comments] | ||
| Insecure keystore implementations Posted: 25 Jan 2020 05:48 AM PST As part of my work I've discovered during past 2 years four different Android phones that have a critical vulnerability in their keystore implementations. Basically whenever such a device creates an RSA keypair, the key is always the same across ALL devices. All findings were reported to the device manufacturers, 2 of them patched the issue, 2 have not responded. How is this even possible? Shouldn't Google compatibility test suite cover this sort of thing? Quite easy to test, create two keypairs and make sure they're not the same. It's not like the phones are from unknown companies (Nokia for example, luckily they fixed quite rapidly). Not sure how to proceed with the 2 manufacturers who have not acted upon the issue. [link] [comments] | ||
| On the Storage Apocalypse: Isolating existing apps from negative reviews from Android 10 users Posted: 24 Jan 2020 08:17 PM PST NOTE: jump to the "Splitting an app" section below to skip the discussion section EDIT: as pointed out in Tolriq's comment thread - https://www.reddit.com/r/androiddev/comments/etm048/_/ffhoicp - distributing the two APKs as Multiple APKs or if you are willing to use App Bundles, then as an App Bundle - these are also options available to you. However, with these you do not get an opportunity to phrase your Description differently to the two demographics - for example if you want to NOT publicize an old feature that you can no longer support with the new crippled storage options, then you wont be able to say that (unless you want to add if-then statements to your Description that will confuse earlier android version users as well).
With the upcoming extinction of storage as we know it in Android 10, and with the alternatives being still not clearly defined:
Some developers may be unable to update their apps successfully to the new models - some may be short of time to update all their apps, and some apps' feature sets may not translate well to the new limitations (even using the MediaStore/SAF alternatives). Once Android 10 users encounter their app, it will lead to bad ratings, and support issues. And we are not aware if the storage changes for Android 10 are the final change - it could be reversed in the future if it turns out to be a disaster. In such a situation, some developers may want to isolate their previous apps from the headache that will accompany Android 10 (as users ask where their files went and cannot be found). Some apps which were designed from the ground up to have access to persistent storage access on local storage, may not be fully constrainable to the new model (where files saved are non-persistent or stored in some sandbox no longer visible to other apps). Knowing the limitations of Android 10, developers may want to not promise some features (that they used to promise for previous Android versions). All these changes militate for a split in how your apps are going to target users - if you want to save yourself from needless support distractions.
The solutions are:
We did this with a hearing aid app we made some time ago which was using a new android audio engine with low latency. This audio engine was promised to be available for Oreo 8.0. However, on arrival even though their docs and support forum still said it worked great for Oreo 8.0, the reality was that it did not work for half the Oreo 8.0 devices out in the wild (Google engineers were focused primarily on testing on Pixel devices and didn't know their much publicized engine did not work on half the Android Oreo 8.0 devices out there). As a result the app we created was a disaster from day one, as all manner of devices were showing up as being unable to run the app. Some time later, and after prodding by developers, Google started acknowledging that the engine won't work for Oreo 8.0 after all (they took even longer to change their promotional material which continued to lure developers into using it for Oreo 8.0). In the end, the engine was stated to work on Oreo 8.1. Because our app was already out there, and suffering from hordes of 1-stars, we split the app - one targeting up to Oreo 8.0, and one (new app) targeting Oreo 8.1. This may not have been ideal, but it allowed all the 1-star reviews to go to the Oreo 8.0 and lower version, while at least the Oreo 8.1 version was saved from such criticism. The older app (which now became an Oreo 8.0 and lower app) was not visible to Oreo 8.1 users and above, and the new Oreo 8.1+ app was not visible to Oreo 8.0 and lower users. Thus we split the demographic - directing all the problematic Oreo 8.0 users to go to the old app (which the by now bad ratings) - while directing new Oreo 8.1+ users to the new app (which thus had a chance to get good ratings). For Storage we need to so something similar. We need your old app to be limited to below Android 10, so it is saved from the ire of Android 10 users. And if you want to have a version for Android 10 and above - that you do with a new app.
Splitting an app Here are the API numbers for Pie and Android 10: https://developer.android.com/guide/topics/manifest/uses-sdk-element
OldApp's AndroidManifest.xml probably did not have a maxSdkVersion - because you were not previously limiting it's visibility to higher android versions (since Android previously used to assure that all old apps would run on newer Android versions - no more).
OldApp's AndroidManifest.xml now should limit it's visibility up to below Android 10 - i.e. up to Android Pie 9.0 (API 28): Add:
You can keep your old minSdkVersion etc. as before, since you are not limiting behavior for older versions of Android.
Reference: As you can see the Android documentation is already obsolete - here Google argues how old versions of the app will always work on new Android versions. The old mantra - now discarded with these Storage changes in Android 10 - is no longer being honored by Google (but it's vestiges still remain in the docs, misguiding users): https://developer.android.com/guide/topics/manifest/uses-sdk-element
With the changes to maxSdkVersion above, Android 10 users will not see OldApp on Google Play Store. If you decide to create a new app - or even just use the same app (Google will not penalize you for Repetitive Content because these two apps will address separate demographics - each seeing only one version) - with this new app you now get the advantage that you can couch it's Description to the new Android 10 users, caution them about limitations to storage in the Description, and possibly in the app's help section or what's new section as well. And you get the ability to actually LIMIT or remove those features which you could not translate well over to the new Android 10 storage model (where files saved are saved instead to a sandbox and are not persistent in the old sense). Even if you use MediaStore or SAF, use of those may still limit some features from being translated well, and having a separate version of the app will allow you the freedom to tinker with the presentation of those features (independent from how your old app used to do it).
NewApp's AndroidManifest.xml: You probably already had a minSdkVersion setting (probably was set to API 22 or some such) - well now you set it to Android 10 (API 29) - as this new app will target only Android 10 and above users: change:
to:
You don't need to specify the maxSdkVersion for the NewApp because this will work for all versions Android 10 and above.
References: [link] [comments] | ||
| Completely custom animations using DiffUtil Posted: 25 Jan 2020 03:44 AM PST | ||
| How long does the approval of an app lasts? Posted: 25 Jan 2020 04:21 AM PST Its been 20 hours now, would like to know whats the normal time for that. In german forums they say around 3-5 hours :/ [link] [comments] | ||
| What is the best AdMob alternative wrt $ income Posted: 25 Jan 2020 07:36 AM PST After being terminated by Google AdSense without been given a real reason, answering my requests for appeal, or any other human-like interaction, I am looking to find the best alternative to AdMob. I have earned around $500/month before and have replaced two apps with MoPub. However this only returns $30/month ( approx. 10% of AdSense ) making my side-hustle a hobby rather than a side-hustle. Which are proper alternatives ( which will not incite google to kick you off the Play Store ) to earn closer to the AdSense revenue ? [link] [comments] | ||
| Dalek: UI driven state machine that will exterminate your bugs Posted: 25 Jan 2020 07:08 AM PST
| ||
| State of Magisk: 2020 - topjohnwu Posted: 24 Jan 2020 06:34 PM PST
| ||
| Ad network for non Google Play app Posted: 25 Jan 2020 01:04 AM PST Hey, my App was removed from Google Play, does anyone know an Ad network for which it's not necessary to be published in Google Play? [link] [comments] | ||
| What are the most common tests you write for android app? Posted: 25 Jan 2020 03:01 AM PST | ||
| Benefits of Writing as a Software Engineer Posted: 24 Jan 2020 08:48 PM PST | ||
| Any devs using Navigation Components? Good, Bad or Great? Posted: 25 Jan 2020 06:04 AM PST Navigation Component was released a while ago I guess. I heard about it when it came out and thought i will eventually learn about it but then forgot. Now I started learning iOS Programming and after seeing storyboard I remembered the Navigation Component. I know storyboard is a whole different thing but the idea is kinda the same to handle navigation right. So any one tired the navigation component in their daily Android Programming? Is it better at handling backstacks then doing navigation through code? I do navigation through code and handle the backstack but I really hate it. Love to hear your thoughts and start a discussion. [link] [comments] | ||
| Now in Android: January 23, 2020 Posted: 24 Jan 2020 02:02 PM PST
| ||
| The Story of Our Big Android App Rewrite at Gojek Posted: 24 Jan 2020 08:47 AM PST
| ||
| How to mux/merge multiple mp4 files into one video file on Android Posted: 24 Jan 2020 11:38 PM PST When you use front facing and back facing cameras on Android, you have to make separate mp4 files each time you switch cameras while recording. I got that working just fine, but now I need to merge each video into one combined video and am having trouble finding resources on how to do that. Here's my SO post:https://stackoverflow.com/questions/59905980/merge-mux-multiple-mp4-video-files-on-android [link] [comments] | ||
| Kotlin 1.3.70 Early Access Preview - EAP Posted: 24 Jan 2020 06:25 PM PST
| ||
| Anyone here using a collapsing toolbar with an image that draws under the status bar? Posted: 25 Jan 2020 03:04 AM PST Does your status bar jump around like this? The frame where it happens: Looks super ugly. It starts happening when I set fitsSystemWindows on the AppBarLayout. But without that attribute, the AppBarLayout doesn't draw under the status bar. [link] [comments] | ||
| What Android TV device does Google use when reviewing for Android TV? Posted: 25 Jan 2020 01:51 AM PST I'm trying to release our game for Android TV via Google Play Store, but as soon as we submit Google responds that the game crashes on start. The game does not crash in the Android TV emulator regardless of what Android TV OS I use, so I want to purchase a real device to test on. [link] [comments] | ||
| IntelliJ IDEA 2020.1 EAP: Java 14, improvements for Git and UI, and much more Posted: 24 Jan 2020 10:30 AM PST | ||
| Use cases to use a service properly? Posted: 24 Jan 2020 12:40 PM PST When would I use a service? As opposed to coroutines, rxjava, and/or workmanager? I know the importance of a foreground service, to keep your process alive, but what about a regular sercice? or intent service? It just feels like I can accomplish service work with coroutines or workmanager. [link] [comments] | ||
| Posted: 24 Jan 2020 04:23 PM PST
| ||
| Posted: 24 Jan 2020 06:01 PM PST | ||
| SQLiteDatabase.query orderBy cluase: "SELECT": syntax error (code 1 SQLITE_ERROR): Posted: 24 Jan 2020 05:39 PM PST I found the below syntax for orderBy clause:
but it gives this error:
what's the mistake I'm making? [link] [comments] |
| You are subscribed to email updates from Developing Android Apps. To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
| Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States | |
No comments:
Post a Comment