Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Beat Your Android Interview

Emre Tekin
December 17, 2023
34

Beat Your Android Interview

Emre Tekin

December 17, 2023
Tweet

Transcript

  1. About Me Emre Tekin • MIS - MAKÜ • Senior

    Android Developer - Papara 8 years as an Android Developer. Interviewed 30+ Candidates. in/emretekinn https://bento.me/emretekin
  2. Overview • Android Developer Roadmap • Interview Process • Technical

    Interview Questions ◦ Coding Challenges ◦ CS Interview Questions? ◦ Live Coding Sessions ◦ C Level - Manager Questions? • How can I prep? • Tips & Tricks • Q&A
  3. Evolution of Android Android is an open-source mobile operating system

    developed by the Open Handset Alliance and sponsored by Google The first commercial version, Android 1.0, was released on September 23, 2008. https://www.androidauthority.com/history-android-os-name-789433
  4. Evolution of Android A new modern look for the Android

    brand. Today, we’re giving the most recognizable non-human member of our Android community an entirely new 3D look. Sep 05, 2023 https://www.androidauthority.com/history-android-os-name-789433
  5. Native or Hybrid? There are multiple ways to develop applications

    for Android; you can go down the path of hybrid application development where Flutter, React-Native are the most common contenders.
  6. Pick a Language For the languages, you can develop Android

    apps either by using Kotlin or Java. Google announced in 2019 to make Kotlin the preferred way of developing Android applications. If you were to start learning Android development today, Kotlin should be your language of choice.
  7. The Fundamentals and Tools 1. Learn the basics of Kotlin.

    2. Explore the Android Studio. 3. Basics of OOP. 4. Algorithms and Data Structures. 5. What is and how to use Gradle.
  8. Version Control Systems Version Control Systems record your changes to

    the codebase and allow you to recall specific versions later. 1. What are the version control systems. 2. Learn to use Git.
  9. Application fundamentals App components are the essential building blocks of

    an Android app. Each component is an entry point through which the system or a user can enter your app. Some components depend on others. App components 1. Activities 2. Services 3. Broadcast receivers 4. Content providers 5. Intent
  10. App components 1. Activities ◦ Activity Lifecycle ◦ State Changes

    ◦ Tasks and Backstack 2. Services 3. Broadcast receivers 4. Content providers 5. Intent ◦ Implicit Intent ◦ Explicit Intent ◦ Intent Filters
  11. Building an Application The manifest file in which you declare

    the components and the required device features for your app. Resources that are separate from the app code and that let your app gracefully optimize its behavior for a variety of device configurations. 1. App Resources 2. App Manifest File
  12. Interface and Navigation This includes buttons, text fields, image views,

    scroll views and other UI elements that the users can interact with to perform certain tasks. Tools like XML and Material Designs are used for interface design in Android. 1. Layouts a. Frame b. Relative c. Linear d. Constraint … 2. Components a. Textview b. Edittext c. Buttons d. Imageview e. Recylerview …
  13. App Navigation 1. Fragments 2. Dialog Fragments 3. Bottom Sheet

    Fragments 4. Navigation Component a. Fragment Lifecycles b. Fragment State Changes c. Fragment Manager d. Fragment Transactions https://developer.android.com/guide/navigation/design/design-graph
  14. Jetpack Compose Jetpack Compose is a modern toolkit for building

    native Android UI. It simplifies and accelerates UI development on Android with less code, powerful tools, and intuitive Kotlin APIs. https://android-developers.googleblog.com/2022/05/whats-new-in-jetpack-compose.html
  15. Storage Internal Storage is where data is stored that’s tied

    directly to your app. This data is private by default and not accessible by other apps. External Storage, on the other hand, is a shared space where all apps can read and write data. • Shared Preferences • DataStore • Room Database
  16. Network • Retrofit • Okhttp • Ktor In Android, the

    Network component offers vital capabilities that enable communication and interaction among users, between users and remote servers, and between users and cloud services. • Gson • Moshi • Kotlin Serialization
  17. Architecture and Design Patterns In Android, Design Architecture refers to

    structuring the code in a way that increases its readability, maintainability, and testability. • MVC • MVP • MVVM • MVI
  18. Dependency Injection Dependency injection is a software design pattern that

    allows a client to obtain its dependencies from an external source rather than creating them itself. It is a technique for achieving Inversion of Control between objects and their dependencies. • Hilt • Dagger • Koin
  19. Asynchronism Asynchronism in Android is a practice that defines operations,

    which can run independently from the main operation without following the program’s linear flow. The Android system uses threads to handle asynchronous processes. • RxJava • Coroutines • WorkManager
  20. Modularization Modularization is a software design technique that allows you

    to divide an application into independent modules, each with its own functionality and responsibility. https://developer.android.com/topic/modularization
  21. Common Services In Android, Common Services are functional units or

    components provided by the Android system for use by developers. • Firebase ◦ Crashlytics ◦ Remote Config ◦ Cloud Messaging … • Google Maps • Google Play Services / GMS • Google Admob • Huawei / HMS
  22. Debugging Debugging is a critical step in the app development

    process. In Android development, it includes identifying and fixing errors, or bugs, in your code. You can debug Android apps using several tools and techniques. • Timber • Leak Canary • Chucker
  23. Testing Android Testing is a crucial part of the app

    development process. It involves validating the functionality, performance, usability, and consistency of your app before deploying it to the Play Store. • JUnit • Mockk • Turbine • Espresso
  24. Distribution Distribution in Android refers to the methods and channels

    you can use to get your Android application into the hands of users. • Firebase Distribution • Google Play Store • Huawei App Gallery
  25. Interview? An interview is a mutual assessment process where a

    company evaluates a candidate's suitability for a position, and the candidate assesses the company's compatibility with their skills, values, and career goals.
  26. Technical Interview Questions? • Coding ability • CS fundamentals -

    Algorithms and Data Structure • Android knowledge
  27. Coding Challenges • Candidates are given the assignment of a

    very simple Android application with some basic features. ◦ List and Detail screens ◦ Network fetch ◦ Offline support ◦ Search Algorithm ◦ Unit test
  28. CS Interview Questions? What do interviewers look for? • Data

    structure and Algorithm • Object-Oriented Programming (OOP) • Concurrency and Multithreading • Memory Management
  29. Live Coding Sessions What do interviewers look for? • Does

    the candidate know how to program comfortably and fluently? • Does the candidate show clean coding practices? • How did the candidate search on the internet for something they did not know? • How was the candidate communication between me when coding.
  30. C Level - Manager Questions? What do interviewers look for?

    • Like an introductory meeting with the team manager. • The candidate's fit with the company culture can be measured from the manager's perspective • Ask examples from past experiences and measure behavioral responses.
  31. How can I prep? • Hackerrank/LeetCode Challenges. • Keep doing

    side projects on the github. • You can do a mock interview before the interviews using ChatGPT.
  32. Tips & Tricks • Try to be relax. • You

    can take notes on every interview. • Keep it short your answers, let them chance to ask every question. • You can also ask questions to the interviewer. • You can ask for feedback on negative results. • Do your research about the company.