some feedback for the android app
Kurt Seebauer
kurt.seebauer.oss at gmail.com
Wed Apr 18 09:28:00 UTC 2018
Hi Matthijs,
thanks for your response!
On 16.04.2018 20:36, Matthijs Tijink wrote:
> Here's my personal reaction (I can't speak for everyone, of course):
Still, our mails didn't start a huge controversy, so I assume the other
developers tend to agree with you. :-)
>> * the standard java/maven/gradle source layout (...)
> Does it matter a lot if this is unchanged? On the other hand, if we get less
> warnings that's good too, but indeed only after outstanding stuff is merged.
It's not the most pressing thing to do, but violating standards usually
means asking for trouble from unexpected sources. Let's wait for the
feature branches to be merged.
>> * minSdkVersion is set to 9. Active android versions below 19
>> (KITKAT/4.4) are very rare and hard to provide test coverage for. Are
>> there specific reasons to provide support for such old versions?
> Yes, we like supporting old versions as long as possible, especially if
> there's no good reason to drop them. Also, KDE Connect doesn't have a typical
> user base, so these usage numbers are somewhat different for us. Later this
> year we'll have to raise this minimum because of the new Google rules though,
> so we'll go to API 14.
Good point. Maybe someone with access to the playstore can provide us
with the real numbers?
>> * The app crashes a lot on my phone (Android 8.1), but seems to run fine
>> most of the time when attached to the debugger. In a commercial app
>> you'd include google Crashlytics to report crashes and exceptions. I'm
>> not sure this is the right thing in an open source project. Maybe with
>> an opt-in? A short feedback loop for crash reports seems important to me
>> for an app with several thousands of installations. An option for
>> developers would be to create a "crashlytics-patchset" and use that in a
>> personal fork. Have there been discussions about such things?
> We know of some crashes on 8.1, but the most active developers don't have 8.1
> yet, so we can't fix it (some help here would be greatly appreciated!). We
> can't include such stuff, since KDE Connect is GPL-licensed. The patchset
> would be okay (since we won't distribute it ourselves that way), but how many
> people will use that? I think we get some exceptions via the Google play
> console though.
I don't see, how exactly including a third party library violates the
GPL, can you explain that? I see however that we don't want to include
that stuff in the standard distribution.
Recently I played around with different build configurations in another
app, so we could configure on build time wherer Crashlytics should be
used or not. Developers could decide to turn it on in their
installations if they want to. That beats the patchset-idea by far.
>
> About Kotlin: I guess it depends on how different it is from Java/C++, and how
> well it integrates into the existing Java code.
It integrates perfectly, you can convert classes randomly with
CTRL-ALT-SHIFT-K and see how your code looks in Kotlin. Calling Kotlin
from Java and vice versa works automatically, but some constructs (like
static methods) are handled differently in Kotlin.
Kotlin has a few key advantages: Types are not-nullable by default, so
you define at the method level, if a String or a nullable String? is
returned. Most crashes happen because of NullPointerExceptions. In
Kotlin you can import xml-fragments and have direct access to the
elements, no more findById() with type casts. Kotlin is eating Javas
lunch in the Android universe and there are a lot of tutorials and
videos out there. I think the best thing I can do is to send some
well-documented patches and let you decide.
> Learning two languages just to
> dive into the KDE Connect app might be a bit much. What can you tell us about
> that?
Yeah, losing developers because of a third language is certainly the
last thing we want.
Greetings,
Kurt
More information about the KDEConnect
mailing list