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!


wow I did not know that this is why I get always different example that cause me trouble




Now and I do not have other question then, I would like to point out that being good in looking up in 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




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




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


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


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




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!