Когда я только начинал проектировать мобильные приложения, я часто задавался вопросом, а нужно ли обращать внимание на язык разработки, в котором будет разрабатываться приложение, при проектировании дизайна?
Меня этот вопрос долгое время беспокоил. Когда я чего-то не знаю, и понимаю что мне необходимы эти знания, чтобы решить конкретные задачи, то я опрошу всех, дабы получить ответы на свои вопросы. Именно так я и поступил. Так как я общаюсь со многими продуктовыми дизайнерами, я всем задавал следующий вопрос:
- При проектировании мобильного приложения, нужно обращать внимание на то, с помощью какого языка разработки он будет запущен в продакшн? То есть, есть ли разница, проектировать дизайн приложения под 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
- и другие
Какие языки разработки лучше использовать и в каких случах?Все будет зависеть от технических требований продукта и финансовых возможностей клиента.При использовании нативной разработки, дизайн получается более точным и с наименьшими багами (ошибками), но такая разработка займет больше времени, так как придется писать код под каждую платформу по отдельности.
С другой стороны, кроссплатформа поможет сверстать мобильное приложение намного быстрее и финансовых затрат будет меньше. Кроссплатформенная разработка более дешевый вариант для клиента. Поэтому такой вид разработки очень популярен.
Теперь вы знаете разницу между нативностью и кроссплатформой, и можете смело начать проектировать свой дизайн приложения.
Успехов вам и доброго дизайна!