Hacker News new | past | comments | ask | show | jobs | submit login
Android programming, looking for good guides for beginners
61 points by toron123 on Jan 12, 2020 | hide | past | favorite | 30 comments
I think about starting learning programming for android (possibly iOS) since I have macbook. Looking for decent guides, books, youtube channels. I am open to any advice.

I'm not sure how mainstream of an opinion this is, but I'd suggest skipping Google's own tutorials. It would be reasonable to suppose that a multi-billion-dollar corporation that massively benefits from a thriving developer community would put out first-rate documentation, but I was quite disappointed by how much of an inconsistent and incomplete mess those tutorials are.

While I've only briefly skimmed it myself, I've heard a lot of good things about The Busy Coder's Guide to Android Development. Newer editions require a $20 "subscription", but older ones are available for free [1].

[1] https://commonsware.com/Android/4-2-free

To be honest, Apple’s own tutorials aren’t really that much better, and are also often outdated.

Raywenderlich.com is always my first pick.

Looks really good. Thanks for the recommendation. Will definitely check it out later.

I have a pet theory that mobile development is deliberately intractable as a kind of gatekeeping tactic. There's certainly no excuse for it to be as inaccessible as it is, with the resources available. There is an aggressive rejection of the mobile phone as a user-oriented computing platform - instead you must be a "developer", and to prove that you are a "developer" you must devote an enormous amount of disk space to "developer tools" and tolerate byzantine project structures and weird languages, which require byzantine IDEs to manage. The provision for writing software actually on these devices with an order of magnitude more power than a Cray-2 is actively suppressed. God forbid I be able to write a friggin Python script on my phone...

This isn't necessarily conscious conspiracy on the part of the perpetrators. But it's a systemic attitude that ultimately has the same effect, and the incentives point in that direction. Remember, Google/Apple only make money on their respective app stores when you buy an app - free apps are worthless to them, as are apps you write yourself; free software apps that let you escape the ecosystem are worse than worthless!

Interestingly, the docs for Flutter are comprehensive and overall just really excellent.

Maybe they shifted focus to that in the past years.

Is there any example where a library/framework's creator has the best getting started documentation for learning how to use it?

I'm lazy and not very academic, and I feel like I always end up following a Medium or Hackernoon tutorial and using the official API docs for supplemental reference. I feel like this has been my experience for Flutter, React, ReactNative, Docker. I'm actually curious what folks' favorite 1st party docs are.

I needed to use only official docs for Laravel and before that CodeIgniter.

Also I really like React’s documentation. Previously, I had used random tutorials to get started but recently I went through their official docs to fill in gaps in my knowledge. Now I wish I had started with official docs in the first place.

it's an outdated opinion probably, but K&R 'The C Programming Language' is a gem.[0]

[0]: https://en.wikipedia.org/wiki/The_C_Programming_Language

If this is outdated, could someone please suggest something superior? Was thinking of grabbing this for a friend.

I've been reading those Android docs. It's not great but better than nothing.

Android development is a mess. Much of the documentation and resources you will find will be outdated. Last time I looked at the code labs from Google many where already deprecated. The Udacity courses are more current than the offical documentation. I'd recommend Programming Kotlin https://pragprog.com/book/vskotlin/programming-kotlin by Venkat Subramaniam if you don't know Kotlin. It's honestly a bad time to learn Android as the ecosystem is in flux with Jetpack and Kotlin and Android X changing everything up.

I recommend working through the beginner and advanced programming for Android tutorials on Udacity, both are free:



That gives you a solid start to look into more details and do some codelabs on


or watch a series about a certain topic on Youtube. I really like the Coding In Flow channel:


That's a good idea. I did the University of Maryland Coursera course and I liked it a lot:


This may be a little of topic, but I think that Google's Flutter is really game changing. It let's you write your app once and deploy down to iOS and Android and does so compiled to the target environment. Compared to other cross platform mobile development frameworks, I think they're at the top performance wise.

Unless things have changed drastically in the past 6 months, Flutter still isn't ready for the limelight.

It trails React Native significantly.

Why do you say that? It's currently being used in production by Google. Can you be more specific about how Flutter is trailing React Native from a tech POV?

"Being used in production by Google" is a poor quality measure for most companies/people.

Google, and similarly large companies, have an entire infrastructure and internal community built around supporting tech stacks. If/When developers hit bugs or limitations, Google has the resources to address it. They can literally assign an entire team to improve a single performance aspect of Flutter or build any missing functionality (much of which is going to stay internal to Google).

Outside developers don't have that ability or bandwidth. They can't afford to stop feature development for days or weeks to figure out quirks/improve Flutter. They're almost 100% reliant on public feature set and community support.

From a pure tech POV, Flutter seems like a better technology approach. However, there have been plenty of "technologically better" frameworks that have failed because the general community does not support them.

The Ray Wenderlich stuff is pretty good. (Full disclosure, I wrote a book for them so I am biased :))

There used to be this awesome resource called codepath. They took a developer from tutorials to actual intermediate/senior tier. It was a bay area hands-on thing but I would frequently watch their recorded videos or their online documentation. They still have some material up but a lot is gone (e.g. videos) and I am doubtful if things are up to date. But yeah .. that was awesome and I still point my engineers to what remaining resources they have left online.

As you also mention iOS I highly recommend Paul Hudson's books at https://www.hackingwithswift.com

His 100 Days of Swift (and Swift UI) are also quite good to work through. He is widely known and respected in the iOS development community and works hard to keep it all up to date (all updates are included if you purchase his books).

I just bought his Swift book collection based on a colleague’s advice - I particularly wanted this book on Unit Testing.

I’ve loved them. Just chiming in to also suggest them.

This is without knowing your existing background in programming, or your ambitions.

I was interested in something similar, many years ago, and realized that the app I wanted to write didn't call upon any of the internal resources of the Android phone. So I was able to write it in Javascript / HTML, and it runs on any platform in a browser.

There are some good code examples on http://guides.codepath.com/android

They're all outdated now, still in Java. It's open source, so I might actually get around to contributing to them.

Before learning to build native apps, I’d try out something that is write once, deploy anywhere like ionic, react-native, vue-native, etc.

Being able to ship to both platforms from the beginning creates a different kind of momentum.

There are some good articles/tutorials on raywenderlich.com. https://www.raywenderlich.com/android/articles

The Free Android Notes for Professionals book

Link: https://books.goalkicker.com/AndroidBook/

https://developer.android.com/ and start reading

The official documentation is terrible. It's practically an example of how bad documentation can get. The developer documents are verbose and say little.

This is perhaps one of the most commonly used widgets in Android: https://developer.android.com/reference/android/support/v7/w...

It doesn't say why it's deprecated and what it's replaced with. The link is even more confusing. And the document itself also doesn't say what a RecyclerView is or how to use it.

I don't know why you get downvoted. If they are a complete beginner, they should go to https://developer.android.com/guide and first learn about the concepts such as Intents, Resources, Android Manifest, Activities/Fragments etc. It's all there in one place.

Applications are open for YC Summer 2023

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact