гуглите kiosk mode android
первое что вы должны понимать в react native нет ни какой магии - открываем папочку android и там все как обычно
по вашей задачи важно знать под какие платформы вам нужно делать в старших версиях android kiosk mode есть в sdk в младших приходилось извращаться или делать приложение лаунчером
оптимально вынести его в отдельный npm модуль если нет возможности шарить код в npm то просто как отдельный проект и подключать как сылку на репозиторий
react приложение это всего лишь html+js, его можно отдавать обычным nginx как и любую другую статику, что при этом на бекенде не важно
зы отдельный сервер для бекенда, отдельный для фронтенда конечно тоже бывает но это сильно отдельная история
в свое время тоже задался этим вопросом - большая часть туторилаов приводит пример похожий на то что описали вы, это прекрасно работает на todolist но в реальном проекте оборачивается контейрнером который прокидывает 20-30 пропсов
redux использует context то есть от большего числа connect вы ни в чем не проиграете
если выбор между bootstrap и material-ui в контексте react приложения то я за material-ui, bootstrap бесспорно хорошая библиотека но под react слабо адаптирована
material-ui это сразу react
Backend - REST API, ему плевать что у клиента - react/angular/нативное мобильное приложение или другой сервер, его дело данные обрабатывать и отдавать
Клиент - плевать на чем написан backend, хоть на паскале
их объединяет только документация, все остальное от лукавого
1. Классическая redux архитектура разделение на умные и глупые компоненты, но это не значит что нужно экономить количество функций connect иначе легко появляются компоненты которым нужно передавать 20 пропертей ...
2. почитайте про context (не нужно использовать context вместо redux! но знать про него полезно)