tester2019-2020, нужно писать много кода. Почитать для общего развития Философия Java Эккеля, Effective Java Блоха. Но не жди, что ты что-то прочтёшь, и начнёшь сразу всё суперправильно делать. Практику ничто не заменит.
tester2019-2020, я так и не понял, где у тебя используются свойства интерфейсов. RecyclerView.Adapter вообще не зависит от данных, никакого метода, аналогичного твоему setCollection там нет, поэтому напрашивается вывод, что он и не нужен.Есть методы, необходимые для виртуализации - onCreateViewHolder/onBindViewHolder/getItemCount, которые нужно реализовать в каждом конкретном случае по-своему, и поэтому у них нет дефолтных реализаций.
Интерфейсы Grid и Collection не нужны, change my mind.
kq1995, я Свифт могу только читать, так что не подскажу прямо так. Исходить надо из того, какие у тебя есть устройства, имхо. Если андроид и винда или линукс, то бери котлин и андроид. Если айфон и мак, то конечно Свифт и айос. Без мака разработка под айос не самая лучшая идея. И всегда лучше видеть результаты своей работы непосредственно на своём девайсе.