Обновить
3
0

Android Developer

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

Овладение Coordinator Layout

Время на прочтение7 мин
Охват и читатели218K
На презентации Google I/O 15, компания Google представила новую версию библиотеки поддержки которая реализует несколько компонентов, сильно связанных со спецификациями Material Design, среди этих компонентов вы можете найти новые типы ViewGroup такие как AppbarLayout, CollapsingToolbarLayout и CoordinatorLayout.

При правильном комбинировании и настройке данные Viewgroup могут быть очень мощным инструментом, по этому я решил написать статью с некоторыми настройками и советами.
Читать дальше →

ARCore: дополненная реальность на Android

Время на прочтение2 мин
Охват и читатели38K
Более двух миллиардов устройств работает на Android — крупнейшей мобильной платформе в мире. Последние девять лет мы работали над созданием широкого набора инструментов, фреймворков и API, благодаря которым продукты разработчиков становятся доступными каждому. Сегодня мы запускаем превью версию нового SDK (набора средств для разработки программного обеспечения) — ARCore. Это позволит применять технологию дополненной реальности на уже существующих и новых устройствах Android. Разработчики могут начать экспериментировать с ARCore уже сейчас.


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

Обработка ошибок в Kotlin/Java: как правильно это делать?

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

Источник


Обработка ошибок в любой разработке играет важнейшую роль. В программе может пойти не так практически всё: пользователь введёт некорректные данные, или они могут прийти такими по http, или мы ошиблись при написании сериализации/десериализации и в процессе обработки программа падает с ошибкой. Да может банально закончится место на диске.


спойлер

¯_(ツ)_/¯, нет единого способа, и в каждой конкретной ситуации придётся подбирать наиболее подходящий вариант, но есть рекомендации, как это делать лучше.

Читать дальше →
Праздники только подошли к концу, а уже хочется, чтобы начались новые? И каждое новое утро ты опять до последнего переставляешь будильник и едва сползаешь с постели; за завтраком, только подумав о скором начале рабочего дня, входишь в транс; а уже через час-два работы готов снести с телефона почту и мессенджеры или по крайней мере хлопнуть крышкой ноутбука?

Профессиональное выгорание знакомо едва ли не каждому крутому специалисту. Можно выгореть из-за овертаймов, окружения, по причине профессиональной стагнации… Но! Оказывается, можно и не выгорать вообще.

Под катом — про личный опыт сотрудников Deutsche Telekom IT Solutions. И опыт профессионального выгорания, последующего восстановления и в результате «отлитых в граните» принципов. И абсолютное недоумение по этому поводу вплоть до хлёсткого эпитета «непрофессиональное выгорание».
На чьей вы стороне?

Темы и стили в Android-приложениях

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


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


В преддверии выхода темной темы было решено освежить в памяти всю информацию, касающуюся тем и стилей в Android-приложениях.

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

Зашифрованные предпочтения в Андроид

Время на прочтение4 мин
Охват и читатели16K
Добрый день. Меня зовут Дмитрий и я являюсь преподавателем базового курса «Android разработчик» в Otus. Сегодня я решил поделиться переводом статьи, которую считаю интересной и думаю, что она может быть полезной для многих читателей нашего блога.







Хранить данные в SharedPreferences очень быстро и удобно. Злоумышленникам также легко взглянуть на данные, хранящиеся в SharedPreferences …так что будьте осторожны с тем, что вы там поместили, и, возможно, придется задуматься о том, как хранить данные в зашифрованном формате.
Читать дальше →

Примеры xpath-запросов к html

Время на прочтение4 мин
Охват и читатели536K
Xpath — это язык запросов к элементам xml или xhtml документа. Также как SQL, xpath является декларативным языком запросов. Чтобы получить интересующие данные, необходимо всего лишь создать запрос, описывающий эти данные. Всю «черную» работу за вас выполнит интерпретатор языка xpath.
Очень удобно, не правда ли? Давайте посмотри какие возможности предлагает xpath для доступа к узлам веб-страниц.
Читать дальше →

Кэшируем пагинацию в Android

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

Наверняка каждый Android разработчик работал со списками, используя RecyclerView. А также многие успели посмотреть как организовать пагинацию в списке, используя Paging Library из Android Architecture Components.


Все просто: устанавливаем PositionalDataSource, задаем конфиги, создаем PagedList и скармливаем все это вместе с адаптером и DiffUtilCallback нашему RecyclerView.


Но что если у нас несколько источников данных? Например, мы хотим иметь кэш в Room и получать данные из сети.


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


image

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

Тестирование в Java. JUnit

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

Сегодня все большую популярность приобретает test-driven development(TDD), техника разработки ПО, при которой сначала пишется тест на определенный функционал, а затем пишется реализация этого функционала. На практике все, конечно же, не настолько идеально, но в результате код не только написан и протестирован, но тесты как бы неявно задают требования к функционалу, а также показывают пример использования этого функционала.

Итак, техника довольно понятна, но встает вопрос, что использовать для написания этих самых тестов? В этой и других статьях я хотел бы поделиться своим опытом в использовании различных инструментов и техник для тестирования кода в Java.

Ну и начну с, пожалуй, самого известного, а потому и самого используемого фреймворка для тестирования — JUnit. Используется он в двух вариантах JUnit 3 и JUnit 4. Рассмотрю обе версии, так как в старых проектах до сих пор используется 3-я, которая поддерживает Java 1.4.

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

TDDx2, BDD, DDD, FDD, MDD и PDD, или все, что вы хотите узнать о Driven Development

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

Просматривая статьи по проектированию ПО, я постоянно встречал тучу невиданных сокращений и вскользь упоминаемых практик разработки.



  • TDD — ну, это все знают, сначала пишем тесты, а потом остальной код.
  • BDD — что-то знакомое, вроде как, тоже тесты, но особенные.
  • TDD — снова? Так, стоп, тут речь уже не о тестах совсем. Но почему называется так же?
  • DDD — bound contexts, ubiquitous language, domain...
  • FDD — да сколько можно?
  • MDD — cерьезно, на основе диаграмм?
  • PDD — ...

Подходы к разработке делятся по сложности, областям применения и целям.
Думаю, настало время разобраться, зачем же они нужны, почему их так много, и как они могут быть нам полезны.


Мы начнем знакомиться с ними от самых простых до довольно сложных, рассмотрим примеры использования и плюсы и минусы каждого из них.

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

Dagger 2 Multibindings

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

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


Для данной статьи необходимы базовые знания по Dagger 2. В примерах использовался Dagger версии 2.11


Dagger 2 позволяет забайндить несколько объектов в коллекцию, даже в тех случаях, когда байндинг этих объектов происходит в разных модулях. Dagger 2 поддерживает Set и Map мультибайндинг.

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

Словарик айтишника или Что? Где? Куда? Часть 1

Время на прочтение8 мин
Охват и читатели307K
«Привет! Добро пожаловать! Спасибо, что приняла наш оффер. Пойдем знакомиться с твоей командой. У них как раз сейчас дейли. Ты вышла под конец спринта, поэтому пока работы для тебя не запланировали. Как стендап закончится, можешь почитать спеки, командные окиары и просмотреть бэклог на следующий спринт. По всем вопросам обращайся к своему пио
Это бессмыслица какая-то или деловой язык? Попробуем разобраться.
image
Читать дальше →

Android: динамически подгружаем фрагменты из сети

Время на прочтение5 мин
Охват и читатели16K
В этой статье мы рассмотрим, как загружать классы (в том числе, фрагменты) из сети во время выполнения программы, и использовать их в своем Android-приложении. Область применения подобной технологии на практике — это отдельная тема для разговора, мне же сама по себе реализация данной функциональности показалась довольно интересной задачей.

Приступим.
Читать дальше →

UICollectionViewLayout для пиццы из разных половинок

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

Чтобы сделать пиццу из половинок мы использовали два UICollectionViewLayout. Рассказываю о том, как мы написали такой лейаут для iOS, с чем столкнулись и от чего отказались.


Android-разработчикам: как сократить время реализации тёмной темы с пары месяцев до недели

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

Привет, меня зовут Влад Шипугин, я Android-разработчик в Redmadrobot. В этой статье я хочу поделится опытом реализации темной темы, создания удобного UI Kit, как для разработки, так и для дизайнеров. Я расскажу про использование Material Components и работу с Vector Drawable. Также вы узнаете, как быстро поддержать режим edge-to-edge с использованием Window Insets и познакомитесь с моей библиотекой — edge-to-edge-decorator.

Читать далее

Руководство по организации архитектуры Android приложения

Время на прочтение23 мин
Охват и читатели55K
Привет, Хабр! Представляю вашему вниманию вольный перевод «Руководство по архитектуре приложения (Guide to app architecture)» из JetPack. Все замечания по переводу прошу оставлять в комментариях, и они будут исправлены. Так же для всех будут полезны комментарии от тех кто использовал представленную архитектуру с рекомендациями её использования.

Это руководство охватывает лучшие практики и рекомендуемую архитектуру для создания надежных приложений. Эта страница предполагает базовое знакомство с Android Framework. Если вы новичок в разработке приложений для Android, ознакомьтесь с нашими руководствами для разработчиков, чтобы начать работу и узнать больше о концепциях, упомянутых в этом руководстве. Если вы интересуетесь архитектурой приложений и хотели бы ознакомиться с материалами этого руководства с точки зрения программирования на Kotlin, ознакомьтесь с курсом Udacity «Разработка приложений для Android с помощью Kotlin».

Опыт пользователя мобильного приложения


В большинстве случаев настольные приложения имеют единую точку входа с рабочего стола или программы запуска, а затем запускаются как единый монолитный процесс. Приложения на Android имеют гораздо более сложную структуру. Типичное приложение для Android содержит несколько компонентов приложения, включая Activities, Fragments, Services, ContentProviders и BroadcastReceivers.

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

Об особенностях архитектуры Android глазами не-Android разработчика

Время на прочтение6 мин
Охват и читатели13K
Недавно мы полностью переработали приложение Pyrus для Android. Первая версия приложения работала аж под Android 2.2. Отказавшись от поддержки Android ниже 4.1, мы смогли выплатить накопленный технический долг и заметно упростили исходный код. Да, мы потеряли часть пользователей (менее 1%), но зато мы сэкономили время разработчиков на исправление редких багов. Мы сможем инвестировать его в развитие функционала для всех текущих и новых пользователей. В долгосрочной перспективе это гораздо важнее.

Здесь мы делимся опытом, который может быть полезен тем, кто подумывает начать разработку для платформы Android.
Читать дальше →

Долгожданный View Binding в Android

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

Пару дней назад Google выпустил Android Studio 3.6 Canary 11, главным нововведением в которой стал View Binding, о котором было рассказано еще в мае на Google I/O 2019.


Читать дальше →
Лишившись сервисов Google на своих телефонах, Huawei разработала AppGallery — собственную платформу для публикации мобильных приложений с аналогичными функциями: от push-уведомлений до монетизации.


Сложно ли адаптировать игры из Google Play под нативные сервисы магазина приложений AppGallery? Есть ли у AppGallery уже достаточное количество пользователей, чтобы усилия по этой адаптации окупились? Приходится ли на свежей, мало обкатанной платформе бороться с подводными камнями?

Отвечаем на реальных примерах

Открытый урок «Диаграммы UML»

Время на прочтение1 мин
Охват и читатели13K
Всем бобра!

Наш курс «Разработчик С++» потихоньку растёт и ширится: присоединился новый преподаватель с очень богатым опытом — Юрий Авраменко. И он уже провёл у нас первый открытый урок по диаграммам UML, на котором разбирались: виды диаграмм, инструменты построения схем и диаграмм, варианты представлений и прочее.


Ждём вопросы тут или на Дне открытых дверей.

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Работает в
Зарегистрирован
Активность