Catalin Ghita Profile picture
Aug 23, 2021 16 tweets 9 min read Read on X
15 essential topics you should know when starting out as an #AndroidDev:

🧵Thread 👇

#indiedev #JetpackCompose #Android #100DaysOfCode #DEVCommunity #coding Image
1. Learn Java first and then Kotlin.

Kotlin is the best choice as the code is compact and less verbose than Java.

But start with Java as it's essential for your professional portfolio. Java is your core dev language. Only when confident with Java, one should jump into Kotlin! Image
2. Start from the official resources

Don't directly jump into tutorials. Check out the official courses:
developer.android.com/courses

Or codelabs:
codelabs.developers.google.com/?cat=Android

Then you can search for third party courses for more advanced topics
3. Learn from high quality sources

Pick good, high quality instructors and content. Don't get free courses just because they are free, pick them because they are solid!

I recommend getting content from people like:
@rwenderlich
@VasiliyZukanov
@mitch_tabian
@codinginflow Image
4. Learn everything by practice

Don't just study. Be it course, codelab or tutorial, make sure you are following in parallel. Practicing on your own makes wonders!

Build apps and have fun with it. That's how you will ultimately learn to code. Image
5. Make sure you understand lifecycles

Regardless what you are learning right now, if you haven't started with lifecycles in Android, do it now!

Lifecycles are fundamental to everything in Android development. Start from Activity lifecycle, to fragment and application. Image
6. Don't skip important components

You 100% need to learn Jetpack Compose, but this doesn't mean you shouldn't learn anything about Fragments or XML.
Kotlin Flow is out, it doesn't mean you shouldn't learn RxJava!

You will need these skills, so by all means don't avoid them! Image
7. Jetpack is your friend, starting with Compose

Try to explore the Jetpack libraries first. Start with the best one yet: Compose. Move to ViewModel, LiveData, Room, Hilt, Paging etc.

Try to see why you need a library and how it works. Always understand what you're doing. Image
8. Try to use up-to-date libraries

Go and explore Coroutines, RxJava, Dagger and Retrofit. While RxJava and Dagger are less and less used, you might encounter an old project that has them!

Always expand your horizon over the libraries that are only used "today". Image
9. Learn app architecture

Build better apps by exploring what MVC, MVP and MVVM patterns are. Understand the benefits of MVVM and why most modern android apps use it.

Learn what separation of concerns means and how to create clean Android projects by separating business logic. Image
10. Learn how to test your code

This is the stepping stone to becoming a great developer. Learn how to unit test your app and how to build UI tests that make sure the application behaves correctly.

Tests should be a normality in every Android project! Image
11. Don't settle for less just because you're starting out.

Explore the SOLID principles, or Clean code by Uncle Bob. Understand Dependency Injection and why Hilt/Dagger are used in projects.

These are skills that will differentiate your from other developers! Image
12. Stay consistent in learning

Create your goals and set deadlines for each chapter of your journey.

Become accountable for each one of your goals. This way, you will keep on grinding and avoid procrastinating. Image
13. Stay curios and question everything

Always ask yourself why you are doing whatever you are doing when adding a function, a callback, a library, test etc.

Always understand what you are doing step by step. This will help your memorize the flow needed to build apps. Image
14. Always test your code on older devices

Never build apps on your latest Android device. Chances are, when running the code on older API levels, the application will not behave as expected.

It's your job to make it run smoothly on all Android API levels. Image
15. Understand how your apps work

Explore the build process of Android applications and understand the runtime process from Dalvik to recent Android Runtime (ART).

Every Android developers should have such an overview! When asked how your apps work, what will you say? Image

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Catalin Ghita

Catalin Ghita Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @CatalinGhita4

May 15, 2022
I've held #AndroidDev interviews for the past two years now and I've seen all sorts of candidates, from good, to not so good. 👨‍💻

Here are the top 7 mistakes candidates did and that I think you should avoid 🧵
🚩Not being able to describe the need or justification for using a technology or library.

Had countless of applicants with solid codings skill that used LiveData or ViewModel but had no idea what these tools do for you.

Some thought that LiveData isn't lifecycle aware. Big 🚩
🚩 Overcomplicating implementations

We had candidates coming up with overly abstracted solutions that were so tough to understand. Generics and base classes over base classes, a maze

Remember, you're writing code to solve a problem - you're not writing a cipher. Keep it simple!
Read 9 tweets
Aug 25, 2021
Curios about Compose but haven’t had the chance to look into it? 🤔

Here’s a collection of 12 core Composable functions used to build UI!

🧵Thread 👇

#indiedev #JetpackCompose #Android #AndroidDev #DEVCommunity #coding
1. Text Composable

You can use the Text composable to display text. You can use the style argument to define things like TextDecoration or FontFamily.

It's similar to the TextView in the classic Android View system.
2. Image Composable

Image is used to display images. It’s similar to an ImageView in the classic Android View system.

You can use painterResource to load an image from the resources.
Read 13 tweets
Aug 2, 2021
15 Github repos that you must check out as an #AndroidDev:

🧵Thread 👇

#indiedev #JetpackCompose #Android #100DaysOfCode #DEVCommunity #coding
1. Android Guides
Updated guides and learning materials on core topics on Android.

github.com/codepath/andro…
2. Google Architecture components samples

Awesome resource for those who want to explore how Android architecture components should or could be used.

github.com/android/archit…
Read 16 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(