Aug 1 | 3:55 PM |
Mark M. | has entered the room |
Mark M. | turned on guest access |
Aug 1 | 4:00 PM |
Dominic | has entered the room |
Mark M. |
hello, Dominic!
|
Mark M. |
how can I help you today?
|
Dominic |
Hello!
|
Aug 1 | 4:05 PM |
Mark M. |
if you have a question, I can try to answer it!
|
Dominic |
I have recently finished the certain android course on udemy, so I know the basics and I have been wondering what to do. I have been thinking about starting writing my own app and experimenting and learn new things on the way
|
Dominic |
and search for things I need on stack and in commonsware books
|
Dominic |
or would it be better for example to "do" exploring android book and kind of refresh everything
|
Tad F. | has entered the room |
Mark M. |
I can't really answer that -- it all depends on how you feel it is best for you to learn
|
Mark M. |
(BTW, hello Tad -- I will be with you shortly!)
|
Dominic |
Hello!
|
Mark M. |
also, whatever choice you make is not permanent
|
Dominic |
I think I will "try" doing the book and then decide :) Thank you! By the way, I love your writing style.
|
Mark M. |
if you go through *Exploring Android* and get bored, you can always put it down
|
Aug 1 | 4:10 PM |
Mark M. |
thanks for the kind words!
|
Dominic |
True!
|
Mark M. |
let me take a question from Tad, and I will come back to you shortly
|
Mark M. |
Tad: hi! how can I help you today?
|
Dominic |
Thank you very much and bye, I think I will be coming here often with more android oriented questions!
|
Mark M. |
(Dominic: sounds good!)
|
Dominic |
Bye Tad
|
Dominic |
Bye Mark
|
Mark M. |
bye!
|
Tad F. |
Hi Mark - just thought I'd touch base, I've been doing more thinking about that SAF issue we chatted about a couple days ago.
|
Tad F. |
I created an enhancement request in Buganizer: https://issuetracker.google.com/162569130
|
Tad F. |
I think a fairly straight forward way for them to accommodate "pagination" is on the DocumentsProvider side to provide a new flag in cursor.getExtras(), where the provider could indicate they are wanting to do pagination for the same parentDocumentId,
|
Tad F. |
then the file chooser UI could provide a mechanism for the user to indicate "next"/"previous" page, which would be sent back to the provider int he queryChildDocuments() API call as a new optional parameter (indicating user wanted to do next or previous)
|
Aug 1 | 4:15 PM |
Mark M. |
since this is all in the framework, the best-case scenario is it showing up in Android 12
|
Mark M. |
IOW, it's not exactly a near-term solution :-)
|
Tad F. |
Very similar to what they provider now with cursor.getExtras().putString(DocumentsContract.EXTRA_INFO)
|
Tad F. |
and EXTRA_LOADING
|
Tad F. |
Yeah, I figured.
|
Tad F. |
But you gotta start somewhere.
|
Mark M. |
oh, no doubt
|
Tad F. |
Given that there has been absolutely no movement on the other request I made to increase the permissions taken from 128 to something higher, even to document that limitation per your suggestion, I doubt this will get any traction but I had to try.
|
Tad F. |
I also found a work-around to that RingtonePreference issue I brought up.
|
Mark M. |
cool!
|
Tad F. |
It seems I can change it from a RingtonePreference to just a Preference, then check the key inside the my fragment to determine if it is ringtone or not, and if so launch the RingtoneManager to have them make a choice, then grab that in onActivityResult
|
Tad F. |
Of course, now I see that onActivityResult et al is getting deprecated also, so will need to update that bit as well I guess.
|
Tad F. |
These frameworks certainly do move quickly...
|
Mark M. |
by "so launch the RingtoneManager to have them make a choice", do you mean ACTION_RINGTONE_PICKER?
|
Tad F. |
View paste
(8 more lines)
|
Aug 1 | 4:20 PM |
Tad F. |
Something along those lines
|
Mark M. |
you should be able to register a click listener on the Preference, if you prefer that to overriding onPreferenceTreeClick() and doing the key-based lookup
|
Mark M. |
but otherwise, if this works for you, great!
|
Tad F. |
ok
|
Mark M. |
I saw that Ian Lake responded to one of your SAF questions on Stack Overflow
|
Aug 1 | 4:25 PM |
Tad F. |
Yes, I just used it as an excuse to have him look at my enhancement request as long as I was able to grab his attention :)
|
Tad F. |
to ask him to look at it, I should say
|
Aug 1 | 4:30 PM |
ndrocchietto_ivano | has entered the room |
Dominic | has left the room |
Mark M. |
hello, Ivano!
|
Mark M. |
Tad: let me take a question from Ivano, and I'll return to you in a bit
|
Mark M. |
Ivano: how can I help you today?
|
ndrocchietto_ivano |
hello Mark! Please go ahead I am just in coding on mindset, this evening, no specific questions
|
Mark M. |
OK, if you come up with a question, let me know!
|
ndrocchietto_ivano |
cool, thanks
|
Mark M. |
Tad: back to you!
|
sudokai | has entered the room |
sudokai |
Wow, lots of people here tonight
|
Mark M. |
my reaction too! :-)
|
ndrocchietto_ivano |
Hello sudokai
|
Aug 1 | 4:35 PM |
Mark M. |
Tad: did you have another question, or should I turn it over to sudokai?
|
Mark M. |
Tad: I'm come back to you in a bit
|
Mark M. |
sudokai: hi! how can I help you today?
|
sudokai |
I can't think of a question :D
|
Mark M. |
we have more people than questions right now...
|
Mark M. |
well, if anyone comes up with a question, go right ahead!
|
sudokai |
I actually wanted to ask you where I can hire good Android developers
|
ndrocchietto_ivano |
OK
|
sudokai |
Like, do you know anyone who's looking for a job Mark?
|
sudokai |
Haha
|
Mark M. |
sudokai: that seems to be a popular question -- finding candidates seems to be a bit rough
|
sudokai |
I'm finding it very difficult to hire people
|
Mark M. |
is your project Java or Kotlin? if it Kotlin, the #hiring channel on Kotlinlang Slack is one spot to advertise
|
ndrocchietto_ivano |
we are looking as well for an expert candidate
|
sudokai |
A mix of Java and Kotlin
|
sudokai |
New code is written in Kotlin
|
sudokai |
That's a great idea
|
Mark M. |
then promoting your open position there is reasonable -- I wouldn't do it for a pure-Java project
|
sudokai |
We are looking for someone self-managed with integrity and grit
|
Aug 1 | 4:40 PM |
Mark M. |
I don't know... grit tends to leave scratches in the code base :-)
|
sudokai |
I'm okay with that. We are all duct tape programmers over here.
|
sudokai |
:)
|
ndrocchietto_ivano |
over where?
|
sudokai |
My team
|
ndrocchietto_ivano |
I mean where are you located, if I can ask?
|
sudokai |
Spain
|
sudokai |
We are remote friendly though
|
ndrocchietto_ivano |
cool, I am in the Netherlands
|
ndrocchietto_ivano |
this is an interesting topic actually, because of the remote job I expect more and more company to hire for full time no free lance jobs even people in other nations
|
sudokai |
Yeah, exactly
|
sudokai |
Before we limited our search in Spain
|
ndrocchietto_ivano |
because of the current times, I am seeing litteraly growing my daughter
|
sudokai |
But now, as long as we can afford the salary
|
ndrocchietto_ivano |
working from home is fantastic
|
sudokai |
It is convenient
|
ndrocchietto_ivano |
I have a tip for you, I am really business person, I suggest you portugal
|
ndrocchietto_ivano |
is quite cheap and t
|
Aug 1 | 4:45 PM |
sudokai |
How large is your company?
|
ndrocchietto_ivano |
there are a bunch of good coders
|
ndrocchietto_ivano |
my company is part of Visma
|
ndrocchietto_ivano |
is called Proactive
|
sudokai |
Any Portuguese job boards?
|
ndrocchietto_ivano |
and offers financial services.
|
sudokai |
We are a B2C.
|
ndrocchietto_ivano |
we are sixty at the moment as Proactive
|
ndrocchietto_ivano |
and more than 2k as Visma
|
sudokai |
Millions of users, a dozen employees, Android team of 2.
|
ndrocchietto_ivano |
I do not know any board but looks to me a great option, even because would be easier to pay a trip so nearby for important live meetings
|
sudokai |
That's why I'm looking for someone with grit, haha.
|
ndrocchietto_ivano |
which technologies do you use?
|
sudokai |
Kotlin, RxJava, Realm, a bunch of AndroidX libs
|
ndrocchietto_ivano |
we are php/kotlin for android with attention to rxjava
|
ndrocchietto_ivano |
we have all of that
|
ndrocchietto_ivano |
and even firebase
|
sudokai |
Yeah same
|
sudokai |
Our backend is Java
|
ndrocchietto_ivano |
cool
|
sudokai |
And python and node.js
|
sudokai |
Haha
|
ndrocchietto_ivano |
what are your thoughts about rxjava
|
sudokai |
We even had perl for a while, luckily I got rid of that personally
|
sudokai |
Pretty awesome library, horrible names
|
ndrocchietto_ivano |
I find really strange that you have asyncTask, then RxJava then Coroutine, then flow
|
ndrocchietto_ivano |
is like growing horizontaly to me
|
sudokai |
It's all noise
|
sudokai |
RxJava is all you need
|
Aug 1 | 4:50 PM |
ndrocchietto_ivano |
live data
|
sudokai |
There's nothing you can do with coroutines that you can't with RxJava
|
ndrocchietto_ivano |
true but you know the test can be a pain
|
ndrocchietto_ivano |
with schedulers trampoline issues
|
ndrocchietto_ivano |
more junior can use subjects everywhere
|
ndrocchietto_ivano |
and mingle imperative and functional in all the interfaces
|
sudokai |
I mean that's the problem of Android, they keep changing stuff
|
sudokai |
Well, our codebase is terrible, so
|
Mark M. |
hey, now! changing stuff is what keeps balding authors writing books!
|
sudokai |
Haha
|
ndrocchietto_ivano |
i thought that
|
sudokai |
In a way, the beauty of PHP for example is that nobody is proud of being a PHP programmer
|
sudokai |
They just get things done and voila
|
ndrocchietto_ivano |
well laravel is not super bad imo
|
sudokai |
I love that philosophy
|
ndrocchietto_ivano |
i do not like this philosophy in the lt
|
sudokai |
If your language is too beautiful, you might lose sight of what's important
|
ndrocchietto_ivano |
in the short is perfect
|
sudokai |
Which is to make a fantastic software for the user
|
sudokai |
Never fall in love with your technology
|
Aug 1 | 4:55 PM |
ndrocchietto_ivano |
complex topic
|
sudokai |
I just have this startup mindset
|
sudokai |
Because we are two people working on the Android app
|
ndrocchietto_ivano |
we were two people also
|
ndrocchietto_ivano |
my colleague is going away
|
ndrocchietto_ivano |
he is really precise you know what
|
Tad F. |
Sudokai - I have a lot of experience in Realm, Java.
|
Tad F. |
Just not Kotlin
|
sudokai |
Tad you looking for a job?
|
Tad F. |
Am quickly coming up to speed in RxJava
|
ndrocchietto_ivano |
why did you choice Realm?
|
Tad F. |
I'm looking to freelance
|
Tad F. |
Realm is small, fast as lightning, and has some great benefits in terms of auto-updates
|
ndrocchietto_ivano |
I start to dislike Kotlin to be honest
|
ndrocchietto_ivano |
true
|
Tad F. |
I know Mark had some issues with it in a project he did some time back
|
sudokai |
No freelance sorry
|
Tad F. |
But I've had a very positive experience with it
|
sudokai |
I don't like Realm, but I did not make that decision
|
sudokai |
The previous developer who left did
|
Tad F. |
Why not Sudokai?
|
sudokai |
Because it's quirky
|
ndrocchietto_ivano |
you know guys all that idiomatic quest for perfection in the review, is not business friendly to me
|
Tad F. |
how so?
|
ndrocchietto_ivano |
a db is an interface to plug
|
Tad F. |
The only issue I have run into, is you have to be very careful to do proper thread management - i.e. realm objects have to be updated on the same thread that they were instanced.
|
sudokai |
Tad exactly
|
Tad F. |
But if you do things in the proper architectural way, you don't run into this
|
sudokai |
If you commit in a looper thread and then launch a background thread and fail to refresh, you could see data before the commit
|
Aug 1 | 5:00 PM |
ndrocchietto_ivano |
and here comes rxjava eheh
|
Tad F. |
At the suggestion of the Realm guys, early on I built an interface to all DB activity, through which everything flows
|
Tad F. |
That handles all of that stuff
|
sudokai |
That's just one example
|
sudokai |
Memory leaks with version pinning
|
sudokai |
Crashes and corruption
|
Tad F. |
You shouldn't have to "refresh" anything with Realm.
|
Tad F. |
It does that for you
|
sudokai |
For the next project I'll use sqldelight
|
sudokai |
it's multiplatform too unlike Room
|
sudokai |
No it doesn't unless it's a looper thread
|
Tad F. |
Wow, sounds like you have been through the ringer with it.
|
Tad F. |
I haven't experienced any of that
|
sudokai |
But I'm not gonna change my database now
|
Tad F. |
You mean the main looper thread?
|
sudokai |
Haha
|
sudokai |
Yep
|
ndrocchietto_ivano |
well time is away ahah
|
ndrocchietto_ivano |
we have a concurrent problem with the chat
|
sudokai |
Anyway, thanks for the advice guys
|
ndrocchietto_ivano |
wish you a nice evening guys and hope to see you again
|
sudokai |
I'll visit the kotlinlang slack
|
ndrocchietto_ivano |
cool place
|
sudokai |
and look for devs in Portugal
|
ndrocchietto_ivano |
thanks
|
Tad F. |
If you want some contract work to help you resolve Realm issues, give me a shout.
|
sudokai |
Sure okay
|
ndrocchietto_ivano |
have a nice day guys
|
sudokai |
same
|
Tad F. |
same
|
Mark M. |
OK, that's a wrap for today's chat -- next one is Tuesday at 7:30pm US Eastern
|
ndrocchietto_ivano |
bye Mark
|
Mark M. |
have a pleasant evening!
|
sudokai |
you too!
|
ndrocchietto_ivano |
you too
|
Tad F. | has left the room |
ndrocchietto_ivano | has left the room |
sudokai | has left the room |
Mark M. | turned off guest access |