LINUX.ORG.RU

Android Studio 3.3

 , , , ,


1

3

Состоялся стабильный релиз Android Studio 3.3 — интегрированной среды разработки (IDE) для работы с платформой Android 9 Pie. Подробнее об изменениях в описании релиза и в YouTube презентации. Основные нововведения:


  • Navigation Editor - визуальный редактор XML ресурсов
  • IntelliJ Platform - обновление платформы до версии 2018.2.2
  • Kotlin - обновление 1.3.11
  • Clang-Tidy поддержка для C++
  • Новый мастер-wizard проектов
  • Оптимизация компилятора и конфигуратора, новый Android Gradle плагин 3.3.0
  • Новые возможности тестирования, возможно запуска множества виртуальных устройств Android Virtual Device (AVD)

>>> Подробности

★★★★

Проверено: Shaman007 ()

Navigation Editor - визуальный редактор XML ресурсов

Не нужно, разработчик должен уметь сам писать XML + на момент, когда я тыкал графический редактор ConstraintLayout он генерил просто лютое говно.

Kotlin - обновление 1.3.11

Не нужно, поделка хайпожоров на гироскутерах, посмотрел сгенеренный ей код - пришёл в тихий ужас, грязно, очень грязно.

возможно запуска множества виртуальных устройств Android Virtual Device (AVD)

Уже несколько лет как работает, ЧЯДНТ?

Jefail ★★★ ()

возможно запуска множества виртуальных устройств Android Virtual Device

запуска множества виртуальных устройств андроид виртуальное устройство

возможно запуска множества виртуальных устройств Android Virtual Device

а возможно и нет

Deleted ()
Ответ на: комментарий от Jefail

Разработчики, которые пишут на котлин и которым очень хорошо платят, смеются в голос. Ну а так напишите язык лучше сами, а мы тут потом посмотрим его.

anonymous ()
Ответ на: комментарий от Jefail

Котлин нужен. Хороший язык. Это Джава такая, какой бы она была, если бы её создали сейчас.

Другой вопрос, что автоматический конвертер кода из Джавы в Котлин генерирует не очень красивый и не идиоматичный код.

anonymous ()
Ответ на: комментарий от anonymous

Другой вопрос, что автоматический конвертер кода из Джавы в Котлин генерирует не очень красивый и не идиоматичный код.

Если кода не тысячи строк, то его легко почистить. Если кода очень много, то нет особого смысла его конвертировать в котлин.

mono ★★★★★ ()
Ответ на: комментарий от Jefail

Не нужно, разработчик должен уметь сам писать XML

конечно тебе виднее

когда я тыкал графический редактор ConstraintLayout он генерил просто лютое говно

научись его в xml писать, а не тыкать, или графический редактор тебе всетаки нужен?)))

лютое говно

в умелых руках с его помощью можно делать отличный UI без кучи вложеных как матрешка друг в друга лейаутов + анимации. То что ты не освоил элементарные средства разработки совсем не значит, что это не нужно. Удачно тыкать дальше

ch13 ()
Ответ на: комментарий от anonymous

Котлин нужен

совершенно верно, и это не мое мнение, это то количество разработчиков, которые во всю уже пользуются сахаром и плюхами. Но к сожалению некотрые предпочитают стоять на месте и не развиваться. Интересно, что они забыли в этих ынтырнетах

ch13 ()
Ответ на: комментарий от Legioner

Огромная куча проверок на null на каждый чих и в практически каждом override, часто встречаю непонятные присвоения вида

ClassType var1000 = ClassType.this
Смысл которых мне не понятен, если честно, companion object вообще в какую-то лютую порнографию выкомпиливается, зачем? Были и случаи натыкания на баги компилятора с корутинами, когда если делать в одну строку - упадёшь в рантайме с NoClassFound, разносишь объявление и присвоение - всё начинает работать, кривое дерьмо, имхо, про синтаксическую грязь в виде кучи кастов, объявления приватных методов модификатором final и тому подобное я уж молчу.

Jefail ★★★ ()
Ответ на: комментарий от ch13

Советую научиться читать сообщения не по диагонали. Я топил и буду топить за ручное написание XML, да, мне виднее, я 4-ый год в коммерческой разработке и пилил проекты когда еще не то что графических редакторов, когда еще Android Studio не появилась. И я по личному опыту заверяю, что все гуевые инструменты - говно, потому что генерят в конечном счёте кривизну либо оверхедные и ненужные в данной ситуации вещи.

Jefail ★★★ ()
Ответ на: комментарий от Jefail

Огромная куча проверок на null на каждый чих и в практически каждом override, часто встречаю непонятные присвоения

Так а в чём проблема? Тебя кто-то заставляет байткод читать, или что? Ты же в курсе, что байткод оптимизируется proguard-ом и компилируется перед выполнением?

companion object вообще в какую-то лютую порнографию выкомпиливается

Какую и что тебя удивляет? На всякий случай спрошу, ты же в курсе, что companion object это полноценный объект полноценного класса, который может реализовывать интерфейсы и тд?

Были и случаи натыкания на баги компилятора с корутинами

Когда они были экспериментальными?

про синтаксическую грязь в виде кучи кастов, объявления приватных методов модификатором final и тому подобное я уж молчу.

Что за куча кастов, что за final? И почему это проблема, если ты опять про байткод.

Legioner ★★★★★ ()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Сделал на Котлине несколько небольших проектов, теперь жалею - спустя время свой же код понять трудно. Хотя всё лаконично так получилось. Для Андройда, конечно, много удобств - потому что слишком много шаблонного кода и мусора, и с помощью котлина всё это можно сократить и облегчить. Может надо как-то научиться правильно на нём писать, чтобы это можно было потом читать) В итоге последний проект пишу на Java и не нарадаюсь, но отдельные файлы делаю на Котлине.

Если эта тема интересна - есть хорошая статься на тему возврата с Котлина на Java.

https://allegro.tech/2018/05/From-Java-to-Kotlin-and-Back-Again.html

anonymous ()
Ответ на: комментарий от Jefail

С большего согласен.
Но в Java очень не хватает data-классов, финальных переменных в три быуквы (val). Делегаты - тоже удобная штука.
Сложно без этого всего обратно писать на Java. (не люблю lombok и autovalue)

ii8_ ★★★★ ()

А чем сабж лучше, чем если тупо на последнюю community плагин поставить? (Он кстати автоматом сам встаёт, как только пытаешься создать/открыть android-проект, и в мастере установки сам себя называет как раз «android studio».)

dimgel ()
Ответ на: комментарий от dimgel

норм тоже. Но там всегда бекпорт. И он почти всегда не свежий.
Например сейчас там 3.1.1. А вышел вот уже 3.3.0, который затащат ещё только к весне...

ii8_ ★★★★ ()
Ответ на: комментарий от anonymous

Делал проекты на котлине, поддерживаю их, я не заметил проблем. Я тоже не все проекты на котлине делаю, для андроида, например, сейчас использую жаву, т.к. я андроид знаю плохо и не хочу усложнять себе жизнью ещё и слоем над джавой, но для того же сервера пишу на котлине и всё нормально.

Статья спорная. По name shadowing я вообще не согласен и вообще считаю, что во-первых никакого ворнинга не должно быть, во-вторых его надо позволять даже в том же скоупе. В Rust это сделано правильно и там это идиоматично. Вот пример, где это могло бы быть удобно:

fun f(password: String) {
  val passwordBytes = password.toByteArray()
  val passwordHashBytes = hasher.hash(passwordBytes)
  val passwordHashString = base64.encode(passwordHashBytes)
}
этот код изобилует кучей ненужных суффиксов только потому, что нельзя затенять имена.
fun f(password: String) {
  val password = password.toByteArray()
  val passwordHash = hasher.hash(password)
  val passwordHash = base64.encode(passwordHash)
}
этот код читается куда понятней. Если не ошибаюсь, такая же практика распространена и в Go. Другие пункты тоже из той же оперы, лень по каждому расписывать, они либо предлагают фигню, либо вообще не поняли причин как оно работает. Особенно смешно предложение любые жава-типы выставлять как nullable.

Legioner ★★★★★ ()
Ответ на: комментарий от dimgel

Кривой этот плагин. Я пробовал пару месяцев назад, там тупо баги сыпятся в хелло ворлде. Я так понял, у жетбрейнсов плагин немного отстаёт, а у андроид студии есть какие-то фиксы специально для андроида, помимо плагина. В общем я пришёл к выводу, что лучше две IDE бок о бок юзать.

Legioner ★★★★★ ()
Ответ на: комментарий от Legioner

Жуть какая. Name shadowing warnings — против случайных ошибок программистов (например, один и тот же индекс во вложенных циклах), а не против любителей сознательно писать говнокод (против них средств не существует). Если в расте и правда бардак идиоматичен, то хорошо что я до него до сих пор не добрался. А в последнем примере можно объявить passwordHash не val, а var (mutable).

dimgel ()
Ответ на: комментарий от dimgel

в последнем примере можно объявить passwordHash не val, а var (mutable).

Нельзя, типы разные, ByteArray и String. Ну и нет, это не то же самое, мне не нужен var, мне нужен val, как раз чтобы случайно не поменять. Кажется в Go то же самое, = против :=

Legioner ★★★★★ ()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Нельзя, типы разные, ByteArray и String.

Сорри, прощёлкал.

мне не нужен var, мне нужен val, как раз чтобы случайно не поменять.

Ну так а одно и то же имя юзать для разных объектов, тем более в одном и том же scope - это тоже вполне себе путь к случайным багам. Шило на мыло, как по мне.

dimgel ()
Ответ на: комментарий от dimgel

Ну так а одно и то же имя юзать для разных объектов, тем более в одном и том же scope - это тоже вполне себе путь к случайным багам. Шило на мыло, как по мне.

Я же указываю val (ну или var). Это уже не случайно. Про то, что можно во внутреннем цикле случайно перекрыть имя, не спорю, это, конечно, минус. Может быть стоило бы сделать синтаксис вроде shadowing val или что-то в этом роде. Или val!! :)

Legioner ★★★★★ ()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от rust_afari

А как в нем вернуть окно с введением своих названий Activity и Layout? А то проект загружается все время с названиями по умолчанию. Как теперь менять названия, только в коде?

anonymous ()
Ответ на: комментарий от anonymous

А как в нем вернуть окно с введением своих названий Activity и Layout? А то проект загружается все время с названиями по умолчанию. Как теперь менять названия, только в коде?

тебе стоит немного подумать, там все просто и шикарно

rust_afari ()
Ответ на: комментарий от rust_afari

Да уже думал и ничего не придумал, иначе бы не спрашивал.) Я только начал учить Android, уже все настройки перекопал в студии, кроме как вручную переименовывать, ничего не нашел.

anonymous ()
Ответ на: комментарий от Jefail

я 4-ый год в коммерческой разработке

ВОТЭТОДА!

Дожились млин, скоро сюда будут приходить 19-тилетние JS сеньоры и говорить «Да я уже 5 дней на Реакте программирую и по личному опыту заверяю...»

Alve ★★★★★ ()
Ответ на: комментарий от Alve

Нынче в объявлениях «требуется синиор девелопер... опыт от 3-х лет», а тут целых 4 года(!), он уже может мизинцем двери вышибать и на посылать HR-ов в известном направлении. Так что все в порядке.

anonymous ()