• Breaking News

    Saturday, November 23, 2019

    Android Dev - App Feedback Thread - November 23, 2019

    Android Dev - App Feedback Thread - November 23, 2019


    App Feedback Thread - November 23, 2019

    Posted: 23 Nov 2019 04:28 AM PST

    This thread is for getting feedback on your own apps.

    Developers:

    • must provide feedback for others
    • must include Play Store, GitHub, or BitBucket link
    • must make top level comment
    • must make effort to respond to questions and feedback from commenters
    • may be open or closed source

    Commenters:

    • must give constructive feedback in replies to top level comments
    • must not include links to other apps

    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

    submitted by /u/AutoModerator
    [link] [comments]

    What should an android developer with 1.5 years of experience know?

    Posted: 23 Nov 2019 01:21 AM PST

    So I have been working as an android dev for more than 1.5 years but I feel like I dont know a lot of stuff that others know. Is there a list of stuff that all Junior developers are supposed to know? I feel like I am not learning enough.

    submitted by /u/mrdeadman007
    [link] [comments]

    On the moral hazards of dealing with Google - the Google-App Developer dynamic

    Posted: 23 Nov 2019 12:42 AM PST

    Moral Hazard

    Moral hazard can occur under a type of information asymmetry where the risk-taking party to a transaction knows more about its intentions than the party paying the consequences of the risk. More broadly, moral hazard can occur when the party with more information about its actions or intentions has a tendency or incentive to behave inappropriately from the perspective of the party with less information.

     

    Is SAF (Storage Access Framework) dead on Android 10 for non-file-manager apps ?

    Local file storage has been taking a beating since Android 4.0 KitKat, as Google has had second-thoughts about standard file access, and has sought to nudge users to rely more on cloud storage (as Apple does lucratively) rather than cheap SD cards. KitKat killed seamless access to ext SD cards. Google introduced the non-standard and kludgy SAF as a workaround, but this still broke seamless API access. Now with Androld 10, Google seeks to do the same for internal storage - which becomes ephemeral/non-persistent - unless you use SAF. But soon after that, Google announced apps wouldn't automatically be able to use SAF either. Setting the stage for an Apple like enforced reliance on the lucrative cloud services by users. Developers will be an unwilling accomplice.

    If there is now a process similar to the bot driven Permissions Declaration Form (of Call/SMS fiasco fame), this means non-file-manager apps and even legitimate file manager apps (that already use SAF) will have issues passing compliance by bots.

    What does this mean for the relevance of SAF for writing to external SD card for apps ?

    Should those who haven't implemented SAF yet avoid it entirely ?

    What about those apps which have implemented SAF already - will they have to gain compliance as "file manager apps" ? For apps which include a file manager functionality, but the wider app is not solely a file manager app - will they have the same sort of issues passing compliance as Call/SMS apps had with Google bot driven Permissions Declaration Form ?

    For example an audio recorder app with a full file manager for managing files and organizing into folders may not be seen as "predominantly" a file manager app, but primarily an audio recorder app by the bots who manage an approval process.

     

    Past history of approvals - Permission Declaration Form - Call/SMS fiasco

    This is the way the Permissions Declaration Form from Call/SMS fiasco worked. You may be a call recorder app, but you could no longer file call recordings by phone number (phone number was no longer available to a call recording app) - for that you had to be a dialer app.

    An offline SMS backup app was not fine - could not get access to SMS - for that had to be default SMS handler app!

    What we are witnessing is a move away from permissions for features, towards permissions by app category. So given the behavior or the bots with Call/SMS fiasco, we could be seeing audio recorder apps which have a full file manager feature built-in fail to get compliance, because they are "not file manager apps predominantly".

    If they are file manager apps, but also do audio recording, they will be seen as audio recorder apps, as now Google will say "why do you need to put file manager functionality in your app".

    In a way this is a counter policy to the Google Repetitive Content policy.

    For example if some accessibility features are required for an app for the blind, then will a dev be safer to separate their app for non-blind from the app for the blind ?

    Yet Repetitive Content policy forces devs to not have separate app for blind and non-blind - not even an experimental side-project. It leads to app ban and puts your dev account closer to account ban (lifetime). We have experienced this directly:

    This automatically forces apps to not be the all-in-one app they were before.

     

    Moral Hazard and Google

    Given all these rules are being run by bots, and have overlap, there is an ever present issue of "Moral Hazard" - where one party (devs) entering into ever-changing rules landscape (run at discretion of Google) and incurs all the risk:

    Moral Hazard

    Moral hazard can occur under a type of information asymmetry where the risk-taking party to a transaction knows more about its intentions than the party paying the consequences of the risk. More broadly, moral hazard can occur when the party with more information about its actions or intentions has a tendency or incentive to behave inappropriately from the perspective of the party with less information.

     

    This paragraph describes exactly the situation developers find themselves in with Google.

    Google sets imprecise rules - these can be dealt with by info sharing between devs. But then Google keeps changing these imprecisely defined rules over time - which makes prediction by devs even harder.

     

    Oppressive regulatory atmosphere

    It creates an oppressive regulatory atmosphere where independent devs are preoccupied with falling awry of Google bots more than moving forward with app enhancement.

    This is when it becomes crucial that Google spell out exactly how their rules work.

    Currently Google rules are unknown. Once your app is placed in "Update Suspended" state, how many days do you have to fix it before it goes into permanent app ban ? This happens - but it's schedule is unknown to devs.

    How many app bans leads to account ban (lifetime) ?

    Regardless of "Google's needs" for secrecy, a developer needs to know how much risk they are in so they can plan early retirement from android instead of further time on a doomed account.

    What is ironic is that Google recognize the need for secrecy as it mines user profiles extensively for it's ad/search arm - and uses it with abandon for profiling developers with the notorious practice of "associated account ban".

     

    Lifetime bans raise risk from automated bot failures

    Google also has a practice of "lifetime" ban on a developer. Firstly this penalizes early developers excessively who may not know the inherent risks of dealing with Google and it's automated bots. In addition developers have been lulled into a practice of trusting Google Play for hosting their early development projects - generations of android tutorials have encouraged to post their projects on Google Play, and do it often.

    Lifetime bans also exacerbate the risks of miscalculation by Google bots. When the price of mistakes is excessive, it is developers who pay with excessive time lost.

     

    Automated bots and the risks of "fuzzy logic" and low human oversight

    When Google employs fuzzy logic/neural nets to dictate the behavior of it's bots it already makes them evil (even if no Google employee is evil) - because it makes the rules hard to describe to devs. Google may deliberately employ secrecy as a defensive tactic to prevent "gaming" of it's bots, but even without that secrecy, the use of fuzzy rules is itself a hazard for those "partners" who deal with Google - whether devs, Adsense users, or YouTubers.

    When Google on top of that allows it's bots to "learn" and adapt, that makes those hard-to-describe rules even harder to predict.

    What Google's use of secrecy (and the inherent secrecy already implicit in use of fuzzy bots) implies is that it makes the rules hard to describe and specify to devs - which increases the risks of moral hazard unilaterally for devs.

     

    A universal behavior pattern for current and future bot-driven companies

    The situation outlined above applies not just to Google, but is the end result of too much reliance on bot-driven business processes, esp. if they fail to allocate manpower for when the bots fail.

    For companies like Google which sought to revolutionize business by leveraging the "long tail" - using automation to do so was what made that model viable - minimizing manpower cost was paramount. And the outcomes will be similar for all companies which employ Google-like bots as interface to their business partners, without fallback to humans, and esp when every bot failing has a permanent cost to developer - as every bot failure inches them towards the inevitable, but unpredictable lifetime account ban.

    submitted by /u/stereomatch
    [link] [comments]

    How Android App icon automatically changes according to the Events

    Posted: 22 Nov 2019 06:54 PM PST

    How Android App icon automatically changes according to the Events

    Have you seen a VLC media player or AliExpress app icon during Any special occasions?

    Their Android app icon change according to the Event. While its Christmas time. Santa Hat will be there or take Black Friday. I managed to Capture this screenshot of the AliExpress icon.

    How it's done? Bcoz the App is not updated recently. Not sure it's getting updated based on the Date.

    https://preview.redd.it/0ok1rh0toc041.jpg?width=720&format=pjpg&auto=webp&s=a0653eb0f2d4031f541dfbf16141b2c3a452ff19

    Stackoverflow Link: https://stackoverflow.com/q/58999730/4025157

    Edit: Updated StackOverflow link

    submitted by /u/naveen_mc
    [link] [comments]

    How to handle Button clicks for each List Item in a RecyclerView using DataBinding

    Posted: 23 Nov 2019 12:55 AM PST

    Am I allowed to have both a personal and a business account on the Google play developer console (from deferent Gmail accounts), or will it be consindered as a double account? Is there any risk that the accounts will be terminated?

    Posted: 22 Nov 2019 08:55 AM PST

    I allready have a "personal" developer account and i would like to create an app for my company. But I would prefer that my company's name will be displayed and not mine. We already have a google account because we use services like drive and google sites. So my first thought was to register another developer account, but I am a little worried the Google's bots will terminate both accounts for "having register multiple accounts". Does anyone have any experience about that. Thank you.

    submitted by /u/sotiris08
    [link] [comments]

    Help with nested RecyclerViews.

    Posted: 22 Nov 2019 02:41 PM PST

    I'm building a personal app to scrape my personally stored media and wanted to learn Android UI design, I've decided to try and emulate the Netflix app design but can't seem to populate the horizontal RecycleView to populate.

    Can anyone point me at a step by step guide to accomplish this?

    Cheers.

    submitted by /u/phillwilk
    [link] [comments]

    Java based book to learn android components

    Posted: 22 Nov 2019 07:41 PM PST

    I am familiar with Java(from school, and now develop for a company with Java) and I'm getting pretty into android development. Is there a good book that covers some topics like context, intents, recycylerview, android Views, etc?

    I find I can write logic to move and transform the data in regular java classes but I struggle with setting up activities and UI components etc

    submitted by /u/gonzohst93
    [link] [comments]

    Emulator 29.2.10 to Canary

    Posted: 22 Nov 2019 08:58 AM PST

    What's the largest number of apps you have maintained simultaneously?

    Posted: 23 Nov 2019 12:59 AM PST

    I'm a beginner CS Student and was curious about this.

    Excluding versions of the same app (i.e. same functionality but in other languages or a paid version), how much apps have you maintained at the same time and what was/is the experience? Any stories to tell?

    Can be simple apps, as long as they're different.

    submitted by /u/aukeral
    [link] [comments]

    How do you handle coroutines which should outlive ViewModel?

    Posted: 22 Nov 2019 02:33 PM PST

    Hi, as the title says, I'm looking to having a mutator suspend function (like postMessage(text), which should not get canceled when viewModel gets cleared. (This will apply to any arbitrary scoping situation where caller has narrower life cycle than the calle, but viewModel <-> repo is easier to follow for most)

    I've heard multiple ways of doing this, and I don't much like any.

    Also, there should be ability to "reconnect" with the inflight coroutine (if there is one) in the next instance of the same viewModel (going back from and back to the screen)

    1. No scope applied, everything is withing viewModelScope,and will get canceled upon viewModel dying. BAD
    2. Pass in the wider scope as consctrutor param of the viewModel, and launch on that. Downside - I think this is a memory leak, and does not reconnect
    3. Have Repository (or whatever wider) own it's own scope, and launch the coroutines in it
      1. have the postMessage be a regular function, and sideffect to a Channel<PostMessageEvent> which is the exposed to the viewmodel - Upside: this is already the relation in view <-> viewModel and nobody seems to complain. Downside: postMessage is non suspending, losing this composability
      2. use Deffereds, await() on them at call site. Also, cache them in a map, and then pull them out in the next viewmodel instance constructor and await on them if not null. Downside: calling the "effect" code which should happen after the coroutine emits at 2 places which is confusing. Also, it needs a Key (to put and pull from the map) and this needs to be stable

    Halp pls

    submitted by /u/ursusino
    [link] [comments]

    Given byte-array of VectorDrawable, how can I create an instance of VectorDrawable from it?

    Posted: 22 Nov 2019 11:09 PM PST

    My app finds APK files in the storage of the device, showing information about them and allowing to perform operations on them. It was even temporarily removed (by mistake) because of allowing to install APK files.

    Thing is, ever since Google added new restrictions about storage, I'm trying to find solutions about how to parse APK files without storage permission (because the framework can handle only file-path). For now I use the special legacy flag to allow me to do it with file-path, but it's a temporary solution till the next version of Android.

    Currently, using a workaround and a the library (link here), I succeeded getting the basic information and the app name, but for icons it becomes messy : wrong qualifiers, can return PNG instead of VectorDrawable, and the VectorDrawable is just a byte array...

    Is it possible to load VectorDrawable dynamically from byte code? For now I'm planning to use this library which parses APKs on its own (because sadly Google is planning to add restrictions of reaching files, to use the terrible SAF), but sadly for VectorDrawable it just has a byte array...

    Just to be clear: I'm talking about accessing the APK files (not installed ones, as getting this information still works fine) from SAF. With storage permission it worked fine (and of course with installed apps). See here. When you try to use SAF with the normal framework, you will get bad results: a string with a package name as the app-name, and the default icon as the app-icon (or worse: an exception).

    Also note: I know I can copy the files to my own app's storage and use just the framework, but this isn't a good solution, because if I want to show information about all APK files on the device, it would be a waste of space and time, just to get the icons and app-names... I need a more direct approach. One that is fastest for the app to handle.

    submitted by /u/AD-LB
    [link] [comments]

    Is it good practice to have multiple views in one activity xml file, stacked in a LinearLayout, and hiding one after another?

    Posted: 22 Nov 2019 05:40 PM PST

    Is it good practice to have multiple views in one activity xml file, stacked in a LinearLayout, and hiding one after another?

    https://preview.redd.it/3v81mto9bc041.png?width=287&format=png&auto=webp&s=e88de17a3bb7775c990edcca656756c59fd3b58d

    Basically this. I just inherited a codebase for a project and the app is filled with these. Basically, each xml file transitions between views in this linear layout by hiding the other views:

    mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE); mLoginFormView.animate().setDuration(shortAnimTime).alpha( show ? 0 : 1).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE); } }); mProgressView.setVisibility(show ? View.VISIBLE : View.GONE); mProgressView.animate().setDuration(shortAnimTime).alpha( show ? 1 : 0).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mProgressView.setVisibility(show ? View.VISIBLE : View.GONE); } }); 

    Coming from an iOS background, this seems pretty bad. It seems to me the best way to do this would be with multiple activities and multiple xml files. But this is my first android project, so please let me know if I'm going the wrong way!

    submitted by /u/fenwalt
    [link] [comments]

    Exploring Dynamic Feature Modules At Swiggy

    Posted: 22 Nov 2019 09:04 PM PST

    Navigation Component - How Useful?

    Posted: 22 Nov 2019 05:15 PM PST

    So i just started diving into Kotlin for android development and I'm looking at new components from Jetpack to start learning so I can be more versatile in my skill sets.

    Currently I'm learning about the Navigation Component and I wanted to know how many people use it? Do you feel its a bit too abstract? Do you still use Intents or do you think the Navigation Component is a good addition to the android ecosystem? How many companies do you think actually use android architecture components as compared to traditional methods?

    Sorry I'm all over the place but as someone who's not employed atm, I want to get to know the landscape from people who are.

    submitted by /u/Shusuui
    [link] [comments]

    Is it just me or does the SDK seem like a complete mess that only works half the time?

    Posted: 22 Nov 2019 02:19 PM PST

    I've been programming for a long time (~8 years) and i've never really struggled to pick up new technologies/languages. I tried learning how to program using the android sdk a year back and gave up and i've recently returned to give it another go with kotlin.

    But im really struggling to get anywhere, nothing seems to work, the documentation is a mess and the androidx components don't have enough options.

    I feel like when I sitdown to try to make progress I just sit there and get frustrated. anyone else feel the same way?

    I am considering ditching kotlin and using react or something instead. thoughts?

    submitted by /u/psycotik666
    [link] [comments]

    Tips for creating an app?

    Posted: 22 Nov 2019 01:15 PM PST

    Could anyone point me in the right direction if i want to create an android app? There are no shortcuts in life so im guessing i need to learn how to code it from scratch until finished. Even if im betting some frameworks for creating an app might exist out there. Anyways... Where is the best place to start? I know how my app should look. I just need to solve the design and networking. Database, etc when people log in. Fix how they pay, etc. Might be allot of work! But im willing to try on my own. Please give me knowledge links and tips. Thanks

    submitted by /u/shpr0ink
    [link] [comments]

    Experienced dev, but first app. Need advice planning..

    Posted: 22 Nov 2019 09:27 AM PST

    I work as a full-time dev, but I have never made a mobile app before. I have experience in .NET and Java.

    I had an idea to make an app that will pull data from an existing API and display it in a nicer interface.

    I also want to pull data from a separate website to send notifications about certain events. However, this specific website lacks an API, so I may have to hack together some sort of data scraper, package it as a psuedo-API, and use that.

    This is all within a niche community, so it's possible that the app may see the light of day once it is deployed. The ultimate dream goal is to get it deployed, have people use it, and then use it as a platform to donate to cancer research charities.

    I've read that Kotlin is now the wave for Android development. I went and bought the book "Kotlin in Action" and I'm impressed with how they cleaned Java up. I'm still learning the basics of it.

    I guess the next step is to learn Android development, and I'm guessing the official docs would be the best place to start. Other than that, do you more experienced devs have any obstacles or advice I should keep in mind?

    submitted by /u/programwich
    [link] [comments]

    Run shell command from app

    Posted: 22 Nov 2019 12:02 PM PST

    I want to move a file to data partition.

    I have tried process = Runtime.getRuntime().exec("su root -c 'cp...'");

    This worked when I tried it in Termux but it's not working through app. What might be the problem?

    submitted by /u/Zwrgbz
    [link] [comments]

    No comments:

    Post a Comment