• Погружение в Async-Await в Android

    • Translation

    В предыдущей статье я сделал беглый обзор async-await в Android. Теперь пришло время погрузиться немного глубже в грядущий функционал kotlin версии 1.1.


    Для чего вообще async-await?


    Когда мы сталкиваемся с длительными операциями, такими как сетевые запросы или транзакции в базу данных, то надо быть уверенным, что запуск происходит в фоновом потоке. Если же забыть об этом, то можно получить блокировку UI потока еще до того, как задача закончится. А во время блокировки UI пользователь не сможет взаимодействовать с приложением.

    Читать дальше →
  • Беглый взгляд на Async-Await в Android

    • Translation
    От переводчика

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


    Kotlin версии 1.1 принесет в язык coroutin'ы, которые позволяют приостанавливать вычисления в какой-то точке, а затем продолжить их позднее. Очевидный пример этой возможности — async-await, который был добавлен в C# несколько лет назад.


    Каждый android разработчик знает, что когда мы имеем дело с сетевыми запросами или другими I/O задачами, то нам необходимо удостовериться, что не происходит блокировка основного потока, а так же, что мы не трогаем UI из фонового потока. На протяжении многих лет приходят и уходят десятки приемов. В этой статье перечислены наиболее популярные, и показаны примеры удобства, которое несет с собой async-await.

    Читать дальше →
  • Уязвимость Account Manager в Android, о которой необходимо знать

      Приветствую тебя, дорогой читатель! Многие разработчики используют возможности Account Manager(AM) в своих приложениях. И правильно делают, ведь этот инструмент позволяет упростить некоторые вещи. Он позволяет хранить пароль, токен, да и в принципе любые строковые данные юзера. Так же позволяет автоматически обновлять токен, если тот протухает, и много других полезных штук. Но у этого удобства есть и другая сторона — безопасность. Из-за этого собственно я и написал данный текст.

      Раз AM позволяет хранить такие важные данные как пароль и токен, то наверно он просто обязан это делать безопасно, ведь если они утекут, то ничего хорошего не получится. Вы можете сказать, что на рутованых андроид девайсах ничто не хранится безопасно, и я тут соглашусь. Однако если бы все ограничивалось только рутом, то не читать бы вам сие «произведение». Чтобы рассказать, ради чего мы тут собрались, я начну с самого начала.
      Читать дальше →
      • +24
      • 18.1k
      • 5
    • Делаем parallax header в RecyclerView

        Приветствую!
        С приходом material дизайна приходят и новые элементы. Например, появился RecyclerView, который многим уже известен. Про него на хабре писали не раз: тыц, туц.

        Вроде как пользоваться им — понятно, но ведь хочется большего. Обычно при переходе на новые альтернативы чего-то не хватает. Вот и мне не хватило того, что есть. Понадобилось мне сделать parallax эффект, как в Google Play на странице конкретного приложения. Реализации для ListView и ScrollView имеются. Поискал я в великом и могучем, и все, что нашел — этот репозиторий. Решение вроде рабочее, да и народ пользуется. Однако мне не понравилось его юзабилити. И как водится, решил написать свое.
        И что же вышло!?
        • +10
        • 16.8k
        • 6
      • Ведение независимого времени на android девайсе

          Здравствуйте!

          В один прекрасный день приходит ко мне менеждер и говорит: «Можем ли мы запретить пользователю менять время на телефоне?». И конечно же ответ мой был нет, но это не решало задачу. Необходимо было искать выход из ситуации.
          Критерии для решения были следующими:
          • должно работать без частых синхронизаций с сервером, например, достаточно взять время раз в месяц.
          • должно быть устойчиво к переводу времени назад/вперед/смене часового пояса
          • работать при перезагрузке устройства/неожиданном завершении/ вытаскивании батареи
          • не отклоняться от эталонного времени на слишком большие значения, в моем случае было 5 минут.
          • если все же удалось обмануть, то отслеживать этот момент


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

          Посмотреть, что вышло
        • Определение местоположения пользователя с помощью Сервисов Google Play

          • Tutorial
          Добрый день, Друзья!

          Вопрос определения местоположения пользователя на максимальном количестве девайсов мучил меня примерно полгода. Дело доходило даже до велосипедов, описанных тут и тут. Дело было в том, что находились устройства, на которых местоположение не определялось, по неизвестной причине, однако другие приложения работали вполне хорошо. Очередной раз, копаясь в коде и рыская в просторах гула в поисках того, что я упускаю, и реализации, которой я еще не опробовал, наткнулся на свеженькую статью-мануал от google и, о боги(!), это заработало.
          Прошу внутрь
        • Где в России из бакалавра качественно прокачаться до IT-магистра?

            Привет всем хаброжителям.
            Перечитывал инфу об IT-образовании, ибо в последнее время оно меня сильно беспокоит: всего год остался до того, как я напишу (!!!) диплом, а потом стану бакалавром математики. Вот наткнулся тут на статью, как раз про меня и мне подобных написанную:
            Она задела за живое. И я решил по ее мотивам накатать свою, как продолжение размышлений – куда податься IT-бакалаврам. На мой взгляд, обучение в IT-магистратуре – неплохая перспектива. Но только, думается мне, не все магистратуры одинаково полезны, а только те, которые могут дать действительно качественную подготовку, чтобы потом еще и работать хотелось и моглось.
            Рассудив, что хорошую практику могут дать только хорошие практики, я отправился в пучины мировой сети, чтобы найти в России (я пока что не очень-то хотел бы сваливать за бугор), магистратуры, поддерживаемые серьёзными IT-конторами.
            В течение нескольких часов честно смотрел, что выпадает в поисковиках по запросам: «IT магистратура», «магистратура IT» и подобным ключевым словам.
            И вот сделал из всего собранного мной такую табличку:
            Читать дальше →
          • 3D иллюзии

            Общее:


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