Как стать автором
Поиск
Написать публикацию
Обновить
59.29

Kotlin *

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

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

Мои любимые примеры функционального программирования в языке Kotlin

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

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


Мои любимые примеры функционального программирования в языке Kotlin

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

Kotlin performance on Android

Время на прочтение20 мин
Количество просмотров13K
Поговорим сегодня о производительности Kotlin на Android в production. Посмотрим под капот, реализуем хитрые оптимизаци, сравним байт-код. Наконец, серьезно подойдем к сравнению и замерим бенчмарки.

Эта статья основана на докладе Александра Смирнова на AppsConf 2017 и поможет разобраться, можно ли написать код на Kotlin, который не будет уступать Java по скорости.


О спикере: Александр Смирнов CTO в компании PapaJobs, ведет видеоблог «Android в лицах», а также является одним из организаторов сообщества Mosdroid.

Распознавание объектов и человеческих эмоций с использованием Firebase ML Kit

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

Распознавание объектов и человеческих эмоций с использованием Firebase ML Kit


Если вы следили за Google I/O (или хотя бы посмотрели Keynotes), то вы, возможно, заметили анонс нового продукта в составе платформы Firebase под названием ML Kit.


ML Kit предоставляет API, при помощи которого вы сможете добавлять в приложения (как Android, так и iOS) мощные функции машинного обучения независимо от того, являетесь ли вы опытным разработчиком машинного обучения или всего лишь новичком в этой сфере.

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

История тестирования проекта «К»: Kotlin&Spek

Время на прочтение11 мин
Количество просмотров4.7K
Привет, Хабр!

В этой статье мы поговорим об автоматическом тестировании на одном из многочисленных проектов QIWI, получившим кодовое название «К».



Когда мы организовывали тестирование это проекта, то решили выбрать практичный и хайповый Kotlin, а также Spek, гласящий «Вы называете их тестами, мы называем их спецификациями» (You call them tests, we call them specifications). Возможно, такой подход подойдет и вам, если вы столкнетесь с похожими задачами.

Почему Kotlin, а не что-то еще? Kotlin был выбран разработкой, поэкспериментировать, так как конкретно этот продукт не был критичным, и можно было вживую потренироваться на нём, не опасаясь, что будут проблемы.

Официальная документация говорит нам, что «Spek написан на Kotlin, и спецификации, которые вы пишете, будут написаны на Kotlin» – это очень ясно отвечает на вопрос: «Зачем это нужно?».

Итак…

Что это и зачем это нужно?

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

KDispatcher — легкий и удобный eventbus для повседневного использования

Время на прочтение3 мин
Количество просмотров5.8K
Здравствуйте, уважаемые коллеги, любители Kotlin

В своей первой статье я хочу рассказать вам об одной полезной библиотеке, которую я написал, исключительно на Kotlin, и активно поддерживаю и развиваю. Называется она, — KDispatcher. Предназначена для рассылки и подписки на уведомления между вашими компонентами кода. Вы можете использовать его в любом kotlin-проекте, будь то Android, Frontend, Backend или KotlinNative.

Основные преимущества:

  • Быстрая и простая подписка на события
  • Приоритетность вызовов функций-слушателей (callbacks)
  • Использование kotlin extension functions
  • Потоко-безопасность
Читать дальше →

Анимации в Android на базе Kotlin и RxJava

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


Привет, Хабр! В прошлом году на MBLT DEV выступал Ivan Škorić из PSPDFKit c докладом о создании анимаций в Android на базе Kotlin и библиотеки RxJava.

Приёмы из доклада я сейчас использую в работе над своим проектом, они здорово помогают. Под катом — расшифровка доклада и видеозапись, теперь этими приёмами можете воспользоваться и вы.

Kotlin: две ложки дегтя в бочке меда

Время на прочтение6 мин
Количество просмотров14K
Появление Kotlin – это важный бонус для разработчиков. Высокоуровневый язык, бесшовно интегрирующийся с Java, значительно расширяет возможности программистов. Однако в любом языке мы постоянно сталкиваемся с некоторыми неприятностями, которые, напротив, создают ограничения, и Kotlin, конечно, не стал исключением. О них мы и поговорим сегодня.


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

Новости конференции MBLT DEV 2018: Android-трек

Время на прочтение2 мин
Количество просмотров1.4K
Привет, Хабр! Я — Михаил Баранников, Android Team Lead в e-Legion и участник Программного комитета MBLT DEV 2018. Пока вы наслаждаетесь отпуском или наличием кондиционера в офисе, мы отбираем доклады предстоящей конференции.

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


Kotlin DSL: Теория и Практика

Время на прочтение21 мин
Количество просмотров16K
Разработка тестов приложения — не самое приятное занятие. Этот процесс занимает долгое время, требует большой концентрации и при этом крайне востребован. Язык Kotlin дает набор инструментов, который позволяет довольно легко построить собственный проблемно-ориентированный язык (DSL). Есть опыт, когда Kotlin DSL заменил билдеры и статические методы для тестирования модуля планирования ресурсов, что превратило добавление новых тестов и поддержку старых из рутины в увлекательный процесс.

По ходу статьи мы разберем все основные инструменты из арсенала разработчика и то, как их можно комбинировать для решения задач тестирования. Мы с вами проделаем путь от проектирования Идеального Теста до запуска максимально приближенного, чистого и понятного теста для системы планирования ресурсов на основе Kotlin.

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



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

Расширение PHP и Kotlin Native. Часть вторая, осознанная

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

Краткое содержание первой части:


  1. Установка и настройка инструментария.
  2. Написание функции helloWorld() на Kotlin Native и компиляция ее в shared library.
  3. Доступ к этой функции из C-кода расширения PHP.


В этой статье я буду рассказывать про создание инструментария для написания расширения PHP без необходимости трогать Си, исключительно на K/N.

Кому интересно — добро пожаловать под кат.
Кому читать не интересно, а просто хочется посмотреть — добро пожаловать на github
Читать дальше →

Расширение PHP и Kotlin Native. Часть первая, наивная

Время на прочтение5 мин
Количество просмотров5.9K
В этой статье рассматривается самый наивный и простой подход к созданию расширения PHP с использованием Kotlin Native. Обращаю внимание, что не на, а с использованием.

Это скорее некий туториал с описанием возникших при скрещивании ужа с ежом проблем и путей их решения. Откровений не будет, но возможно кому-то и пригодится.

Итак, если интересно, то добро пожаловать под кат.
Читать дальше →

Руководство по фоновой работе в Android. Часть 5: Корутины в Котлине

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

Остров Котлин

Предыдущие тексты этой серии: про AsyncTask, про Loaders, про Executors и EventBus, про RxJava.

Итак, этот час настал. Это статья, ради которой была написана вся серия: объяснение, как новый подход работает «под капотом». Если вы пока не знаете и того, как им пользоваться, вот для начала полезные ссылки:


А освоившись с корутинами, вы можете задаться вопросом, что позволило Kotlin предоставить эту возможность и как она работает. Прошу заметить, что здесь речь пойдёт только о стадии компиляции: про исполнение можно написать отдельную статью.
Читать дальше →

ActionViews или как я не люблю boilerplate с самого детства

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

Привет, Хабр! В данной статье я хочу поделиться опытом создания своего механизма для автоматизации показа различных View типа: ContentView, LoadingView, NoInternetView, EmptyContentView, ErrorView.


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

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

Упарываемся по максимуму: от ORM до анализа байткода

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

Как известно, настоящий программист в своей жизни должен сделать 3 вещи: создать свой язык программирования, написать свою операционную систему и сделать свой ORM. И если язык я написал уже давно (возможно, расскажу как-нибудь в другой раз), а ОС еще ждет впереди, то про ORM я хочу поведать прямо сейчас. А если точнее, то даже не про сам ORM, а про реализацию одной маленькой, локальной и, как изначально казалось, совсем простой фичи.


Мы с вами вместе пройдем весь путь от радости нахождения простого решения до горечи осознания его хрупкости и некорректности. От использования исключительно публичного API до грязных хаков. От "почти без рефлекшена", до "по колено в интерпретаторе байт-кода".


Кому интересно как анализировать байт-код, какие сложности это в себе таит и какой потрясающий результат можно получить в итоге, добро пожаловать под кат.

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

Типобезопасный SQL на Kotlin

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

Экспрессивность — интересное свойство языков программирования. С помощью простого комбинирования выражений можно добиться впечатляющих результатов. Некоторые языки осмысленно отвергают идеи выразительности, но Kotlin точно не является таким языком.


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


vs


Ссылка на GitHub для нетерпеливых


Нашей целью будет помочь программисту отловить определенное подмножество ошибок на этапе компиляции. Kotlin, являясь строготипизованным языком, поможет нам уйти от невалидных выражений в структуре SQL запроса. Как бонус, мы получим еще защиту от опечаток и помощь от IDE в написании запросов. Исправить недостатки SQL полностью не получится, но устранить некоторые проблемные места вполне возможно.


Данная статья расскажет про библиотеку на Kotlin, которая позволяет писать SQL запросы в синтаксисе Kotlin. Также, мы немного посмотрим на внутренности библиотеки, чтобы понять как это работает.

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

Joker 2018: Клуб неанонимных Java-разработчиков

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

Чем Joker хорош как явление? По сути, это единственное место, куда можно прийти и поговорить за джаву.


И при этом Joker – праздник. Это не то место, где кучка старпёров нудит, какая Java тормозная, какой Hibernate костыльный, почему что-то там не компилируется и так далее — если понимаешь, о чём я.


Joker — это место, где можно и поплакать в жилетку, и получить конструктивный фидбэк, и вдохновиться на новые подвиги. Это особый клуб разработчиков-энтузиастов, со своими правилами и фичами, о которых мы и поговорим в этой статье.


Скоро будет новый Joker — уже шестой по счёту. Если интересно сразу узнать дату и время проведения — смотри под кат, иначе — читай дальше.


Скрытый текст
Что: Joker — наша самая большая международная Java-конференция для опытных разработчиков;
Где: Санкт-Петербург, Экспофорум;
Когда: 19-20 октября 2018.

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

Митап JavaJam. Спор о джавистах, сплав на брёвнах, эксперименты и микросервисы

Время на прочтение4 мин
Количество просмотров6.3K
Java-разработчики классные.

Фронтендеры их хвалят и перенимают полезные инструменты, дизайнеры с особой любовью приносят макеты, а тестировщики ликуют, потому что все автоматизировано и жизнь — сахар (но об этом мы пока не рассказывали).

Иногда мы проводим для них java-митапы — собираем экспертов и просим их рассказать что-нибудь позабористей. Так и в этот раз — коллеги из Сбербанка, Одноклассников, Яндекса и Яндекс.Денег пришли на JavaJam и выложили сразу кучу подробностей о своей работе.

image

Под катом:

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

А еще там опрос о том, уместно ли называть java-разработчиков джавистами.

Приглашаем на Java Meetup в Райффайзенбанк UPD Трансляция

Время на прочтение1 мин
Количество просмотров4.9K
Внутреннее сообщество Java-разработчиков Райффайзенбанка приглашает на свой первый открытый митап, который пройдет на площадке московского офиса в Нагатино, 28 июня.


Backend stories MeetUp

Время на прочтение1 мин
Количество просмотров3.2K
Привет, Хабр!

Мы решили собрать очередную встречу разработчиков, на этот раз поговорим о backend.

Когда: 21 июня, четверг, с 19:00.
Где: Москва, ул. Большая Полянка, д.2/10, стр. 1 (Corporate Innovations Hub).



Регистрация на событие открыта, подробности – под катом.
Читать дальше →

Кодогенерация в Uber

Время на прочтение14 мин
Количество просмотров12K
Каждый из нас делает рутинную работу. Каждый пишет boilerplate код. Зачем? Не лучше ли автоматизировать данный процесс и работать только над интересными задачами? Читай эту статью, если хочешь, чтобы такую работу за тебя делал комп.

image

Данная статья написана на основе расшифровки доклада Зака Свирса (Zack Sweers), разработчика мобильных приложений Uber, с которым он выступил на конференции MBLT DEV в 2017 году.