Фичи с пошаговым заполнением — это любые анкеты, заявки и аналогичные штуки. Они часто встречаются, например, в банковских приложениях. И хотя с виду всё выглядит несложно, их разработка обычно вызывает головную боль.
Мы знаем удобный способ организовать работу пошаговой фичи. С его помощью удаётся минимизировать связи между экранами и легко вносить изменения в порядок шагов: добавлять новые экраны, менять их последовательность и логику показа пользователю.
Смотри карточки, а за подробностями — велкам на Хабр.
Мы знаем удобный способ организовать работу пошаговой фичи. С его помощью удаётся минимизировать связи между экранами и легко вносить изменения в порядок шагов: добавлять новые экраны, менять их последовательность и логику показа пользователю.
Смотри карточки, а за подробностями — велкам на Хабр.
👍7🔥5👏4
Back compatibility: как поддерживать разные версии Android в приложении
Компании стремятся к максимальному охвату аудитории приложения. А это значит, что разработчикам необходимо поддерживать самые разные версии Android.
Вам сильно повезет, если минимальной версией будет хотя бы Android 8.0, но иногда придётся адаптировать код и для Android 5.0.
Как узнать версию Android в приложении
В коде можно узнать, на какой версии Android работает приложение, и создать обработку для некоторой его части. Для этого следует обратиться к полю
Для сравнения с версиями следует обращаться к классу
Каждая версия Android привносила что-то новое в систему и интерфейс, а значит, и в работу разработчика. Изменения применяются к приложению с помощью параметра
На какую функциональность внутри приложения стоит обратить внимание
🔹 Permissions. Начиная с Android 6 их можно запрашивать в runtime. С Android 11 пользователям дали возможность точнее настраивать permissions для большей конфиденциальности. Подробнее
🔹 Уведомления. Обязательна настройка Notification channel с Android 8. Для Android 13 необходимо запрашивать новый permission. Подробнее
🔹 Криптография. Для разных версий меняется работа с KeyStore. С Android 6 стала доступна работа с отпечатком пальца. Подробнее
🔹 Ограничения на работу в фоне. Начиная с Android 5 правила работы для фоновых задач подвергались серьезным изменениям. Подробнее
🔹 Splash-экран. Начиная с Android 12 очень рекомендуется использовать встроенное решение от Google, а не кастомный splash-экран. Подробнее
🔹 Render Script. Начиная с Android 12 эта технология больше не поддерживается. Подробнее
🔹 Вибрации. Начиная с Android 10 добавили новые вибрации, которые может проигрывать устройство. Предыдущая реализация признана устаревшей. Подробнее
Подготовка к изменениям следующей версии
Иногда разработчикам дают превью некоторой функциональности, которая будет работать на полную только со следующей версии. К таким можно отнести Scoped Storage и новый Back Stack, например. Обязательно нужно внимательно читать документацию к обновлениям.
Разработчикам следует понимать, когда поддерживать старые версии становится бесполезно
С помощью аналитики — например, в Firebase — можно узнать, какой процент пользователей использует определенную версию ОС.
Если приложением не пользуются на устаревших системах, от их поддержки можно отказаться и упростить себе работу.
Компании стремятся к максимальному охвату аудитории приложения. А это значит, что разработчикам необходимо поддерживать самые разные версии Android.
Вам сильно повезет, если минимальной версией будет хотя бы Android 8.0, но иногда придётся адаптировать код и для Android 5.0.
Как узнать версию Android в приложении
В коде можно узнать, на какой версии Android работает приложение, и создать обработку для некоторой его части. Для этого следует обратиться к полю
Build.VERSION.SDK_INT.
Для сравнения с версиями следует обращаться к классу
Build.VERSION_CODES. В нём перечислены все версии Android и краткое описание, что изменилось.
Каждая версия Android привносила что-то новое в систему и интерфейс, а значит, и в работу разработчика. Изменения применяются к приложению с помощью параметра
targetSdkVersion— он указывает, для какой версии API было разработано приложение.
На какую функциональность внутри приложения стоит обратить внимание
🔹 Permissions. Начиная с Android 6 их можно запрашивать в runtime. С Android 11 пользователям дали возможность точнее настраивать permissions для большей конфиденциальности. Подробнее
🔹 Уведомления. Обязательна настройка Notification channel с Android 8. Для Android 13 необходимо запрашивать новый permission. Подробнее
🔹 Криптография. Для разных версий меняется работа с KeyStore. С Android 6 стала доступна работа с отпечатком пальца. Подробнее
🔹 Ограничения на работу в фоне. Начиная с Android 5 правила работы для фоновых задач подвергались серьезным изменениям. Подробнее
🔹 Splash-экран. Начиная с Android 12 очень рекомендуется использовать встроенное решение от Google, а не кастомный splash-экран. Подробнее
🔹 Render Script. Начиная с Android 12 эта технология больше не поддерживается. Подробнее
🔹 Вибрации. Начиная с Android 10 добавили новые вибрации, которые может проигрывать устройство. Предыдущая реализация признана устаревшей. Подробнее
Подготовка к изменениям следующей версии
Иногда разработчикам дают превью некоторой функциональности, которая будет работать на полную только со следующей версии. К таким можно отнести Scoped Storage и новый Back Stack, например. Обязательно нужно внимательно читать документацию к обновлениям.
Разработчикам следует понимать, когда поддерживать старые версии становится бесполезно
С помощью аналитики — например, в Firebase — можно узнать, какой процент пользователей использует определенную версию ОС.
Если приложением не пользуются на устаревших системах, от их поддержки можно отказаться и упростить себе работу.
🔥8👍7
Доклад про accessibility в прямом эфире — подключайся!
🚀 Через 10 минут, в 15:10 мск, наш разработчик Лёша начинает доклад «Адаптация Android-приложений для незрячих людей».
Разработчики часто не думают об Accessibility: TalkBack, произношение, увеличение — есть более приоритетные задачи. Но для миллиарда (!) людей доступность значит очень многое. А значит, рано или поздно перед тобой возникнет задача адаптировать приложение для людей с ограниченными возможностями.
Лёша расскажет, какие Accessibility Services существуют и как с ними работать. Полезная тема 😎
Подключайся к прямой трансляции >>
🚀 Через 10 минут, в 15:10 мск, наш разработчик Лёша начинает доклад «Адаптация Android-приложений для незрячих людей».
Разработчики часто не думают об Accessibility: TalkBack, произношение, увеличение — есть более приоритетные задачи. Но для миллиарда (!) людей доступность значит очень многое. А значит, рано или поздно перед тобой возникнет задача адаптировать приложение для людей с ограниченными возможностями.
Лёша расскажет, какие Accessibility Services существуют и как с ними работать. Полезная тема 😎
Подключайся к прямой трансляции >>
👍4👏3🔥1
Surf Mobile Team
Доклад про accessibility в прямом эфире — подключайся! 🚀 Через 10 минут, в 15:10 мск, наш разработчик Лёша начинает доклад «Адаптация Android-приложений для незрячих людей». Разработчики часто не думают об Accessibility: TalkBack, произношение, увеличение…
Адаптация_Android_приложений_для_незрячих.pdf
2.3 MB
А вот и обещанная презентация с выступления Лёши про Accessibility
🔥4🎉2
🔐 Беспарольная аутентификация – это будущее, которое мы заслужили!
Альянс FIDO представил новый подход к аутентификации — Passkeys.
Теперь не нужны пароли: авторизоваться можно, просто приложив палец к сканеру отпечатка или просканировав лицо с помощью Face ID или Windows Hello!
❓Зачем? Нам и с паролями хорошо живётся
Существует множество видов хакерских атак, нацеленных на получение или перехват паролей, передаваемых по сети.
Чтобы этого не происходило, вначале придумали двухфакторную аутентификацию.
✅ Это помогает от перехвата пароля: для аутентификации требуется одноразовый код-пароль из приложения-генератора или СМС.
❌ Но это заставляет пользователя делать лишние телодвижения.
Passkeys лишён этого недостатка: по сети между сервером и клиентом не передаётся никаких чувствительных данных. Всё работает через криптографию, основанную на публичном и приватном ключе.
🤯 Как это работает
Если не вдаваться в детали, краткий алгоритм аутентификации зарегистрированного пользователя такой:
• Сервер отправляет клиенту фиксированный набор байт, зашифрованный публичным ключом, который при регистрации был получен от клиента.
• Клиент получает набор байт, подтверждает свою личность через биометрию и этим разблокирует доступ к приватному ключу, находящемуся на устройстве.
• Клиент расшифровывает набор байт и отправляет серверу данные об успешной расшифровке и то, что клиент не скомпрометирован.
• Сервер перепроверяет эти данные и даёт доступ авторизованному пользователю.
По сети между участниками ходят только публичные данные: их перехватывать нет никакого смысла.
📱💻 Это кроссплатформенно
Все приватные ключи хранятся в зашифрованном виде в Google Password Manager и iCloud Keychain. Сторонние менеджеры паролей Bitwarden и 1Password скоро тоже обзаведутся подобной функциональностью.
Это уже работает на всех современных операционных системах и браузерах: iOS, macOS, Android, Windows, Linux, Google Chrome, Microsoft Edge, Safari.
Linux имеет поддержку Passkeys только в браузерах Google Chrome и Microsoft Edge.
Альянс FIDO представил новый подход к аутентификации — Passkeys.
Теперь не нужны пароли: авторизоваться можно, просто приложив палец к сканеру отпечатка или просканировав лицо с помощью Face ID или Windows Hello!
❓Зачем? Нам и с паролями хорошо живётся
Существует множество видов хакерских атак, нацеленных на получение или перехват паролей, передаваемых по сети.
Чтобы этого не происходило, вначале придумали двухфакторную аутентификацию.
✅ Это помогает от перехвата пароля: для аутентификации требуется одноразовый код-пароль из приложения-генератора или СМС.
❌ Но это заставляет пользователя делать лишние телодвижения.
Passkeys лишён этого недостатка: по сети между сервером и клиентом не передаётся никаких чувствительных данных. Всё работает через криптографию, основанную на публичном и приватном ключе.
🤯 Как это работает
Если не вдаваться в детали, краткий алгоритм аутентификации зарегистрированного пользователя такой:
• Сервер отправляет клиенту фиксированный набор байт, зашифрованный публичным ключом, который при регистрации был получен от клиента.
• Клиент получает набор байт, подтверждает свою личность через биометрию и этим разблокирует доступ к приватному ключу, находящемуся на устройстве.
• Клиент расшифровывает набор байт и отправляет серверу данные об успешной расшифровке и то, что клиент не скомпрометирован.
• Сервер перепроверяет эти данные и даёт доступ авторизованному пользователю.
По сети между участниками ходят только публичные данные: их перехватывать нет никакого смысла.
📱💻 Это кроссплатформенно
Все приватные ключи хранятся в зашифрованном виде в Google Password Manager и iCloud Keychain. Сторонние менеджеры паролей Bitwarden и 1Password скоро тоже обзаведутся подобной функциональностью.
Это уже работает на всех современных операционных системах и браузерах: iOS, macOS, Android, Windows, Linux, Google Chrome, Microsoft Edge, Safari.
Linux имеет поддержку Passkeys только в браузерах Google Chrome и Microsoft Edge.
👍9🔥5👏4
🕹 Подборка: игровые движки для Android-разработчиков
Многие из нас любят видеоигры: почиллить на диване с геймпадом, сыграть в сессию чего-нибудь на мобилке по дороге в офис или пойти в рейд в неизведанный данж.
Нам стало интересно: какие есть движки, которые бы позволили Android-разработчику за пару часов накидать элементарную сцену или запрограммировать физику объекта. Без знания C++ и других специфических навыков.
Лови подборку 👇👇👇
🔹 LWJGL — кроссплатформенная Java-библиотека. Умеет работать с OpenGL, VulkanApi, OpenAL. Самый известный проект на этом движке — Майнкрафт 😎
🔹 LibGDX — кроссплатформенный игровой Java-движок, история которого началась в 2014 году. Он использует LWJGL и с ним можно работать c помощью других JVM-языков: Ceylon, Clojure, Kotlin, Jython, JRuby и Scala.
Если погуглить проекты на этом движке, найдется много статей в духе «Как я за один вечер сделал инди-игру». LibGDX — хорошее решение, если хочется слепить что-нибудь по фану в свободное время.
🔹 KorGe — игровой мультиплатформенный движок на Kotlin. Использует все преимущества этого языка.
🔹 jMonkeyEngine — 3D Java-движок, тоже использует LWJGL. Это уже более серьёзный движок: применяется в коммерческой разработке и computer-science курсах. Но потыкать в него палочкой в свободный вечер никто не запрещает — тем более что он бесплатный и вполне себе юзер-френдли 🐵
❓Какой движок интересно было бы попробовать?
Многие из нас любят видеоигры: почиллить на диване с геймпадом, сыграть в сессию чего-нибудь на мобилке по дороге в офис или пойти в рейд в неизведанный данж.
Нам стало интересно: какие есть движки, которые бы позволили Android-разработчику за пару часов накидать элементарную сцену или запрограммировать физику объекта. Без знания C++ и других специфических навыков.
Лови подборку 👇👇👇
🔹 LWJGL — кроссплатформенная Java-библиотека. Умеет работать с OpenGL, VulkanApi, OpenAL. Самый известный проект на этом движке — Майнкрафт 😎
🔹 LibGDX — кроссплатформенный игровой Java-движок, история которого началась в 2014 году. Он использует LWJGL и с ним можно работать c помощью других JVM-языков: Ceylon, Clojure, Kotlin, Jython, JRuby и Scala.
Если погуглить проекты на этом движке, найдется много статей в духе «Как я за один вечер сделал инди-игру». LibGDX — хорошее решение, если хочется слепить что-нибудь по фану в свободное время.
🔹 KorGe — игровой мультиплатформенный движок на Kotlin. Использует все преимущества этого языка.
🔹 jMonkeyEngine — 3D Java-движок, тоже использует LWJGL. Это уже более серьёзный движок: применяется в коммерческой разработке и computer-science курсах. Но потыкать в него палочкой в свободный вечер никто не запрещает — тем более что он бесплатный и вполне себе юзер-френдли 🐵
❓Какой движок интересно было бы попробовать?
🔥11👍7👏3
Прямой эфир: что нового в Android и чем нам помогут нейросети 📱
Обсудим нововведения Android 14 и использование нейросетей в нативной разработке в прямом эфире! У микрофона:
— Алексей Рябков, Surf Android TeamLead
— Герман Прошунин, Surf Android Developer
— Максим Кругликов, Surf Android Developer
— Кирилл Розов, Tinkoff Staff Engineer, автор YouTube-канала Android Broadcast
📅 14 апреля, 17:00 по мск
📌 YouTube-канал «Surf Tech»
Ждём всех 😉
Обсудим нововведения Android 14 и использование нейросетей в нативной разработке в прямом эфире! У микрофона:
— Алексей Рябков, Surf Android TeamLead
— Герман Прошунин, Surf Android Developer
— Максим Кругликов, Surf Android Developer
— Кирилл Розов, Tinkoff Staff Engineer, автор YouTube-канала Android Broadcast
📅 14 апреля, 17:00 по мск
📌 YouTube-канал «Surf Tech»
Ждём всех 😉
🔥11👍5👏3
Признавайтесь, балуетесь ChatGPT или чем-нибудь покрепче? 🧠
Мы, как и весь мир, тоже поймали тренд на нейросети и встраиваем их в рабочий процесс. Артём Пустовой, Android-разработчик, написал вводную статью о том, чем полезны нейросети при разработке мобильных приложений и как их создавать.
Гоу читать!
📌 И не забывайте: уже в эту пятницу, 14 апреля, в 17:00 мск — прямой эфир о нейросетях в Android. Встречаемся на нашем YouTube-канале «Surf Tech».
Мы, как и весь мир, тоже поймали тренд на нейросети и встраиваем их в рабочий процесс. Артём Пустовой, Android-разработчик, написал вводную статью о том, чем полезны нейросети при разработке мобильных приложений и как их создавать.
Гоу читать!
📌 И не забывайте: уже в эту пятницу, 14 апреля, в 17:00 мск — прямой эфир о нейросетях в Android. Встречаемся на нашем YouTube-канале «Surf Tech».
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Нейронные сети и Android: как их создавать и использовать в мобильных приложениях
Маски в Snapchat и Запрещёноgram, категоризация фотографий в галерее, улучшение качества фотографий в Google Camera — все эти фичи в приложениях используют нейронные сети. Будущее мобильных...
❤7🔥1👏1
Surf Mobile Team
Прямой эфир: что нового в Android и чем нам помогут нейросети 📱 Обсудим нововведения Android 14 и использование нейросетей в нативной разработке в прямом эфире! У микрофона: — Алексей Рябков, Surf Android TeamLead — Герман Прошунин, Surf Android Developer…
Привет! Через 10 минут начинаем эфир, подключайся 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Surf Mobile Team
Прямой эфир: что нового в Android и чем нам помогут нейросети 📱 Обсудим нововведения Android 14 и использование нейросетей в нативной разработке в прямом эфире! У микрофона: — Алексей Рябков, Surf Android TeamLead — Герман Прошунин, Surf Android Developer…
Запись стрима по нейросетям в Android
Спасибо всем, кто пришёл послушать! Запись прямого эфира «Что нового в Android и чем нам помогут нейросети» уже на канале. Приятного просмотра!
А ещё подписывайся на канал Кирилла Розова Android Broadcast😉
Спасибо всем, кто пришёл послушать! Запись прямого эфира «Что нового в Android и чем нам помогут нейросети» уже на канале. Приятного просмотра!
А ещё подписывайся на канал Кирилла Розова Android Broadcast
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2❤1
Flutter, KMM или натив — что лучше 🤜🤛
Два крутых Алексея — Рябков, Android-тимлид Surf, и Гладков, Mobile Developer — устроили битву умов и обсудили:
• Какую платформу сегодня выбрать для мобильной разработки?
• Когда следует отказываться от привычного в пользу нового?
• Какие бывают странные хотелки у заказчиков?
🎙 На чьей стороне ты? Смотри подкаст «Лента Мобиуса» и решай.
Пиши в комментариях, с какими странными запросами заказчиков ты сталкивался 🤔
Два крутых Алексея — Рябков, Android-тимлид Surf, и Гладков, Mobile Developer — устроили битву умов и обсудили:
• Какую платформу сегодня выбрать для мобильной разработки?
• Когда следует отказываться от привычного в пользу нового?
• Какие бывают странные хотелки у заказчиков?
🎙 На чьей стороне ты? Смотри подкаст «Лента Мобиуса» и решай.
Пиши в комментариях, с какими странными запросами заказчиков ты сталкивался 🤔
❤6👍5
Лайфхаки по UX на Android
Мы в Android-отделе при работе со стажёрами часто встречаемся со следующей ситуацией: стажёр всё делает хорошо и активно учится, но пропускает не совсем очевидные UX-кейсы.
Собрали в карточках список моментов, на которые стоит обратить внимание👆
#экспертный
Мы в Android-отделе при работе со стажёрами часто встречаемся со следующей ситуацией: стажёр всё делает хорошо и активно учится, но пропускает не совсем очевидные UX-кейсы.
Собрали в карточках список моментов, на которые стоит обратить внимание
#экспертный
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥7👍2