LINUX.ORG.RU

Переключается ли Android на Kotlin?

 , ,


0

3

Разумно ли сейчас писать Android-приложение на Java? Все ли API доступны для Java или что-то уже Kotlin-only? Можно ли считать, что Java уже legacy на Android и никакого смысла писать на Java при наличии выбора не осталось?

Читаю статью Android’s commitment to Kotlin и складывается именно такое впечатление. Но, возможно, я не правильно понимаю словосочетание Kotlin-first. Т.е. он first наряду с Java или Java уже second?

★★★★★

Ответ на: комментарий от MaxPower

Забей, можешь считать моими тараканами, откровений у меня нет. Тут дело не в том, что Java лучше Kotlin, а в том, что Java мне больше нравится, когда все библиотеки написаны на Java изначально. Как пример - нередко бывает, что функция формально возвращает nullable результат, но по факту я знаю, что он не null в этой ситуации. В Java я буду писать нормальный код, в Kotlin будет !!, который будет резать глаза.

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

в этой ситуации

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

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

Жопбреинс хотели уйти от других ситуаций, когда там оказывался нулл и всё врзывалось нафиг.

А пришли к ситуации, когда надо уговаривать компилятор скомпилировать правильный код. Не, я понимаю, что это издержки статической системы типов, но мне от этого не легче.

если хочешь поддерживать старые версии - это Java 6 со всеми вытекающими.

Студия умеет компилировать Java 8 в старый байткод. Хотя мне и 6 жавы за глаза хватает.

Legioner ★★★★★ ()

О, ребят, сорян за оффтоп, но у меня небольшой вопрос.

Я не программист, я разработчик железяк. Знаю С, немного кресты, питоном балуюсь, в лазарусе для души играюсь. Захотелось для андроида какую-нибудь примитивщину типа своего файлового менеджера написать. А я вообще про андроид толком ничего не знаю, разве что обрывками что-то слышал. Такому нубу как я что посоветуете глянуть? Что почитать? На чем писать? Котлин осваивать?

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

Не люблю заметать ошибки под ковёр.

Если апи, которое ты используешь, может вернуть null, то ты просто обязан проверить результат на null и дальше что то с этим сделать. Это не заметание ошибок под ковер.

например ты можешь сделать так:

val result = someObject?.doOne?.doSomething() ?: throw MyError('bla bla bla')
result.doSomething() // тут уже не будет проверок на null, т.к. 100% результат не null иначе мы до сюда бы не дошли

Другое дело если апи не декларирует результат как nullable (что в java, что в kotlin), а null все же возвращает, то это конечно же баг. ?. тебе позволяет просто удобно проверить на null и если не null, то что либо сделать, что там тебе надо.

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

Если апи, которое ты используешь, может вернуть null, то ты просто обязан проверить результат на null и дальше что то с этим сделать. Это не заметание ошибок под ковер.

Если я знаю, что в данной ситуации оно не может вернуть null, то не обязан. Любая проверка тут будет мёртвым кодом, который никогда не выполнится и никому не нужен (кроме компилятора).

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

Конечно тебе в kotlin. Если не знаешь с чего начать - big nerd ranch guide, а оттуда в более специфичные вещи. В качестве «файлового менеджера», для «подглядеть как другие делают» - https://github.com/SimpleMobileTools В отличии от сухих гуглотуториалов написанных индусами - в разработке учавствуют ребята которые пишут под андроид серьёзно и много.

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

SimpleMobileTools

Да вот с них как раз и зародилась такая мысль.

Конечно тебе в kotlin

big nerd ranch guide

nerd

Ок, чую та еще развлекуха меня ждет)

Спасибо за ответы всем. Еще раз сорян за оффтоп :)

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

Большинство новых фич и саппорт теперь Kotlin-First

А если новые фичи не нужны, зато нужна поддержка старых ведроидов? А в идеале не только ведроидов, но и Java SE, а то и Java ME, с единой кодовой базой.

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

Я уж думал, все это знают, что Java своё отжила…

Что-то мне это напоминает?! Что-то подобное говорили про c/c++ лет 15 назад, а воз и ныне там. Старушка Java ещё нас переживёт.

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

Большинство новых фич и саппорт теперь Kotlin-First

Каких фич? API? так нет, они к языку не относятся. Фич языка котлин? ну так ява тогда тут вообще не причем. Кто-то вон вообще на скала пишет под андроид. причем кровавый интерпрайз.

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

Да готовые проекты-то собирали и допиливали. Вопрос скорее в том, как это бутстрапнуть. С шаблонами проектов, в отличие от прочих языков, как-то плохо, или плохо искали? ;)

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

Ну можно один раз в студии создать и потом копировать. А так почитай тут: https://stackoverflow.com/questions/20801042/how-to-create-android-project-with-gradle-from-command-line вроде более правильный подход но я сам не пробовал.

Legioner ★★★★★ ()