Рубрика «kotlin» - 13

Reactor, WebFlux, Kotlin Coroutines, или Асинхронность на простом примере - 1

Многие сервисы в современном мире, по большей части, «ничего не делают». Их задачи сводятся к запросам к другим базам/сервисам/кешам и агрегации всех этих данных по различным правилам и разнообразной бизнес-логике. Поэтому неудивительно, что появляются такие языки, как Golang, с удобной встроенной конкурентной системой, позволяющей легко организовывать неблокирующий код.

В JVM-мире всё немного сложнее. Есть огромное количество фреймворков и библиотек, блокирующих потоки при использовании. Так и сама stdlib может делать то же самое порой. Да и в Java нет аналогичного механизма, похожего на горутины в Golang.

Тем не менее, JVM активно развивается и появляются новые интересные возможности. Есть Kotlin с корутинами, которые по своему использованию очень похожи на горутины из Golang (хоть и реализованы совершенно по-другому). Есть JEP Loom, который в будущем привнесёт fibers в JVM. Один из самых популярных веб-фреймворков — Spring — не так давно добавил возможность создавать полностью неблокирующие сервисы на Webflux. А с недавним релизом Spring boot 2.2 интеграция с Kotlin стала ещё лучше.

Предлагаю на примере небольшого сервиса по переводу денег с одной карты на другую самим написать приложение на Spring boot 2.2 и Kotlin для интеграции с несколькими внешними сервисами.

Читать полностью »

Kotlin-библиотека Anko стала deprecated - 1

У проекта Anko, призванного улучшить Android-разработку на Kotlin, более 15 000 звёзд на GitHub, то есть это одна из самых известных Kotlin-библиотек. Однако теперь было официально объявлено о прекращении работы над ней.

Читать полностью »

Это перевод статьи An introduction to context-oriented programming in Kotlin

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

Несколько слов о разрешении функций

Как хорошо известно, существует три основных парадигмы программирования (примечание Педанта: есть и другие парадигмы):

  • Процедурное программирование
  • Объектно-ориентированное программирование
  • Функциональное программирование

Читать полностью »

Это заключительная часть расследования о Scala-движении в России. В первой части я узнал от Романа Гребенникова о воронежском бомонде, C++ и Erlang, а от Романа Тимушева о первой Akka и рождении московских митапов. Во второй части побеседовал с Александром Подхалюзиным и Михаилом Муцянко: знакомство со Scala, 2007-й, Scala Days, Scala Native, переход в Kotlin, чем Scala хороша для банков, первые ивенты в Санкт-Петербурге, Eclipse, Jason Zaugg, IDE и Scala Plugin.

По следам русского Scala-движа. Часть 3 - 1

Во время подготовки второй части Владимир Успенский (vuspenskiy) направил меня к Александру Подхалюзину, с которым мы записали огромное интервью. На следующий день я получил от Владимира сообщение, но теперь уже с его личной историей: Qiwi, Scala в Тинькофф, первые встречи, ссылки на старые блоги (отдельное спасибо за это), и функциональщина из 2008 от Rúnar, которая исполняется на Java, — это та еще кровь из глаз как минимум необычно. В дополнение — истории Романа Елизарова, Алексея Фомкина и Николая Татаринова. Особенности найма Scala-разработчиков, курсы на Coursera, «идеальный код», «демоническая» компиляция, дизайн в Kotlin, 10 000 строк кода, интернет-банк Тинькофф, опять Тинькофф, Play Framework, скончавшийся Flash, «Восход» и питерские митапы — обо всем этом в заключительной части трилогии под катом.
Читать полностью »

Дубай Молл в смартфоне, или как добавить поэтажный план здания в своё приложение - 1

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

Исходная постановка задачи в упрощённом виде: хочется иметь возможность визуализировать схему этажа в вашем мобильном приложении и уметь показывать на нём местоположение конкретной организации. Хотелось бы ещё и местоположение пользователя видеть, но здесь проблема в технической плоскости — нужно оборудование, которое позволит вам получать координаты устройства внутри помещения. Так что этот аспект оставим за рамками статьи и сосредоточимся на программной части.

Ниже я покажу вам несколько вариантов, с помощью которых можно реализовать описанные выше требования. Всё зависит от того, какими данными вы обладаете и что конкретно должно уметь приложение. И начнём мы с самого простого.
Читать полностью »

Трансляции KotlinConf превращаются в добрую традицию. В этом году мировое сообщество пользователей Kotlin сможет увидеть конференцию в прямом эфире — все выступления, а не только объявления и новости. Приятным бонусом прямого эфира станут 12 интервью с докладчиками, которые в течение двух дней проведет ведущая популярного YouTube-канала «Android Dialogues» Хюен Туэ Дао.

Трансляция начнется выступлением руководителя команды разработки Kotlin Андрея Бреслава, затем два полных дня докладов и в конце закрывающая панель, во время которой докладчики вместе с командой разработки Kotlin ответят на вопросы сообщества. Вы также можете принять участие в обсуждении — задавайте вопросы в Твиттере с хештегом #kc19ask уже сейчас, и смотрите прямой эфир, чтобы услышать ответы.

Есть и другой способ приобщиться к KotlinConf 2019 — организуйте митап в рамках программы KotlinConf 2019 Global для удаленного просмотра конференции вместе со своим сообществом, а JetBrains поддержит ваше начинание. Прочитайте наш блог-пост, подайте заявку и получите поддержку.

image

Читать полностью »

В конце октября наши Android-разработчики Антон Потапов FlashLight13 и  Дмитрий Васильев smartdev посетили Droidcon London и сегодня делятся с уважаемыми хабравчанами своими впечатлениями.

Напомним, что лондонский Droidcon позиционируется как одна из самых больших конференций в Европе, посвящённых Android-разработке, поэтому ожидания были высокими. В этом обзоре мы отразим не только своё мнение об организации и уровне докладов, но и расскажем об их деталях и направлении индустрии в целом.

Droidcon London 2019: новые тенденции и самые интересные доклады - 1

Читать полностью »

Летаем по модулям: Навигация в многомодульном приложении с Jetpack - 1

Почти каждый растущий проект рано или поздно начинает смотреть в сторону многомодульной архитектуры. Разработчики не хотят ждать пока пересобирается полностью весь проект, когда была изменена только одна фича. Многомодульность помогает изолировать фичи приложения друг от друга, тем самым сокращая время сборки. Но такое изолирование накладывает некоторые ограничения на область видимости компонентов. Когда мы используем навигацию из Jetpack в проекте с одним модулем, граф навигации доступен из любого пакета приложения, мы всегда можем явно указать какой action NavController должен выполнить, а также есть доступ к глобальному хосту, если в проекте есть вложенные фрагменты. Но когда модулей становится много, то возникают вопросы: где строить граф навигации, как получать к нему доступ и как не запутаться в зависимостях модулей. Обо всем этом поговорим под катом.

Читать полностью »

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

Архитектура EBA aka реактивность на всю катушку - 1

По моему мнению, все популярные ныне архитектуры — MVP, MVVM и даже MVI — уже давно на арене и не всегда заслуженно. Разве у них нет недостатков? Я вижу их немало. Мы у себя решили, что хватит это терпеть, и (пере)изобрели новую, максимально асинхронную архитектуру.

Читать полностью »

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js