​​Нативная или кроссплатформенная разработка?

#разработка #мысли #вопрос



Представьте: вы работаете в команде, где создаются мобильные приложения. Поступает задача — создать новый экран на iOS и Android. Начинается работа:

- сделать дизайн;

- согласовать дизайн и внести коррективы;

- отдать в разработку программисту iOS и Android;

- отдать в тестирование две платформы;

- исправить баги;

- зарелизить.



Иногда бывают ситуации, что релиз нужно сделать одновременно.



В моменты, когда прилетает задача с полностью одинаковыми требованиями возникает мысль: было бы здорово, если бы это создавалось одновременно на 2 платформы. Подобные думы возникают также при создании нового проекта.



Мое знакомство с кроссплатформенной разработкой произошло пару лет назад, когда планировался достаточно большой проект. Посмотрели в сторону Xamarin, который позволял создавать приложения для Android, iOS и Windows Phone. Почитав документацию и начав разработку, выяснилось, что продолжать создание этого проекта невозможно: появляются краши, которые непонятно как исправить из-за небольшого сообщества разработчиков; многие вещи по-прежнему нужно писать на три платформы в отдельности, экономия по времени небольшая.



Не так давно я увидел Flutter. Это SDK от Google, который позволяет создавать одновременно приложения на Android и iOS. В основе лежит язык Dart. Пока этот проект в alpha-режиме, поэтому страшно использовать его для коммерческих и больших проектов. Хотя уже сейчас есть несколько опубликованных проектов в Google Play и Apple Store.



Мое отношение к кроссплатформенной разработке сейчас такое же, как на картинке: если требуется создать что-то сложное и постоянно дорабатываемое, то без нативной разработки не обойтись. Сейчас нативная разработка позволяет сделать все, учитывая особенности операционной системы. Если же нужно создать что-то простое, типа «вывести список с сайта», то стоит смотреть в сторону кроссплатформенности для удешевления разработки.



А что вы думаете по поводу нативной и кроссплатформенной разработки? Будет ли в будущем нативная разработка или ее вытеснит кроссплатформенная? Делитесь своим опытом и мыслями, которое позже опубликую тут.