feature request: Proposal: Evaluate migration from React Native CLI to Expo for improved DX and maintainability
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- react-native
Línea de trabajo
Comienza auditando las dependencias nativas actuales del proyecto Rocket.Chat React Native y comprobando su compatibilidad con Expo Dev Client. Prueba si el proyecto puede ejecutarse con el enfoque de prebuild propuesto y, a continuación, documenta los módulos que necesitan compatibilidad nativa personalizada. Se considera terminado cuando haya un estudio de viabilidad que identifique los bloqueadores y, si es viable, una hoja de ruta de migración por fases.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Feature Description
Proposal: Evaluate migration from React Native CLI to Expo
Problem
The current Rocket.Chat React Native app is built using the React Native CLI and relies heavily on manual native configuration. This leads to:
- Complex setup for new contributors
- Dependency conflicts (Node/React version alignment)
- Longer onboarding time
- Increased maintenance overhead for native modules
- Difficult environment reproducibility
During local setup, contributors often face issues related to:
- Peer dependency mismatches
- Native build configuration
- Version compatibility
Proposed Direction
Explore the feasibility of gradually adopting Expo (prebuild/dev-client approach) to improve:
- Developer experience
- Faster onboarding for contributors
- Easier dependency management
- Reduced native configuration complexity
- Improved testing and iteration speed
This does NOT necessarily mean a full immediate migration, but rather:
- Evaluating compatibility with existing native modules
- Identifying blockers
- Creating a migration roadmap if feasible
Possible Approach
- Audit current native dependencies and Expo compatibility
- Test running the project using Expo Dev Client
- Document modules requiring custom native support
- Propose a phased migration strategy (if viable)
Motivation and Use Case
Expected Benefits
- Faster setup for contributors
- Reduced environment-related issues
- Improved long-term maintainability
- Easier experimentation and feature development
Implementation Ideas
Willing to Contribute
I would like to take ownership of:
- Initial feasibility study
- Dependency compatibility analysis
- Proof-of-concept setup
- Documentation for migration path
Would love feedback from maintainers on whether this direction aligns with project goals.
Is this feature available in the API or web version?
Available in API
Rocket.Chat Server Version
No response
Rocket.Chat App Version
No response
Device Name
No response
OS Version
No response
Additional Context
No response
- Lenguaje dominante
- TypeScript
- Estrellas
- 2.4k
- Forks
- 1.5k
- Merge medio
- 1 d 15 h
- PR fusionados (30 d)
- 29
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de RocketChat/Rocket.Chat.ReactNative
-
[IMPROVEMENT] Remove redundant `await` on synchronous `userPreferences.getBool` in `getUsersPresence`Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertotype: feature
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
RocketChat/Rocket.Chat.ReactNative#7737 ·
Los mantenedores suelen responder en 1 día
-
UIKit modal: a viewSubmit response with no `type` field fails to close the modal on mobile (regression from #7057)Posiblemente ocupada @erikurt9 la tomó hace 106 días. Abiertotype: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
RocketChat/Rocket.Chat.ReactNative#7503 · 3 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
type: bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
RocketChat/Rocket.Chat.ReactNative#7437 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
✅ tests 👷 ci type: feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
RocketChat/Rocket.Chat.ReactNative#7247 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug: goRoom navigates to broken RoomView after failed DM creation from searchPosiblemente ocupada @deepak0x la tomó hace 216 días. Abiertotype: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
RocketChat/Rocket.Chat.ReactNative#7098 ·
Los mantenedores suelen responder en 1 día
Todos los issues de RocketChat/Rocket.Chat.ReactNative
Issues similares
-
Bug: Broken RTL / BiDi text rendering when mixing Persian (Farsi) with English or numbersPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug
Dificultad 2/5 Medio día Aptitud para principiantes 68/100
amosblomqvist/learnharness#758 ·
Los mantenedores suelen responder en 2 días
-
Change WorkspacesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
bitfocus/companion-module-renewedvision-propresenter-api#134 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
rcpch/digital-growth-charts-react-component-library#304 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
dsh-market/dsh-market#1210 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
trustjonathan/STUDY-HUB#13 ·