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

Kotlin *

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

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

kotlinx.coroutines 1.4.0: представляем StateFlow и SharedFlow

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

Сегодня мы с радостью объявляем о выходе версии 1.4.0 библиотеки Kotlin Coroutines. Основными новшествами этого релиза стали StateFlow и SharedFlow, которые теперь являются стабильными API-интерфейсами. StateFlow и SharedFlow предназначены для использования в тех случаях, когда требуется управление состоянием в контексте асинхронного выполнения с применением Kotlin Coroutines.

(Примечание: перевод статьи от 30 октября 2020г.)

Читать далее

Серия вебинаров по серверной разработке на Kotlin

Время на прочтение2 мин
Количество просмотров1.7K
Все больше инженеров выбирают Kotlin для разработки серверных приложений. Полная совместимость с Java, корутины и высокая безопасность делают Kotlin отличным инструментом для подобных задач.

Мы организуем серию вебинаров (на английском языке), где расскажем о разработке бэкенда на Kotlin в сочетании с технологиями Apache Kafka, Spring Boot и Google Cloud Platform. Вебинары подойдут для Kotlin- и Java-разработчиков любого уровня подготовленности, в том числе для разработчиков мобильных приложений без опыта серверной разработки.

Kotlin и Apache Kafka, 10 декабря 2020, 19:30 – 20:30 МСК
Kotlin и Google Cloud Platform, 17 декабря 2020, 19:30 – 20:30 МСК
Kotlin и Spring Boot, 14 января 2021, 19:30 – 20:30 МСК

Подробнее о каждом из вебинаров читайте ниже.
Читать дальше →

Как мы начали социальный Open Source проект Brain-Up по созданию платформы развития слухового восприятия

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров3.6K

В сентябре 2019 года я стартовала социальный Open Source проект Brain-Up на Kotlin и Ember. Это разработка веб-приложения, которое включает в себя серии интерактивных аудиоупражнений для тренировки способности слышать и понимать речь лучше. Я работаю Java-разработчиком с 2013 и в компании EPAM с 2017 года. Однажды столкнувшись с проблемой восприятия речи у своего ребенка, я поняла, что могу попробовать начать разработку такого продукта, который мог бы помочь людям развивать способность восприятия речи не выходя из дома, за компьютером, через веб-сайт, не прибегая к ежедневной помощи близких, специалистов. Первая версия продукта уже доступна для занятий. В этой статье я расскажу о нашем проекте, какие задачи и как были решены, наши планы и как можно присоединиться к проекту.

«Лучше самая малая помощь, чем самое большое сочувствие»

Владислав Лоранц

Читать далее

Меняем стандартный диалог сбоя приложения в Android на собственный экран

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

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

«Живи так, как будто ты умрешь завтра. Учись так, как будто ты будешь жить вечно».

Читать далее

Как сделать цветные тени в Android с градиентом и анимацией

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

На презентации новых макбуков обратил внимание на картинку процессора: переливающиеся цветные тени на темном фоне. Давайте нарисуем на Android такие-же

Читать далее

Раздел «Refactor» в IDEA

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

Эта статья - краткий обзор по разделу меню "Refactor" в IDEA для начинающих.

Рассматриваются основные способы рефакторинга для Java-файлов, для большинства способов рефакторинга приведены анимированные картинки и примеры использованного кода.

Осторожно, много тяжелых gif-картинок.

Читать далее

Корутинная эволюция в Kotlin. Чем отличаются Channels, Broadcast channels, Shared flows, State flows

Время на прочтение5 мин
Количество просмотров45K
Эта публикация — перевод поста Романа Елизарова «Shared flows, broadcast channels». Опубликовано с одобрения автора оригинала. Примечания переводчика выделены курсивом.

Давным-давно в Kotlin были представлены корутины, одной из особенностей которых является легковесность (создание корутин дешевле, чем с запуск новых Threads). Мы можем запускать несколько корутин, и нам нужен способ взаимодействия между ними избегая “mutable shared state”
Читать дальше →

Koin — библиотека для внедрения зависимостей, написанная на чистом Kotlin

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

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

Читать далее

Kotlin FP: моноиды и сортировки

Время на прочтение5 мин
Количество просмотров3.8K
В данной статье мы рассмотрим понятие моноид и узнаем, как он может помочь нам при сортировке данных.

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


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

Валидация элементов формы textInputLayout в Android с помощью связывания данных

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

«Чтобы научиться чему-то хорошо, нужно научиться делать это несколькими способами».

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

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

Читать далее

MMORPG больше не в Telegram — Swift и Kotlin — Первый большой проект — Часть 1

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

Прошло полгода с выпуска пробной статьи про создание MMORPG в телеграме. Изменился мир, изменились и планы по игре.

Почему больше не в Telegram

После выпуска первой статьи, энтузиазма писать игру хватило еще на неделю. Прилетели проблемы по работе, поиски новой, да и вообще лето. Проект был отброшен на задний план. В процессе поиска будущего работодателя возникла мысль попробовать себя в разработчиках. Спустя несколько часов диалогов с разными ребятами из IT, выбор пал на iOS-разработку. Благо, на Udemy курсы уже куплены, поэтому из летнего режима переходим в режим разработчика на 1.5

Читать далее

Корутины и синхронизация. Лучше не смешивать

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

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

В мире Java одним из стандартных решений является добавление ключевого слова synchronized к сигнатуре метода. В Kotlin для получения того же эффекта используется аннотация @Synchronized

Читать далее

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

Lamoda x Joker 2020

Время на прочтение2 мин
Количество просмотров1.7K
Привет, Хабр! Меня зовут Влад Кошкин, я java-разработчик в Lamoda. С 25 по 28 ноября наша команда впервые примет участие в онлайн-конференции Joker 2020.

У Lamoda огромный и сложный склад: 40 000 м², миллионы товаров на полках, тысячи людей — и все это мы автоматизируем на Java через WMS (Warehouse Management System).

image

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

Jetpack Compose Desktop

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

Несколько дней назад компания JetBrains в своём блоге рассказала о выходе нового инструмента для создания дескопных приложений Jetpack Compose Desktop. Компания с русскими корнями не особо жалует русскоязычную аудиторию и не спешит рассказать нам о новинке, поэтому возьму на себя роль популяризатора.

Разработчики под Android уже могли слышать про Compose, которая доступна в предварительной версии Android Studio 4.2. Я не любитель устанавливать бета-версии, поэтому не мог пощупать новую технологию своими руками. Но когда услышал новость про Compose Desktop, то не удержался и поставил себе IntelliJ IDEA Early Access Program.

Для начала я установил версию IDEA 2020.3, где уже есть все необходимые настройки и шаблоны.

Создаём новый проект и выбираем шаблон Desktop uses Kotlin 1.4.0. Минимальная версия Java SDK должна быть не ниже 11. Проверял на Windows 10, других платформ у меня нет.

Читать далее

Переезд из Java в Kotlin: как забрать коллекции с собой

Время на прочтение12 мин
Количество просмотров18K
Меня зовут Борис Николаев, и в первой статье на Хабре хочу сравнить Java и Kotlin при работе с коллекциями. Она будет полезна всем, кто планирует перебираться в Kotlin и не хочет долго осваиваться.

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

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

Spring: Ускоряем запись в базу данных с помощью XML

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

В этой статье пойдет речь о том как ускорить запись большого объема информации в реляционную базу данных для приложений, написанных с использованием Spring Boot. При записи большого количества строк за раз Hibernate вставляет их по одному, что приводит к существенному ожиданию, если строк много. Рассмотрим кейс как это обойти.
Читать дальше →

MVVM и выбор элементов в адаптере — Базовый адаптер

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

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

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

Kotlin: язык программирования как продукт

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

Язык программирования — это тоже продукт. Он помогает разработчикам выражать свои идеи так, чтобы их мог интерпретировать компьютер. Может показаться, что развивать язык — это брать последние достижения теории языков программирования, реализовывать их и из года в год выкатывать разработчикам. Это не так. Егор Толстой, Kotlin Product Manager, и Андрей Бреслав, руководитель проекта Kotlin, рассказали, зачем JetBrains бесплатный язык программирования, как он устроен и откуда приходят новые пользователи. Статья вдохновлена выпуском подкаста make sense о Kotlin.

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

Мы начали делать Kotlin десять лет назад, а первый релиз вышел зимой 2016 года. Изначально он задумывался как язык, который улучшит жизнь Java-программистов. Сейчас на Kotlin пишут даже приложения для браузеров и iOS. Современный Kotlin — универсальный язык программирования с большим количеством приятных для разработчиков фич, статически типизированный, заточенный под большие проекты и поддержку крупных кодовых баз.

Читать далее

Встраиваем карты от Huawei в Android приложение

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

image


В предыдущих статьях мы создавали аккаунт разработчика для использования Huawei Mobile Services и подготавливали проект к их использованию. Потом использовали аналитику от Huawei вместо аналога от Google. Также поступили и с определением геолокации. В этой же статье мы будем использовать карты от Huawei вместо карт от Google.


Вот полный список статей из цикла:


  1. Создаём аккаунт разработчика, подключаем зависимости, подготавливаем код к внедрению. тык
  2. Встраиваем Huawei Analytics. тык
  3. Используем геолокацию от Huawei. тык
  4. Huawei maps. Используем вместо Google maps для AppGallery. ← вы тут

В чём сложность


К сожалению, с картами не получится так просто, как было с аналитикой и геолокацией. Что и неудивительно, т.к. это гораздо более сложная система сама по себе. И очень часто в приложениях карты и взаимодействие с ними кастомизируется. Например, отображают маркеры, кластеризуют их. Поэтому кода будет много, т.к. надо всё это заабстрагировать, имея в виду некоторые отличия в API карт разных реализаций.

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