Comments 10
У меня ощущение, что compose jetpack это Flutter, только на котлине
+2
да так и есть, они тесно работают с коммандой Flutter, если посмотреть в репозиторий, там даже дарт код есть тыц
0
Не забываем, что у Google есть Flutter, который уже работает. Приложения на Flutter запускаются на iOS 8. Так что Apple тут в роли догоняющего
0
Лучше знакомство с Compose было начать с видео с Google IO 2019, они там по ходу презентации несколько раз прямо сказали — ребята, это даже не альфа, ни в коем случае не думайте о том, что это скоро будет production-ready. Мы анонсируем Compose сейчас для того, чтобы как можно раньше начать собирать фидбек и прорабатывать концепцию.
+6
Я к андроид разработке мало отношения имею, может глупость скажу, но для меня это выглядит как какой-то шаг назад. Ну вот сто лет назад был Swing, и в нем надо было все лайауты писать в коде. И все ругались, мол, неудобно, неправильно смешивать код и визуал и т.п. Затем пришел андроид, и в нем появился мощный визуальный редактор и описание экранов в хмл, и все радовались. А теперь пришел вот этот Jetpack, и мы снова UI пишем в коде. В чем смысл? А потом будет еще одна библиотека и мы опять начнем интерфейс делать на каком-нибудь языке разметки?
+1
Думая, что всё просто. Когда появились первые телефоны, то они были примерно одного размера и логика/динамика были тривиальными. Обычной разметки было достаточно. Дальше стали появляться другие форм-факторы, размеры, разрешения и накрученная логика. Т.е. опять вернулись к сложным и динамично меняющимся «окнам». Отсюда и возврат к истокам.
0
Дело не в том, где мы описываем UI, а в том, как мы это делаем.
Compose, SwiftUI, Flutter, React, Vue, Litho, Svelte и т.д. и т.п. реализуют подход под названием Declarative UI. Что это значит — в двух словах можно прочесть, например, на сайте Flutter'a.
Соавтор Compose Leland Richardson собрал материалы (в основном из мира React), которые могут помочь мобильным разработчикам лучше понять новый подход. А тулинг — дело наживное (для Compose, например, обещают сделать его не хуже текущего, но не скоро, конечно же).
Статья не корректно сравнивает существующий продукт (SwiftUI) и продукт в состоянии proof-of-concept (Compose). artemgapchenko совершенно верно заметил, что сначала следовало бы посмотреть первоисточник (анонс на Google I/O).
Также в Slack-чате языка Kotlin есть канал #compose, где можно внести предложение или задать вопрос, получив ответ из первых рук (Romain Guy и Leland Richardson регулярно принимают участь в обсуждениях).
Compose, SwiftUI, Flutter, React, Vue, Litho, Svelte и т.д. и т.п. реализуют подход под названием Declarative UI. Что это значит — в двух словах можно прочесть, например, на сайте Flutter'a.
Соавтор Compose Leland Richardson собрал материалы (в основном из мира React), которые могут помочь мобильным разработчикам лучше понять новый подход. А тулинг — дело наживное (для Compose, например, обещают сделать его не хуже текущего, но не скоро, конечно же).
Статья не корректно сравнивает существующий продукт (SwiftUI) и продукт в состоянии proof-of-concept (Compose). artemgapchenko совершенно верно заметил, что сначала следовало бы посмотреть первоисточник (анонс на Google I/O).
Также в Slack-чате языка Kotlin есть канал #compose, где можно внести предложение или задать вопрос, получив ответ из первых рук (Romain Guy и Leland Richardson регулярно принимают участь в обсуждениях).
0
Соглашусь с вами, наверное, некорректно сравнивать продукт на ранней стадии разработки с готовым продуктом. Но моя цель была сравнить, на каком этапе разработки сейчас представленные на конференциях продукты.
Как мне показалась, это интересная тема.
Насчет того, что сначала стоило посмотреть первоисточник — я с первоисточника и начал. И я понимал, что Compose в очень ранней стадии разработки и понимал, что гугл сказал, что хочет собрать обратную связь от разработчиков. Но при этом всем, когда начал смотреть Compose, в голове держал, то что Google уже создал Flutter, который вызвал большой интерес у Android разработчиков. И что у Google уже есть обратная связь по Flutter от тех же разработчиков, от которых просит обратную связь по Compose. И ждал от Compose, то что он будет реализован на основе отзывов о Flutter, хоть и на уровне концепции. А по факту, сейчас Compose — это пара полурабочих вьюх. Какого отзыва Google ждет и может ждать на основе такого? Складывается ощущение, что Google было важно анонсировать хоть что-то.
Насчет статьи надеюсь, хоть кому-то она была полезна.
Как мне показалась, это интересная тема.
Насчет того, что сначала стоило посмотреть первоисточник — я с первоисточника и начал. И я понимал, что Compose в очень ранней стадии разработки и понимал, что гугл сказал, что хочет собрать обратную связь от разработчиков. Но при этом всем, когда начал смотреть Compose, в голове держал, то что Google уже создал Flutter, который вызвал большой интерес у Android разработчиков. И что у Google уже есть обратная связь по Flutter от тех же разработчиков, от которых просит обратную связь по Compose. И ждал от Compose, то что он будет реализован на основе отзывов о Flutter, хоть и на уровне концепции. А по факту, сейчас Compose — это пара полурабочих вьюх. Какого отзыва Google ждет и может ждать на основе такого? Складывается ощущение, что Google было важно анонсировать хоть что-то.
Насчет статьи надеюсь, хоть кому-то она была полезна.
0
Собственно и для Андроид — Compose не первый.
Есть например Anko от Jetbrains
или так
Preview-плагин для Android Studio есть.
Списки — ну поддержка RecyclerView более менее штатная и вообще совместимость со «стандартной» моделью для Android — получше.
Чем Compose СЕЙЧАС лучше Anko?
Есть например Anko от Jetbrains
relativeLayout {
padding = dip(16)
val w = dip(200)
val loginEditId = 155;
val loginEdit = editText {
id = loginEditId
hint = "Login"
}.layoutParams { centerInParent(); width = w }
button("Sign up") {
textSize = 18f
onClick { doWork(loginEdit.getText().toString()) }
}.layoutParams {
below(loginEditId); sameLeft(loginEditId);
width = w; topMargin = dip(8)
}
}
или так
constraintLayout {
val sessionStart = textView {
id = R.id.session_start
textSize = 18f
textColor = theme.getColor(R.attr.colorAccent)
}
val sessionTitle = textView {
id = R.id.session_title
textSize = 18f
textColor = Color.BLACK
}.lparams(0, wrapContent)
textView {
id = R.id.session_details
textSize = 16f
}.lparams(0, wrapContent)
applyConstraintSet {
// Connect without block
// You may use view id or view itself to define connections
connect(
START of R.id.session_start to START of PARENT_ID margin dip(10),
TOP of sessionStart to TOP of PARENT_ID margin dip(10)
)
// constraint configuration on view
sessionTitle {
connect(
START to START of PARENT_ID margin dip(SESSION_LIST_HEADER_MARGIN),
TOP to TOP of PARENT_ID margin dip(10),
END to END of PARENT_ID margin dip(10),
BOTTOM to TOP of R.id.session_details
)
horizontalBias = 0.0f
defaultWidth = MATCH_CONSTRAINT_WRAP
}
// constraint configuration on view Id
R.id.session_details {
connect(
START to START of PARENT_ID margin dip(SESSION_LIST_HEADER_MARGIN),
TOP to BOTTOM of sessionTitle margin dip(2),
END to END of PARENT_ID margin dip(10),
BOTTOM to BOTTOM of PARENT_ID margin dip(2)
)
horizontalBias = 0.0f
defaultWidth = MATCH_CONSTRAINT_WRAP
}
}
}
Preview-плагин для Android Studio есть.
Списки — ну поддержка RecyclerView более менее штатная и вообще совместимость со «стандартной» моделью для Android — получше.
Чем Compose СЕЙЧАС лучше Anko?
0
Sign up to leave a comment.
Гонка вооружений