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

Ещё один dsl на Kotlin или как я печатал PDF из react - 1

Нельзя просто взять и распечатать страницу написанную на React: есть разделители страниц, поля для ввода. Кроме того, хочется один раз написать рендеринг, чтобы он генерил как ReactDom, так и обычный HTML, который можно сконвертить в PDF.

Самое сложное, что у React свой dsl, а у html свой. Как решить эту проблему? Написать ещё один!

Чуть не забыл, всё это будет написано на Kotlin, так что, на самом деле, это статья о Kotlin dsl.
Читать полностью »

Привет!

Снова пришло то время, когда нам пора поднимать маркетинг Котлина на новый уровень. Почему? Если коротко, мы очень выросли, и у нас очень большие амбиции.

Сегодня в маркетинге Котлина работает 2 (прописью: два) человека. Всем очевидно, что это очень мало. Результаты у них — заоблачные, но, во-первых, они зашиваются, во-вторых, один из них решил снова стать инженером и двигать вперед Machine Learning (на Котлине, разумеется). Теперь мы ищем не просто маркетолога, а человека, который сможет со временем собрать команду.

Вообще говоря, мы никогда не искали просто маркетолога. Нам нужен человек, который будет говорить с пользователями на одном языке. Это значит, что необходимо понимать девелоперов, их нужды и реалии. Нужно уметь шутить шутки для программистов, чувствовать ярость программистов и разделять их (нашу) радость. Нужно понимать, зачем люди, которые всю неделю пишут код на работе, по выходным и вечерами пишут код в хобби-проектах. Самый простой способ этого достичь: самой/самому писать код. Хотя бы какое-то время. Можно по будням :) Опыт в DevRel явно пригодится. Опыт выступлений и/или организации конференций, написания учебрных материалов, создания комьюнити разработчиков — тоже (а что, собственно, еще такое DevRel?). И очень пригодится опыт продвижения идей. Любых идей.

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

Вот и наступила осенне-зимняя пора. За окном дожди и желания проводить время на открытом воздухе все меньше и меньше. И вот приходит мне сообщение от товарища "А давай поиграем в Lineage 2?". И опять я, поддавшись ностальгии, согласился. Выбрали мы свеженький сервер на ру-офе и создали персонажей.

Жадный гном: Как я писал аналитику рынка в Lineage 2 - 1

 
В отличии от World of Warcraft в Lineage 2 совершенно другая система добычи игровой валюты. Нужно круглыми сутками охотиться на монстров с целью получения наживы. Для меня было даже открытием, что для некоторых людей RMT (Real money trading) является чем то вроде работы. Также, в игре присутствует экономика, которую формируют игроки. Иными словами, можно заработать на купи-продай или же покупать дешевые ресурсы, из них делать вещи и продавать с наценкой. Так как для нас игра остается чем то вроде отдыха именно такой способ получения игровой валюты был выбран нами.

Чтобы покупать и продавать предметы игрок должен находиться online (Скриншот сверху). Соответсвенно, кто-то хочет побыстрее продать (дешевле) а кто-то побыстрее купить (дороже). А что если разница продать — купить положительная? Как раз этот пример и будет рассмотрен в статье как итог.

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

Spoiler:
В статье будут использованы следующие технологии
Docker, DigitalOcean, NodeJs, Ktor, Prometheus, Grafana, Telegram bot notification

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

Kotlin: статика, которой нет - 1
В этой статье пойдёт речь об использовании статики в Kotlin.
Начнём.
В Kotlin нет статики!

Об этом говорится в официальной документации.

И вроде бы на этом можно было бы и закончить статью. Но позвольте, как же так? Ведь если в Android Studio вставить код на Java в файл на Kotlin, то умный конвертер сделает магию, превратит всё в код на нужном языке и всё заработает! А как же полная совместимость с Java?

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

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

Доклад Владимира Иванова на AppsConf как раз о том, что не так страшен чёрт и что можно прямо сегодня применять корутины:

О спикере: Владимир Иванов (dzigoro) — ведущий Android-разработчик в компании EPAM с 7-летним опытом, увлекается Solution Architecture, React Native и разработкой под iOS, а еще имеет сертификат Google Cloud Architect.
Читать полностью »

7 библиотек для Android разработки на Kotlin

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

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

Строим систему реактивных компонентов с помощью Kotlin - 1

Всем привет! Меня зовут Анатолий Варивончик, я Android-разработчик Badoo. Сегодня я поделюсь с вами переводом второй части статьи моего коллеги Zsolt Kocsi о реализации MVI, которую мы ежедневно используем в процессе разработки. Первая часть здесь.

Чего мы хотим и как мы это сделаем

В первой части статьи мы познакомились с Features, центральными элементами MVICore, которые можно переиспользовать. Они могут обладать максимально простой структурой и включать всего один Reducer, а могут стать полнофункциональным средством для управления асинхронными задачами, событиями и многим другим.

Каждая Feature отслеживаема — есть возможность подписаться на изменения её состояния и получать уведомления об этом. При этом Feature можно подписать на источник ввода. И в этом есть смысл, ведь с включением Rx в кодовую базу у нас и так появилось множество наблюдаемых объектов и подписок на самых разных уровнях.

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

Современная MVI-архитектура на базе Kotlin. Часть 1 - 1

За последние два года Android-разработчики в Badoo прошли длинный тернистый путь от MVP к совершенно иному подходу к архитектуре приложений. Мы с ANublo хотим поделиться переводом статьи нашего коллеги Zsolt Kocsi, описывающую проблемы, с которыми мы столкнулись, и их решение.

Это первая из двух статей, посвящённых разработке современной MVI-архитектуры на Kotlin.
Читать полностью »

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

Кому интересно, как мы это сделали, и какие «побочные» эффекты мы словили, прошу заглянуть под кат.
Читать полностью »

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

Работа с сетью в Android с использованием корутин и Retrofit - 1

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


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