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!

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?

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!