Несколько дней тому назад, Разработчики Dropbox через сообщение в официальном блоге приложения представили путь, которым они намерены следовать с точки зрения мобильной разработки вашего кроссплатформенного приложения, где команда решила создать единую кодовую базу, для различных целей или платформ.
Такой подход может быть полезен небольшим командам с небольшими навыками, но производство необходимо как можно быстрее. С 2013 года команда Dropbox полагается на эту стратегию. КПодсказка для платформ Android и iOS с помощью уникальной базы кода, построенной на C ++. В сообщении объясняется, почему компания теперь предпочитает нативную разработку на Swift и Kotlin.
«Собирая нашу кодовую базу нестандартным способом, мы унаследовали затраты, о которых нам не пришлось бы беспокоиться, если бы мы соответствовали оружию по умолчанию, которое третьи стороны используют в больших масштабах». В конце концов, это было больше дороже, чем написание кода в два раза ", - сказал он.
Внезапно, Отзывы инженеров Dropbox показывают, что выбор кроссплатформенного подхода к разработке вводит дополнительные затраты на разработку, связанные с развертыванием пользовательских библиотек и фреймворков.
Не говоря уже о тех, которые связаны с внедрением настраиваемых рабочих инструментов или необходимостью обучать или нанимать третьих лиц, способных адаптироваться к сильно настраиваемому стеку программного обеспечения.
В самом деле, подчеркивает, что выбор C ++ для кроссплатформенной разработки под Android и iOS может привести разработчиков к трудностям. что они не имели бы изначально.
Например, говорит он, создание инфраструктуры для управления задачами, выполняемыми в фоновом режиме, может быть обязательным условием кроссплатформенной разработки на C ++.
В отличие от этого, Другой инженер объясняет инженеру Dropbox, что для нативного языка это не проблема.
Он даже утверждает, что команде Dropbox в процессе пришлось настроить библиотеку JSON для C ++ 11, а также другую для обработки указателей NULL.
Инженер компании пошел еще дальше, подчеркнув, что он обращается к теории мышления, согласно которой можно создать единую базу кода для нескольких платформ.
Фактически, настаивает он, особенности каждой платформы - это факторы, которых нельзя избежать.
«То, как приложение работает в фоновом режиме, зависит от платформы, и вы должны смотреть на это с самого начала», - говорит он.
Помимо соображений, влияющих на код, есть и те, которые касаются рабочих инструментов. В этом смысле инженер компании развивается по двум направлениям: отладка и настройка инструментов.
«Встроенная отладка в целом превосходит C ++ благодаря IDE по умолчанию целевой платформы», - пишет он, добавляя, что «помимо необходимости отходить от доступных инструментов, нам пришлось мобилизовать усилия разработчиков для разработки другие, способные поддерживать кроссплатформенный подход в C ++. «
Наконец, что касается аспектов обучения и найма, Эяль Гутманн указывает, что кроссплатформенное приключение было построено вокруг ядра инженеров с солидным опытом работы в C ++.
С уходом последних в другие команды или компаниикомпании становится все труднее восполнить технический пробел в поддержании кодовой базы C ++. Внутри и вне компании у компании возникли проблемы с обучением и набором персонала по этой оси, потому что кажется, что очень немногие мобильные разработчики заинтересованы в C ++.
Перевод команды с Dropbox на нативный через Kotlin и Swift для Android и iOS имеет свои преимущества.
Фактически, язык C ++, наряду с C, который вы больше не цитируете, служит общим знаменателем для решения таких проблем.
Нетрудно представить, что первоначальная группа инженеров интегрировала его для управления некоторыми критическими аспектами серверной части. Только вопросы о качестве интерфейса C ++ с целевыми платформами можно ставить на стол.
источник: https://blogs.dropbox.com/