Все потоки
Поиск
Написать публикацию
Обновить
51.68

Kotlin *

Статически типизированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

LibGDX + Scene2d (программируем на Kotlin). Часть 2

Время на прочтение9 мин
Количество просмотров8.6K
Всем привет. Сегодня я расскажу об атласе текстур, шкурках, пройдемся еще раз по работе с версткой. Далее интернационализация и в заключение пара тонкостей по работе с цветом. И в следующем уроке перейдем к модели игры и связыванию игровой логики и элементов UI.

Предыдущие части


Атлас текстур


Одним из важнейших параметров «комфортности» приложения является время загрузки. Узким звеном в этом плане является считывание с накопителя. Если мы используем везде вот такие конструкции
Image(Texture("backgrounds/main-screen-background.png"))
то мы создаем избыточную задержки. В данном случае текстура «backgrounds/main-screen-background.png» будет считана с накопителя в синхронном режиме. Это не всегда является злом. Как правило загрузка одной фоновой картинки не портит впечатления от работы с программой. Но если мы будет каждый элемент нашей сцены считывать таким образом, скорость и плавность приложения могут серьезно просесть.
Читать дальше →

LibGDX + Scene2d (программируем на Kotlin). Часть 1

Время на прочтение6 мин
Количество просмотров8.2K
И снова здравствуйте. По результатам прошлой публикации, я пришел к выводу что опять совершаю ошибки. Высокие темп публикации неудобен ни мне, ни вам. И попробую еще подсократить теорию, но приводить больше примеров кода.

Небольшое лирическое отступление. LibGDX в значительной части представляет из себя простую обертку над OpenGL. Просто работа с текстурами. Все что мы делаем — это указываем порядок и способ отрисовки текстур. Базовый инструмент для рисования текстур — Drawable.
Читать дальше →

Чему я научился, конвертируя проект в Kotlin при помощи Android Studio

Время на прочтение9 мин
Количество просмотров12K
К большой моей радости, мне наконец выдалась возможность поработать с популярным языком Kotlin — конвертировать простенькое приложение из Java при помощи инструмента Convert Java File to Kotlin из Android Studio. Я опробовал язык и хотел бы рассказать о своем опыте.

Я быстро убедился, что этот инструмент конвертирует большую часть классов в Java практически безукоризненно. Но кое-где пришлось подчистить за ним код, и в процессе я выучил несколько новых ключевых слов!

Ниже я поделюсь своими наблюдениями. Прежде, чем мы начнем, замечу: если вы в какой-то момент захотите взглянуть, что происходит «под капотом», Android Studio позволяет отслеживать все процессы; просто перейдите в панели по следующему пути: Tools → Kotlin → Show Kotlin Bytecode.

Читать дальше →

Зачем мне твои неизменяемые коллекции? Они же медленные

Время на прочтение5 мин
Количество просмотров13K
Бывает так, что когда человек начинает писать на Kotlin, Scala или %language_name%, он делает манипуляции с коллекциями так, как привык, как “удобно”, как “понятнее” или даже “как быстрее”. При этом, разумеется, используются циклы и изменяемые коллекции вместо функций высшего порядка (таких как filter, map, fold и др.) и неизменяемых коллекций.

Эта статья — попытка убедить ортодоксов, что использование “этой вашей функциональщины” не влияет существенно на производительность. В качестве примеров использованы куски кода на Java, Scala и Kotlin, а для измерения скорости был выбран фреймворк для микробенчмаркинга JMH.

image
Читать дальше →

LibGDX + Scene2d (программируем на Kotlin). Часть 0

Время на прочтение9 мин
Количество просмотров19K
И снова всем привет! Спешу поделиться, у меня были отличные выходные! Полтора дня я обдумывал вариант подачи материала, пилил макет и вообще всячески старался сделать хорошо. Что такое хорошо в контексте обучающего материала? На мой взгляд это «интересность», краткость, корректность и наглядность. Для меня лично написать такую статью — это подвиг. А вот серию статей — просто емкая и ответственная задача. Изучать Scene2d мы будем в процессе написания игры с нуля! Процесс нашего творчества растянется на долгие десять-двенадцать дней. Мне хочется верить что периодичность материалов будет примерно раз в день. Для меня лично это очень амбициозная задача, ведь требуется не столько запрограммировать, но и описать в статьях с детальным разбором. Я не сторонник бросаться в бушующий океан, в надежде научиться плавать. Мы прыгнем у лужу и будем последовательно ее углублять и расширять. Итак начинаем.
Читать дальше →

Kotlin и стоимость разработки игры (+ немного оффтопика)

Время на прочтение8 мин
Количество просмотров26K
Добрый день. Сегодня я хочу рассказать о разработке игры с использованием языка программирования Kotlin. Также приведу небольшой пример работы с RxJava в конце статьи.

Первый commit для этой игры случился 4 июня сего года, то есть до открытой беты я дошёл примерно за 3 с половиной 4 недели. Нельзя сказать что это первая игра или программа под Android которую я разрабатываю, но и опытным разработчикам под Андроид я также не являюсь. Мой предыдущий опыт в основном составляла Enterprise разработка.

Я хочу обозначить несколько тем в этой статье и пробежаться по ним коротенечко. Тему Kotlin’a постараюсь раскрыть подробно, по остальным возможны дополнительные статьи если будет такой запрос от вас (ну и плюс уточняющие вопросы в комментариях помогут улучшить подачу материала). Итак к списку: это сравнение стоимости разработка на Kotlin vs Java, где брать графику для вашей игры. Немного про деньги (пока про затраты, т.к. статистики по доходам пока нет). Также я считаю очень важно коснуться мотивировочной части. Начнем пожалуй с конца.
Читать дальше →

Рассмотрим Kotlin повнимательнее

Время на прочтение11 мин
Количество просмотров29K

image


https://trends.google.com/trends/explore?q=%2Fm%2F0_lcrx4


Выше приведён скриншот Google Trends, когда я искал по слову «kotlin». Внезапный всплеск — это когда Google объявила, что Kotlin становится главным языком в Android. Произошло это на конференции Google I/O несколько недель назад. На сегодняшний день вы либо уже использовали этот язык раньше, либо заинтересовались им, потому что все вокруг вдруг начали о нём говорить.

Читать дальше →

Послевкусие от Kotlin, часть 1

Время на прочтение5 мин
Количество просмотров33K
Написано довольно много статей о Kotlin, но об его использовании в реальных проектах – единицы. В особенности, Kotlin часто хвалят, поэтому я буду говорить о проблемах.

Сразу оговорюсь: я ничуть не жалею об использовании Kotlin и всем его рекомендую. Однако хочется предупредить о некоторых подводных камнях.


Читать дальше →

Почему стоит полностью переходить на Ceylon или Kotlin (часть 2)

Время на прочтение10 мин
Количество просмотров9.4K

Продолжаем рассказ о языке цейлон. В первой части статьи Сeylon выступал как гость на поле Kotlin. То есть брались сильные стороны и пытались их сравнить с Ceylon.


В этой части Ceylon выступит как хозяин, и перечислим те вещи, которые близки к уникальным и которые являются сильными сторонами Ceylon.


Поехали:

Читать дальше →

Почему стоит полностью переходить на Ceylon или Kotlin (часть 1)

Время на прочтение8 мин
Количество просмотров25K

В последнее время активную популярность набирает Kotlin. А что если попробовать выбрать более экзотические языки, и применить к ним те же аргументы? Статья написана по мотивам этой, практически повторяя все аргументы за Kotlin. Основная задача: показать, что Ceylon может практически тоже самое, что и Kotlin, применительно к Java. Но кроме этого у Ceylon есть кое-что еще, что будет описано в следующей статье.


Хочу рассказать о новом языке программирования, который называется Ceylon, и объяснить, почему вам стоит использовать его в своём следующем проекте. Раньше я писал на Java (много и долго, более 10 лет, начиная с Java 1.4 и заканчивая Java 8), и Java мне нравилась. Затем на меня большое впечатление произвела Scala, в результате чего Java как язык стал любить несколько меньше. Но судьба свела меня с языком Сeylon, и в последние полтора года мы пишем на Ceylon везде, где только можно. В реальных коммерческих проектах, правда внутренних. И в данный момент я не представляю себе ситуации, в которой лучше было бы выбрать Java, я не рассматриваю Java как язык, на котором стоит начинать новые проекты.


Ceylon разработан в Red Hat, автор языка — Gavin King, известный по такому фреймворку как Hibernate. Он создавался людьми, которые хорошо понимают недостатки Java, основная цель заключалась в решении сугубо прикладных задач, обеспечение максимально легкой читаемости кода, избегание любых неоднозначностей и подводных камней, во главу всего стала предсказуемость и структурная красота языка. Также большое внимание уделялось приемлемому времени компиляции. В настоящее время версия языка 1.3.2, непосредственно я познакомился с языком, когда вышла версия 1.2.0.


Хотя Ceylon компилируется в JavaScript, я сконцентрируюсь на его первичной среде — JVM.


Итак, несколько причин, почему вам следует полностью переходить на Ceylon (порядок совпадает с одноименными пунктами соответствующей Kotlin статьи):

Читать дальше →

Kotlin, компиляция в байткод и производительность (часть 2)

Время на прочтение11 мин
Количество просмотров26K


Это продолжение публикации. Первую часть можно посмотреть тут

Содержание:


Циклы
When
Делегаты
Object и companion object
lateinit свойства
coroutines
Выводы
Читать дальше →

Kotlin, компиляция в байткод и производительность (часть 1)

Время на прочтение12 мин
Количество просмотров36K


О Kotlin последнее время уже очень много сказано (особенно в совокупности с последними новостями c Google IO 17), но в то же время не очень много такой нужной информации, во что же компилируется Kotlin.
Давайте подробнее рассмотрим на примере компиляции в байткод JVM.

Это первая часть публикации. Вторую можно посмотреть тут

Процесс компиляции это довольно обширная тема и чтобы лучше раскрыть все ее нюансы я взял большую часть примеров компиляции из выступления Дмитрия Жемерова: Caught in the Act: Kotlin Bytecode Generation and Runtime Performance. Из этого же выступления взяты все бенчмарки. Помимо ознакомления с публикацией, настоятельно рекомендую вам еще и посмотреть его выступление. Некоторые вещи там рассказаны более подробно. Я же больше внимания акцентирую именно на компиляции языка.

Содержание:


Функции на уровне файла
Primary конструкторы
data классы
Свойства в теле класса
Not-null типы в публичных и приватных методах
Функции расширения (extension functions)
Тела методов в интерфейсах
Аргументы по умолчанию
Лямбды

Но прежде чем рассмотрим основные конструкции языка и то, в какой байткод они компилируются, нужно упомянуть о том, как непосредственно происходит сама компиляция языка:
Читать дальше →

Kotlin и Swift. Новая эпоха в мобильной разработке?

Время на прочтение4 мин
Количество просмотров29K

Этот пост является вольным переводом статьи Kotlin and Swift. Is it a whole new era in Mobile Development? by Andrew Cherkashyn


Когда в Google объявили о том, что они теперь официально будут использовать Kotlin для разработки под Android, я, как и многие другие Android-разработчики, вздохнул с облегчением. Я еще раз зашел на официальный сайт Kotlin, чтобы перепроверить функционал/синтаксис и сравнить его с последней версией Swift, на котором сейчас пишу, и вдруг ощутил это: проходит одна эпоха и начинается новая, по крайней мере в мобильной разработке...


Читать дальше →

Ближайшие события

Почему следует полностью переходить на Kotlin

Время на прочтение6 мин
Количество просмотров95K


Хочу рассказать вам о новом языке программирования, который называется Kotlin, и объяснить, почему вам стоит использовать его в своём следующем проекте. Раньше я предпочитал Java, но в последний год пишу на Kotlin везде, где только можно. И в данный момент я не представляю себе ситуации, в которой лучше было бы выбрать Java.


Kotlin разработан в JetBrains, и участие тех же людей в создании наборов IDE, таких как IntelliJ и ReSharper, хорошо заметно по самому языку. Он прагматичен и краток, благодаря чему написание кода превращается в приятный и эффективный процесс.


Хотя Kotlin компилируется в JavaScript и скоро будет компилироваться в машинный код, я сконцентрируюсь на его первичной среде — JVM.


Итак, несколько причин, почему вам следует полностью переходить на Kotlin (порядок случаен):

Читать дальше →

Kotlin vs. Java: скорость компиляции

Время на прочтение5 мин
Количество просмотров37K


Как уже знают все Android-разработчики, Google недавно объявила об официальной поддержке Kotlin в Android. Многие риски, связанные с использованием этого замечательного языка в Android-проектах, сняты. Но актуальным, особенно для очень крупных проектов, каким является Badoo, остаётся вопрос о скорости сборки. Я был рад обнаружить, что в сети уже есть исследования на эту тему, и переводом одного из них хочу поделиться.


Итак, если вы переводите приложение с Java на Kotlin, будет ли оно компилироваться дольше?

Читать дальше →

Kotlin для Android: Теперь официально

Время на прочтение4 мин
Количество просмотров36K
Вчера на конференции Google I/O 2017 команда Android объявила об официальной поддержке языка Kotlin для разработки Android-приложений. Это огромный шаг вперед для Kotlin, и отличная новость для всего сообщества Android-разработчиков.

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

Плагин для поддержки Kotlin теперь входит в поставку Android Studio 3.0, так что разработчикам не нужно ставить дополнительные плагины или беспокоиться о совместимости. JetBrains и Google также берут на себя обязательство поддерживать разработку на Kotlin и в будущем, по мере развития Android-платформы.

При этом другие платформы, которые поддерживают Kotlin (Kotlin/JVM для разработки серверных и десктопных приложений, Kotlin/JS для браузера и Kotlin/Nativе для нативной разработки) остаются не менее важными для JetBrains. Наше видение заключается в том, чтобы создать единый инструмент, позволяющий разрабатывать все компоненты современного приложения на одном и том же языке, независимо от того, на какой платформе эти компоненты запускаются. Это включает в себя и full-stack веб-приложения, и мобильные клиенты под Android и iOS, и встраиваемые платформы IoT, и другое.
Читать дальше →

Kotlin — официальный язык разработки под Android. Разбираемся в тонкостях языка на Stepik

Время на прочтение1 мин
Количество просмотров30K
Вчера на ежегодной конференции Google I/O, проходящей в Сан-Франциско, Гугл объявил Kotlin официальным языком программирования для платформы Android.

Изучить Kotlin можно уже сегодня, на Stepik, совершенно бесплатно.


Немного про Kotlin и онлайн-курсы

Идиоматичный Kotlin, набор хороших практик

Время на прочтение9 мин
Количество просмотров27K


Чтобы полностью раскрыть все преимущества Kotlin, пересмотрим некоторые подходы, которые мы используем в Java. Многие из них могут быть заменены на лучшие аналоги из Kotlin. Давайте посмотрим на то, как мы можем написать идиоматичный код на Kotlin.
Читать дальше →

Приглашаем на Android Devs Meetup 26 апреля

Время на прочтение2 мин
Количество просмотров2.6K


Приглашаем Android-разработчиков на шестой Android Devs Meetup, который состоится в московском офисе Mail.Ru Group. Мы обсудим фичи мобильной разработки для Android от разработчиков Одноклассников, а также интересные особенности языка программирования, который сейчас интересует многих разработчиков — Kotlin — на примерах из практики JetBrains, Splyt и Avito. В программе встречи четыре доклада, подробности читайте под катом.
Читать дальше →

Kotlin + Rx2: Реактивный и функциональный подход к разработке мобильных приложений

Время на прочтение8 мин
Количество просмотров11K
Количество технологий, библиотек увеличивается с каждым днем, и зачастую можно потеряться в выборе стека технологий и архитектуры для старта или развития вашего мобильного проекта. Минимизировать риски однозначно можно, один из вариантов — это прислушаться к мнению специалистов по Android-разработке.



Именно поэтому мы обратились к Денису nekdenis Неклюдову (Android GDE) и Степану stepango Гончарову, Android-разработчикам в 90Seconds.com. В интервью будут затронуты несколько важных тем, от архитектуры мобильного приложения  до применения библиотек Rx в проектах. Итак, начнем…

Читать дальше →