На каком уровне стоит изучить Java для Android разработки?
Я так понимаю хватит знания Java Core? Пару дней смотрел новые вакансии, не разу не увидел новых проектов на Java (что не удивительно конечно), только Kotlin. Стоит ли практиковаться в написании приложений сразу на Kotlin, или лучше начать с Java?
Ответы (1 шт):
Вам нужно знать весь Core Java. Знать
java.collections. Понимать хорошо ООП. Это прям основа без которой никуда.Стоит ознакомиться с многопоточностью. Но только ознакомиться, на уровне понимания как она работает в Java, т.к. в Android для асинхронной работы используются свои фреймворки.
Стоит так же ознакомиться с работой с файлами, но опять же на базовом уровне. Это не очень часто используется, а если понадобиться потом разобраться больших проблем не будет.
Вас не интересует Java выше 8ой, т.к. в Android ее нет в принципе.
- Исключения:
java.util.{Map,Collection,Comparator}иjava.time. Подробнее тут.
Вас не интересуют стримы - их никто не использует в Android разработке.
Вас не интересуют практически никакие Java библиотеки (например Spring).
Вас не интересуют ничего что связано с UI на Java.
- Исключения:
Важно понимать, что Android это очень большой фреймворк в котором от Java только основы. Все остальное там свое.
Поэтому если условно разделить время от старта обучения до получения первой работы у вас на Java должно уйти примерно 20% времени.
Как только вы поняли, что понимаете основы Java вы начинаете учить Android.
UPD Про Kotlin:
Без Kotlin-a сейчас в Android почти никуда. Но тут есть нюансы.
- Зная Java - начать писать на Kotlin проблем вообще не составит. 2-4 недели.
- Никто не отменял легаси кода на Java.
- Большинство фреймворка Android написано на Java и его нужно понимать.
- Да и большинство компаний которые пишут на чистом Kotlin у вас все равно спросят Java
- Java намного легче для вхождения т.к. там все более явно описано чем в Kotlin. Это не круто для тех кто шарит, но намного круче для тех кто учится.
Так что вывод такой: Учите Java, как только поймете, что ее понимаете хорошо - учите Kotlin. Но не наоборот.