Обновить
0
Богдан Коломиец@bogdankolomietsread⁠-⁠only

Junior Android Developer

Отправить сообщение

Почему вы должны думать о функциональном программировании

Время на прочтение7 мин
Охват и читатели22K
Привет, Хабр! Представляю вашему вниманию перевод своей статьи «Why you should think about functional programming», посвященной функциональному программированию.

image

Почему вы должны думать о функциональном программировании? Давайте ответим на следующие вопросы:

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

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

Математические основы Auto Layout

Время на прочтение17 мин
Охват и читатели34K
Многие разработчики считают, что Auto Layout — это тормозная и проблемная штука, и крайне сложно заниматься его отладкой. И хорошо, если этот вывод сделан на основе собственного опыта, а то бывает и просто «я слышал, не буду даже и пытаться с ним подружиться».

Но возможно, причина не снаружи, а внутри. Например, самые опасные птицы в мире казуары не будут атаковать людей без причины, только ради самообороны. Поэтому попробуйте на секунду предположить, что это не Auto Layout плохой, а вы его не достаточно хорошо понимаете и не умеете готовить. Так поступил Антон Сергеев и углубился в теорию, чтобы во всем точно разобраться. Нам предлагается готовая выжимка про математические основы Auto Layout.



10 познавательных YouTube-каналов на английском, о которых вы никогда не слышали

Время на прочтение7 мин
Охват и читатели81K
Учиться должно быть интересно, поэтому мы в EnglishDom постоянно ищем познавательные видео, которые вдохновят вас учить английский, а также подкинут свежих идей или как минимум расширят кругозор.

Мы собрали 10 по-настоящему крутых и познавательных англоязычных каналов. Самые известные и популярные мы не рассматривали, поэтому гарантируем, что все (или почти все) окажутся вам в новинку.

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

История о том, как запустить эмулятор Android или сэкономить на процессоре intel

Время на прочтение2 мин
Охват и читатели82K
Здравствуйте! Хочу поделиться решением одной проблемы. Как запустить эмулятор на amd-шном процессоре на Windows 10, используя WHPX.
Читать дальше →

Современная MVI-архитектура на базе Kotlin

Время на прочтение8 мин
Охват и читатели59K


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

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

Вышел GitLab 11.4 с ревью мерж-реквестов и подключаемыми фичами

Время на прочтение17 мин
Охват и читатели12K

Картинка для привлечения внимания


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

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

Беспроводные метки NFC

Время на прочтение4 мин
Охват и читатели18K


Технический прогресс не стоит на месте, появляющиеся новые технологии со временем дешевеют и становятся доступны практически всем желающим. Как пример можно привести мобильные телефоны. Середина 80-ых — начало 90-ых были переносные таксофоны с ручками или кирпичи стоимостью несколько тысяч $, конец 90-ых — большого размера трубки, с торчащими антеннами со стоимостью от 100$ Такую же аналогию можно провести с NFC метками, используемыми в учетных целях.

  • Уникальный идентификатор nfc метки можно занести в типовой регистр штрих кодов(или доп.свойств) и использовать со смартфона при заполнении, например, инвентаризации административно хозяйственного отдела.
  • В более сложном варианте можно записывать uid номенклатуры и часть названия прямо в метку NFC, при таком варианте связь метки и номенклатуры можно хранить только в метках.
  • Также в случае использования билетов, возможно дешифровать напечатанный номер на билете или же записывать номер заново на карту в открытом формате. Это позволит иметь механизм ручного ввода при повреждении метки, аналогично штрихкодам. Универсальное приложение чтения NFC читает и печатный номер билета и срок действия.

В идеальном варианте и оборудование и расходники (метки) могут ничего не стоить при условии, что у работника имеется смартфон с поддержкой NFC и сам работник не против его использования. Ну и, конечно же, удалось раздобыть необходимое количество использованных билетов. На Ali стоимость от 6 рублей с лишним за метку.
Читать дальше →

Почему новый дизайн Gmail такой медленный?

Время на прочтение3 мин
Охват и читатели100K
image
Как известно, в 2018 году компания Google провела крупнейший редизайн интерфейса своего почтового сервиса Gmail. Как обычно, довольны им оказались далеко не все — и на этот раз есть вполне объективные причины для недовольства сервисом. Почему загрузка Gmail стала занимать очень много времени, а действия вроде удаления или архивирования цепочки писем могут выполняться 4-6 секунд?

Пару дней назад подобным вопросом задался пользователь Hacker News — и он получил ответ от анонимного сотрудника Google, хлестко проехавшегося по культуре разработки внутри компании и своим коллегам.

С его слов, все это происходит в силу того, что в Google не предусмотрено никаких наказаний за подобные «промахи».

В стенах компании активно поощряют запуски (launch) — публичные релизы чего-либо. И то, что продукты могут содержать лишь половину необходимых фич, не работать, работать только из-под Chrome и прочее — это никого не волнует, ведь их создателям за это ничего не грозит. Это — норма.
Читать дальше →

Kotlin: копаем глубже. Конструкторы и инициализаторы

Время на прочтение12 мин
Охват и читатели33K


В уже далёком мае 2017 года Google объявила о том, что Kotlin стал официальным языком для разработки под Android. Кто-то тогда впервые услышал название этого языка, кто-то на нём уже продолжительное время писал, но с того момента стало понятно, что все, кто близок к Android-разработке, теперь просто обязаны познакомиться с ним. Далее последовали как восторженные отклики «Наконец-то!», так и жуткое негодование «Зачем нам нам новый язык? Чем Java не угодила?» и т.д. и т.п.

С тех пор прошло достаточно времени, и хоть споры о том, хороший Kotlin или плохой, до сих пор не утихли, всё больше кода под Android пишется именно на нём. И даже вполне консервативные разработчики тоже переходят на него. Кроме того, в сети можно наткнуться на информацию, что скорость разработки после освоения этого языка увеличивается на 30% по сравнению с Java.

Сегодня Kotlin уже успел вылечиться от нескольких детских болезней, оброс большим количеством вопросов и ответов на Stack Overflow. Невооружённым взглядом стали видны как его плюсы, так и слабые места.

И вот на этой волне мне пришла в голову идея подробно разобрать отдельные элементы молодого, но популярного языка. Обратить внимание на сложные моменты и сравнить их с Java для наглядности и лучшего понимания. Разобраться в вопросе несколько глубже, чем это можно сделать, прочитав документацию. Если эта статья вызовет интерес, то, скорее всего, она положит начало целому циклу статей. А пока начну с довольно базовых вещей, которые, тем не менее, скрывают массу подводных камней. Поговорим о конструкторах и инициализаторах в Kotlin.
Читать дальше →

А вот и девятое поколение Intel Core

Время на прочтение2 мин
Охват и читатели42K

Прошло каких-то два года с момента, когда Intel отказалась от своей регулярной стратегии вывода процессоров «тик-так», а мы уже успели понаблюдать целых 7 семейств в рамках одного только восьмого поколения, а всего в рамках 14-нм техпроцесса поколений сменилось уже три штуки. И это еще не конец: пока 10 нм запаздывает, в продажу поступает девятое поколение Intel Core, которое, впрочем, при ближайшем рассмотрении оказывается не сильно девятее предыдущего.
Читать дальше →

Улучшаем навыки отладки ПО — несколько советов

Время на прочтение4 мин
Охват и читатели6.3K


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

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

Списки в Kotlin. Haskell подход

Время на прочтение10 мин
Охват и читатели13K
Haskell является полностью функциональным и чрезвычайно лаконичным языком. Любой, кто когда-нибудь пробовал писать код на Haskell, замечает, насколько он получается более кратким и изящным, чем написать то же самое на императивном языке. Добиться такого же на Java, на мой взгляд, невозможно, но Kotlin позволяет продвинуться в этом направлении и примерить на себе полностью функциональный стиль. Мы можем вывести все сложные функции, которые нам могут понадобится из стартового базиса 3-х наиболее известных функций: map, filter, reduce. Кроме этого я создал репозиторий, который вы можете изучить и посмотреть тесты.
Читать дальше →

Автоматические блокировки приложений в Google Play

Время на прочтение2 мин
Охват и читатели27K
"Как так? За что? Не может быть. Это какая-то ошибка! Сейчас напишу в техподдержку — и все решится, — заблокированное по ошибке приложение обязательно восстановят".

Такие мысли появляются в голове разработчика, которому приходит уведомление о блокировке приложения в Google Play. По крайней мере, так я считал по наивности.

Как украсть деньги с бесконтактной карты и Apple Pay

Время на прочтение24 мин
Охват и читатели281K
Как украсть деньги с бесконтактной карты из кармана? Насколько безопасен PayPass и Apple Pay?

В статье разбираются популярные мифы и сценарии мошенничества с бесконтактными системами оплаты на примере настоящего POS-терминала, карт PayPass/payWave и телефонов с функцией Google Pay/Apple Pay.

Рассматриваемые темы:

  • Можно ли НА САМОМ ДЕЛЕ украсть деньги, прислонившись POS-терминалом к карману? — мы попытаемся полностью воспроизвести этот сценарий мошенничества от начала до конца, с использованием настоящего POS-терминала и платежных карт в реальных условиях.
  • В чем разница между физическими и виртуальными картами Apple Pay? — как происходит связывание физической карты и токена Apple Pay, и почему Apple Pay во много раз безопаснее обычной карты.
  • Используем аппаратный NFC-сниффер (ISO 14443A) — воспользуемся устройством HydraNFC для перехвата данных между POS-терминалом и картой. Рассмотрим, какие конфиденциальные данные можно извлечь из перехваченного трафика.
  • Разбираем протокол EMV — какими данными обменивается карта с POS-терминалом, используемый формат запросов, механизмы защиты от мошенничества и replay-атак.
  • Исследуем операции без карты (CNP, MO/TO) — в каких случаях на самом деле(!) можно украсть деньги с карты, имея только реквизиты, считанные бесконтактно, а в каких нельзя.

Внимание!

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

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

Дайджест интересных материалов для мобильного разработчика #243 (26 февраля— 4 марта)

Время на прочтение3 мин
Охват и читатели7.9K
В нашем первом весеннем дайджесте продолжение истории «Микро-математики», изучение Swift за 60 секунд, Unit-тесты и анимации, интерфейсы, Flutter, ARCore и ориентиры для мобильных маркетологов. Всем весны!

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

«Dagger-Android & AAC» или «впихнуть невпихиваемое»

Время на прочтение3 мин
Охват и читатели5K
image


Сегодня хотелось бы поговорить о Dagger 2, в частности о dagger-android, Android Architecture Components, а так же о проблеме, с которой я столкнулся при их использовании. Наверное, пост не столько познавательный, сколько философский, сразу прошу не кидаться тапками, потому как причины создания поста есть (как минимум субъективные), о них расскажу под катом.

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

Средства миграции данных Android и улучшение поддержки приложений

Время на прочтение4 мин
Охват и читатели6.4K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Discover tools for Android data migration and improve your app retention» авторов Sean McQuillan и Prateek Tandon.

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

Что же такое этот GraphQL?

Время на прочтение9 мин
Охват и читатели720K

Вашему вниманию предлагаю перевод статьи Sacha Greif "Что же такое этот GraphQL?"


Если вы такой же, как и я, вы обычно проходите через три этапа, когда узнаёте о новой технологии:


  • Отрицание: Ещё одна JavaScript библиотека?! Зачем? У меня уже есть jQuery!
  • Интерес: Хм, наверное мне следует взглянуть на эту библиотеку...
  • Паника: Помогите! Мне нужно изучить эту библиотеку прямо сейчас, иначе мои знания устареют!

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


Именно поэтому сейчас самое время узнать, что же такое этот GraphQL, о котором вы повсюду слышите.

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

Покойся с миром, REST. Долгих лет жизни GraphQL

Время на прочтение13 мин
Охват и читатели48K


Перевод. Автор оригинала Samer Buna. Оригинал статьи.

Когда я впервые узнал о GraphQL после долгого использования различных REST API, то не мог удержаться от твитов такого содержания:

Rest API превратился в REST-in-Peace API. Долгих лет жизни GraphQL


Примечание переводчика – Rest In Peace, RIP – распространенная эпитафия "Покойся с миром". Первое слово в ней пишется так же, как акроним REST.

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


Поймите правильно. Я не собираюсь обвинять GraphQL в убийстве REST или чём-то таком. REST не умрет никогда, также как XML будет жить вечно. Но кто в здравом уме станет использовать XML вместо JSON? На мой взгляд, GraphQL сделает для REST то же самое, что JSON сделал для XML.

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

Стейт-машины на службе у MVP. Лекция Яндекса

Время на прочтение12 мин
Охват и читатели24K
Модель конечного автомата (finite-state machine, FSM) находит применение в написании кода для самых разных платформ, включая Android. Она позволяет сделать код менее громоздким, неплохо укладывается в парадигму Model-View-Presenter (MVP) и поддаётся несложному тестированию. Разработчик Владислав Кузнецов рассказал на Droid Party, как эта модель помогает в развитии приложения Яндекс.Диск.


— Вначале поговорим по теорию. Думаю, каждый из вас слышал и про MVP, и про стейт-машину, но повторим.
1

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность