Giter Club home page Giter Club logo

android-faq's Introduction

Android-FAQ

Frequently Asked Android Questions

Introduction.

Hey Awesome Devs. Thank you for stopping by. This is a collection of frequently asked Android questions.

These are responses by other amazing Android Engineers. You do not have to follow everything here to the letter. We all have different experiences. Use the responses as a guideline to figure out what works for you.

Cheers! 🥂

How do I get started in Android Development?

Android apps are developed using Kotlin, Java and/or C/C++. Android developers use Java or Kotlin to develop Android apps. C/C++ is used to write performance-based and hardware-based features.

To get started in Android developemnt, you'd learn either Java or Kotlin. Check out Should I learn Kotlin or Java? section to learn more about about the two languages.

Once you've mastered either of the languages, you are ready to learn Android developement. Check out Build Your First Android App guide to get started. It includes a quick codelab, a deep dive course and other learning resources.

How do I get my first Android Developer role?

  • Have some well-documented projects on GitHub which have detailed Readmes and at least one useful app on Playstore.
  • Update your Linkedin profile with the projects you've worked on, relevant achievements, volunteer experience, and any previous experiences like internships.
  • Keep your CV updated. You'd build one with LinkedIn Resume Builder.
  • Set your LinkedIn status to Open to Network.
  • Directly reach out to recruiters you know or have interacted with.
  • Check Companies career pages and job boards

Tips To increase your chances of landing a Job

  • Write about the technology you're looking to get a job in. In this case, Android. You'd write about an API you're recently learning about, a bug you solved, etc.
  • Record a video tutorial showing how to do something in Android.
  • Contribute to open-source projects. Open-source projects give you an opportunity to learn practically, practice your skills, and build your confidence.
  • Build an app while sharing the journey on social media. You'd write an article about the journey or record a video and post it on YouTube.
  • Speak at local meet-ups and conferences.

Check out this podcast: How to land a job, if you've been laid off or if you are just starting out

What factors played a role in improving your Android development skills?

  • Working on projects: work projects, open source projects, pet projects, side projects. Some of awesome Android open source projects: Droidcon KE 2023 Android App, UseHover/Stax.
  • Reading other people's code. Check out Android Dev Notes on Twitter. They share great Android projects.
  • Reading Android and Kotlin documentation, as well as Android and Kotlin articles.
  • Reading Android and Kotlin books.
  • Writing Android articles, and recording Android video tutorials. One of the best ways to learn is by teaching others, the protégé effect.

Check out Awesome Android Learning Resources put together by Android Dev Notes

How'd I stay updated with the latest trends in the Android development ecosystem?

  • Attending major conferences like Google I/O, Android Dev Summit, Kotlin Conf', Droidcon conferences across the world. Updates and new developemnt are announced during the conferences.
  • Follow top Android Developers on Twitter, and LinkedIn.
  • Attend developer meetups. Check out Android254, Kotlin Kenya if in Nairobi, Kenya
  • Listen to Android Podcasts. Some of my favourites are Android Developers Backstage, Fragmented Podcast
  • Subscribe to Android newsletters: Android Weekly, Kotlin Weekly, Effective Android.
  • Subscribe to Android Youtube channels: Android Developers
  • Read Documentation.
  • Try new APIs on your projects. You learn more by experimenting.

What topics should I learn before applying for my first Android job?

For your first role, make sure you master the basics in Android. Some of the things to consider include:

  • Working Kotlin Knowledge
  • Layouts either using XML or Compose
  • Navigation
  • Android SDK and API version
  • Storing data locally in an app
  • Calling a rest API from an App
  • Debugging

What do Interviewers look for in An Android Dev?

  • Technical strengths: Coding best practices, implementation of Android libraries, test cases coverage, version control(Github, Gitlab, Bitbucket)

  • Cultural fitness: Team collaboration, good communication, honest feedback, conflict resolution.

Resources to learn Jetpack Compose

Which Architecture should I use in my app?

There exist several architecture patterns: MVP, MVC, MVVM, MVI, Redux and much more. Architecture patterns are guidelines for building quality apps. They are not cut-on-stone rules.

All best practices can be applied to any architecture pattern.

Nonetheless, architecture patterns are different: how they are implemented, the learning curve etc.

Before adopting an architecture into your app, make sure you first understand how it works.

My two cents: For beginners, I'd recommend starting with MVVM. It has a gentle learning curve, adopted in several Android projects and has many resources online.

For Jetpack Compose projects, I'd recommend an MVI kind of approach. This helps a lot with state handling. And you can implement MVI on top of MVVM.

Should I learn Compose or XML?

Jetpack Compose is the recommended modern UI toolkit for developing native Android UI. With Jetpack Compose, you build the UI faster with less code and using intuitive Kotlin APIs.

Do you have to know XML to learn to compose? No. For beginners, you could get started with Compose straight away. But XML knowledge is good to have. XML is still dominant in legacy projects. Maintaining such projects requires one to know about XML.

I'd advise learning both. You'd working on some projects using XML then jump to Compose. Knowledge about how Views/XML work will help you appreciate the progress in Android UI development and the benefits of using Jetpack Compose in developing UI.

Should I learn Java or Kotlin?

When Google announced the first version of their Android OS, in 2007, they adopted Java as the main language for Android development.

In 2016, JetBrains officially released Kotlin. At Google I/O 2019, Google announced Kotlin as the first-class language for Android development.

Some of the benefits that Kotlin brings to Android development include:

  • Interoperability with Java. You can call Java code from Kotlin, and Kotlin code from Java
  • Safety. Kotlin gracefully handles common mistakes such as null pointer exceptions.
  • Structured concurrency. Kotlin coroutines simplify background tasks such as network calls.

With Kotlin as the first-class language for Android development, new Android development tools and content such as Jetpack libraries and training content are designed in Kotlin. For instance, Jetpack Compose, compiler plugin support, and multiplatform projects.

Therefore, if you're considering Android Development, I'd encourage learning Kotlin.

Also, Kotlin is cross-platform. It can be used in Android development, server-side and Kotlin multi-platform. Check the docs for more: Kotlin Docs

What does an Android developer do on a normal basis?

Android developers design and develop apps for various Android devices: phones, tablets, smartwatches, TV, and cars. They debug and troubleshoot issues in the apps, maintain existing apps, create Android libraries and stay current with Android OS, android development updates.

What does an Android dev interview process entail, are there DSA or behavioral questions?

An Android interview process will vary from one company to another. But the most common parts you will encounter include:

  • CV/Resume screening.
  • The recruiter, hiring manager call. This is typically not technical but covers your experience.
  • Technical Screening. Different companies choose different screening approaches. Some of the options include:
    • Time-boxed code challenge. This includes likes of Hackerrank or leet code challenges, evaluted by an Engineer or automatically.
    • Technical screening call with an Android Engineer. Android concepts are asked. You mighty be asked to pair program with the engineer to write code for a small problem.
    • Take home assignment
  • On-site interview. This is usually the last stage. It varies from company to company. Some of the activities here include
    • Coding. If you were given a take home assignment you migty be asked to expand the project to test how you respond to requirement changes. Others may ask general data structures questions
    • Mobile system design questions. You are asked to design a mobile app. This mostly focuses on the app architecture.
    • Behavioral or hiring manager interview

Check this article for more details: Typical Hiring Pipeline

Preparing for interviews makes all the difference. So prepare 😃.

As a beginner, when do I know it's the right time for me to start applying for a job?

I do not think there is a specific time. You could start applying immediately after Campus, after completing a boot camp.

Nonetheless, prepare for the job search. Build apps to show what you are able to do. Have them on GitHub and/or publish them on Play Store.

Write content, work on projects ... Check how to get an Android Developer role section for more tips.

GDE Questions

Google Developer Experts is a global community of experienced developers who love to share their knowledge and passion with others.

Check out GDE spotlight stories highlighting incredible Android GDEs.

Check out the docs to learn about the community, who can join and the application process.

Technical Writing

Technical writing is writing about technology, any writing to provide technical information.

To get started, pick a topic in your area of specialization, Android development, and write about it. It could be :

  • something new you learned.
  • how you fixed a bug.
  • a guide on how to use a given API in your app among others.

Check out this article: Technical Writing: How Do I Get Better at it by Harun Wangereka to learn how to get better at technical writing.

There is no one right way to structure your articles. But always ensure correctness in your articles. Your articles ought to be comprehensive. You mighty not be able to cover everything but try as much as possible to cover important parts of the topic you are writing about. And be concise.

Great articles are organized for readers to easily follow through. You'd start with general to specific topics, or start from basic to advanced topics. You are telling a story with the article.

Mentorship and Communities

Mentorship is a learning relationship between an experienced person and someone who wants to grow. With a healthy mentoring relationship, both parties gain, not just the mentee. ~ Growing as a Mobile Engineer, Gergely Orosz.

Mentees, do not ask, "Will you be my mentor?". If you ask, the answer is probably no. Shift your thinking from "If I get a mentor, I'll excel" to "If I excel, I will get a mentor". Mentorship relationships start with a mutual connection -- and mentors often select protégés based on their performance and potential. ~ Lean In For Graduates, Sheryl Sandberg

Start working on something. Start learning, working on a project, writing that article etc. You'll find many people willing to help you along the way.

Reach out for help, when you need assistance. For instance, If you get stuck coz of a bug, reach out for help. There are many amazing developers in developer communities willing to help you. This is one of the ways to find mentors.

And Join developer communities. To learn, to network.

Check out:

Imposter Syndrome

Imposter syndrome is real. It happens to the best of us.

Check the following articles to learn more about dealing with imposter syndrome:

Contributing

Contributions are welcome.

See CONTRIBUTIONS.md to start contributing.

Shout Outs

Shout out to Harun Wangereka for reviewing this project and Hannah Olukoye, Mambo Bryan, Breens Robert, Joy, Ayubu Mohamed and Annie Kobia for helping with coming up initial questions and responses.

android-faq's People

Contributors

bkinya avatar misshannah avatar mambobryan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.