https://github.com/androidovshchik/androidlayouttips
https://github.com/androidovshchik/androidlayouttips
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/androidovshchik/androidlayouttips
- Owner: androidovshchik
- Created: 2020-09-17T07:18:15.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-09-17T09:48:20.000Z (almost 6 years ago)
- Last Synced: 2025-01-18T18:53:35.162Z (over 1 year ago)
- Homepage: https://vladkalyuzhnyu.gitbook.io/android-layout-tips
- Size: 336 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
---
description: Общие замечания
---
# Вместо вступления
Сейчас все перешли на [Jetpack](https://developer.android.com/jetpack), так вот, я говорю, что все перешли на [AndroidX](https://developer.android.com/jetpack/androidx)\). Из очевидного это изменение имен пакетов классов с `android.support` на `androidx`.
В Jetpack входит много библиотек для разных задач, это и работа с бд, и камера, и прочее. Если требуется функционал, который реализован здесь, то можно закончить этим поиск \(за редким исключением мб\).
Касаемо биндинга разметки, по-прежнему можно использовать [ButterKnife](https://github.com/JakeWharton/butterknife), но я бы советовал View Binding \(недавно появилось\). На Kotlin есть удобный synthetics, который импортирует идетификаторы виджетов через пакеты, по которым можно получать сразу же их инстансы. Data Binding давняя вещь, я бы не сказал, что она прижилась \(кому-то может и заходит\), она позволяет интегрировать код прям в разметку. Но точно лучше не использовать древний `findViewById`.

Есть еще [Jetpack Compose](https://developer.android.com/jetpack/compose), это новый подход к разметке, но он еще в alpha. Даже в android studio версии stable пока еще недоступен. Там координальные отличия, я бы пока не советовал его использовать.
Касаемо темы приложения еще, можно использовать либо `AppCompat`, либо `MaterialComponents` семейство. Первый исключает набор виджетов [Material Design](coordinatorlayout.md). Если нужна поддержка темной темы, то однозначно `DayNight`
Я бы советовал делать разметку в xml. Есть варианты реализации в коде, но они пока не стоят того. Касаемо вопроса о поддержке разных экранов, то есть старый дедовский способ, это использование `dimens` для проблемных виджетов. Пока другого нормального ничего не придумали\). Бывает еще, что разметка альбомной ориентации координально отличается от портретной, тогда проще сделать отдельную разметку в папке `layout-land` с тем же именем файла.