Senior Android Developer Checklist

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
no more dry code I am the Android programmer and if you know anything about me it's that I don't like to fool around so this is the no Fool's Guide to Becoming senior Android programmer first and foremost you need to know networking library and by knowing I mean knowing how to use one there are some people who will tell you that to become a senior you have to know under the hood what is happening and to be able maybe to write one yourself they are lying they are wrong do not listen to them all you need to know is how to work with either retrofit okay HTTP or volley or a combination of those three besides that the libraries that exist out there that deal with networking on Android I've never heard of they don't matter no one has heard of them do not waste your time second of all probably you know this you need to know how to use an Imaging Library the two most famous ones are Glide and Picasso of course again some people will say you have to know what's going on under the hood to the degree that you might be able to write you do not you don't all you need to know is how to work with these two there's a million other image loading libraries that are out there no one's heard of them they don't matter just use these two remember this stuff can get you through the door as a senior Android programmer this stuff I've been doing Android eight years about five of those years have been senior Android developer I have never been asked to use anything but this your experience may vary probably won't but this is what I'm telling you threading you need to know threading either with core routines or with RX Java RX Java is becoming outdated but if you are becoming a senior and oh sorry I meant senior Android programmer you are expected to know how RX Java works because not all code bases have moved to core routines yet so a lot of the code bases that you're gonna see still have RX in them and you have to know how to use it you also have to know how to turn previous RX code into core routines which is not very hard maybe I'll make a video around it uh sometime but this is expected of you you must know both if you only know core routines that's fine but if you know neither bye bye no go bro working with views to build a screen how do you build it how do you maintain an existing screen you either know XML you have to know view binding If You're Gonna Go the XML route or you go compose lately I've been noticing that compose is predominant it is expected now what is also expected that you of course know how to do it with XML because you are senior so a lot of the code again just like the threading part is not going to be ported to compose you are first of all required to know the old way because a lot of the code is going to be in the old way second of all you have to know how to Port from the old way to the new way so you have to know both for me knowing only XML and being only an expert in XML I would say no to the to the person honestly I don't like it why don't you know compose it's been out for years and it is very good why don't you know it you must know compose you must know both remember anybody who tells you different is lying to you data persistence you have room very popular very easy to learn very easy to use very simple also not very powerful a realm very powerful harder to learn any one of these green Dio is also easy to learn RM light I've never tried graphql as well if you are only using apis and you want to query them this is a great way to to do that and it falls I believe under this title data persistence except you're persisting uh remotely not locally graphql if you know that you're golden room is the least expected sqlite raw as well as expected these are things that are not really these are you must know them it's out of the question you know it's not like oh I prefer just figure it out how to persist data on Android it's a no-brainer it's a no-brainer to ask of you that you know it not a no-brainer to figure out how it works it does need a brain to figure out how it works just a little note there dependency injection you gotta know dependency injection this is the stuff that makes you feel like you leveled up if you know it you got dagger very difficult to understand only for the pros you're a pro aren't you dagger is very difficult good luck with that coin is much easier less powerful overall I don't like it now that I've learned how to do dagger correctly or shall I say easily with Hilt no going back I would not go back to coin I don't like it because coin is not compile time it's run time so you only figure out what's going on when you run the thing dagger I.E Hilt will not let you compile if there's something wrong I like that much more I just like it more because it's safer I feel safer I can sleep better if I see this behavior in front of me and it doesn't explode in my face when I you get the idea you know butter knife that's the old one that's a good one by our friend Jake Wharton is a very good friend of mine he's not uh it's a very good library but I've never heard of it in the past three years it is just uh in the past Nobody Does that anymore if you hear that somebody does this uh they're lying to you remember this algorithms and data structures very important I'm just kidding nobody asks that you don't need to know any of this you will never face it ever unless you are applying for one of those big companies Google schmoogle you know the bunch that still insists on asking these things I believe they are important you should know them it would be very embarrassing for you if you were in an interview and someone is not asking about algorithms and data structures not per se but they offhandedly mention yeah you know that's the runtime of a hashmap and you don't know the runtime of the hash mark that's kind of embarrassing I would I would learn them if I were you but I wouldn't study them before an Android interview I have never ever been asked to go through an algorithms and data structures interview in any of the companies that I applied for any of them except for one it's Google or Facebook or you know the bunch and you know the resources where you could find stuff about that stuff uh you know you're not gonna see it in the industry I don't believe if you do you are lying I don't know why I'm underlining some of the values and some of the values are not bold and I don't care why are you looking at that anyway Firebase you need to know Firebase 100 percent everybody uses Firebase you have Firebase that handles user authentication you have Firebase that handles distribution of your application crash analytics it handles all the crashes you have to know how to use Firebase the console the UI how to integrate it into an application you have to know how to add your debug key to different variants of the application you have a debug version you have a production version and this needs to sign in even when you're not in production all of this stuff you have to know also remote config what it's most used for that I've seen is holding features behind the feature flag so remote config has a feature flag that says should show this new feature or not what your application does starts up fetches the value should I show this new feature or not depending on that you do the thing so this is done through something called remote config it's on Firebase you are expected to know this or quickly learn it it's not hard but you know this is what you need to do debugging you must know how to debug for now not talking about fancy stuff just the debugger you have to be able to get a message that something is failing here's where the the general vicinity of where it's failing figure it out what's going on you know you need to be able to pin down exactly what's going on you need to be able to use the debugger very comfortably as if it's a second nature you step through stuff you place a break point here replace a break it's not hard stuff it's not but this needs to be second nature to you right so it needs to be I already said it now what am I going to say analytics this is the most annoying part not because it is hard but because it is easy and no because the company is going to ask you to do analytics so we would like to know how many times the user is pressing on this button and so that we can stuff like that you're gonna be asked stuff like that you need to track the feature how it's working and you need to send the properties of the user when they're in this stage of the application and when they're doing this thing it's annoying it's not hard it's just annoying because synchronizing or orchestrating how the whole app is gonna have to report to back back to one place in a format that you as a developer can understand and reason about and at the same time fulfill what the business requirements want for example the user is trying to purchase something on the application and the user profile is available globally but the list of things that the user has bought previously is not available globally what is available globally is about the user details and yet this tracking event whenever he wants to buy or sell something is requesting that you give me all the stuff that's previously been bought plus the new thing he's gonna buy now right so you have to go grab something from over there and then grab something and then give to this analytics thing it's gonna be annoying right but it is not hard I have not found it very difficult the most famous one I would say Brazen Firebase I guess but all of these I've heard of all of these apps flyer being the worst I think New Relic is complicated I think Firebase flurry this seemed to be common easy Firebase is very big for that braze is super super powerful but you need a kind of dedicated person on your team that just does braise honestly no need to expand here push notifications you need to know them you need to know how to receive them you need to know how to send them you need to know how to work with the platform that allows for send and receiving they need to be second nature to you it's no question no back and forth can you implement push notifications yes sir see you in a while it's like pull to refresh at this point also deep linking this is also very requested meaning you have a link standing out in the wild you press on it it takes you to your application on the phone and it opens up your application the purpose of this is that it can open up your application with some predefined parameters that it opens this specific page and colors it white and then shows image all all of this has to happen from the deep link so you send specific information you act on it when you receive the Deep link how to parse the links how to distribute them based on some regular expression based on some thing you do push notifications and deep links are all offered probably from the same platform because Firebase offers both I've rarely seen someone use oh my God look at this apps flyer it's not underlined no that this is too much there you go I'm sorry but these I'm not gonna style deal with it they are both offers from the same platform so there's no really uh scratching your head over how to do it it this will be resolved for you they're gonna say hey we use this platform to do deep links or something can you just support them on the app you go yes because we're not saying this is a startup in a startup you probably have to figure out this entire thing by yourself but we're saying this is some established company mid to large size let's call it a scale up not a startup and they have probably decided on all of this stuff they just need you to do to to build the app right they probably also have an iOS version could you do like the io OS version this is the harsh reality my friend if anyone tells you different they probably had a different experience we can't call everybody a liar can we they probably are the final one the hardest boss this is the hardest one refactoring refactoring my friend is the badge that you can carry on your shoulder that can signify that you are really senior the ability to take some Legacy code that is perfectly fine it's working amazing but it doesn't meet the standard of your team uh team's ambition you have suddenly all decided that compose is the way to go or you have decided that let's go core routines we don't want RX job anymore oh but the whole code base is rx Java well who's gonna undertake this Mission that's you my friend you're gonna do that what's required here is two things I'm gonna go just one what's required there is two things first of all the courage you have to believe if that you can do it you have to believe it this is not an overnight thing definitely you have to have done this before but even if you have done this before you will still be afraid the faster you can remove the sphere the better second of all you require planning if you don't plan the refactor it will stretch it will go on for months I have experienced this myself I didn't have the fear I had the fearlessness but I didn't have the planning there isn't really a word for this in English but there is one in Arabic meaning when you rush into things with full courage but no thinking now you need two you need to be fearless and you need to plan accordingly because refactoring touches everything if you touch one component this component is not sitting in a vacuum it is touching some other component and touching it's a lot of touching happening so you want to touch it very carefully so as not to disturb all the others you can disturb all the others if you also have the time to touch all the others as well but you probably don't what you need to do is plan how do I fix what I need to do in this box without creating several other hundred boxes and then I have to explain Oh Hey where's that thing you said you would refactor oh well now I'm rebuilding the app from screen now you're now you're done now you have messed up and now how do you roll back you've been doing this for a month and no one can help you because if you go refer to some senior programmer let's say he has all the answers in the world yes he does but you don't have a question the question is that everything is not working well how do how do I reproduce it I don't know how you reproduce I don't know where I am anyway so thread into this carefully but you must do do it you must you are expected to be able to do this you can take small chunks of things and do them but don't rush it you will shoot yourself in the face you don't want to do that that's the that's it that's that's everything how could we forget see the fact that I forgot this it's kind of indicative as to the degree of severity the testing has it's not that severe as much as you'd like to think that you are a pure programmer that you are you test everything it is not that much required in my case for example I've went from zero severity no one asks no one cares into higher and higher and higher severities as I progress why because I became more severe about it I started to insist that I would like to write tests before I publish a piece of code or a feature or whatever and this has influenced other people on the team who all also like to test or they have influenced me that hey you know where's the tests for this oh right how is this about to push them you know it's not a deal breaker it can be a deal breaker if you have no idea whatsoever and you know that's yeah no you have to know how to do it but you can say hey it's not every time hey it's not full 100 hey it's not oh I'll write it later or I thought you know it's a kind of a very thin line between doing it and forgetting to do it but not knowing how to do it that's a no you have to know UI tests you have to do compose tests or views tests in the old way you have to know how to test your threads how they're working how to simulate a thread going and pausing and taking a break and waiting until the result all this stuff you have to know quarantines and stuff junit all that has to to be also mokito how to mock stuff because you are senior you have to know mochito so you have to know how to mock views not views how to Mock dependencies and all of that get around dependency injection for example you have health you need a module for that simulates your actual module this needs to be you know you need to know this anything other than this of course you're going to be asked there are going to be new libraries every day this is expected that you will be able to adapt learn but this list here this is what you're expected to know walking through the door if you don't have one of these fine but there are some of them if you don't have them you don't walk through the door bye bye for you no threading bye bye no data that's a no-brainer of course bye-bye dependency injection it's a must Firebase crashlytics you must know this it's gonna be embarrassing for you if you don't now the list is complete senior Android programmer knows their stuff you can comment any salary under four thousand dollars any salary that's it see you in the next one
Info
Channel: Oday
Views: 11,708
Rating: undefined out of 5
Keywords: android, programming, tutorial, how-to, software, development, engineering, help, guide, step-by-step, easy, kotlin, senior, checklist
Id: Rba2NkrRnHE
Channel Id: undefined
Length: 19min 53sec (1193 seconds)
Published: Wed Feb 01 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.