Office Hours Transcript: 2021-12-18
ivano_ndrocchietto joined
Hallo Mark, good afternoon
hello, @Ivano!
how can I help you today?
well there are a number of skills that I miss to become more senior, one is related to oauth2
as far as I remember in your book you do not speak a lot about that
I have never worked with it, at least not directly
ah ok, and the concept of interceptor in retrofit?
I do not get clearly how and why to chain requests
technically, interceptors are part of OkHttp, not Retrofit, if you are referring to what I think you are
I am referring to that
I guess I do not understand the question, then
well what are the use cases that I should use an interceptor?
to chain request
is a bit a grey area to me
I miss some conceptual high level abstractions
what are the use cases that I should use an interceptor?
use them if you need to perform actions on many/most/all of the HTTPS requests that flow through a particular OkHttpClient
so, for example, OkHttp ships with the logging interceptor, which logs requests and responses to Logcat
or, if you have an API token that you need to include as an HTTP header
yes is this second one the case that I do not get
the refresh token and then the need to add a token in the header as a POST
but I guess I do not have to understand nothing, is just a convention right?
the details of API tokens depend a lot on the implementation of the token system, and little on OkHttp
I see so maybe I should read something as RTC or RTP
but I have the feeling is an overkill
from the standpoint of an OkHttp interceptor and tokens, you can use the interceptor to add the token to outbound requests made to the server that needs the token, such as via a custom Authorization
header
how you get the token, how long the token can be used, how you find out that the token has expired, and how you refresh the token, are all up to the implementation of the token system implemented by the server
I’m sure that there are some patterns there, but that is Web development more than it is Android app development
ah, so are variable detail that depend by the implementation in the backend!
right
wow I did not know that this is why I get always different example that cause me trouble
great!
Now and I do not have other question then, I would like to point out that being good in looking up in duckduckgo.com or whatever search engine :troll is a kind of art
and I am not good at all, sometimes I spend 10 even 30 minutes to find something and cannot find, whereas there are some dev I worked with that do the same query and as first result they find always what they need
do you have some recommendation in that? I know is a soft skill, but is essential and I do not have it. (Sorry for the question but would maximise the marginal utility to have you in these last chats)
um, I do not know what to tell you
yes I understand
I have to pick up my sleeve and ask to shrink specialised in devs
well ok then I asked you enough, hope to come up with something in the next days
there are six more office hours chats in the Warescription
I am leaving to Italy tomorrow but will come once again for farewell and will find a worthy question in these days that I am super busy with compose
wish you a nice day and see you in a next chat!
enjoy Italy!
I will! thanks
ivano_ndrocchietto left
sudokai joined
hello, @sudokai!
Hi Mark
how can I help you today?
No questions today!
OK
Just wanted to thank you for the Warescription program
you’re welcome!
And the insane amount of work ayou have put into these books
They are truly the best way to get started on Android development
I am glad that they helped!
I’m so sad that you are ending the program
I’ll miss chatting with you and being able to ask a question every now and then
I always thought that the subscription fee was too low
I would pay more than 20 bucks / 6 months for these office hours alone
I was trying to ensure that it was accessible to more people
I think $20 is actually a good monthly fee
Instead of a biannual fee
you are not the first one to point out that my pricing was rather low
I still think there’s tremendous opportunity in this Android development training space
I mean, that’s why I appreciate Warescription so much
I started from zero and had to get up to speed with Android development in a couple of weeks
And to my surprise I found most tutorials on the internet very lacking
They were either too old or they directly taught you anti-patterns
Or were insanely slow
I was a beginner to Android development, but not a beginner to programming
And I could immediately spot the quality issues in the other training stuff
By early 2020, Udacity was still charging people thousands of dollars to teach them AsyncTask
And that was, no joke, one of the better courses out there
IMHO, revising training materials is harder than revising books
that is one of the reasons I largely stayed out of video-based training, particularly for introductory topics
RayWenderlich had a 3h course teaching you to create a project and add a button essentially
People on Youtube were basically programming Android writing very bad code
When I found your books it was a breath of fresh air
The way you break down stuff and build up little by little in an organized fashion helps a lot
And I think it’s how human brains actually work
Learning and reading is like navigating a tree
Not reading a novel
ironically, my being older probably helped, in that IMHO programming guides used to be better written "back in the day", so I had some patterns to follow
the opportunity is there for online educational material, but, it helps to be younger and a good marketer
I mean, learning is hierachical, not lineal
Yeah, I think you just need better marketing, SEO and charge more
marketing and my psychological makeup do not get along
so I settled for "try to do good stuff and hope for the best"
that works reasonably well, when you can be a big fish in a small pond
Android is no longer a small pond
You want to know how I found your website?
Can I be honest with you?
it came to you in a dream? 😁
I found your Busy coder’s development guide on a pirate site
And I decided to check out the "source"
That’s how bad your SEO is
It’s very hard to find you
I know you are very active on StackOverflow
it wasn’t that hard to find me back when Android was a small pond
But for a beginner, it’s very hard to find you
that does not surprise me at all
I think you could easily 10-50x your Warescription business by improving marketing and SEO
No kidding
Because what you offer is pretty good and pretty unique too
One of the things I didn’t like about this whole ebook business is how quick books get outdated
And with physical books, your sorta understand it
But with ebooks, I always thought, why can’t they just update it?
And your model of rolling subscription makes perfect sense to me
I wish every publisher did that
The office hours were just the cherry on the cake
I honestly think your business model is the way to go
well, the continuously-updated content is more of an author thing, where the publisher simply tries not to get in the way
You just need seriously better marketing, brand awareness and SEO
a lot of authors are happy to be done with the book once they write the last chapter
I remember such a book
Elasticsearch in Action
By the time the book was in print, it was already outdated
A lot of code snippets didn’t work
Lol
Because days before the publication, a major Elasticsearch update came out
The authors just washed their hands
print publishing adds a lot to the timetable, and publishers that are print-focused sometimes are slow for all formats as a result
Seriously, I think your model makes sense
it definitely has its advantages
It’s recurring revenue with extra perks
And subscribers always get the latest and greatest
I don’t rule out starting a programming tutorial site based on this model
Myself
Obviously not about Android
But I’m pretty experienced in other stuff
I’ve worked on backend, frontend, systems, analytics, Android, SEO
yeah, there are more sales and revenue models now than when I started, and so while it is far from easy, the path is at least somewhat clearer
and, if you do elect to try it, I wish you the best of luck!
Yeah, I’ll ping you on Twitter!
When my site is up
So what will you be doing?
oh, I have a "real job" now
After sunsetting Warescription
As an Android developer?
yes
I knew you did some consultancy work
beyond that, I have a few personal projects that I’d like to poke at
my current employer is basically my last client – I simply joined up as a regular employee
Okay
for ~35 years, I have either been planning my next business, running a business, or recovering from the previous business
I’m in phase 3 now 😁
We are actually looking for Android devs ourselves :P
you and everyone else
I keep thinking "I trained a thousand of 'em – where’d they all go?"
Yeah, it’s tough to be an employer in these times
Lots of competition for good developers
Remote work has increased competition
Well, I still suck as an Android dev, but at least I can learn from other resources
Getting started is the most difficult part
well, FWIW, I’ll still be helping with that, albeit in the form of just making the books freely available
Compose means that the half-life of those books isn’t going to be all that long
but, hey, it’ll hopefully help some people along the way
A lot of the underlying APIs are still the same
It’s the UI code that’s changing
agreed, but eventually the better educational approach will be to start with Compose UI, rather than start with the View
system
"skate to where the puck is going", and all that
I still don’t know what the future for Android will be
I mean, Compose was the Android team’s answer to Flutter
But every day I see some Compose issue on Twitter
It’s still young
agreed
And meanwhile, Flutter has been maturing a lot
The problem with the Android team is that they seem to be fixing only their problems, not their users (developers)' problems
That’s the impression I get overall
Whereas with Flutter, despite the obvious architectural limitations, every release seemed noteworthy for developers
I remember reading Flutter blog posts and nodding along the way, saying, yeah, this is a nice improvement, will make my life easier, now I can build new things, etc.
Whereas with Android, it was mostly, I don’t know what this is, and I don’t care either
Why is everything so complicated?
IMHO, the Android team has a tendency to listen to Silicon Valley developers and aim to help them
if others benefit, that’s great, but it’s also not the primary target
It’s just my impression
the Flutter team does seem to do a better job with "rank and file" developers, and it shows with the uptake of Flutter
With Flutter, they have this great Youtube series called Widget of the week
Where they introduce you to a Flutter component and teach you in a very visual and simple way what you can build with that component and when you would use it
The whole video is less than 5 minutes
Then, with Android you have WindowInsets, Fragment internals, etc.
And I’m like, I don’t care about all this stuff
I just want my app to be full screen and work with any kind of phones
With or without notch
And it’s seems like this herculean task
To get anything working at all
With Flutter, they teach you how to build an app, with Android, they teach you Dagger Hilt vs Dagger, architectural components, etc.
I’m at an age that I don’t really care about tech, but what you can do with it
And the Android team seems awfully focused on tech
10 years ago I might have cared about frameworks and stuff
Not anymore
Coming from web dev, I must also say that Google’s web devrel team is far superior to their Android counterparts
like 10x better
They put out more useful content, better organized
Are way more responsive on Twitter
Don’t get super defensive when people question them
re: organization… partly, that’s a problem in how they manage their site, which AFAIK is still part of AOSP, and so it cannot be modified very easily
which is why they wind up posting stuff on Medium, to get around that
Yeah, but the web team started this awesome web development hub called web.dev
Where’s android.dev
Everything they teach you is also properly documented in the documentation
Wherease for Android, you need to dig through their medium
Why is WindowInsets documentation in a blog post from Ian Lake, and not in the offical documentation?
I tell you, this kind of stuff does not happen with the Chrome DevRel team
it’s certainly not ideal
but, right now, I kinda need to move along with my evening – the chat ended 35 minutes ago
Oh sorry
I do appreciate all of the kind words!
If we can’t chat again before the end of year…
I just want to take the opportunity to thank you again
And wish you a merry and safe Christmas!
thanks again, and Merry Christmas to you as well!
Thanks Mark!