Приложение должно работать под версиями ios android
Если вы проектируете приложения для iOS и Android (Material Design), то это руководство станет вашим новым лучшим другом ?.
Мы рассмотрим наиболее важные для UX / UI дизайнеров различия между iOS и Android. Если вы создали приложение для одной платформы, то из этой статьи вы узнаете, что нужно, чтобы «перевести» его на другую платформу. Но, это всего лишь рекомендации. Речь идет о переводе «iOS-мышления» на «Android-мышление» и наоборот.
Дизайн интерфейса iOS и Android: основные отличия
Ниже представлены наиболее важные различия, которые UX / UI дизайнеры должны учитывать при «переводе» приложения с iOS на Android или наоборот:
Элемент дизайна | iOS | Android |
Минимальный размер цели нажатия | 44×44 pt | 48×48 dp (Что такое dp?) |
Основная навигация приложений | Панель нижней навигации | Вкладки вверху экрана |
Дополнительная навигация приложений | Кнопка «More» на нижней панели или интерфейс текущей страницы | Панель нижней навигации или боковое гамбургер-меню |
Главная кнопка/действие | Верхняя навигация, с правой стороны | Floating action button |
Вторичные действия | Интерфейс текущей страницы | Верхняя навигация, с правой стороны |
Список с единственным вариантом выбора | Список с галочкой для выбранного элемента | Список Radio button |
Списки множественного выбора | Список с переключателями или список с галочками для выбранных элементов | Список с галочками или список с переключателями |
Подтверждение или отмена деструктивного действия | Модальное диалоговое окно подтверждения выбора | Отмена действия посредством временного уведомления на экране |
Да, и прежде чем мы углубимся в эту тему, давайте ответим на один важный вопрос, который определяет все остальное…
Нужно ли делать приложения для Android и iOS разными?
Если коротко, то «нет».
Apple и Google – очень умные компании с миллионами пользователей. Они будут совершать UX-ошибки, как и любая другая компания, но они не совершат вопиющих ошибок, когда будут определять язык дизайна своих систем. Поэтому, хотя, ниже я и представляю два альтернативных подхода (iOS и Android), ни один из них не является неправильным. Если пользователи могут уверенно перемещаться по вашему приложению и использовать его, никто не может запретить вам использовать вкладки на iOS или модальные представления на Android.
Если ваша цель – создать приложение для обеих платформ так, чтобы оно было нативным для той системы, на которой работает, то это руководство для вас.
Навигация iOS и Android
Навигация в верхней части экрана
Начнем с вершины – буквально. Каждая платформа имеет разные стандарты для того, что отображается в верхней части большинства экранов.
В iOS крайнее левое действие почти всегда является действием «назад» – последовательно к предыдущему экрану («Шаг 2» возвращает к «Шагу 1»), или иерархически к родительскому экрану (переход от «Inbox» к «Mailboxes»). Кроме того, здесь может быть привязан несвязанный пункт назначения. Заголовок страницы практически всегда присутствует, но сжимается по мере прокрутки представления пользователем. Дополнительные действия на странице могут отображаться, как одно текстовое действие или несколько иконок.
На Android заголовок страницы выравнивается по левому краю. Слева от заголовка страницы не должно быть ничего, но (а) если это страница верхнего уровня и в приложении есть кнопка гамбургер-меню, она расположена там, или (б) если эта страница следует другой последовательно, вы можете (по желанию) добавить кнопку назад.
Основная навигация
Основная навигация или «пункты назначения» приложений расположены по-разному.
В iOS-приложениях основные пункты назначения перечислены в виде вкладок в нижней части экрана.
- Всего 2-5 вкладок
- Они имеют размер шрифта 10
- Они представляют основные пункты назначения
Многие популярные сторонние iOS-приложения также соответствуют нескольким дополнительным правилам:
- Любая вкладка, представляющая основное действие приложения – например, добавление новой фотографии в фото-приложение – центрируется
- Любая вкладка профиля или настроек расположена последней
- Поиск идет вторым
С другой стороны, iOS-приложения по умолчанию (1) не поощряют действия, находящиеся на панели вкладок, (2) не имеют вкладок, связанных с профилем или настройками, и (3) показывают поиск последним.
Самое большое различие в приложениях Android заключается в том, что одни и те же основные пункты назначения распространены по всему интерфейсу – часто между (a) кнопкой гамбургер-меню, (b) панелью поиска, (c) вкладками или (d) floating action button. Мы поговорим обо всех 4 элементах в следующих разделах. Да, и обратите внимание: Android использует нижнюю навигацию совсем недавно, аналогично iOS – так что вы можете вообще не делать разницу между версиями приложений.
Вторичное навигационное меню
В iOS пункты навигации, которые не помещаются в нижней панели вкладок, могут (a) быть перенаправлены на универсальную вкладку «More» или (b) отображаться как действия в верхнем левом или верхнем правом углу других пунктов назначений.
На Android вторичные навигационные пункты назначения перечислены в боковом меню, доступном при нажатии кнопки гамбургер-меню.
Примечание: хотя Apple специально не рекомендует использовать кнопку гамбургер-меню, у многих сторонних iOS-приложений она есть, и вы можете сами выбрать, использовать ее или нет. Лучше всего избегать элементов, скрывающих важные вещи, потому что очевидное всегда побеждает.
Ресурсы: Material Design nav drawer
В iOS вы можете перемещаться назад 4 различными способами, в зависимости от контекста.
Что такое модальные и полноэкранные представления? Хорошо, что вы спросили.
Полноэкранные окна – это медиа-файлы, фотографии или видео, которые занимают весь экран. Их можно закрыть на iOS и Android, свайпом вниз.
Дизайн элементов управления iOS и Android
Основные кнопки призыва к действию
В iOS основная кнопка страницы обычно находится в правом верхнем углу.
В Android, однако, основная кнопка страницы часто отображается в правом нижнем углу, как кнопка floating action button или сокращенно FAB.
Стоит отметить, что у каждой платформы будут исключения. Давайте рассмотрим их.
Иногда в iOS важные действия страницы отображаются на нижней панели инструментов. Apple любит подчеркивать, что она очень отличается от панели вкладок, но мы-то знаем.
В Android, напротив, иногда важные действия будут отображаться в верхней части экрана.
Поиск
Как на iOS, так и на Android поиск – очень гибкий элемент управления. Иногда это основной пункт приложения, иногда это крайний вариант использования, и большую часть времени он находится между этими двумя вариантами. Как и следовало ожидать, каждая платформа обеспечивает определенную гибкость. Давайте посмотрим на общие парадигмы.
Одно из различий в стиле поиска между iOS и Android:
- Чтобы отменить поиск, в iOS нажмите «Отмена» или «←» в Android
- Чтобы очистить текущий запрос, но остаться на экране поиска, нажмите «X» в iOS или «X» в Android
Когда поиск является очень важной функцией приложения, iOS и Android сразу отобразят панель поиска. Нажатие на строку поиска откроет отдельный экран.
Если поиск не является критически важным, вы можете получить к нему доступ из других мест.
В iOS поиск обычно отображается среди основных вкладок или действий в верхней навигационной панели.
В Android вы также найдете его в контекстных действиях на верхней панели.
Меню действий
В iOS меню действий могут быть вызваны любой кнопкой или попыткой предпринять какое-либо действие. Они скользят снизу-вверх, в легко доступную область экрана.
В Android, однако, нижние листы появляются только при нажатии на иконку с тремя точками (это иконка Android для «дополнительных параметров»). И обычно появляются снизу только тогда, когда есть много вариантов возможных действий.
Обе платформы имеют свои стандарты для меню действий.
В новой версии iOS (iOS 13) функция, называемая «контекстное меню», отображает связанные действия при нажатии и удержании элемента. Когда отображается контекстное меню, фон размыт.
А в Android многие меню будут отображаться прямо на элементе. В более новых версиях Android меню будет закрывать иконку многоточия.
Элементы управления выбором
На мобильных устройствах следует по-разному реализовывать выбор одного варианта и выбор нескольких вариантов из множества.
Для выбора среди относительно небольшого числа вариантов в iOS используйте элемент управления выбора. Вы можете отображать его закрепленным внизу (как показано выше) или встроенным в контент (см. «Date Pickers» ниже).
Для выбора из нескольких вариантов на Android обычно используется раскрывающееся меню (которое отображается на месте) или модальное диалоговое окно со списком вариантов (которое отображается по центру и затемняет фон приложения).
Для более длинных списков вариантов или, когда возможен множественный выбор, как на iOS, так и на Android, часто встречается выделенный «экран выбора». Одна из самых больших ошибок начинающего дизайнера в дизайне мобильных приложений – это не выделение полного экрана для выбора одного варианта из большого количества опций.
Средства выбора даты (Date pickers)
В iOS средства выбора даты имеют вид любого другого элемента выбора, но со столбцом для дня, месяца и года (по желанию).
Android имеет свой собственный элемент выбора даты. Вы можете добавить год, не добавлять его или позволить пользователю самому решить, хочет ли он его добавить.
Ресурсы: iOS picker; Android date picker (обратите внимание на различия в спецификации Material Design)
Вкладки
Стоит отметить, что у iOS нет элемента управления, который визуально напоминает «вкладки». Вместо этого Apple призывает вас использовать сегментированную кнопку для перехода между сестринскими представлениями.
В Android вкладка в стиле «плоский дизайн» используется для того же дисплея.
Отмена действия
В iOS предупреждения появляются по центру экрана, но вы также увидите, как предупреждения скользят вверх от нижней части экрана (технически называемой «панелью действий» языком iOS). Деструктивные действия (например, удаление чего-либо) имеют красный цвет.
В Android некоторые предупреждения появляются по центру экрана. Однако, когда они не требуют ввода данных пользователем и должны исчезнуть через несколько секунд, вы можете использовать «snackbars». Snackbars – хороший выбор, потому что (а) они дают вам возможность сообщить пользователю, что его действие было успешным, и (б) вы можете добавить к ним одно или два действия, что делает их идеальным местом для размещения действия «Отменить». Я бы предпочел, чтобы мои пользователи имели возможность отменить действие. Дважды спрашивайте пользователя каждый раз, когда он пытается принять важное решение.
Ресурсы: Undo от iOS; snackbars от Material Design
Типографика iOS и Android
Шрифт по умолчанию
Хотя нет необходимости устанавливать приложение iPhone или Android с системным шрифтом по умолчанию, полезно знать, что такое системные шрифты. На случай, если вы захотите имитировать стиль нативного приложения.
Системный шрифт iOS называется San Francisco (SF). Это компактный шрифт, разработанный для сохранения удобочитаемости при небольших размерах текста. Вы можете скачать SF здесь.
Системный шрифт Android называется Roboto. Хотя он очень похож на SF, его буквы выше, а межбуквенное расстояние немного больше. Вы можете скачать Roboto здесь.
Кроме того, для многих Android систем установлен собственный Google-шрифт под названием Product Sans, который недоступен для стороннего использования.
Стили текста
Другие стандарты платформ iOS vs. Android
Размер и форма иконок приложений
Вы должны проектировать иконки приложений iPhone в следующих размерах:
Размер иконки | Где используется |
180×180 px | Экран «Домой» iPhone для размеров @3x (например, 11 Pro, X, Xs, 8+) |
120×120 px | Экран «Домой» iPhone для размеров @2x (например, 11, XR, 8) |
1024×1024 px | App Store |
В конечном счете, ваша иконка может быть сделана и в других размерах, но, если вы сделаете ее в 60px, то убедитесь, что она хорошо смотрится в размерах 120×120, 180×180 и 1024x1024px.
Проектируйте иконки Android-приложений в следующих размерах:
Размериконки | Где используется | Кратность 48×48 px |
48×48 px | Основной экран (medium DPI телефоны) | 1x |
72×72 px | Основной экран (high DPI телефоны) | 1.5x |
96×96 px | Основной экран (xhdpi телефоны) | 2x |
144×144 px | Основной экран (xxhdpi телефоны) | 3x |
192×192 px | Основной экран (xxxhdpi телефоны) | 4x |
512×512 px | Большая версия для Google Play store (все устройства) | N/A |
Поэтому: 1) создайте красивую векторную иконку с разрешением 48×48 px, 2) увеличьте изображение до 400%, чтобы убедиться, что оно по-прежнему выглядит великолепно, и 3) создайте отдельную версию с разрешением 512×512 px.
Когда вы впервые просматриваете таблицы иконок, нужных для iPhone или Android-смартфонов, это может показаться довольно пугающим. Но, если вы знаете базовый размер, умеете проверять изображения и экспортировать их в различных кратных значениях, это вовсе не сложно.
Ресурсы: рекомендации по иконкам приложений iOS; рекомендации по иконкам приложений Material Design (к сожалению, это ничего не говорит о размерах иконок)
Минимальный размер цели нажатия
Платформа | Минимальный размер цели нажатия |
iOS | 44x44pt |
Android | 48x48dp |
Обратите внимание, что points Apple («pt») и device-independent pixels Android («dp») функционально эквивалентны. Они просто ссылаются на базовый размер (такой же, как CSS-единица «пиксель»), который измеряется независимо от разрешения экрана.
Приложения Android с большим целевым размером экрана и меньшим количеством пикселей на экран, как правило, выглядят более чистыми и воздушными, чем их собратья для iOS.
Язык дизайна
Пытаясь показать различия между двумя языками дизайна и философиями, лежащими в их основе, я попытался рассказать об основных частях языка iOS и Material Design, которые похожи. Чтобы узнать больше, вам нужно погрузиться в официальную документацию каждой дизайн-системы.
Чтобы узнать больше о проектировании для iOS, прочтите рекомендации Apple «Human Interface Guidelines».
Чтобы узнать больше о проектировании в стиле Material Design, прочтите материалы на сайте Material Design.
Заключение
В ближайшее время Google и Apple выпускают новые версии операционных систем iOS и Android. Сегодня мы поговорим о том, что это значит для пользователей мобильных приложений, и какие шаги нужно предпринимать для того, чтобы ваши приложения продолжили работать на клиентских устройствах.
Каждая новая версия мобильной операционной системы привносит свои новшества, и о них уже многократно писали на самых разных порталах. Но при выходе очередной версии ОС прекращается поддержка какой-либо старой версии, а новые правила маркетов создает сложности для размещения старых приложений.
Если вспомнить предыдущие мажорные обновления, представленные Apple и Google, бывали случаи, что они создавали некоторые проблемы для разработчиков. Например, появление «темной темы», которая сегодня стала неотъемлемой частью любых интерфейсов, в свое время привело к нарушению дизайна различных приложений. В частности, приходилось вручную перекрашивать календарь под iOS, а также принудительно выставлять светлую тему для приложений, у которых просто не было сделано темного интерфейса.
Многие хорошо помнят появление безрамочных дисплеев (и их поддержку на уровне мобильных ОС), для которых по началу приходилось вручную изменять размеры экрана и значения отступов, иначе пользователи получали совершенно неприемлемую картинку на своем девайсе. Ситуаций, когда появление новой ОС влияет на работу старых приложений может быть достаточно много. Однако уже сегодня можно сказать, что некоторые нововведения платформ, потребуют дополнительной доработки уже существующих приложений.
Операционная система Android с каждой версией увеличивает свои требования к использованию оперативной памяти. Так, до Android 7 приложения без проблем работали в фоновом режиме (нередко подвешивая телефон «намертво»). Но начиная с «семерки», ОС стала следить за работой приложений, и при исчерпании свободной памяти начала выгружать менее приоритетные утилиты. С каждой версией эта политика становится все жестче. Не сомневаюсь, что в Android 11 слишком тяжелые и громоздкие приложения будут выгружаться еще быстрее. Так что сейчас самое время провести ревизию и, быть может, исключить какую-то часть данных из хранения в оперативной памяти.
Еще один важный аспект – обращение к файлам. Если раньше каждое приложение Android могло получить доступ практически к любому файлу на диске устройства, теперь возможности будут лимитированы собственной папкой приложения. С точки зрения безопасности это хорошо. Но созданные еще вчера утилиты, не соблюдающие этого принципа, просто не смогут работать дальше.
С «опасными» разрешениями тоже произошли изменения. Сначала в Android появилась возможность их разрешения или запрещения, то с 11 версии Android будет поддерживать возможность разрешения по каждому пункту только на текущую сессию. Так что если приложение не готово к изменению перечня разрешений, оно может давать сбои, и его придется переделывать.
Компания Apple, как известно, тщательно готовится к изменениям. Практически все разработчики в курсе, что дает новая iOS, и какие требования к приложениям появляются. Однако если вы давно не обновляли свое приложение, в скором времени могут возникнуть проблемы при его использовании и загрузке на маркет.
Например, с апреля 2020 года Apple перестала принимать новые приложения, которыми используется UIWebView для просмотра веб-контента. Уже загруженных приложений это пока не касается, но к концу года вы не сможете обновить свое приложение, если оно использует UIWebView API. Вместо этого Apple разработала WKWebView – более совершенную и, главное, безопасную библиотеку, которая решает многие проблемы компрометации пользователей через web, характерные для старой API. Для владельцев приложений – это сигнал о том, что нужно провести ревизию, какие библиотеки использует ваше ПО.
Кроме этого, в случае с Apple происходит активное развитие Swift UI – инструмента нативной разработки под iOS. В Swift UI появляются все новые и новые возможности, но при этом поддерживаются только iOS 13 и новее. Значительная часть новых фишек от Apple, которые появятся в iOS 14, потребуют Swift UI для своей реализации. А значит, они будут недоступны на старых версиях iOS.
Кстати, многие мобильные приложения вообще создаются на базе кросс-платформенных фреймворков, таких как React Native или Flutter. Это удобно, ведь вы пишете код только один раз, а он компилируется для разных операционных систем (возможно, с небольшими доработками, но все же намного быстрее, чем отдельная разработка под каждую платформу). И если ваше приложение построено именно так, возникают дополнительные риски при появлении новых ОС.
Например, в случае, когда прекращается поддержка библиотек, о которых вы и не догадывались, но которые были использованы в фреймворке, ваше приложение просто перестанет работать. Нужно обязательно проверить, как именно будет работать ПО на базе новой операционной системы. В частности, большая часть проблем с новыми интерфейсами и той же «темной темой» относилась именно к проектам на React Native.
К тому же все новые «фишки» операционных систем от Apple и Google, такие как иконки для мессенджеров, новый формат отображения информации и так далее, появятся в кросс-платформенных фреймворках несколько позже. Когда именно – знают только сообщества, развивающие эти фреймворки.
Итак, к появлению новых операционных систем нужно подготовиться. Отвечая на вопросы наших заказчиков, мы сформировали 5 основных правил поведения в этой ситуации:
- Если у вас есть уже готовое приложение, нужно скачать тестовую версию новой ОС и проверить, как оно будет запускаться на ней;
- Для Android нужно проверить требования к файловому доступу и скорректировать их;
- Исключить привязку приложений к «опасным» разрешениям, чтобы операционная система не блокировала их;
- Проверить факт использования устаревших и неподдерживаемых библиотек – как под iOS, так и под Android;
- И, наконец, если вы планируете использовать новейшие функции, предусмотреть работу приложений под старыми ОС.
Последний пункт особенно важен для тех, кто занимается активным развитием своих мобильных приложений, ведь нам нужно, чтобы все пользователи были довольны работой вашего ПО. Обычно для этого приходится реализовывать альтернативные функции для старых ОС. Например, когда с выходом iOS 10 появилась авторизация при помощи токенов, для старых версии iOS ничего не оставалось, кроме обычной авторизация через запрос в браузере. Да, уровень безопасности для таких пользователей был ниже, но что делать, если они не могут или не хотят обновлять ОС? Нам же остается обеспечить максимально адекватную работу приложения на самых разных устройствах, а также обеспечить его соответствие самым новым требованиям маркетов.
Тестирование мобильных приложений в целом соответствует общим принципам тестирования, изложенным выше, но и в силу некоторых обстоятельств имеет ряд особенностей. Этими обстоятельствами являются: специфичность операционных систем для мобильных платформ, различные компании-изготовители устройств и конфигурации комплектующих, функциональность устройств как коммуникаторов и т. д.
Рассмотрим основные моменты, на которые необходимо обратить особое внимание именно при тестировании мобильных приложений.
Размер экрана и touch-интерфейс.
- Необходимо проверить размеры всех элементов графического интерфейса пользователя, при этом обратить особое внимание на возможность использования всех элементов.
- Также следует проследить, за тем, чтобы в ходе работы приложения не возникало пустых экранов, так как появление пустого экрана часто ставит пользователя в тупик.
- Необходимо удостовериться, что многократное быстрое нажатие на кнопку не вызовет падения приложения, так же необходимо проследить, чтобы приложение корректно обрабатывало нажатие нескольких кнопок одновременно. Дело в том, что такие ситуации с кнопками часто встречаются при работе с сенсорным экраном.
- Необходимо проверять использование в приложении так называемых "нативных" жестов (например, pinch-to-zoom, doubletap), если необходимо, то соответствующий жест должен использоваться по умолчанию, а если над каким-то элементом действие, соответствующее жесту не предусмотрено, то жест использоваться не должен. Например, в случае поддержки увеличения части приложения, pinch-to-zoom должен использоваться по умолчанию, если же нет необходимости выделять какой-то элемент, то doubletap не должен ее выделять.
Ресурсы устройства.
- Необходимо проконтролировать возможные утечки памяти. Часто это случается в приложениях с окнами, содержащими большое количество информации, например, длинные списки. Память также может теряться во время длительной работы приложения, а также при некорректно работающем кэшировании изображений.
- Необходимо проверить корректность обработки ситуаций нехватки памяти для функционирования операционной системы, во время работы приложения в активном или фоновом режиме.
- Обязательно нужно проверить на целевом устройстве наличие всех поддерживаемых приложением функций (например, 3G, SD-карта и т. д.).
Различные разрешения экрана и версии ОС.
- Необходимо проверить работу приложения на устройствах с различными разрешениями экрана. На экранах с высоким разрешением (например, ретина-экран) элементы интерфейса и текст отображаются мельче, при работе приложения на устройстве с экраном более низкого разрешения элементы интерфейса могут стать слишком большими.
- Необходимо проверить возможность адаптации приложения к портретной и альбомной ориентациям устройства.
- Необходимо убедиться, что приложение не может быть установлено на не поддерживаемые устройства. При этом обязательно тестирование приложения на всех заявленных поддерживаемых устройствах.
- Необходимо проверить поддержку требуемых для работы приложения медиа-файлов на устройстве, т. к. некоторые разработчики могут урезать поддержку работы с некоторыми форматами.
Реакция приложения на внешние прерывания.
- Необходимо проверить работу приложения в условиях эксплуатации мобильного устройства, а для таких устройств характерны частые изменения состояния: входящие и исходящие звонки, SMS, MMS; выключение/разрядка устройства; переход в режим ожидания (в том числе и с защитой паролем); смена ориентации устройства в режиме ожидания; отключение и включение сети, Bluetooth, авиарежима, GPS; потеря связи с сервером или прокси (подключение есть, но пакеты не проходят); отключение и подключение SD-карты, дополнительных устройств; зарядка устройства; работа с акселерометром; работа с физической клавиатурой (если в списке поддерживаемых моделей есть такие).
Рассмотрим основные отличия, характерные для мобильных приложений, в некоторых типах тестирования.
Тестирование обновлений. Частые обновления операционной системы ( по сравнению с персональными компьютерами) требуют обновления приложений, которое должно проходить просто и не требовать от пользователя специфических знаний. Необходимо проверять различные возможные пути установки приложения (Wi-Fi, 3G, установка с ПК, на SD ).
Тестирование интернационализации. Позволяет на раннем этапе процесса разработки мобильного приложения убедиться в поддержке культурных особенностей других стран (главным образом, в языковой поддержке). Интернационализация в мобильных приложениях очень распространена, так как является относительно простым способом серьёзного увеличения целевой аудитории. В процессе могут возникнуть многие специфичные для мобильных платформ проблемы, такие как недостаток свободного пространства на экране.
Тестирование удобства пользования (usability) . Этот вид тестирования является одним из самых важных, так как в условиях высокой конкуренции юзабилити приложения входит в список основных параметров, влияющих на популярность продукта. Позволяет выявить части приложения, которые недостаточно привлекательны, а может даже вызывают затруднения в навигации или использовании на сенсорных экранах. Следует так же убедиться, что модель потребления ресурсов приложением соответствует целевой аудитории, например, приложения-напоминания не должны вызывать чрезмерное потребление энергии.
Нагрузочное тестирование. Подразумевает наблюдение за использованием памяти и системных ресурсов, позволяет выявить "узкие" места в приложении, связанные с производительностью, обнаружить опасные утечки памяти.
Случайное тестирование (fuzzy testing, "monkey" testing) . Приложение должно корректно реагировать на возникновение случайных и непредсказуемых событий. Мобильные устройства чаще других попадают в условия, в которых получают хаотичную бесполезную информацию (например, не заблокированное устройство в кармане), поэтому приложение должно адекватно реагировать на подобные потоки данных .
Конфигурационное тестирование. Приложение должно правильно работать на всех платформенных решениях, для которых разрабатывалось. Мобильные устройства обладают широчайшим разнообразием, поэтому задача тестирования всех доступных видов устройств, на которых используются различные сборки ОС, которые имеют различные разрешения экранов, функционал и аппаратное обеспечение , крайне важна и очень трудновыполнима.
Лабораторное тестирование. Предполагает имитацию реальных условий качества связи и окружающей среды, позволяет проверить как поведет себя приложение при нестабильном сигнале Wi-Fi или с нулевым балансом на счету в сети 3G.
Аттестационное тестирование. Используется для подтверждения соответствия приложения стандартам, лицензионным соглашениям и условиям использования. Рассмотрим требования к приложениям, разработанным для мобильных устройства, работающих под управлением Android .
Для отдельных магазинов приложений (Amazon App Store , Samsung Apps, Yandex. Store и подобных) могут существовать свои собственные требования и гайдлайны.
Эксперт в Java, Kotlin, Android, SQL, проектировании информационных систем.
Рассказываем, какие особенности есть у разных платформ, почему большое количество девайсов на Android — это проблема для разработчиков, и как потрениться кодить на Swift, если у вас нет компьютера на macOS. Разбираемся вместе с Android-разработчицей в такси Maxim Ариной Мурашевой.
Чем занимаются мобильные разработчики?
Мобильный разработчик отвечает за все этапы создания приложения: разрабатывает его архитектуру и может сделать интерфейс, тестирует его, выкладывает в AppStore или Google Play, устраняет уязвимости, выпускает обновления. Строгого разделения на frontend и backend, как в вебе, в мобильной разработке нет. Разработчик должен уметь работать как с интерфейсом, так и с внутренней логикой приложения.
Вакансии в мобильной разработке делятся на джуниоров, мидлов и сеньоров, а уровень разработчика зависит в первую очередь от навыков и компетенций.
Сколько получают мобильные разработчики?
Медианная зарплата мобильного разработчика — 140 тыс. рублей. Начинающие специалисты с хорошим портфолио могут рассчитывать на зарплату от 80 тыс. рублей. Разработчик на Android c опытом 1–2 года в России получает в среднем около 120 тыс. рублей в месяц, на iOS — около 130 тыс. рублей.
Android vs. iOS: плюсы, минусы и особенности
Количество устройств
Android лидирует среди операционных систем во всем мире. По данным statcounter на начало 2021 года, доля Android среди мобильных устройств в мире составляет 74,34% (это около 2,5 млрд активных устройств), iOS — 25,29% (около 1,4 млрд активных устройств). По России картина примерно такая же: 73,38% гаджетов на Android, 26,26% — на iOS.
Разнообразие устройств
С одной стороны, разнообразие устройств для Android — это большой плюс, ведь работа для разработчика всегда найдется. Кроме того, чтобы начать работать с этой ОС, никакой дополнительной техники покупать не нужно — писать код можно на любой операционной системе: macOS, Linux или Windows. А вот для разработки на iOS обязательно понадобится техника от Apple.
Но большое количество девайсов на Android — это и недостаток, поскольку устройства не работают одинаково и зачастую приложение приходится адаптировать под параметры каждого гаджета, с разными размерами и разрешениями экранов.
Арина Мурашева: «Как правило, в мобильных приложениях на Android нет сложных расчетов и сильно мудреной логики. Неприятный момент разработки — необходимость поддержки разных устройств. Мои “фавориты” — это телефоны с кастомными прошивками и китайские телефоны».
С iOS проще: количество версий смартфона, размеров экрана и самой операционной системы ограниченно, поэтому сделать приложение, которое одинаково хорошо работает на всех устройствах, намного проще, чем на других платформах.
Обновления
Все изменения в операционной системе iOS прозрачны — компания ежегодно выпускает подробные гайдлайны по разработке приложений и публикует их на своем сайте.
У Android нюансы разработки могут меняться, и не все библиотеки и ответы на форумах будут актуальны.
Комьюнити
Android — это платформа с открытым кодом (доступ к исходному коду есть у всех желающих) и большим развитым сообществом: новичок может получить поддержку или решить проблему, задав свои вопросы на StackOverflow или GitHub.
iOS — более закрытая экосистема, и комьюнити преимущественно англоязычное, но встречаются и русскоязычные форумы.
Публикация приложения
В Google Play разовая плата за аккаунт разработчика стоит $25. Публикация приложений происходит быстро и, как правило, без участия модераторов. В AppStore потребуется ежегодно продлевать доступ к аккаунту разработчика за $99.
Но есть особенности: в Google Play приложение и аккаунт могут заблокировать без объяснения причин, а техподдержка отвечает редко, размыто и односложно. У AppStore публикация приложения может занять неделю — модераторы проверяют его вручную, — но техподдержка работает оперативнее.
Что нужно знать мобильным разработчикам?
Также требуется уметь создавать интерфейс приложения на основе макета, знать, как создать сетевой запрос, как обработать данные — в частности, в формате JSON (текстовый формат обмена данными, основанный на JavaScript), уметь создавать и использовать протоколы, подключать базы данных к приложению, знать архитектурные подходы и понимать способы хранения данных.
Что нужно знать Android-разработчику?
В требованиях к вакансии Android-разработчика обычно пишут, что он должен обязательно знать XML и Android SDK. Из языков чаще всего требуется Java, часто к нему прибавляется Kotlin. В любом случае, знание Java — это хороший старт для начинающего разработчика, поскольку на этом языке вы освоите основные концепции объектно-ориентированного программирования (ООП). Это методология программирования, основанная на представлении программы в виде совокупности объектов. Зная ООП, можно быстрее выучить другой язык.
Также начинающему разработчику понадобится изучить файловую структуру и принципы работы OS Android.
Станьте востребованным специалистом: освойте с нуля программирование на Java и Kotlin, мобильную разработку и UX/UI для Android. Наш карьерный центр поможет с трудоустройством.
Дополнительная скидка 5% по промокоду BLOG.
Что нужно знать iOS-разработчику?
Для разработки на iOS понадобится знание языков Objective-C и Swift. Сейчас в основном кодят на Swift, который считается более функциональным.
Для создания приложения понадобится компьютер с операционной системой macOS. Но даже если его нет, потренироваться кодить на Swift все равно можно. Первый вариант — скачать на официальном сайте языка GNU/Linux (операционные системы на основе ядра Linux и системных библиотек GNU) с установленным Swift (есть официальные пакеты под Ubuntu, CentOS и Amazon Linux). Второй — скачать на GitHub Windows с неофициальным пакетом Swift for Windows. Но для того чтобы собрать приложение, придется купить технику Apple.
Освойте с нуля программирование на Swift, мобильную разработку и UX/UI для iOS. Дополнительная скидка 5% по промокоду BLOG.
С чего начать?
Первые шаги в мобильной разработке выглядят примерно так:
- Освоить один из языков программирования. В зависимости от ОС это Java/Kotlin или Objective-C/Swift.
- Изучить Android Developer Guides или Apple Development Guidelines и попробовать написать простое приложение.
- Сверстать пару прототипов в онлайн-сервисе для разработки интерфейсов и прототипов, например Figma, Adobe XD или Sketch.
- Опубликовать приложение в Google Play или AppStore.
- Собрать и разместить портфолио на GitHub.
Всему этом можно научиться на наших курсах: iOS-разработчик и Android-разработчик.
Сложно ли перейти с одной на другую платформу?
Это возможно, но многое все равно придется учить заново. Например, осваивать профильный язык программирования.
Арина Мурашева
Android-разработчица в такси Maxim
«Усилия, конечно, приложить придется. Нужно будет учить новый язык и другие инструменты разработки. Однако чем больше работаешь, тем менее важно, с какими технологиями работать. Есть те, с которыми работать приятно, есть те, с которыми не очень, но в целом сменить направление всегда можно».
Полезные ссылки
- Для новичков у Android есть курсы для разработчиков на официальном сайте и краудсорсинговый гид — подробное руководство по созданию приложений, их дизайну и тестированию.
- Блог разработчиков Android — тут выходят статьи с разбором обновлений и запуска новых функций.
- Гайд Human Interface Guidelines от Apple о принципах дизайна приложений. — среда для разработки для iOS. — среда для разработки для Android.
Текст подготовила: Мария Осина
Эксперт в Java, Kotlin, Android, SQL, проектировании информационных систем.
Читайте также: