Как стать автором
Обновить
10
0

Пользователь

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

Kotlin performance on Android

Время на прочтение20 мин
Количество просмотров13K
Поговорим сегодня о производительности Kotlin на Android в production. Посмотрим под капот, реализуем хитрые оптимизаци, сравним байт-код. Наконец, серьезно подойдем к сравнению и замерим бенчмарки.

Эта статья основана на докладе Александра Смирнова на AppsConf 2017 и поможет разобраться, можно ли написать код на Kotlin, который не будет уступать Java по скорости.


О спикере: Александр Смирнов CTO в компании PapaJobs, ведет видеоблог «Android в лицах», а также является одним из организаторов сообщества Mosdroid.
Всего голосов 34: ↑33 и ↓1+32
Комментарии7

Account Manager: аккаунты, токены и все-все-все. Лекция Яндекса

Время на прочтение14 мин
Количество просмотров28K
Android предоставляет мощную систему работы с аккаунтами. Наличие Account Manager уже давно помогает Яндексу — за годы разработки приложений и сервисов мы накопили большой опыт, связанный с механизмами авторизации в Android. Узнать об этом опыте можно из лекции разработчика Кирилла Борисова. Заодно вы поймёте, как указанные системы пригодятся вашему приложению и как избежать подводных камней при взаимодействии с ними.


— Я хочу рассказать про одну небольшую подсистему Android. C ней редко кто сталкивается, слышали о ней совсем немногие, но она может пригодиться гораздо большему числу людей. Это Account Manager — страшная вещь, которая заведует аккаунтами, токенами и всем, что с этим связано.

Рассмотрим, что же такое аккаунт в Android в теории, сферический в вакууме. Затем поглядим на Account Manager как таковой, на сам сервис. И посмотрим, какой же был тернистый путь прошёл Яндекс в укрощении этой зверюги.

Всего голосов 37: ↑36 и ↓1+35
Комментарии7

Дайджест интересных материалов для мобильного разработчика #237 (15-21 января)

Время на прочтение4 мин
Количество просмотров6.4K
В новом дайджесте мы рассказываем про особую магию HQ Trivia, самую необычную головоломку в Google Play, мгновенную локализацию, итоги 2017 года и перспективы 2018.

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии0

Разбираемся с новыми архитектурными компонентами в Android

Время на прочтение11 мин
Количество просмотров24K
Гостевая статья от участника Google I\O 2017 и одного из лидеров GDG Kazan — Артура Василова (@Arturka).

19 мая завершилась конференция Google I/O. По поему мнению, несмотря на то, что новых продуктов в этом году было представлено не так много, с технической точки зрения конференция получилась интересной.

Самым большим и интересным техническим обновлением лично для меня стали новые Architecture Components (не Android O, в котором мало чего интересного, и уж точно не Kotlin). Google сделал то, что должен был сделать уже очень давно — разработать стандарты архитектуры и предоставить их разработчикам. Что же, лучше поздно, чем никогда, и давайте разбираться с тем, насколько полезной может быть архитектура от Google.


Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии1

Повороты экрана в Android без боли

Время на прочтение8 мин
Количество просмотров36K
image

Важно!
Изначально в статье была реализация с ошибкой. Ошибку исправил, статью немного поправил.

Предисловие


Истинное понимание проблем каждой платформы приходит после того, как попробуешь писать под другую платформу / на другом языке. И вот как раз после того, как я познакомился с разработкой под iOS, я задумался над тем, насколько ужасна реализация поворотов экрана в Android. С того момента я думал над решением данной проблемы. Попутно я начал использовать реактивное программирование везде, где только можно и уже даже не представляю как писать приложения по-другому.


Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Комментарии15

Поездка на Google I/O: как, зачем и сколько стоит

Время на прочтение6 мин
Количество просмотров10K
В этом году я впервые побывал на Google I/O. По итогу, могу с уверенностью сказать, что было круто! О докладах я рассказал в предыдущей статье, а теперь — о самой поездке. Рекомендую каждому Android-разработчику туда съездить. Под катом — лайфхаки на тот случай, если вы хотите побывать на Google I/O, но не знаете, как это сделать и во сколько вам это обойдётся.


Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии10

Kotlin для Android: упрощаем работу со слабыми ссылками в асинхронных вызовах

Время на прочтение6 мин
Количество просмотров19K

Пишите на Java и ждёте асинхронные вызовы API прямо во фрагменте или Activity? Используя анонимные классы? В этой статье я расскажу, как Kotlin позволяет это сделать без вреда для GC и возможных IllegalStateException.


image


В данной статье приведёна работа со слабыми ссылками на примере ожидания асинхронных вызовов из компонентов Android приложения. Однако данный опыт применим и для других ситуаций, когда требуется использовать слабые ссылки.

Интересно? Тогда добро пожаловать под кат
Всего голосов 24: ↑17 и ↓7+10
Комментарии13

Kotlin + Rx2: Реактивный и функциональный подход к разработке мобильных приложений

Время на прочтение8 мин
Количество просмотров11K
Количество технологий, библиотек увеличивается с каждым днем, и зачастую можно потеряться в выборе стека технологий и архитектуры для старта или развития вашего мобильного проекта. Минимизировать риски однозначно можно, один из вариантов — это прислушаться к мнению специалистов по Android-разработке.



Именно поэтому мы обратились к Денису nekdenis Неклюдову (Android GDE) и Степану stepango Гончарову, Android-разработчикам в 90Seconds.com. В интервью будут затронуты несколько важных тем, от архитектуры мобильного приложения  до применения библиотек Rx в проектах. Итак, начнем…

Читать дальше →
Всего голосов 33: ↑27 и ↓6+21
Комментарии0

Реактивные приложения с паттерном RxPM. Прощайте​ MVP и MVVM

Время на прочтение12 мин
Количество просмотров40K

Уже продолжительное время я размышляю над паттерном RxPM и даже успешно применяю его в «продакшене». Я планировал сначала выступить с этой темой на Mobius, но программный комитет отказал, поэтому публикую статью сейчас, чтобы поделиться с Android-сообществом своим видением нового паттерна.


Все знакомы с MVP и MVVM, но мало кто знает, что MVVM является логическим развитием паттерна Presentation Model. Ведь единственное отличие MVVM от PM – это автоматическое связывание данных (databinding).


В этой статье речь пойдет о паттерне Presentation Model с реактивной реализацией биндинга. Некоторые ошибочно называют его RxMVVM, но корректно будет называть его RxPM, потому что это модификация шаблона Presentation Model.


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



Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии42

25 Android-библиотек, которыми определенно стоит воспользоваться в начале 2017 года

Время на прочтение5 мин
Количество просмотров45K
Вот список 25 Android-библиотек, релиз которых состоялся в январе-феврале 2017 года. Все они достойны внимания, место в списке не определяется значимостью. Приступим!


Читать дальше →
Всего голосов 41: ↑32 и ↓9+23
Комментарии9

Погружение в Robolectric

Время на прочтение10 мин
Количество просмотров18K

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


Под катом расскажу о внутреннем устройстве фреймворка для unit-тестирования Android-приложений — Robolectric.



Всего голосов 15: ↑15 и ↓0+15
Комментарии3

Использование паттерна SchedulableObject для выделения бизнес-логики в отдельный поток

Время на прочтение12 мин
Количество просмотров13K


Интерфейс мобильного приложения — это лицо продукта. Чем более отзывчив интерфейс, тем больше радости приносит продукт. Однако удовлетворённость от использования приложения зависит прежде всего от объёма его функций. По мере увеличения количества и сложности задач они требуют всё больше и больше времени. Если архитектура приложения предполагает, что все они выполняются в главном потоке, то задачи бизнес-логики начинают конкурировать за время с задачами отрисовки интерфейса. При таком подходе рано или поздно обязательно находится сценарий, исполнение которого приводит к залипанию приложения. Для борьбы с этой напастью существует три принципиально разных подхода:

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

Паттерн SchedulableObject позволяет аккуратно реализовать третий сценарий. Под катом рассматриваются его части с примерами реализации на Swift, а также преимущества и недостатки по сравнению с первыми двумя подходами.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии2

Cicerone — простая навигация в Андроид приложении

Время на прочтение8 мин
Количество просмотров85K


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


Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии29

Паттерны для новичков: MVC vs MVP vs MVVM

Время на прочтение6 мин
Количество просмотров788K
Добрый день, уважаемые коллеги. В этой статье я бы хотел рассказать о своем аналитическом понимании различий паттернов MVC, MVP и MVVM. Написать эту статью меня побудило желание разобраться в современных подходах при разработке крупного программного обеспечения и соответствующих архитектурных особенностях. На текущем этапе своей карьерной лестницы я не являюсь непосредственным разработчиком, поэтому статья может содержать ошибки, неточности и недопонимание. Заинтригованы, как аналитики видят, что делают программисты и архитекторы? Тогда добро пожаловать под кат.
Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии36

@ActivityScope с помощью Dagger 2

Время на прочтение8 мин
Количество просмотров13K
Привет, Хабр! Хочу поделиться опытом создания ActivityScope. Те примеры, которые я видел на просторах интернета, на мой взгляд, не достаточно полны, неактуальны, искусственны и не учитывают некоторых нюансов практической разработки.

Статья предполагает, что читатель уже знаком с Dagger 2 и понимает что такое компонент, модуль, инжектирование и граф объектов и как все это вместе работает. Здесь же мы, в первую очередь, сконцентрируемся на создании ActivityScope и на том, как его увязать с фрагментами.

Итак, поехали… Что же такое scope?


Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии10

Безопасность Android-приложений. Лекция в Яндексе

Время на прочтение10 мин
Количество просмотров32K
Разработчик Дмитрий Лукьяненко, чью лекцию мы публикуем сегодня, не только является специалистом Яндекса, но и умеет проверять на прочность решения разработчиков других компаний. Это позволяет учиться на чужих ошибках — не исключая порой своих, конечно. В докладе Дмитрий поделится примерами Android-уязвимостей, в том числе найденных им собственноручно. Каждый пример сопровождается рекомендациями — как нужно и как не нужно писать приложения под Android.



Меня зовут Дмитрий, я работаю в компании Яндекс в минском офисе, занимаюсь разработкой аккаунт-менеджера. Это библиотека, которая отвечает за авторизацию пользователей. Поэтому мы поговорим о безопасности Android-приложений.
Всего голосов 68: ↑68 и ↓0+68
Комментарии14

Дайджест интересных материалов для мобильного разработчика #171 (12-18 сентября)

Время на прочтение3 мин
Количество просмотров13K
На этой неделе началось распространение iOS 10 и много материалов связано с iMessage и функциями новой ОС. А кроме того в новом дайджесте лучшие окна с призывами оценить или оплатить приложение, обнаружение лиц на фотографиях, путь UX в этом году, отказ Marmalade от своего движка и много других интересных материалов.

Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии2

Dagger 2. Лечим зависимости по методике Google

Время на прочтение11 мин
Количество просмотров37K

Автор: Константин Марс
Senior Developer @ DataArt,
Co-Organizer @ GDG Dnipro


Dependency Injection



Что, зачем и когда это нужно


Сегодня мы поговорим об инструменте, который помогает улучшить качество разработки для Android. Решить эту задачу можно с помощью Dependency Injection (DI). Обычно этот термин ассоциируется с инъекциями, шприцами и немножко с «зависимостями». На самом деле, Dependency Injection — паттерн проектирования, обеспечивающий реализацию принципа инверсии зависимостей и реализующий правила создания объектов и независимость реализаций.
Итак, у нас есть класс, у класса есть конструктор, и есть несколько членов класса. Когда вы создаете сущность этого класса, вам необходимо обеспечить класс инстансами тех самых типов, которые объявлены для его членов класса. В данном случае, это имя машины и тип двигателя Engine. Вы будете использовать ссылки на объекты, соответственно, ссылки внутри вашего класса не будут пустовать.
Таким образом, вы реализуете ОOП и можете создавать объекты.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии15

Кюветы Android, Часть 3: SDK и RxJava (Финал)

Время на прочтение18 мин
Количество просмотров20K
Android SDK и «внезапности» — почти близнецы. Вы можете наизусть знать development.android.com, но при этом продолжать рвать на себе волосы при попытке сделать что-то покруче, чем форма-кнопка-прогрессбар.
Это заключительная, третья, часть из серии статей о Кюветах Android'а. На деле конечно их должно было быть десятка два, но я слишком скромный. На этот раз я наконец дорасказываю о неприятностях в SDK, с которыми мне довелось столкнуться, а так же затрону популярную нынче технологию ReactiveX.
В общем, Android SDK, RxJava, Кюветы — поехали!
image
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии17

Миссия невыполнима: геолокация на Android без сжирания батарейки

Время на прочтение10 мин
Количество просмотров79K
Пользователь: это невозможно, GPS съест батарейку
Джуниор: это возможно, используй Geofences
Сеньор: есть варианты и получше

image
На картинке сначала в одну, а потом в другую сторону одновременно с одним человеком «прогулялись» 6 одинаковых телефонов. Но какой разный результат!
Читать дальше →
Всего голосов 44: ↑41 и ↓3+38
Комментарии12
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность