Как подружить React Native и Java код на Android

Необходимость работы с нативной частью приложения React Native обычно возникает тогда, когда какой-либо сервис не имеет специального api для RN. Таким образом, хороший разработчик должен уметь, как минимум, представление того, как работает нативная часть приложения. В данной статье будут приведены примеры работы взаимодействия приложения React Native c Android. Нативный модуль ПОДРОБНЕЕ

Запечатанный класс

Часто нам приходится представлять ограниченный набор возможностей: веб-запрос либо успешно выполняется, либо не выполняется, User может быть либо про-пользователем, либо обычным. Чтобы смоделировать это, мы могли бы использовать enum, но это несет в себе ряд ограничений. Классы Enum допускают только один экземпляр каждого значения и не могут кодировать дополнительную информацию ПОДРОБНЕЕ

Kotlin. Коллекции и последовательности |

Kotlin из коробки предоставляет два способа обработки данных: энергичный для Collection и ленивый для Sequence. Collection и Sequence Разница между ленивыми и энергичными вычислениями в том, когда они происходят. Коллекция трансформируется энергично. Каждая операция выполняется в момент вызова, а результат преобразования  —  новая коллекция. Преобразователи коллекций  —  это встраиваемые функции. Ниже ПОДРОБНЕЕ

Изменение типа с помощью typealias

Когда определения типов отвлекают от значения вашего кода из-за нечитабельности, выразительности или просто длины, у Kotlin есть подходящая функция: typealias! Typealias позволяет давать альтернативные имена типам классов или функций, не вводя при этом новых. Использование Typealias Для именования типа функции можно использовать псевдонимы типов: typealias TeardownLogic = () -> Unit ПОДРОБНЕЕ

Корутины: основы (часть 1)

Эта серия постов подробно посвящена отменам и исключениям в корутинах. Отмена важна тем, что она помогает избежать выполнения большего количества работы, которое в свою очередь может привести к потере памяти и времени автономной работы. Правильная обработка исключений является ключом к отличному пользовательскому опыту. В качестве основы для других 2 частей ПОДРОБНЕЕ

Перенаправление функций в native-библиотеках на Android

В данной статье я немного расскажу о том, как c помощью фреймворка AndHook можно перенаправлять вызовы функций в native-библиотеках. Можно перехватывать вызовы как публичных (экспортируемых функций), так и непубличные, напрямую по их адресу. Подробнее о перенаправлении можно почитать тут, и на странице фреймворка. В качестве примера будет рассмотрен случай с ПОДРОБНЕЕ

История игры Триплекс, или сколько нужно квадратиков чтобы сломать голову

Чтобы освоить азы Web программирования, я решил написать HTML5 игру — головоломку под названием Triplex (www.quadpuzzle.ru). Написать игру для себя и для друзей — полдела. Захотелось довести проект до ума, сделав из игры продукт для широкого круга пользователей. Насколько получилось — судить вам.     Правила игры просты. На игровом поле разложены ПОДРОБНЕЕ

Переводим студентов на удаленку за 1 день

Еще 16 марта мы сидели в уютном оупенспейсе, а уже на следующий день весь офис переехал на удаленку, домой. На хабре достаточно подобных историй. Но специфика нашей ситуации заключается не в переводе сотрудников, а переводе клиентов. Это более трех тысяч студентов, которые пришли учиться на дневном, но в одначасье оказались ПОДРОБНЕЕ

Повторное использование UI в Android - 5 главных ошибок

За последние пару месяцев у меня была возможность пересмотреть кое-какие реальные интерфейсы Groupon с целью вывести качество таких интерфейсов на новый уровень. Мы начали с определения того, что было хорошо в нашем UI, и в чем мы ошиблись. Из чего складывается хороший интерфейс? Хороший — понятие относительное. Но мы быстро вывели три ПОДРОБНЕЕ

Prosto: убираем бойлерплейт при работе с RecyclerView

Для отображения списка данных мы используем RecyclerView (– Спасибо, кэп!). Он много чего умеет из коробки и другие всем известные блаблабла. Но и боли с ним предостаточно. Никто не любит писать один и тот же boilerplate-код. И я вот не особо… Краткая история сюжета "Немного уменьшить кода": Для примера создан ПОДРОБНЕЕ