Одной из замечательных особенностей Kotlin является то, что он поддерживает функциональное программирование. Давайте посмотрим и обсудим некоторые простые, но выразительные функции, написанные на языке Kotlin.

Kotlin *
Статически типизированный язык программирования
Kotlin performance on Android
Эта статья основана на докладе Александра Смирнова на AppsConf 2017 и поможет разобраться, можно ли написать код на Kotlin, который не будет уступать Java по скорости.
О спикере: Александр Смирнов CTO в компании PapaJobs, ведет видеоблог «Android в лицах», а также является одним из организаторов сообщества Mosdroid.
Распознавание объектов и человеческих эмоций с использованием Firebase ML Kit
Если вы следили за Google I/O (или хотя бы посмотрели Keynotes), то вы, возможно, заметили анонс нового продукта в составе платформы Firebase под названием ML Kit.
ML Kit предоставляет API, при помощи которого вы сможете добавлять в приложения (как Android, так и iOS) мощные функции машинного обучения независимо от того, являетесь ли вы опытным разработчиком машинного обучения или всего лишь новичком в этой сфере.
История тестирования проекта «К»: Kotlin&Spek
В этой статье мы поговорим об автоматическом тестировании на одном из многочисленных проектов QIWI, получившим кодовое название «К».

Когда мы организовывали тестирование это проекта, то решили выбрать практичный и хайповый Kotlin, а также Spek, гласящий «Вы называете их тестами, мы называем их спецификациями» (You call them tests, we call them specifications). Возможно, такой подход подойдет и вам, если вы столкнетесь с похожими задачами.
Почему Kotlin, а не что-то еще? Kotlin был выбран разработкой, поэкспериментировать, так как конкретно этот продукт не был критичным, и можно было вживую потренироваться на нём, не опасаясь, что будут проблемы.
Официальная документация говорит нам, что «Spek написан на Kotlin, и спецификации, которые вы пишете, будут написаны на Kotlin» – это очень ясно отвечает на вопрос: «Зачем это нужно?».
Итак…
Что это и зачем это нужно?
KDispatcher — легкий и удобный eventbus для повседневного использования
В своей первой статье я хочу рассказать вам об одной полезной библиотеке, которую я написал, исключительно на Kotlin, и активно поддерживаю и развиваю. Называется она, — KDispatcher. Предназначена для рассылки и подписки на уведомления между вашими компонентами кода. Вы можете использовать его в любом kotlin-проекте, будь то Android, Frontend, Backend или KotlinNative.
Основные преимущества:
- Быстрая и простая подписка на события
- Приоритетность вызовов функций-слушателей (callbacks)
- Использование kotlin extension functions
- Потоко-безопасность
Анимации в Android на базе Kotlin и RxJava

Привет, Хабр! В прошлом году на MBLT DEV выступал Ivan Škorić из PSPDFKit c докладом о создании анимаций в Android на базе Kotlin и библиотеки RxJava.
Приёмы из доклада я сейчас использую в работе над своим проектом, они здорово помогают. Под катом — расшифровка доклада и видеозапись, теперь этими приёмами можете воспользоваться и вы.
Kotlin: две ложки дегтя в бочке меда

Новости конференции MBLT DEV 2018: Android-трек
Под катом расскажу о крутых спикерах, которые уже подтвердили участие, и поделюсь лучшим, на мой взгляд, докладом прошлого года.

Kotlin DSL: Теория и Практика
По ходу статьи мы разберем все основные инструменты из арсенала разработчика и то, как их можно комбинировать для решения задач тестирования. Мы с вами проделаем путь от проектирования Идеального Теста до запуска максимально приближенного, чистого и понятного теста для системы планирования ресурсов на основе Kotlin.
Статья будет полезна практикующим инженерам, тем, кто рассматривает Kotlin как язык для комфортного написания компактных тестов, и тем, кто хочет улучшить процесс тестирования в своем проекте.
Статья основана на докладе Ивана Осипова (i_osipov) на конференции JPoint. Дальнейшее повествование ведется от его лица. Иван работает программистом в компании Haulmont. Основной продукт компании – CUBA, платформа для разработки энтерпрайза и различных веб-приложений. В том числе на этой платформе делаются и аутсорсинговые проекты, среди которых недавно был проект в области образования, в котором Иван занимался построением расписания для образовательного учреждения. Так сложилось, что последние три года Иван так или иначе работает с планировщиками, и конкретно в Haulmont в течение года они этот самый планировщик тестируют.
Расширение PHP и Kotlin Native. Часть вторая, осознанная

Краткое содержание первой части:
- Установка и настройка инструментария.
- Написание функции
helloWorld()
на Kotlin Native и компиляция ее в shared library. - Доступ к этой функции из C-кода расширения PHP.
В этой статье я буду рассказывать про создание инструментария для написания расширения PHP без необходимости трогать Си, исключительно на K/N.
Кому интересно — добро пожаловать под кат.
Кому читать не интересно, а просто хочется посмотреть — добро пожаловать на github
Расширение PHP и Kotlin Native. Часть первая, наивная

Это скорее некий туториал с описанием возникших при скрещивании ужа с ежом проблем и путей их решения. Откровений не будет, но возможно кому-то и пригодится.
Итак, если интересно, то добро пожаловать под кат.
Руководство по фоновой работе в Android. Часть 5: Корутины в Котлине

Остров Котлин
Предыдущие тексты этой серии: про AsyncTask, про Loaders, про Executors и EventBus, про RxJava.
Итак, этот час настал. Это статья, ради которой была написана вся серия: объяснение, как новый подход работает «под капотом». Если вы пока не знаете и того, как им пользоваться, вот для начала полезные ссылки:
А освоившись с корутинами, вы можете задаться вопросом, что позволило Kotlin предоставить эту возможность и как она работает. Прошу заметить, что здесь речь пойдёт только о стадии компиляции: про исполнение можно написать отдельную статью.
ActionViews или как я не люблю boilerplate с самого детства
Привет, Хабр! В данной статье я хочу поделиться опытом создания своего механизма для автоматизации показа различных View типа: ContentView, LoadingView, NoInternetView, EmptyContentView, ErrorView.

Ближайшие события
Упарываемся по максимуму: от ORM до анализа байткода
Как известно, настоящий программист в своей жизни должен сделать 3 вещи: создать свой язык программирования, написать свою операционную систему и сделать свой ORM. И если язык я написал уже давно (возможно, расскажу как-нибудь в другой раз), а ОС еще ждет впереди, то про ORM я хочу поведать прямо сейчас. А если точнее, то даже не про сам ORM, а про реализацию одной маленькой, локальной и, как изначально казалось, совсем простой фичи.
Мы с вами вместе пройдем весь путь от радости нахождения простого решения до горечи осознания его хрупкости и некорректности. От использования исключительно публичного API до грязных хаков. От "почти без рефлекшена", до "по колено в интерпретаторе байт-кода".
Кому интересно как анализировать байт-код, какие сложности это в себе таит и какой потрясающий результат можно получить в итоге, добро пожаловать под кат.
Типобезопасный SQL на Kotlin
Экспрессивность — интересное свойство языков программирования. С помощью простого комбинирования выражений можно добиться впечатляющих результатов. Некоторые языки осмысленно отвергают идеи выразительности, но Kotlin точно не является таким языком.
С помощью базовых конструкций языка и небольшого количества сахара мы попытаемся воссоздать SQL в синтаксисе Kotlin настолько близко, насколько это возможно.
Ссылка на GitHub для нетерпеливых
Нашей целью будет помочь программисту отловить определенное подмножество ошибок на этапе компиляции. Kotlin, являясь строготипизованным языком, поможет нам уйти от невалидных выражений в структуре SQL запроса. Как бонус, мы получим еще защиту от опечаток и помощь от IDE в написании запросов. Исправить недостатки SQL полностью не получится, но устранить некоторые проблемные места вполне возможно.
Данная статья расскажет про библиотеку на Kotlin, которая позволяет писать SQL запросы в синтаксисе Kotlin. Также, мы немного посмотрим на внутренности библиотеки, чтобы понять как это работает.
Joker 2018: Клуб неанонимных Java-разработчиков
Чем Joker хорош как явление? По сути, это единственное место, куда можно прийти и поговорить за джаву.
И при этом Joker – праздник. Это не то место, где кучка старпёров нудит, какая Java тормозная, какой Hibernate костыльный, почему что-то там не компилируется и так далее — если понимаешь, о чём я.
Joker — это место, где можно и поплакать в жилетку, и получить конструктивный фидбэк, и вдохновиться на новые подвиги. Это особый клуб разработчиков-энтузиастов, со своими правилами и фичами, о которых мы и поговорим в этой статье.
Скоро будет новый Joker — уже шестой по счёту. Если интересно сразу узнать дату и время проведения — смотри под кат, иначе — читай дальше.
Что: Joker — наша самая большая международная Java-конференция для опытных разработчиков;
Где: Санкт-Петербург, Экспофорум;
Когда: 19-20 октября 2018.
Митап JavaJam. Спор о джавистах, сплав на брёвнах, эксперименты и микросервисы
Фронтендеры их хвалят и перенимают полезные инструменты, дизайнеры с особой любовью приносят макеты, а тестировщики ликуют, потому что все автоматизировано и жизнь — сахар (но об этом мы пока не рассказывали).
Иногда мы проводим для них java-митапы — собираем экспертов и просим их рассказать что-нибудь позабористей. Так и в этот раз — коллеги из Сбербанка, Одноклассников, Яндекса и Яндекс.Денег пришли на JavaJam и выложили сразу кучу подробностей о своей работе.

Под катом:
— Главное о логировании Java-приложений на примерах от Яндекса;
— Разработка инструмента на Low-code для UFS Сбербанка;
— Автоматизация экспериментов в Одноклассниках с помощью Kotlin DSL;
— Как в Яндекс.Деньгах сделали одну платформу для микросервисов вместо семи.
А еще там опрос о том, уместно ли называть java-разработчиков джавистами.
Приглашаем на Java Meetup в Райффайзенбанк UPD Трансляция

Backend stories MeetUp
Мы решили собрать очередную встречу разработчиков, на этот раз поговорим о backend.
Когда: 21 июня, четверг, с 19:00.
Где: Москва, ул. Большая Полянка, д.2/10, стр. 1 (Corporate Innovations Hub).

Регистрация на событие открыта, подробности – под катом.
Кодогенерация в Uber

Данная статья написана на основе расшифровки доклада Зака Свирса (Zack Sweers), разработчика мобильных приложений Uber, с которым он выступил на конференции MBLT DEV в 2017 году.
Вклад авторов
spring_aio 800.3olegchir 322.0glaschenko 258.0nerumb 250.8phillennium 247.9fillpackart 245.0dmitriizolotov 196.0moscas 168.0linreal 162.0