26 июля прошёл очередной Samsung Galaxy Unpacked. В этот раз компания представила уже пятую версию складных смартфонов Fold. Ещё совсем недавно подобные устройства считались экзотическими, а сейчас это обычный гаджет, которым пользуются достаточно много людей.
Появление подобных устройств привело к тому, что разработчики мобильных приложений должны дополнительно думать о том, как их приложения будут работать, а главное, смотреться на нестандартных экранах foldable гаджетов. Звучит просто, но, как всегда, путь будет тернист.
Итак, знакомьтесь: Михаил.
Миша - фрилансер. Он занимается мобильной разработкой под Android на протяжении нескольких лет. За это время он научился вслепую дебажить NDK-код, потратил сутки своей жизни только на gradle-сборку и двое на синхронизацию, потерял счет инвалидированным кэшам и перезапущенным Android Studio. В целом, работа ему очень нравится, он рад, что научился превращать раскрашенные кнопки в деньги.
Однажды ему предложили работу, с которой он никогда не сталкивался: проверка и корректировка мобильного приложения для складного устройства. Денег предлагали вагон и маленькую тележку, да и рейтинг у заказчика был хороший. Подозрительно несложная работа. Миша долго размышлял, стоит ли брать ему этот неординарный заказ, но, проснувшись в одно утро с бодрым настроением, наш герой твердо решил для себя, что сделает это. Через 10 минут Миша уже был добавлен в репозиторий с единственным сообщением от заказчика: “Удачи ????”.
После запуска приложения на своем, привычном для всех, смартфоне герой не увидел в нем ничего сложного: пара экранов, небольшая навигация между ними. Он был очень рад и уже представлял, как будет на заработанные деньги лежать на пляже, попивая смузи.
И Михаил радостно приступил к работе: пошел в Starbucks Stars Coffee, заказал кофе, включил свой ноутбук, открыл проект. И тут задался несколькими вопросами:
А как протестировать работу приложения не в стерильных условиях эмулятора, а на реальном устройстве?
Как проверить его производительность на мобильных процессорах?
Как изучить поведение приложения при запуске на версии Android с оболочкой?
Как быть уверенным в правильной работе с реальной камерой или с живыми датчиками?
На помощь к нему пришел Samsung RTL.
Remote Test Lab (RTL) - это сервис от Samsung, который предоставляет пользователям возможность тестировать и пробовать свои приложения на устройствах Samsung удаленно, через интернет.
Мише не придется приобретать на всю зарплату новый складной Galaxy. Все, что ему потребуется - компьютер с доступом в интернет. С помощью Remote Test Lab он сможет удаленно использовать реальные устройства, находящиеся в лаборатории Samsung, и сможет взаимодействовать с ними так же, как если бы они были у него в руках. Ему просто нужно будет выбрать любое устройство, расположенное на ферме, и подключиться к его демонстрации экрана.
Перед началом работы Миша наткнулся на статью, которая рассказывала об RTL. Внимательно ее прочитав, он заметил, что с момента написания парк устройств вырос с 17 до 40 моделей, и что теперь не требуется скачивать отдельный клиент для подключения к устройству: все доступно в браузере.
Наш герой работал над приложением Umbrella - системой проката зонтиков. Идея проста: пользователь во время дождя может брать зонты в аренду. Идея похожа на прокат powerbank’ов / самокатов.
Во время регистрации Миша заметил, что в RTL уже можно было арендовать новые Galaxy Z Flip и Fold 5, хотя с момента их анонса прошло меньше недели. Вместе с ними были доступны и устройства A, S, F, M, Note, Tab, Watch - серий и предыдущие foldable-поколения.
После регистрации герой сразу получил 10 внутренних ежедневных кредитов, которых хватило бы на два с половиной часа тестирования, но для начала он решил ограничиться получасом.
Взяв в аренду новый Z Fold и установив на него последнюю сборку приложения, он приступил к тестированию.
Решено было начать с моментов, связанных с изменением состояния экрана при повороте и складывании / раскладывании устройства. В первом случае проблем не возникло, приложение отображалось только в портретном режиме. Для второй проверки потребовалась соответствующая функция в RTL.
Таким образом был найден первый баг: введенные пользователем данные не сохранялись при раскладывании экрана. Видимо, разработчики знали об этом баге и просто запретили поворот экрана, не задумавшись о том, что в некоторых случаях его может быть недостаточно.
Изменением состояния экрана Миша решил протестировать и другие моменты работы приложения при:
Сетевом взаимодействии - получении данных с сервера
Отображении статического контента
Второй баг был обнаружен с разметкой при использовании приложения на первом Galaxy Fold: layout ввода кода подтверждения отображался неверно на внешнем экране.
Кроме того, Миша обратил внимание, что иногда интерфейс был не совсем оптимален для текущего состояния устройства. Требуется добавить больше вариаций расположения виджетов на экране.
Под конец тестирования Миша был очень доволен тем, что больше багов он не нашел, что смог протестировать приложение на большом количестве складных устройств совершенно бесплатно, и что дальше он может использовать Samsung Remote Test Lab для тестирования приложений на устройствах Samsung всех актуальных линеек.
Наш герой уже начал представлять, как оставит всего один эмулятор для разработки, заменив остальные на RTL, как ему будет намного проще оценивать реальную производительность приложения на живых устройствах, как он забудет о словах: “Это баг эмулятора” и насколько реже он будет видеть сообщения об обновлении системных образов эмуляторов.
На текущий момент парк смартфонов в RTL для России насчитывает 250 устройств. В этот список входят следующие модели:
Такие удаленно управляемые устройства предоставляют настоящий пользовательский опыт. Приложение тестируется на реальном “железе”, поэтому баги, связанные с особенностями эмулятора, исключены
Каждое устройство подключено к точке доступа и имеет бесплатный доступ в интернет
На устройствах установлены разные версии Android, следовательно можно запускать приложение на разных версиях API
Парк постоянно обновляется. Можно тестировать приложение на самых новых продуктах компании Samsung
Тестировщик имеет доступ к debug-инструментам(ADB, logcat, file browser, automated tests и т.д)
Samsung RTL - невероятно мощный и удобный инструмент в арсенале мобильного разработчика, позволяющий тестировать мобильные приложения в реальных условиях, на настоящих, физически существующих смартфонах.
А что насчет Миши? Поехал ли он на пляж? Вкусный ли был смузи? Хочет ли Миша продолжать заниматься таким фрилансом? Миша начал работать над приложением для системы проката зонтиков, а вместе с этим изучает гайдлайны, которым следуют при разработке на foldable-устройства. С нетерпением ждем Мишу через две недели с рассказом о том, насколько интересен и необычен дизайн-мир складных устройств.
Авторы
Игорь Ефимов
Всем привет! Меня зовут Игорь, я ученик Томского Государственного университета. В 2021 году я выпустился из IT-Школы Samsung, получив Гран-при в выпускном конкурсе, и уже второй год я работаю в ней преподавателем. Параллельно больше года на фрилансе я разрабатываю нативные приложения под обе мобильные платформы: Android и iOS.
Антон Воробьев
А меня зовут Антон, из IT-школы я выпустился ровно через год после Игоря, в 2022 году. Так же, как и Игорь, победил во всероссийском конкурсе ‘'IT-школа выбирает сильнейших’', взяв Гран-при. Сейчас я учусь в Высшей Школе Экономики и активно развиваюсь в мобильной разработке, чтобы устроиться на свою первую в жизни работу.
Антон и Игорь - выпускники бесплатной школы программирования «IT Школа Samsung». Можно заниматься очно на одной из 67 площадок. Хотите достичь уровня Junior-разработчика мобильных приложений на Java уже в школе? Скоро начинается учебный год, успейте подать заявку здесь: https://innovationcampus.ru/itschool/