Нужно ли учитывать язык разработки, при проектировании дизайна мобильного приложения?

Когда я только начинал проектировать мобильные приложения, я часто задавался вопросом, а нужно ли обращать внимание на язык разработки, в котором будет разрабатываться приложение, при проектировании дизайна?

Меня этот вопрос долгое время беспокоил. Когда я чего-то не знаю, и понимаю что мне необходимы эти знания, чтобы решить конкретные задачи, то я опрошу всех, дабы получить ответы на свои вопросы. Именно так я и поступил. Так как я общаюсь со многими продуктовыми дизайнерами, я всем задавал следующий вопрос:
  • При проектировании мобильного приложения, нужно обращать внимание на то, с помощью какого языка разработки он будет запущен в продакшн? То есть, есть ли разница, проектировать дизайн приложения под Swift, Kotlin, React Native или Flutter, или разницы никакой нет и можно на это не обращать внимание?
Как и стоило ожидать, я получил много неоднозначных ответов. Со временем, я изучил эту тему самостоятельно, собрал советы от специалистов в этой области и сам реализовал несколько проектов под разные языки разработки, и вот, по моему мнению, на что стоит обратить внимание.
Во-первых, до того как приступить к дизайну мобильного приложения, нужно задать следующий вопрос клиенту:
  • Ваше приложение будет разрабатываться нативным языком или кроссплатформенным?
Это принципиально важный вопрос, так как исходя из ответа, вы будете понимать, делать ли вам дизайн с нативными компонентами или же с кастомными.

Давайте по порядку.
Что такое нативный дизайн и нативная разработка?
В дизайне приложений для iOS и Android есть готовые гайдлайны, в них прописаны все правила проектирования, а также они содержат большое количество готовых компонентов из которых можно собрать весь дизайн приложения.
В гайдлайнах есть такие компоненты как Tab bar, Navigation bar, карточки товара, списки и другие (более подробно читайте на официальных сайтах гайдлайнов). Также в гайдлайнах описаны правила работы с цветом и типографикой. Все эти компоненты называются нативными.

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

Теперь давайте выясним какие языки разработки являются нативными?
  • Нативные языки для iOS: Swift и Objective C.
  • Нативные языки для Android: Java и Kotlin.
С нативным дизайном и нативной разработкой разобрались, теперь давайте поговорим о таком понятии, как кроссплатформенная разработка.

Что такое кроссплатформа?
Кроме нативных языков разработки, есть еще и кроссплатформенные языки. Кроссплатформенная разработка характеризуется тем, что с ее помощью можно написать код одновременно для двух платформ, в этом случае для систем iOS и Android.
В таком случае, на этапе разработки экономится много времени, так как разработчики пишут код одновременно на две системы, а не свой код для каждой платформы по отдельности (как бывает при использовании нативной разработки).

Как это отразится на дизайне?
В этом случае при проектировании дизайна приложения, не обязательно строго использовать компоненты из гайдлайнов, достаточно создать свой дизайн (кастомный) и использовать его одновременно на двух платформах. Если конкретнее, то вы будете использовать одинаковые компоненты дизайна для обеих платформ.
В этом случае бывает достаточно спроектировать дизайн под одну платформу, допустим для iOS, используя кастомные компоненты, после чего разработчики напишут код сразу для обеих платформ, соответственно для iOS и Android.

Теперь давайте выясним какие бывают языки кроссплатформенной разработки?
Самые популярные кроссплатформенные языки:
  • React Native (от Facebook)
  • Flutter (от Google)
  • Ionic
  • Angular
  • Xamarin
  • и другие

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

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

Успехов вам и доброго дизайна!
Made on
Tilda