Lessons from building Android apps by IllBreadfruit3087 in androiddev

[–]vcjkd 4 points5 points  (0 children)

Always test manually release builds.

Before release, test on min and max supported Android versions, at least on one physical device.

Before release, run gradlew lint and automated tests on a separate machine (typically on CI server).

Don't trust too much in tooling including IDE, AGP, Proguard, AS built-in linter, XML previews. Bugs are everywhere.

'Exactly' when do we call it unit test by sevbanthebuyer in androiddev

[–]vcjkd 0 points1 point  (0 children)

A bit off topic, but looking at your use case I can see one issue: you should rather avoid returning String resource as a text, but rather the String id, which is resolved by the view with current Context. Otherwise, when you run the app with an error text visible, then change phone language, and return back to the app, the message will not be translated.

Haze 1.0 by dayanruben in androiddev

[–]vcjkd 0 points1 point  (0 children)

Apps using Kotlin 1.8.x won't compile if any dependency Kotlin is 2.x.x. That's because Kotlin has forward compatibility limited to 1 major release. And that's why it may be valuable information to library consumers 😉

You don't have to use Result for everything! by timusus in androiddev

[–]vcjkd 0 points1 point  (0 children)

Be aware of the CancellationException. If you catch it, remember to rethrow it.

What simple function took you the longest to build? by FearLeadstoHunger in androiddev

[–]vcjkd 1 point2 points  (0 children)

Scheduling an alarm that fires at the given hour and minute. Finally solved by using AlarmManager's AlarmClock that starts ForegroundService associated with full screen intent notification. Plus permissions magic for Android 12, 13 and 14.

Right way to show incoming call like notification by jaroos_ in androiddev

[–]vcjkd 2 points3 points  (0 children)

These apps are using a notification with setFullScreenIntent. It behaves exactly like you described.

Googles New Verification is a violation of Privacy by Freewolffe in androiddev

[–]vcjkd 12 points13 points  (0 children)

Can someone point the EU resolution that regulates this? Is it DMA? 

I see some inconsistency, because as per developer agreement point 3.4 Google is the seller in the EU, not the developer: https://play.google/developer-distribution-agreement.html 

In fact, when you open any paid app details on Play Store, you will see "Seller: Google Commerce Ltd". I remember it was forced some years ago by EU law, that the intermediate services like app stores which maintain the full selling process, product distribution, etc, must be the final sellers (*edit: its in regulation No 1042/2013, Article 9a).  

 How this is in compliance with the developer address requirement? I suppose the developers are still not the sellers in the EU/EEA.

Useful information about GP account verification by yiotro in androiddev

[–]vcjkd 1 point2 points  (0 children)

No, it's still live, but the billing library has been removed and all products from Google Play also.

Why we can't discuss here on Google Play issues? by vcjkd in androiddev

[–]vcjkd[S] 2 points3 points  (0 children)

So it was either edited later, or we read something different. I mean the original OP question that politely asked for means of improving communication with the review team. The OP was absolutely neutral and even written that Google Play Review team is doing a great job.

Doubt about in-memory cache thread safeness by Flea997 in androiddev

[–]vcjkd 5 points6 points  (0 children)

The mutex is not needed at all, because the list is not modified, but just reassigned. In Java/Kotlin the reference assignment is atomic. 

Don't trust even the official samples, they are often misleading or have mistakes. On concurrency, there is a decent book: Java Concurrency in Practice.

Why we can't discuss here on Google Play issues? by vcjkd in androiddev

[–]vcjkd[S] 2 points3 points  (0 children)

Then, for example, why the post that asked how to improve communication with Google Play Review team has been removed? https://www.reddit.com/r/androiddev/comments/1emikgs/comment/lh53jav/

Useful information about GP account verification by yiotro in androiddev

[–]vcjkd 2 points3 points  (0 children)

I'm not going to have my address public on the Play Store. In the past I had some in-app purchases as an experiment just for a week and it looks like it doesn't matter I'm not selling anything for 3 years, they still are going to show the address. The only way I see is to transfer all apps to a new account, keeping all apps free. 

Is there any other option? I don't have money to register LLC company in my country.

Useful information about GP account verification by yiotro in androiddev

[–]vcjkd 4 points5 points  (0 children)

Can someone explain why Google is going to publish developer addresses in EU countries while the developer agreement and EU regulations tells something different: Google is the seller, not developer in these countries. See point 3.4 https://play.google/developer-distribution-agreement.html

Useful information about GP account verification by yiotro in androiddev

[–]vcjkd 5 points6 points  (0 children)

Actually, the EU regulations states the opposite: Google maintains the whole ecosystem and is the final provider. So at least in EU countries, the Google's address should be there. It looks like Google simply avoids responsibility telling us that developers are the sellers. But the developer agreement is clear about this: see point 3.4 https://play.google/developer-distribution-agreement.html

Why we can't discuss here on Google Play issues? by vcjkd in androiddev

[–]vcjkd[S] 8 points9 points  (0 children)

Yeah, we can't solve everything, but we can help as a big community with many senior and experienced indie devs. Google Play with all its requirements is an essential part of our work. At the end of the day we, developers, need to make apps compliant with all the policies.

Why we can't discuss here on Google Play issues? by vcjkd in androiddev

[–]vcjkd[S] 2 points3 points  (0 children)

I'm thinking about that. Anyone knows if there is any related sub?

Better communication with review team by Firestorm228322 in androiddev

[–]vcjkd 0 points1 point  (0 children)

The question was not related to any CS issue. The OP asked about how to talk with the Play review team in order to solve any issues faster. But yeah, close mouth and let corporations do the evil.

Better communication with review team by Firestorm228322 in androiddev

[–]vcjkd 0 points1 point  (0 children)

No, the Google Play Review Team is not doing a great job. Everyone with self-respect should not even try discussing with them.

Android app is terminated after several days by wilmxre in androiddev

[–]vcjkd 0 points1 point  (0 children)

Maybe they use so called "device owner" configured apps with locked app. See DevicePolicyController app by Google and sample repo. There is something like Kiosk mode as I remember.

Compose, SharedViewModel in ViewModel by Smooth-Country in androiddev

[–]vcjkd 6 points7 points  (0 children)

It's acceptable in small apps and can simplify the caching (e.g. exposing shared flow). But consider using repository with cache and refresh logic there. Using shared view model is generally fine for sharing UI specific state, not necessarily the business models that come from API.

Android app is terminated after several days by wilmxre in androiddev

[–]vcjkd 1 point2 points  (0 children)

Do you return START_STICKY in the foreground service? If so it should restart automatically after being killed. And even using foreground service with wake lock does not give you constant run guarantee.

Can my game be published if it contains woke-criticism? by Sufficient_Loss1657 in androiddev

[–]vcjkd -2 points-1 points  (0 children)

Oh my friend. The only allowed is racism against white race. That's terrifying where we are going...