
Android programming, looking for good guides for beginners - toron123
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.
======
0xcde4c3db
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](https://commonsware.com/Android/4-2-free)

~~~
yaitsyaboi
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.

~~~
amerkhalid
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.

------
jswizzy
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](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.

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

[https://www.udacity.com/course/developing-android-apps-
with-...](https://www.udacity.com/course/developing-android-apps-with-kotlin--
ud9012)

[https://www.udacity.com/course/advanced-android-with-
kotlin-...](https://www.udacity.com/course/advanced-android-with-kotlin--
ud940)

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

[https://codelabs.developers.google.com/?cat=Android](https://codelabs.developers.google.com/?cat=Android)

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

[https://www.youtube.com/channel/UC_Fh8kvtkVPkeihBs42jGcA](https://www.youtube.com/channel/UC_Fh8kvtkVPkeihBs42jGcA)

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

[https://www.coursera.org/learn/android-
programming](https://www.coursera.org/learn/android-programming)

------
rubyskills
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.

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

It trails React Native significantly.

~~~
rubyskills
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?

~~~
SkyPuncher
"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.

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

------
throwawaybbq1
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.

------
satysin
As you also mention iOS I highly recommend Paul Hudson's books at
[https://www.hackingwithswift.com](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).

~~~
lostgame
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.

------
analog31
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.

------
muzani
There are some good code examples on
[http://guides.codepath.com/android](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.

------
j45
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.

------
shog_hn
There are some good articles/tutorials on raywenderlich.com.
[https://www.raywenderlich.com/android/articles](https://www.raywenderlich.com/android/articles)

------
peterhookgen
The Free Android Notes for Professionals book

Link:
[https://books.goalkicker.com/AndroidBook/](https://books.goalkicker.com/AndroidBook/)

------
Setheck
[https://developer.android.com/](https://developer.android.com/) and start
reading

~~~
muzani
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...](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)

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.

