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

Kotlin *

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

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

Всё, кроме Kotlin: Андрей Бреслав о гендерном балансе в IT, эмоциях и не только

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


Андрей Бреслав (abreslav) известен прежде всего как человек, возглавляющий работу над языком Kotlin. Но в последнее время он стал выступать с докладами совсем о другом: весной говорил о важности эмоций при работе в IT, а в августе на TechTrain представит доклад «Это выгодно: почему нам нужно больше женщин-программисток?»

И мы взяли соответствующее интервью: не о Kotlin, а о социальном и эмоциональном. Что волнует Андрея помимо разработки языка? Бывает ли у него синдром самозванца? Чем его доклад о женщинах-программистках будет отличаться от большинства других рассуждений о гендерном перекосе в IT? Почему можешь ощущать себя плохо, когда твой проект собирается публично поддержать Google?

Название Kotlin в тексте встречается, но не в контексте «когда появится тернарный оператор», а в контексте «эмоции Андрея по Kotlin-поводам». О языках программирования есть уже очень много текстов. А вот о том, что ощущают их создатели — кажется, очень мало.
Читать дальше →

Android preferences delegate

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

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

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

Первое впечатление от Android Jetpack Compose

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

После того, как на Google IO 2019 я увидел доклад про Android Jetpack Compose, захотелось сразу же его попробовать. Тем более, что подход, реализованный в нём, очень напомнил Flutter, которым я интересовался ранее.


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

WorldSkills: Обзор от участника олимпиады

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

Привет, Хабр!

Каждый программист хочет прокачать свои навыки и каждая компания хочет видеть у себя квалифицированных специалистов, но как этого достичь? На помощь приходят олимпиады, об участии в одной из них и будет эта статья.
Читать дальше →

Реализация сопоставления с образцом в Java

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

Многие современные языки поддерживают сопоставление с образцом (pattern matching) на уровне языка. Java в данный момент не поддерживает pattern matching, но есть надежды что в будущем все может измениться.


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


Используя возможности Java 8, можно реализовать некоторые возможности pattern matching в виде библиотеки. При этом можно использовать как утверждение так и выражения.

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

Kotlin / Everywhere — Showcase practice: 31 июля

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

Приглашаем 31 июля в московский офис Mail.ru Group на Kotlin / Everywhere митап. В программе мероприятия доклады про опыт использования Coroutines, DSL в Kotlin и тестирование.

Описание докладов, ссылка на регистрацию и детали по митап под катом. Регистрируйтесь сами и приглашайте коллег!
Читать дальше →

Проблемы пакетной обработки запросов и их решения (часть 1)

Время на прочтение9 мин
Количество просмотров6.3K
Практически все современные программные продукты состоят из нескольких сервисов. Часто большое время отклика межсервисных каналов становится источником проблем с производительностью. Стандартное решение такого рода проблем — это упаковка нескольких межсервисных запросов в один пакет, которую называют пакетной обработкой (batching).

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

Meeting Room L̶i̶t̶t̶l̶e̶ Helper v 2

Время на прочтение18 мин
Количество просмотров2.9K
Данная статья подробно описывает этапы разработки мобильного приложения Meeting Room Helper: от зарождения идеи до релиза. Приложение написано на Kotlin и построено по упрощённой MVVM архитектуре, без использования data binding. Обновление UI-части происходит с помощью LiveData-объектов. Причины отказа от data binding подробно разобраны и объяснены. В архитектуре используется ряд интересных решений, позволяющих логично разбить программу на небольшие файлы, что в конечном счете упрощает поддержку кода.


Справочник по источникам событий в Rx

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


RxJava используется в большом количестве android-приложений, но при этом многие не знают других источников событий, кроме Observable и, может быть, Flowable. Они забывают о специализированных классах Single, Maybe и Completable, которые зачастую способны добавить больше ясности в код.

Под катом вас ждёт шпаргалка по источникам событий, которые существуют в RxJava.
Читать дальше →

MotionLayout: анимации лучше, кода — меньше

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

Google продолжает улучшать нашу жизнь, выпуская новые удобные библиотеки и API. Среди которых оказался и новый MotionLayout. Учитывая обилие анимаций в наших приложениях, мой коллега Cedric Holtz сразу же реализовал важнейшую анимацию нашего приложения — голосование в знакомствах — с использованием нового API, сэкономив при этом огромное количество кода. Делюсь переводом его статьи. 

Недавно закончилась конференция Google I/O 2019, на которой анонсировали обновления и самые свежие улучшения нашего любимого SDK. Лично мне особенно интересна была презентация Николаса Роарда и Джона Хофорда о будущей функциональности ConstraintLayout. А точнее, о его расширении в виде MotionLayout. 

После выпуска бета-версии мне захотелось реализовать анимацию знакомств на основе этой библиотеки.
Читать дальше →

Типичные ошибки при логгировании

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

Привет, Хабр!


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


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

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

Чего мне не хватает в Java после работы с Kotlin/Scala

Время на прочтение9 мин
Количество просмотров16K
В последнее время я часто слышу о том, что Java стала устаревшим языком, на котором сложно строить большие поддерживаемые приложения. В целом, я не согласен с этой точкой зрения. На мой взгляд, язык все еще подходит для написания быстрых и хорошо организованных приложений. Однако, признаюсь, бывает и такое, что при повседневном написании кода иногда думаешь: “как бы хорошо это решилось вот этой штукой из другого языка”. В этой статье я хотел поделиться своей болью и опытом. Мы посмотрим на некоторые проблемы Java и как они могли бы разрешиться в Kotlin/Scala. Если у вас возникает похожее чувство или вам просто интересно, что могут предложить другие языки, — прошу под кат.


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

Уменьшаем время сборки ваших Android-проектов

Время на прочтение6 мин
Количество просмотров11K
Доброе утро! Начинаем понедельник с материала, перевод которого подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс».



Недавно я переносил кодовую базу Android в Kure на AndroidX. Мне показалось, что это прекрасная возможность поработать над скоростью сборки проекта. У Gradle всегда была плохая репутация из-за медлительности и ресурсоемкости, но я был очень удивлен, что незначительные изменения в конфигурации сборки могут так значительно увеличить ее скорость.
Читать дальше →

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

Стильная, модная, молодежная разработка BPM на Camunda

Время на прочтение7 мин
Количество просмотров154K
image

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

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

2018 год принципиально изменил наш подход к разработке бизнес-процессов. Ниже — о том, как эволюционировал этот подход и как менялись мы.
Читать дальше →

Современный подход к конкурентности в Android: корутины в Kotlin

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

Напоминаем, что у нас уже открыт предзаказ на долгожданную книгу о языке Kotlin из знаменитой серии Big Nerd Ranch Guides. Сегодня мы решили предложить вашему вниманию перевод статьи, рассказывающей о корутинах Kotlin и о правильной работе с потоками в Android. Тема обсуждается очень активно, поэтому для полноты картины также рекомендуем посмотреть эту статью с Хабра и этот подробный пост из блога компании Axmor Software.
Читать дальше →

Деливерим фичи быстрее. Опыт Android-разработки в Badoo

Время на прочтение14 мин
Количество просмотров9.5K
Всем привет! Меня зовут Анатолий Варивончик. Я работаю в Badoo уже больше года, а мой общий стаж Android-разработки — более пяти лет.

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

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


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

#ITX5 соберет тусовку JAVA-разработчиков

Время на прочтение1 мин
Количество просмотров2.1K
X5 Retail Group – это не только 14 тысяч «Пятёрочек», тысяча «Перекрёстков» и «Каруселей», но еще и 1 300 айтишников, включая разработчиков на JAVA. В Х5 создано множество решений с помощью JAVA, мы готовы делиться своими кейсами и слушать партнеров.
9 июля соберёмся в офисе #itx5 именно для этого.

В программе:

18:30 – чай-кофе и печеньки
19:00 — Александр Краснощеков из X5 ответит на вопрос «Сколько нужно абстракций, чтобы запланировать машину в рейс?»
19:20 — Виталий Куценко из Otus раскроет тему «Optional. История развития и применение в разных версиях java»
19:40 — Дмитрий Латышев из Leroy Merlin поговорит про Stream Processing в общем и Kafka Stream в частности
20:00 – поболтаем за кофе и вкусностями
20:20 – Павел Филькенштейн из Lamoda расскажет, правда ли Kotlin настолько хорош, как говорят
20:50 –нетворкинг.
Читать дальше →

Не Spring Boot’ом единым: обзор альтернатив

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


В настоящее время нет недостатка во фреймворках для создания микросервисов на Java и Kotlin. В статье рассматриваются следующие:
Название Версия Год первого релиза Разработчик
Helidon SE 1.1.1 2019 Oracle
Ktor 1.2.1 2018 JetBrains
Micronaut 1.1.3 2018 Object Computing
Spring Boot 2.1.5 2014 Pivotal
Читать дальше →

JetBrains Night Moscow: как это было

Время на прочтение1 мин
Количество просмотров3.6K
В апреле мы провели JetBrains Night Moscow — получилась отличная встреча с друзьями: интересные темы, много живого общения и, конечно, выступления спикеров JetBrains. К нам пришло более 700 гостей. Спасибо каждому за то, что вы сделали вечер таким классным!

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

RxSwift и корутины в Kotlin — факультатив по мобильной разработке от AGIMA и GeekBrains

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


Знания — это хорошо, просто отлично. Но нужна еще и практика, чтобы можно было использовать полученные данные, переведя их из статуса «пассивное хранение» в статус «активное использование». Каким бы хорошим ни было теоретическое обучение, требуется еще работа «в поле». Сказанное касается практически любой сферы обучения, включая, конечно же, разработку ПО.

В этом году GeekBrains в рамках факультета онлайн-университета GeekUniversity по мобильной разработке начал работать с интерактивным агентством AGIMA, команда которого — профессиональные разработчики (делают сложные высоконагруженные проекты, корпоративные порталы и мобильные приложения, вот это всё). AGIMA и GeekBrains создали факультатив для глубокого погружения в практические вопросы разработки мобильных приложений.

На днях мы поговорили с Игорем Веденеевым, специалистом по iOS, и Александром Тизиком, специализирующимся на Android. Благодаря им факультатив по мобильной разработке обогатился практическим спецкурсом по фреймворку RxSwift и корутинам в Kotlin. В этой статье разработчики рассказывают о важности каждого направления для программистов.
Читать дальше →