В настоящее время я создаю мобильное приложение, используя react native. Это приложение для родителей, в котором родители могут просматривать оценки, домашние задания, информацию о платах и т. Д. Мы работаем с несколькими школами, и каждой школе потребуется собственное приложение. На данный момент только изменения между этими приложениями - это экран-заставка и значок приложения.
Что я могу сделать, чтобы моя кодовая база была более организованной и менее избыточной между каждым приложением, чтобы ее было легко поддерживать, а также для новых выпусков?
Это как пакет узлов, который я могу импортировать во все свои приложения?
нет его сложного инструмента управления для проектов с CLI и т.д ... подробнее на github.com/lerna/lerna
Спасибо, я проверю это.





Раньше я выполнял аналогичную задачу. Я перенес 4 разных приложения с уникальными стилями из единой базы кода React Native. Вы можете прочитать некоторые связанные биты здесь.
По сути, вам просто нужно переименовать вашего приложения перед сборкой для ios и android.
Если вам нужно применить разные стили, просто объяснить здесь гораздо сложнее. Однако, чтобы дать подсказку, вам нужно сделать стили вашего приложения многоразовыми, как тему. В моем случае я использовал тему nativebase. И перед переименованием проекта я менял папку темы, которая будет использоваться для каждого приложения с помощью сценария bash. Этот суть может дать вам представление.
Для тех, кто ищет ответ,
Правильный способ создания разных приложений из одной и той же кодовой базы - использовать варианты Android https://developer.android.com/studio/build/build-variants. Это позволит вам подписывать свое приложение разными ключами для каждого варианта. У каждого из этих вариантов должна быть соответствующая папка внутри каталога Android, где вы настраиваете экран-заставку, ресурсы и т. д.
Если вы используете expo, это невозможно, так как вы не должны возиться с собственным кодом. expo поддерживает только версии вашего приложения для каналов выпуска (dev, staging, prod).
Примечание. Мне не приходилось работать с iOS, поэтому я не могу предоставить какие-либо полезные ссылки. Но я уверен, что будет что-то подобное.
попробуйте github.com/lerna/lerna