Slide 1

Slide 1 text

Beat Your Android Interview Step by step guide to becoming an Android Developer in 2024

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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 …

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

Keep Learning… https://blog.blundellapps.co.uk/android-job-interview-take-home-test-cheat-sheet/

Slide 27

Slide 27 text

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.

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

Technical Interview Questions? ● Coding ability ● CS fundamentals - Algorithms and Data Structure ● Android knowledge

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

CS Interview Questions? What do interviewers look for? ● Data structure and Algorithm ● Object-Oriented Programming (OOP) ● Concurrency and Multithreading ● Memory Management

Slide 32

Slide 32 text

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.

Slide 33

Slide 33 text

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.

Slide 34

Slide 34 text

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.

Slide 35

Slide 35 text

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.

Slide 36

Slide 36 text

https://roadmap.sh/android https://github.com/skydoves/android-developer-roadmap https://www.youtube.com/watch?v=AhUL5tHF3uc&ab_channel=PhilippLackner https://www.youtube.com/watch?v=IS8NLf2V79A&ab_channel=WomenWhoCode https://developer.android.com/guide References

Slide 37

Slide 37 text

Thank You! Questions? in/emretekinn https://bento.me/emretekin