Как стать автором
Поиск
Написать публикацию
Обновить
129.83

Android *

Пишем под самую популярную мобильную ОС

Сначала показывать
Порог рейтинга
Уровень сложности

Что такое Android Lint и как он помогает писать поддерживаемый код

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

Что такое Android Lint и как он помогает писать поддерживаемый код


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


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


Привет, Lint


Мы используем инструмент под названием Lint (или Linter) для избежания таких проблем. Lint — это инструмент для статического анализа кода, который помогает разработчикам изловить потенциальные проблемы ещё до того, как код скомпилируется.

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

Параноидальные видео с митапа Яндекс.Денег

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

Недавно я читал статью о том, как научиться программировать под Android с нуля за полчаса. Она начиналась со слов «Вы можете даже не догадываться, но миллионы людей во всем мире зарабатывают деньги на разработке приложений под Android». Дальше в ней, конечно, не было ничего хорошего — установите Android Studio, вот вам XML, вот активити, здесь впечатайте текст на Java. Совершенно стандартная я-научу-вас-программировать-за-полчаса статья с рекламой платных курсов.


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


29 мая у нас прошёл митап Android Paranoid, и здесь три доклада с него. Коллеги подробно рассказали про ML Kit от Google, о разработке клиента для распределенной системы и про одно публичное API, которое Google не афиширует. Добро пожаловать под кат.

Экономия на мобильной кросс-платформенной разработке: кейс Skyeng

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


Привет, я Андрей Кучеренко, тимлид мобильной разработки Skyeng. Мы делаем мобильные приложения под iOS и Android. У них одинаковая функциональность и одинаковый с точностью до стилистики интерфейс. Но из-за разных платформ разработка вроде бы одного приложения получается довольно дорогой. В поисках возможности сэкономить на мобильной кросс-платформенной разработке, мы опробовали четыре решения:


  • Объединение iOS- и Android-разработчиков в одну команду
  • Создание рабочих групп для решения сложных задач
  • Экономия на ведении документации
  • Написание общего кода

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

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

Уменьшаем время сборки ваших Android-проектов

Время на прочтение6 мин
Количество просмотров11K
Доброе утро! Начинаем понедельник с материала, перевод которого подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс».



Недавно я переносил кодовую базу Android в Kure на AndroidX. Мне показалось, что это прекрасная возможность поработать над скоростью сборки проекта. У Gradle всегда была плохая репутация из-за медлительности и ресурсоемкости, но я был очень удивлен, что незначительные изменения в конфигурации сборки могут так значительно увеличить ее скорость.
Читать дальше →

Гонка вооружений

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


В мае на Google I/O 2019 было объявлено о новом фреймворке для разработки декларативного UI под Android с названием Jetpack Compose. Через месяц на WWDC 2019 было объявлено о декларативном UI фреймворке под IOS с названием SwiftUI. После этих конференции стало понятно, к чему стремится мобильная разработка, и мне захотелось разобраться, что можно сделать с помощью этих фреймворков на данный момент и в чем разница между ними.
Читать дальше →

Дайджест интересных материалов для мобильного разработчика #303 (17 — 23 июня)

Время на прочтение3 мин
Количество просмотров5.4K
В этом выпуске материалы про дизайн-системы, быструю доставку фич, подписку, законы UX, трудности локализации, про продвижение в Китае и даже создание магических книг. Подключайтесь!

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

AppsConf to rule them all

Время на прочтение6 мин
Количество просмотров2.3K
iOS и Android-треки для любителей классических конференций, чтобы лучше справляться с ежедневными рабочими задачами.

General-трек, чтобы сделать следующий шаг по карьерной лестнице.

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

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

Добавьте к этому оборудованные дискуссионные зоны, чтобы задать множество важных вопросов спикерам. А ещё мы услышали ваш фидбек и увеличили интервалы между докладами. Таким будет следующий AppsConf, если совсем коротко. А подробно, что, как, зачем, сейчас расскажу. Но сначала когда — 21–22 октября в Санкт-Петербурге.


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

Деливерим фичи быстрее. Опыт Android-разработки в Badoo

Время на прочтение14 мин
Количество просмотров9.5K
Всем привет! Меня зовут Анатолий Варивончик. Я работаю в Badoo уже больше года, а мой общий стаж Android-разработки — более пяти лет.

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

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


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

MBLT19 :: возвращение

Время на прочтение2 мин
Количество просмотров1.3K
Привет, Хабр! Мы с новостями. В прошлом году мы упоролись по созданию классной конференции MBLT DEV. В этом году её не будет. Мы решили бросить силы на конференцию MBLT и сделать ивент не только для разработчиков, но и для всех, кто создаёт и развивает мобильные продукты.

7-я Международная конференция MBLT19 пройдёт 26 сентября в Москве. Под катом рассказываем о темах и формате конференции.

image

Дайджест интересных материалов для мобильного разработчика #302 (10 — 16 июня)

Время на прочтение3 мин
Количество просмотров4.9K
В новом дайджесте продолжаются рассказы про WWDC и SwiftUI, а заодно говорим про темные режимы, гипер казуальные игры, приложения для людей, рынок фитнес-приложений и многое другое.

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

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

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

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

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


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

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

Локализация приложения и поддержка RTL. Доклад Яндекс.Такси

Время на прочтение9 мин
Количество просмотров4.6K
При локализации сервиса важно внимательно отнестись к согласованию переводов между собой. Руководитель группы клиентской Android-разработки Яндекс.Такси Александр Бонель рассказал, какие практики и инструменты упрощают локализацию. Во второй части доклада Саша поделился опытом поддержки языка RTL в приложении: что хорошо, а что не совсем работает у Андроида из коробки, какие проблемы возникают из-за поддержки RTL и как их минимизировать в будущем.


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

Темы и стили в Android без магии. И как их готовить с SwitchCompat

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

В предыдущей статье мы рассмотрели как использовать темы и стили на уровне кода, на примере кастомной view. В этой статье давайте разберем несколько способов стилизации стандартного ui элемента, а в частности SwitchCompat.
Читать дальше →

Ближайшие события

Как выглядит ваш текст?

Время на прочтение10 мин
Количество просмотров8.7K
Друзья, отличной всем пятницы. Хотим поделиться с вами переводом статьи, подготовленным специально для студентов курса «Android-разработчик. Продвинутый курс». Приятного прочтения.



Как декларативно стилизовать текст на Android.


Иллюстрация Вирджинии Полтрэк

TextView в Android-приложениях предоставляет несколько атрибутов для стилизация текста и различные способы их применения. Эти атрибуты можно установить непосредственно в layout’e, применить стиль к view или тему к layout’у или, если захотите, установить textAppearance. Но что же из этого следует использовать? И что произойдет, если их скомбинировать?
Читать дальше →

Flutter: прокачиваем AppBar & SliverAppBar

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

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


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


Я видел много вопросов на StackOverflow и в группах Facebook о том, как можно изменить AppBar и SliverAppBar с точки зрения поведения или дизайна.


Давайте рассмотрим две задачи.

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

5 распространенных ошибок при использовании архитектурных компонентов Android

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

5 распространенных ошибок при использовании архитектурных компонентов Android


Даже если вы не делаете этих ошибок, стоит о них помнить, чтобы не столкнуться с некоторыми проблемами в будущем.

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

«“Сделать приложение для людей” — это не набросать на коленке»: о мобильной разработке в ЦФТ

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


Какие проблемы возникают при увеличении мобильной команды в 10 раз? По каким причинам в одной и той же компании Android-разработчики предпочитают использовать известные библиотеки, а в iOS чаще пишут собственные решения? Каково живётся мобильным разработчикам в финтехе?

В нашей конференции Mobius приняла участие компания «Центр Финансовых Технологий», и в связи с этим мы расспросили двух сотрудников ЦФТ: за iOS отвечал Кирилл Зуев, а за Android — Михаил Емельянов.

Текст получился таким развёрнутым, что мы даже составили оглавление, чтобы легко было перейти к конкретной части:
Читать дальше →

Играем в Тетрис в AR

Время на прочтение10 мин
Количество просмотров6.4K
Пришла мне в голову немного странная мысль, что дом мог бы быть неплохой площадкой для игры в Тетрис. Недалеко от меня как раз располагалось одно подходящее для этого здание. Результат можно увидеть на видео:


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

Исходный код

Как мы внедряли навигацию из Jetpack в боевое приложение. Доклад Яндекс.Еды

Время на прочтение10 мин
Количество просмотров6.7K
В мобильных приложениях всё чаще используются deep links. Это ссылки, которые позволяют не просто перейти в приложение извне, а попасть на конкретный экран. Android-разработчик из Яндекс.Еды Владислав Кожушко объяснил, почему мы для реализации deep links внедрили навигацию из Jetpack, с какими проблемами столкнулись, как их решили и что получилось в итоге.


— Всем привет! Меня зовут Влад. Android-разработкой я интересуюсь с 2013 года, в Яндекс.Еде работаю с лета прошлого года. Я расскажу про наш путь внедрения библиотеки Navigation Components в боевое приложение.

Дайджест интересных материалов для мобильного разработчика #301 (3 — 9 июня)

Время на прочтение3 мин
Количество просмотров4.6K
Наконец-то можно сказать, что WWDC получился. Роскошный SwiftUI, новые версии операционных систем и новая iPadOS, App Store на часах, PencilKit, Catalyst для портирования приложений на macOS, новые инструменты для виртуальной реальности, реактивный Combine. На полгода разбираться как минимум. А потом уже и новую конференцию можно будет ждать.

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

Вклад авторов