React-пользовательский интерфейс, управляемый собственным сервером

#android #ios #reactjs #react-native

#Android #iOS #reactjs #react-родной

Вопрос:

Мне всегда интересно, как такие приложения, как Airbnb, Flipkart и Swiggy, обновляют свой пользовательский интерфейс на лету. Даже если я не обновлял приложение, Flipkart показывает разные интерфейсы во время фестивалей, в то время как Swiggy всегда меняет свой пользовательский интерфейс в зависимости от местоположения устройства.

Как я могу реализовать это в своем приложении react-native?

Webview — это решение?

Пожалуйста, помогите мне.. Спасибо

Комментарии:

1. Не могли бы вы немного объяснить? Я думаю, вы говорите о webview?? Без обновления приложения??

2. Обновление означает, обновление из play Store или app Store или обновление означает обновление приложения?

Ответ №1:

Для этого есть несколько способов.

Одним из способов было бы использовать WebViews, как вы упомянули, это сделало бы тривиальным изменение интерфейсов, поскольку они полностью контролируются на серверах. Но основной проблемой при этом подходе будет производительность и внешний вид, не являющийся родным. В первую очередь, это два основных преимущества использования React Native по сравнению с гибридными фреймворками, и поэтому не имеет особого смысла использовать WebViews везде. Но если есть небольшая часть вашего приложения, которая регулярно обновляется (например, условия обслуживания), вы можете использовать WebView для создания пользовательских представлений.

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

Другой способ — использовать пользовательские интерфейсы, управляемые сервером. При таком подходе у вас будут заранее определенные шаблоны в клиенте, которые вы будете заполнять во время выполнения данными с сервера. Для очень простого примера у вас может быть изображение заголовка, которое может быть заполнено изображением сезонного приветствия. Но вместо простых вещей, таких как изображения, это может быть гораздо более заметным. (например, просмотр списка вместо просмотра сетки)

Еще одним сложным способом было бы использовать code push. Это позволило бы такие вещи, как сезонные изменения пользовательского интерфейса. Но это требует гораздо большей настройки и может не обеспечить наилучшего пользовательского интерфейса.

Ответ №2:

Webview лучше, потому что таким образом вы можете изменить пользовательский интерфейс и бизнес-логику или логику обработки пользовательского интерфейса.

Но для этого вам нужно разработать минимальную архитектуру.

Вот мой путь.

Разработайте уровень хоста для использования камеры, общих настроек, файловой системы и т. Д.

Разработайте уровень связи, который будет отвечать за связь между вашим webview и уровнем хоста, чтобы ваш webview мог получать доступ ко всем функциям требуемой платформы устройства (например, Android или ios), которые обычно недоступны непосредственно из webview.

Итак, теперь вы можете отображать любой пользовательский интерфейс (с помощью HTML и CSS), который вы хотите, вы можете использовать любую логику, которую вы хотите, с помощью javascript. Также теперь вы можете получить доступ ко всем необходимым функциям устройства, которые вам действительно нужны.

Итак, теперь вы король своего приложения.

Просто вам нужно постоянно обновлять пользовательский интерфейс или логику на сервере, когда вам действительно нужно.

Есть некоторые недостатки, такие как

  1. webview в Android отличается от нашего обычного браузера. Некоторые необходимые функции недоступны.
  2. Его поведение отличается на разных уровнях API. Поэтому вам нужно очень хорошо его протестировать. Для тестирования вы можете использовать Genymotion.
  3. Он плохо работает на некоторых старых устройствах / API.
  4. Внешний вид действительно имеет значение. Но умный дизайн может решить эту проблему.
  5. Если вы хотите, чтобы все ваше приложение было в одном веб-представлении, вам придется пойти на компромисс с функцией перехода страниц Android или ios. Но опять же, умный дизайн анимации исправит это.

Но это всего лишь рабочее решение, а не разумное решение для пользовательского интерфейса, управляемого сервером.

Я использовал некоторые фреймворки пользовательского интерфейса, управляемые сервером. Но они кажутся накладными расходами и лишены некоторых функций.

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

За несколько месяцев до этого я начал разрабатывать платформу пользовательского интерфейса, управляемую сервером. Я сделал это немного. Но из-за нехватки времени я действительно не смог его завершить.

Если кто-то заинтересован внести свой вклад в этот проект, не стесняйтесь обращаться ко мне.

У меня есть хорошая идея и архитектура для этого проекта.

Эта платформа может совершить революцию в мире разработки приложений.

электронная почта: bedmad82@gmail.com