Oct 20 | 8:25 AM |
Mark M. | has entered the room |
Mark M. | turned on guest access |
Oct 20 | 8:55 AM |
Kai H. | has entered the room |
Kai H. |
Hello
|
Mark M. |
hello, Kai!
|
Mark M. |
how can I help you today?
|
Kai H. |
I guess I have a bit of a personal question, if I may: You spoke at a conference lately and noted that it's probably the last time. I wondered why.
|
Oct 20 | 9:00 AM |
Mark M. |
I don't feel that I am being very useful in that format anymore
|
Kai H. |
As a conference speaker?
|
Mark M. |
yes
|
Kai H. |
Why is that?
|
Mark M. |
I'm nothing special as a speaker. I got into speaking way back in the beginning of Android in part because we didn't have anyone else. Now we have a ton of experts.
|
Kai H. |
Can't you offer your experience and view point as a speaker? It's not always about the topic as such.
|
Oct 20 | 9:05 AM |
Kai H. |
I come in here with technical questions, but more often than not I'll ask about your experience too.
|
Mark M. |
sure, but others can do that too
|
Mark M. |
the problem with conferences is that speaking slots are a true zero-sum game
|
Kai H. |
Which means?
|
Mark M. |
conferences do not expand based upon speaker interest, particularly for conferences held in the physical world (vs. this year's pandemicized virtual ones)
|
Kai H. |
Ok
|
Mark M. |
particularly nowadays, conferences get several times more speaker applicants than they have slots for
|
Kai H. |
I see. I had the impression it was (still) the other way around.
|
Mark M. |
it depends a bit on the event
|
Mark M. |
but, for example, for the past few years, droidcon NYC has gotten about 5x the applicants than they had capacity for
|
Kai H. |
Which is a good thing, I guess
|
Mark M. |
oh, absolutely
|
Kai H. |
Thanks for the answer :)
|
Oct 20 | 9:10 AM |
Kai H. |
I actually have no Android related question today. Still working on adapting to Scoped Storage.
|
Mark M. |
you and everybody else :-)
|
Kai H. |
Especially interesting is that I overlooked that I have to support 4 versions of our app on 5 versions of Android. I was only looking at the most recent version of the app.
|
Mark M. |
4 versions of your app?
|
Kai H. |
Yes. We have a server component and pretty much an app that goes with it.
|
Kai H. |
So for "server vX" there is "app vX" and for "server vX+1" there is "app vX+1" and so on.
|
Oct 20 | 9:15 AM |
Mark M. |
OK. Outside of white-label scenarios, I don't see that pattern all that much, but if it's what you need, it's what you need!
|
Kai H. |
So what I'll do is that I'll start with the oldest version of the app, implement changes and then try and merge those up into the newer versions. And when I'm lucky that actually works. Sometimes there were breaking changes though...
|
Kai H. |
Two versions ago we switched to Jetpack and made an "internal" library "external". That might end up hunting me now.
|
Mark M. |
sounds like fun!
|
Mark M. |
(narrator: it did not sound like fun)
|
Kai H. |
It is very much!
|
Kai H. |
(narrator: It wasn't)
|
Mark M. |
clearly, we need to pay closer attention to our inner narrators
|
Kai H. |
I wonder if I should try and retroactively upgrade the older apps to androidx or if I should do the manual work.
|
Kai H. |
But I think there was some reason not to upgrade, like an API version that was needed for some lib in androidx and such.
|
Kai H. |
So even if I upgraded I'd probably need different versions of the external lib or something.
|
Mark M. |
¯\_(ツ)_/¯
|
Oct 20 | 9:20 AM |
Mark M. |
that's all "inside baseball" for your organization -- other than feeling your pain, there's not a lot that I can advise
|
Kai H. |
I guess so
|
Kai H. |
Maybe you had some experience or story that came to mind.
|
Kai H. |
Maybe not.
|
Mark M. |
sorry, I haven't been in a situation like this
|
Mark M. |
I mean, my gut instinct would have been, back at the start, that there should be one client app that adapts to the specific server that it needs to talk to
|
Mark M. |
but, now that you're in a situation with 4 client apps, I can't say whether consolidating them is a worthwhile investment or not
|
Kai H. |
So you have one app that adapts regarding to the version of the server it speaks to?
|
Kai H. |
I guess that would be a nice way ;-)
|
Kai H. |
And would make some things easier (and some harder maybe)
|
Mark M. |
assuming that the apps are doing largely the same thing, yes -- and since you are describing these as versions, I assume that the apps/servers have the same roles and are simply changing
|
Kai H. |
Exactly. Newer servers have additional functionality. Sometimes an api will change a bit. Stuff like that.
|
Oct 20 | 9:25 AM |
Mark M. |
to put it another way: if the overlap between two versions of the app is 80% or more, it should be one app with a strategy pattern for handling differences
|
Kai H. |
I do wonder why the decision was made to make it a new app every time.
|
Kai H. |
Probably to make it look different and everything and make it feel more like a version is a complete, enclosed package.
|
Kai H. |
The other clients connecting to the server would usually get a bit of a different look with each version too.
|
Mark M. |
even then, though, I'd still aim to have the bulk of the app code in common (e.g., a library module)
|
Kai H. |
I guess so. There even is a library, but it seems not to have too much of that code.
|
Kai H. |
Or rather the division between functionality and GUI is not really there.
|
Kai H. |
And a lot of the functionality is in the app instead of the lib.
|
Oct 20 | 9:30 AM |
Mark M. |
well, that's a wrap for today's chat
|
Mark M. |
next one is Thursday at 7:30pm US Eastern
|
Kai H. |
Have a good time and stay healthy :)
|
Mark M. |
you too!
|
Kai H. | has left the room |
Mark M. | turned off guest access |