{"id":20829739,"url":"https://github.com/androidovshchik/androidlayouttips","last_synced_at":"2025-03-12T08:14:59.816Z","repository":{"id":163353397,"uuid":"296249481","full_name":"androidovshchik/AndroidLayoutTips","owner":"androidovshchik","description":null,"archived":false,"fork":false,"pushed_at":"2020-09-17T09:48:20.000Z","size":344,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-18T18:53:35.162Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://vladkalyuzhnyu.gitbook.io/android-layout-tips","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/androidovshchik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-17T07:18:15.000Z","updated_at":"2020-09-20T07:51:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"15768683-6007-4a98-8cbc-a465c73d09d6","html_url":"https://github.com/androidovshchik/AndroidLayoutTips","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/androidovshchik%2FAndroidLayoutTips","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/androidovshchik%2FAndroidLayoutTips/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/androidovshchik%2FAndroidLayoutTips/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/androidovshchik%2FAndroidLayoutTips/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/androidovshchik","download_url":"https://codeload.github.com/androidovshchik/AndroidLayoutTips/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243179906,"owners_count":20249187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T23:21:49.074Z","updated_at":"2025-03-12T08:14:59.792Z","avatar_url":"https://github.com/androidovshchik.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"---\ndescription: Общие замечания\n---\n\n# Вместо вступления\n\nСейчас все перешли на [Jetpack](https://developer.android.com/jetpack), так вот, я говорю, что все перешли на [AndroidX](https://developer.android.com/jetpack/androidx)\\). Из очевидного это изменение имен пакетов классов с `android.support` на `androidx`. \n\nВ Jetpack входит много библиотек для разных задач, это и работа с бд, и камера, и прочее. Если требуется функционал, который реализован здесь, то можно закончить этим поиск \\(за редким исключением мб\\).\n\nКасаемо биндинга разметки, по-прежнему можно использовать [ButterKnife](https://github.com/JakeWharton/butterknife), но я бы советовал View Binding \\(недавно появилось\\). На Kotlin есть удобный synthetics, который импортирует идетификаторы виджетов через пакеты, по которым можно получать сразу же их инстансы. Data Binding давняя вещь, я бы не сказал, что она прижилась \\(кому-то может и заходит\\), она позволяет интегрировать код прям в разметку. Но точно лучше не использовать древний `findViewById`.\n\n![\u0026#x41E;\u0026#x442;\u0026#x43B;\u0026#x438;\u0026#x447;\u0026#x43D;\u0026#x430;\u0026#x44F; \u0026#x442;\u0026#x430;\u0026#x431;\u0026#x43B;\u0026#x438;\u0026#x446;\u0026#x430; \u0026#x434;\u0026#x43B;\u0026#x44F; \u0026#x441;\u0026#x440;\u0026#x430;\u0026#x432;\u0026#x43D;\u0026#x435;\u0026#x43D;\u0026#x438;\u0026#x44F;](.gitbook/assets/1_lbxjgq_l_jbxibr1e1wv5a.png)\n\nЕсть еще [Jetpack Compose](https://developer.android.com/jetpack/compose), это новый подход к разметке, но он еще в alpha. Даже в android studio версии stable пока еще недоступен. Там координальные отличия, я бы пока не советовал его использовать.\n\nКасаемо темы приложения еще, можно использовать либо `AppCompat`, либо `MaterialComponents` семейство. Первый исключает набор виджетов [Material Design](coordinatorlayout.md). Если нужна поддержка темной темы, то однозначно `DayNight` \n\nЯ бы советовал делать разметку в xml. Есть варианты реализации в коде, но они пока не стоят того. Касаемо вопроса о поддержке разных экранов, то есть старый дедовский способ, это использование `dimens` для проблемных виджетов. Пока другого нормального ничего не придумали\\). Бывает еще, что разметка альбомной ориентации координально отличается от портретной, тогда проще сделать отдельную разметку в папке `layout-land` с тем же именем файла.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandroidovshchik%2Fandroidlayouttips","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandroidovshchik%2Fandroidlayouttips","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandroidovshchik%2Fandroidlayouttips/lists"}