Flutter Mock Interview | Interview Questions for Flutter Developers

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
foreign [Music] we are back to another round of touring mock interview series my name is Jose and I'm here today to interview obela for the role of an experienced flutter developer okay and so before we you ask the question that you might seen today is for YouTube purpose okay and also if Abella give me wrong answers about any question that I made I'm not going to uh let's correct them in during the interview okay the answer is the answer the question the question so yeah so as that said so I would like to welcome uh obela okay and so first of all thank you for joining us today Abella and how are you doing and how is your day doing so far my day is great and it's awesome to be here cool so could you please introduce yourself and tell me a little bit about your background your experience okay uh and then I will take from there okay hi I'm Isaac Cabela from Uganda I'm a mobile developer with over six years experience I started my technical Journey as a technical instructor with minots and ethical hacking before transitioning to a mobile development role in Android with Javan kotlin I finally switched to clatter about three years ago and it's what I've been using since then nice all right so that was great so uh could you please let me know um what were the most I mean exciting project that you worked on uh using flutter yeah so um my last project uh which just ended a few days ago was drop easy which is an Indonesian quick Commerce platform it enables users to order for Commodities through their app and get delivery in under 30 minutes yeah which is pretty cool cool uh and my first question for you okay uh what is flutter can you explain me what is flutter yes so flatter is a Dutch framework uh built by Google uh it was designed in such a way that it can be used for cross-platform development um across Android iOS Linux Mac and windows and web as well of late yeah so it's a very interesting platform to use nice and as that said could you please explain to me the concept of class in flutter sorry uh the yeah so could you please explain the concept of class flutter Okay so um in object oriented programming classes I just used to maintain variables and objects and methods that should be encapsulated or reused by a list or an object yeah so that uses the exact same procedure nice and could you please uh let me know the difference between a stateless widget and stateful widgets yes so in in flutter uh state is basically uh synchronous data which can be read while a widget is built so the major difference between stateless and stateful widgets is for stepless widgets this state object is immutable so it can change during the life cycle of the widget and for step four this state can be changed and you can use that using the set State method cool uh all right but now I'd like to ask you what's the difference between get X block and provide and which one uh which one term of State Management uh do you prefer and why yeah so currently the statement management platform is a bit of an hour so I've seen a lot of get X block and provider arguments online and block mostly used as strings so these streams have events and each time you add an event into a stream the block just works on that particular event and emits the steps and then your UI can react to whichever state is emitted so this is a bit of reactive and it's one of my preferred methods since it works well with larger projects and is nicely testable by using the block testing procedure cool the other option is get X so get X is one was one of the New Kids on the Block um it's really simple to use and it's really good for beginners uh though if you read the documentation it's not really a set management platform it's more of a library because it comes with extra functionality for routing and dependence injection which is why some bigger projects don't use it because it's a bit bloated the last one is provider so provider is really simple to use um it has it works directly with flutter's flutter foundations change Notifier API which is something cool since it uses what already exists within flutter all right only tricky to use it a bit in larger projects so the creator of provider has created a river board which I'm here to actually use but I've had great things about gotcha all right and okay what's the difference between unity and widgets okay and integrate integrated tests in flutter yes so unit testing mostly tests functions methods and classes so it's like the lowest level of testing and it's the fastest of all the three or it also uses a flutter tests libraries inbuilt function called tests so you can just directly use it within your flutter project test on the other hand this test uh UI components from widgets so this can be step four Widgets or stateless widgets it doesn't matter yeah so still uh Sam used the flakka test package and it comes with test widgets function which simplifies the entire testing procedure so you just pump a widget to the UI and then it gives you a proper output uh the last one the integrated tests for those from an Android background it's similar to instrumented tests yeah so these uh just the entire app's functionality or a large part of the apps functionality so this actually run on a live device meaning they are those they are the slowest of all the three they currently also use the same uh flutter test package which makes it a lot easier to write integrated tests uh however you have also to add the integration test package as well they gotcha all right so next question okay uh how do you monitor errors in a flutter application so um in flutter we currently have mainly two kinds of Errors uh there are errors that are created by the widgets so if your widget build fails probably due to unaliable objects or a certain value missing so we have uh era widget which gives you a red screen with that error within the widget itself and within the screen and then we have errors which are generated from the infrastructure layer so in case you get an exception let's say we're reading data from an API uh these are other kinds of Errors so since that runs on a single isolate you can work directly with zones that zones to be able to capture all these errors and fit them to whatever uh platform you want to so you could you could do this in the main.tax uh part of the app and run up within a runzone guide and then handle all errors in the on error option and then you can feed these errors to whichever platform you wish to nice nice nice next question what do you understand about material in Cupertino aspect of this floater design so material was initially designed by Google as a design specification to follow across a web desktop mobile and um flutter comes with it predefined and inbuilt uh further material that package or flutter so in case you start a new flutter project it will come with already preset to use material however in case you need to use a more specific design component for iOS let's say your app is only supporting iOS users so you have to switch and use the Cupertino platform so for the Cupertino platform you'd have to switch your material up with a Cupertino app and your scaffolds with a copatino Apex cardboard next question and before release an app in production okay what step do you consider to make sure the functionals are working fine and also if the app is optimized or not so one of the first steps before you think or plan to release the production is um to run all your tests and ensure that you always get tests your unit tests and your integrated tests are performing perfect um I usually do this by uh sending my tests to my bestest Club so that the app can be tested from end to end then um before I move on to production builds I try to remove resources that aren't used uh to cut down on the app size so this these resources can be fonts images or even packages or plugins that are not being used by the app so you can clean those out and then the final step is I do a bit of that obfuscation also a first question here skips your code safe and a bit hard to reverse engineer but it also helps strip down some of the unused bits of the code yeah all these uh steps uh it's really good to automate them with CI so that you don't have to do this process manually all right next question next question is related to developed side okay uh what start and why does flutter use it yes that is an object-oriented uh programming language uh with inbuilt cabbage collection which was designed by Google in about 2011. I thought she was guesses then until flutter was released and flutter uses it mostly because of three major use cases one is ahead of time compilation also known as aot which means that your dot code can be directly compiled to native code so if you're doing Android that's Java if you're doing iOS that's Objective C and if you're doing web that's JavaScript um the second thing is uh flutter didn't want to use a different language for the UI design so instead of having XML or jsx for Designing uis we can directly use that for the U as a UI as well which makes the uis a declarative and third option is the just in time compilation yeah so this works uh very well during development and makes development really fast so if you've heard of what reload or what we start during your app development we don't need to do a fresh build of the app the code changes happen on the Fly which is really cool nice I'm glad you talked about uh hot starting hot reload okay uh what's the difference between then between hot start and hot reload yes so what restarts um means that the app is going to dump its entire State basically you start with a fresh set uh so in case this really happens but in cases where uh let's say you've introduced a new uh LED variable into your state so your app could fail I would let initialization error so you would need to have a hot restart to dump the entire State and reload it meanwhile for hot reloads um this happens on the Fly um the code gets compiled uh sent to the dot VM and the app UI updates instantly so it's a lot faster than the hot reload and how to restart sorry and most of these these two cases are already pre-built in Ides so you don't need to manually add them via scored an Android Studio already have them however if you're working with um a terminal version of a flutter execution you would have to use Ctrl R for your for three loads and Ctrl shift are for your hot reset nice all right um could you please uh differentiate between required and optional parameters in Dart okay so that functions um come with a few functionalities uh and the way to pass variables one of them is required positioning variables so these are usually come fast in the function uh call and they are a must to be passed in case you don't pass them your function won't will have errors uh the second one we have optional uh so these are named optional name parameters and we also have optional position parameters so these are usually come after the required parameters and you can have one of the two you can't have both uh the optional name and optional position then um for name parameters you can explicitly declare them as required using the required keyword which means that your function will complain in case the variable is not passed gotcha and what do you understand about streamings okay and what's the different type of streamings that flutter supports so streams uh when we do asynchronous programming in that we use streams mainly to handle a list of asynchronous data so this data can be strings or integers and so long as you need to subscribe to them or unscribe And subscribe to this particular events you can use streams we mainly have two strings in flutter or that and we have the single subscription streams so as the name says this can only be satisfied to once and in case you try to add another listener to them you'll get an exception and uh the other is the broadcast streams so this can be can have my simultaneous or subscribers so you can have one or more subscribers and even after unsubscription you can start a fresh subscription okay and follow-up question about these uh what's the purpose okay what's the usage of a single subscription stream yes so one of the commonest usage for single subscription screens is um working with live chunks uh of data so an example is when you're reading a large file from the disk this is a heavier process so you can break it into Strings and load these data chunks uh let's say by 256 caddies yeah which is gotcha and so what are nowhere operations sorry I didn't get that what are nowhere operations null where so that um supports a bit of operators to help developers work with now data so in flat tattoo we got a null aware operators and uh one of them is the question mark dot which can be used to access properties of an allowable object so in case you have a class that can be now to access its properties it's going to use the question mark dot or to safely access its properties well the other one is the double question mark operator so this is a short form of if else so if the left side is now it will process the right side and um in case the left side is not now it will basically Escape setting the right side of the variable then we have the double question mark equals so this is uh we call it the nullable assignment so in case your variable is now and you need to assign a value to it if it's now uh you can use the double question mark equals to assign that and the last is the null spread so these are three dots and then a question mark so in case you have a list that's nullable and you need to spread it into another list without having to have an extra if statement you can use the three dots and question mark to spread so if the list is now it will skip the spreading procedure and if the list is not now it will spread it into the other list gotcha and why do we pass functions uh to a widget okay so in that function the first class uh citizens and objects so we can directly pass them to functions which is something really good this is uh mainly used when you need to handle events let's say in a widget so for example if you have a button and you need to handle the tap event you just pass an ontap function and the widget will react to this particular function okay and uh last question uh what's the future in flutter so Futures are results of vanasynchronous operation so best example I can use is getting data from an API so when you make a request to the back end uh the feature begins processing and when that data returns let's after a few milliseconds uh you can check if the status is successful or an error so you can complete your future with success or let's say if you have status 200 and in case it's let's say status 500 which is an error you can't return an error from the future so it's really good for working with weights [Music] nice all right so thank you Abella that was really nice to speak to you today and for everybody else who is here so you can go to turin.com jobs and apply for the job that is suitable to your tax tag okay I hope you enjoyed this mock interview series as much as I did and that was a great talk with odella today we will be back very soon with more episodes like this in the future in the upcoming video uh till then don't forget to give us a big fat thumbs up for this video and comment down below uh what kind of mocking TV would like to see in the future okay till then don't don't forget to subscribe to turin.com subscribe to our Channel if you are not subscribed already uh follow us on Instagram Facebook Facebook linkagin Twitter uh YouTube so we are all there and see you the next video stay safe and give us a big fat thumbs up hope to see you again thank you obela and have a good one take care [Music]
Info
Channel: Turing
Views: 27,152
Rating: undefined out of 5
Keywords: Flutter, Flutter Developers, Flutter Jobs, Remote Flutter Jobs, Flutter Devs, Remote Turing Developers, Turing Developers, Turing Flutter Jobs, Remote Jobs, Remote Developers, Turing Jobs, Turing Hire
Id: 4mATPCxj5M8
Channel Id: undefined
Length: 23min 52sec (1432 seconds)
Published: Tue Sep 27 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.