Я оцениваю разные мобильные фреймворки и считаю, что nativescript - хороший вариант. Но я не знаю, существуют ли ограничения в процессе разработки. Например, у меня были ограничения на стиль (и это не так важно), но я хочу знать, могу ли я в будущем иметь ограничение и не могу использовать какую-то встроенную функцию или внешнюю библиотеку. Спасибо!
Ограничения NativeScript
Ответы (6)
Я использую NativeScript с v0.90. Я написал несколько приложений и более 40 плагинов для NativeScript, поэтому я хорошо знаком со всеми тонкостями платформ.
Эта публикация относится к версии v6.50.
Я могу вспомнить только пару ограничений;
- Инструментарий иногда оставляет желать лучшего, однако использование поддерживаемой IDE во многих случаях делает это лучше, чем собственный интерфейс командной строки.
- Иногда ошибки не всегда передаются обратно из приложения на экран / ide - поэтому вам нужно сделать что-то вроде «adb logcat», чтобы просмотреть полный журнал ошибок, чтобы увидеть ошибку, отфильтрованную интерфейсом командной строки.
- Собственные сервисы (т.е. фоновые сервисы) --- Это намного лучше написано в виде нативного кода. Среды выполнения NS занимают память во время работы; поэтому сервис, который вам обычно нужен как можно меньше по объему памяти - я бы не использовал ничего, кроме Java / ObjC для фоновой службы.
- OpenGL на Android должен работать в отдельном потоке, NS по умолчанию переключает вас обратно в основной поток при возврате из любых собственных вызовов; это в основном убивает прямые вызовы NS opengl. Однако в любом случае лучше создавать любой материал OpenGL на Java или Kotlin; а затем попросите NS вызвать ваш собственный код, который обрабатывает весь рендеринг, так что это скорее незначительное раздражение.
Помимо этого, я не могу придумать никаких «реальных» ограничений; у вас есть полный доступ к собственной платформе и вы можете стилизовать любой элемент управления, если знаете, как это делать с помощью собственных вызовов; если по какой-то причине элемент управления не поддерживает обычный стиль css. Я и другие использовали множество библиотек Android и iOS в наших приложениях. Вы можете легко повторно использовать собственные компоненты android / ios, у вас есть полный доступ ко всему, что доступно для собственного приложения iOS или Android.
Вы можете посмотреть https://plugins.nativescript.rocks, где есть список всех плагинов в сообществе NativeScript. .
Я уже некоторое время занимаюсь разработкой с помощью Nativescript, и хотя готовый продукт (приложение) более чем приличный, процесс разработки действительно болезненный. Основная причина этого - частые ошибки в самой платформе Nativescript, и это официальный плагин для VSCode.
В настоящее время я работаю над Nativescript 2.0.0 и пытаюсь обновить его до более новых версий с тех пор, как они вышли, но всегда были некоторые ошибки, эфир с Node или с Gradle для Android, и это лишь один из многих примеров проблем, которые я лицом к платформе. Желаю, чтобы они улучшили его в ближайшем будущем.
На данный момент собственные API-интерфейсы полностью доступны из JS, но если вы хотите, вы можете создать некоторую библиотеку на родных языках и вызывать их также из кода JS, о внешних библиотеках это зависит от того, имеете ли вы в виду собственные библиотеки или JS, но есть довольно много опций / плагинов выполняется в коде JS с использованием некоторых собственных библиотек, но в случае, если не в качестве плагина JS, вы можете сделать это самостоятельно с помощью собственных библиотек
Поддержка сообщества невысока по сравнению с другими фреймворками, доступными на рынке. Это должно улучшиться по мере того, как люди принимают структуру. На данный момент я вижу в этом ограничение.
И да, отладка действительно является ограничением.
На мой взгляд, Nativescript - лучшее кроссплатформенное решение, но, как и другие заявленные, могут быть ограничения. Помимо фоновых служб, доступ к оборудованию МОЖЕТ быть немного сложным. Однако я использовал его для работы с устройствами BLE, и как только вы поймете, как взаимодействовать с собственными API-интерфейсами, это не так уж и плохо.
Я написал одно приложение NS (ядро).
Некоторые из минусов:
производительность - загрузка, а также время выполнения. Я заменяю собственное приложение Android на приложение NS (потому что это кроссплатформенный), и некоторые клиенты жаловались, что новое приложение работает медленнее и отрывисто ... Я согласен.
ошибки в ядре NS. Я думаю, что они слишком разошлись. Им нужно сделать свой основной продукт стабильным и улучшить его (то есть сделать его быстрее).
плагины разного качества с минимальной поддержкой. Здесь NS мог курировать несколько важных плагинов и заставлять людей платить за них.
Да, это бесплатно, но для меня это не большая проблема - я бы предпочел заплатить за более совершенный продукт.
В конце концов - продукт работает - разместите мое приложение в магазине приложений и с нетерпением жду будущих улучшений.