Pull to refresh
0
0
Александр @KriopeG

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

Android insets: разбираемся со страхами и готовимся к Android Q

Reading time 23 min
Views 40K
Конференции Олега Бунина (Онтико) corporate blog Programming *Development of mobile applications *Development for Android *Mobile applications design *
Android Q — это десятая версия Android с 29-м уровнем API. Одна из главных идей новой версии это концепция edge-to-edge, когда приложения занимают весь экран, от нижней рамки до верхней. Это значит, что Status Bar и Navigation Bar должны быть прозрачными. Но, если они прозрачны, то системный UI нет — он перекрывает интерактивные компоненты приложения. Эта проблема решается с помощью insets.

Мобильные разработчики избегают insets, они вызывают у них страх. Но в Android Q обойти insets не удастся — придется их изучить и применять. На самом деле, в insets нет ничего сложного: они показывают, какие элементы экрана пересекаются с системным интерфейсом, и подсказывают, как переместить элемент, чтобы он не конфликтовал с системным UI. О том, как работают insets и чем они полезны, расскажет Константин Цховребов.

Total votes 22: ↑21 and ↓1 +20
Comments 9

Поднимаем CI на github для Android за день

Reading time 4 min
Views 10K
Development for Android *GitHub *Mobile applications testing *
Tutorial
Привет!

С появлением Github Actions проявил инициативу и интегрировал простенький (но вполне эффективный) CI/CD в наш небольшой, но уже как 2 года живой проект Flowwow.

Зачем?



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

Как минимизировать факапы на продакшене, расскажу ниже.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 15

Современная Android разработка на Kotlin. Часть 2

Reading time 24 min
Views 61K
Development of mobile applications *Development for Android *Kotlin *
Sandbox
Привет, Хабр! Представляю вашему вниманию перевод статьи "Modern Android development with Kotlin (Part 2)" автора Mladen Rakonjac.

Примечание. Данная статья является переводом циклов статей от Mladen Rakonjac, дата статьи: 23.09.2017. GitHub. Начав читать первую часть от SemperPeritus обнаружил, что остальные части почему-то не были переведены. Поэтому и предлагаю вашему вниманию вторую часть. Статья получилась объёмной.

image

«Очень сложно найти один проект, который охватывал бы всё новое в разработке под Android в Android Studio 3.0, поэтому я решил написать его.»
Total votes 21: ↑19 and ↓2 +17
Comments 5

Публикация Android библиотеки в jCenter

Reading time 8 min
Views 18K
Development for Android *
Sandbox


В жизни каждого андроид разработчика настаёт момент, когда количество самописных утилит и хелперов, качующих из проекта в проект, переваливает за десяток. В этом случае хорошей практикой будет оформление подобных хелперов в виде самостоятельных «модулей» в терминах Android Studio. Еще лучше, если Вы собираетесь поделиться Вашими наработками с комьюнити, снабдив исходный код подходящей лицензией. Но просто залить исходники на GitHub в этом случае будет недостаточно – хочется, чтобы любой желающий мог подключить библиотеку с помощью однострочной Gradle зависимости, например такой:

dependencies {
   compile 'com.github.romangromov:simpleprefs:0.0.8'
}

О том, как этого добиться и пойдет речь в данной статье.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 5

Написание шейдеров в Unity. GrabPass, PerRendererData

Reading time 9 min
Views 27K
Game development *Unity3D *
Sandbox
Привет! Я хотел бы поделиться опытом написания шейдеров в Unity. Начнем с шейдера искажения пространства (Displacement/Refraction) в 2D, рассмотрим функционал, используемый для его написания (GrabPass, PerRendererData), а также уделим внимание проблемам, которые обязательно возникнут.

Информация пригодится тем, кто имеет общее представление о шейдерах и пробовал их создавать, но мало знаком с возможностями, которые предоставляет Unity, и не знает с какой стороны подступиться. Загляните, возможно, мой опыт поможет вам разобраться.


Читать дальше →
Total votes 53: ↑53 and ↓0 +53
Comments 8

Разбираемся с Clean Code в Android

Reading time 7 min
Views 11K
Programming *Development of mobile applications *Designing and refactoring *Development for Android *Kotlin *
Translation
В качестве вступления хотелось бы вспомнить цитату дядюшки Боба
Вы читаете эту статью по двум причинам. Первая — Вы программист, вторая — Вы хотите быть лучшим программистом.
Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Comments 3

Coroutines :: опыт практического применения

Reading time 9 min
Views 28K
e-legion corporate blog Programming *Development of mobile applications *Development for Android *Kotlin *
В этой статье расскажу о том, как работают корутины и как их создать. Рассмотрим применение при последовательном, параллельном выполнении. Поговорим об обработке ошибок, отладке и способах тестирования корутин. В конце я подведу итог и расскажу о впечатлениях, которые остались после применения данного подхода.

Статья подготовлена по материалам моего доклада на MBLT DEV 2018, в конце поста — линк на видеозапись.

Последовательный стиль


Total votes 27: ↑27 and ↓0 +27
Comments 3

7 полезных советов для тех, кто использует Room

Reading time 7 min
Views 8.8K
Programming *Development of mobile applications *Development for Android *
Translation

7 полезных советов для тех, кто использует Room


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


7 шагов к использованию Room. Пошаговое руководство по миграции приложения на Room

А в этой статье я хотел бы поделиться несколькими советами о том, как максимально эффективно использовать Room.

Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Comments 1

30 Android-библиотек и инструментов, которые не должны пройти мимо вас в 2018 году

Reading time 9 min
Views 35K
Programming *Development of mobile applications *Development for Android *Kotlin *
Translation

30 Android-библиотек и инструментов, которые не должны пройти мимо вас в 2018 году


В течение лета 2018 года было разработано и обновлено множество отличных Android-библиотек и инструментов.


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


Надеюсь, вам понравится. Давайте начнём!

Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Comments 5

Material Design: Shape – советы по улучшению GUI приложения Android (и не только) с помощью изменения форм элементов

Reading time 9 min
Views 14K
Development for Android *Mobile applications design *Graphic design *
Translation


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


Здравствуйте. Этот перевод я делаю потому как сам недавно начал разбираться с Shape в Android, решил пошарить по material.io, и нашел там этот сборник советов по использованию. Мне он показался интересным, полезным, и познавательным, поэтому я решил поделиться им с российским сегментом разработчиков мобильных приложений.

Мне кажется что эта тема достаточно важная, ведь использование разных форм для элементов интерфейса делает приложение интереснее, и может быть даже серьезнее.

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

Надеюсь что вы сможете извлечь пользу из прочитанного, и возможно улучшить качество своих приложений.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 1

Искусственный интеллект упёрся в барьер понимания

Reading time 5 min
Views 32K
Machine learning *Popular science Artificial Intelligence The future is here
Translation
Алгоритмы машинного обучения ещё не понимают реальность так, как это делают люди — иногда с катастрофическими последствиями

Об авторе: Мелани Митчелл — профессор компьютерных наук в Портлендском государственном университете и приглашённый профессор в Институте Санта-Фе. Её книга «Искусственный интеллект: руководство для мыслящих людей» будет опубликована в 2019 году издательством Farrar, Straus, and Giroux


Посетитель выставки Artificial Intelligence Expo в ЮАР, сентябрь 2018 года. Фото: Nic Bothma/EPA, via Shutterstock

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

Сегодняшние программы могут распознавать лица и записывать речь. У нас есть программы для обнаружения тонкого финансового мошенничества, для нахождения релевантных веб-страниц в ответ на неоднозначные запросы, для прокладки оптимального маршрута практически в любом месте, эти программы побеждают гроссмейстеров в шахматы и Go и переводят между сотнями языков. Более того, нам обещают уже скоро и повсеместно беспилотные автомобили, автоматическую диагностику рака, роботов по уборке домов и даже автоматические научные открытия.
Читать дальше →
Total votes 37: ↑34 and ↓3 +31
Comments 99

ViewModel и LiveData: паттерны и антипаттерны

Reading time 7 min
Views 42K
Development for Android *
Sandbox
Привет, Хабр! Представляю вашему вниманию перевод статьи ViewModels and LiveData: Patterns + AntiPatterns автора Jose Alcérreca.

View и ViewModel


Распределение ответственностей


Типичное взаимодействие объектов приложения, построенное с помощью Архитектурных Компонентов:

image

В идеале ViewModel не должна ничего знать про Android. Это улучшает тестируемость и модульность, снижает кол-во утечек памяти. Основное правило — в Вашей ViewModel не должно быть импортов android.* (за исключением вроде android.arch.*). Это относится и к Presenter.
ViewModel (и Presenter) не должны знать о классах фреймворка Android

Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Comments 5

Unity3D: архитектура игры, ScriptableObjects, синглтоны

Reading time 6 min
Views 26K
Game development *Unity3D *
Sandbox
Сегодня речь пойдет о том, как хранить, получать и передавать данные внутри игры. О замечательной вещи под названием ScriptableObject, и почему она замечательна. Немного затронем пользу от синглтонов при организации сцен и переходов между ними.

Данная статья описывает частичку долгого и мучительного пути разработки игры, различные примененные в процессе подходы. Скорее всего, здесь будет много полезной информации для новичков и ничего нового для «ветеранов».
Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Comments 15

25 занимательных Android библиотек. Весна 2018

Reading time 5 min
Views 19K
Java *Development for Android *
Это список из 25 новейших Android-библиотек, проектов и инструментов, выпущенных за последние 3 месяца. Здесь нет первого и последнего места, это просто список интересных библиотек. Они определённо заслуживают вашего внимания. Наслаждайтесь!


Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Comments 2

Understanding Dependencies

Reading time 12 min
Views 57K
Website development *Programming *Java *Perfect code *ООP *
Translation

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


Мы — внедрители. Мы должны внедрять, а не фантазировать!
(Рина Зеленая, к/ф «Девушка без адреса»)

К переводу этой статьи меня побудили две причины: 1) желание лучше разобраться с фреймворком Spring, 2) небольшое количество источников по теме на русском языке.

Краеугольный камень ООП — «внедрение зависимостей». Если описание процесса «внедрения» в целом, удовлетворительно, то объяснение понятия «зависимость» обычно оставляют за скобками. На мой взгляд, это существенное упущение.



Чтобы не фантазировать, а внедрять, нужно сначала разобраться с тем, что мы внедряем. И в этом нам может помочь лаконичная статья Jakob Jenkov «Understanding Dependencies». Она будет полезна не только тем, кто пишет на Java, но и тем, кто пишет на других языках и следит за качеством проектирования приложений.

UPD: Я перевел еще одну статью Jakob Jenkov о зависимостях. Читайте на Хабре перевод статьи Dependency Injection, которая открывает одноименную серию статей и по смыслу продолжает данную статью. В статьях серии рассматриваются такие понятия как Dependency, Dependency Injection (DI), DI-контейнеры.

Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Comments 16

Свежая подборка ресурсов для маркетолога мобильных приложений: книги и блоги

Reading time 6 min
Views 21K
Productivity Inside corporate blog Growth Hacking *Mobile applications monetization *Mobile App Analytics *Games promotion *


Оставаться хорошим маркетологом без постоянного самообразования немыслимо — банальная истина, о которой, тем не менее, часто забывают. А если вы занимаетесь продвижением мобильных приложений, то задача усложняется: не так легко найти проверенные источники с актуальной информацией, которую можно использовать на практике. Сегодня мы приготовили для вас пятничную подборку из 10 книг последних лет и 10 блогов, которые могут быть полезны маркетологу мобильных приложений.
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 2

Интеграция Google Pay

Reading time 8 min
Views 25K
Trinity Digital & Баласс Group corporate blog Programming *Development for Android *Kotlin *
Tutorial
Привет, Хабр!

Меня зовут Игорь, я Android-разработчик в команде Trinity Digital. Сегодня я хочу рассказать о классном инструменте — Google Pay API.

изображение с сайта https://developers.google.com/payments/

Итак, если в вашем приложении можно совершать покупки, и при этом вы используете не In-app Billing (за процессинг отвечает не Google Play), то скорее всего среди вариантов оплаты у вас есть и “Оплата картой”. А это значит, что вам каждый раз приходится отправлять пользователя вводить данные карты или на красиво сверстанные экраны с картой, или на веб-сайт вашего провайдера платежных сервисов (далее — payment processor). Уже посчитали сколько действий придется совершить пользователю, чтобы оплатить заветный заказ? Ага, а теперь представьте, что он сможет выполнить то же целевое действие всего в два тапа. Мы тоже представили и подумали, а почему бы не дать пользователям такую возможность? Основные условия успеха — продавец быть зарегистрирован в Google и payment processor должен сотрудничать с Google.
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 3

Головная боль от RecyclerView.Adapter — выход есть

Reading time 5 min
Views 16K
Google Developers corporate blog Java *Development of mobile applications *Development for Android *Mobile applications design *
Привет, Хабр! Сегодня в нашем блоге Макс Туев, архитектор Surf, одной из наших сертифицированных студий. Ребята занимаются заказной разработкой, поэтому сроки важны не меньше, чем качество кода. Подходы и технологии, которые тормозят разработку, здесь не подходят. Хороший пример такого — RecyclerView.Adapter. Под катом Макс расскажет, как сэкономить время и нервы. Слово Максу.


Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Comments 4

Использование SVG в качестве Placeholder’a

Reading time 7 min
Views 37K
Edison corporate blog Website development *Image processing *Usability *Graphic design *
Translation
image

Генерация SVG из изображений может использоваться для Placeholder’ов.

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

В последние дни я сталкивался с некоторыми методами загрузки, которые используют SVG, и я хотел бы описать их в этом посте.

В этом посте мы рассмотрим следующие темы:

  • Обзор различных типов Placeholder’ов
  • Placeholder на основе SVG (контуры, фигуры и силуэты)
  • Автоматизация процесса.

Читать дальше →
Total votes 117: ↑117 and ↓0 +117
Comments 53

Не используйте лямбды в качестве слушателей в Kotlin

Reading time 10 min
Views 14K
Development for Android *Kotlin *
Sandbox
Привет, Хабр! Представляю вашему вниманию перевод статьи Don't use lambdas as listeners in Kotlin автора Alex Gherschon

От переводчика: Kotlin — очень мощный язык, который позволяет писать код лаконичней и быстрей. Но, в последнее время, появилось слишком много статей, которые описывают хорошие стороны языка, приумалчивая о подводных камнях, а они есть, ведь язык привносит новые конструкции, которые являются черным ящиком для новичка. В этой статье, которая является переводом, рассматривается использование лямбд в качестве слушателей в Android. Она поможет не наступить на те же грабли, на которые наступил и автор, ведь, в конечном итоге, специфика платформы никуда не девается при смене языка.
Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Comments 4

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity