¿Por qué Reactnative aparece en blanco al cargar?
El problema de la escasez de talentos El primer problema es: la escasez de talentos de desarrollo móvil. Mire a esas personas que salen de las clases de formación después de 3 meses de formación, pueden conseguir trabajos por valor de 8.000 o incluso decenas de miles. El desarrollo de iOS con un poco de experiencia laboral en Beijing requiere un salario mensual de 20.000. Esto muestra que el auge actual de Internet móvil y el espíritu empresarial ha dejado a la industria con talentos de desarrollo insuficientes, por lo que todos están utilizando aumentos salariales para captar talentos. Dado que los marcos multiplataforma (como PhoneGap, RubyMotion) aún no son confiables, las empresas un poco más grandes optarán por realizar un desarrollo personalizado diferente para las plataformas iOS y Android. JavaScript es obviamente un lenguaje con una base masiva más amplia, lo que facilitará la obtención de talentos relevantes. Al mismo tiempo, dado que se resuelve el problema de reutilización de código mencionado más adelante, también puede salvar a algunos desarrolladores. El problema de la reutilización de código Aunque React Native enfatiza que no es un marco de "escribir una vez y ejecutar en cualquier lugar", al menos puede lograr la reutilización en la capa de modelo como j2objc de Google. Creo que React Native también puede reutilizar la lógica subyacente que no tiene nada que ver con la interfaz. De esta forma, aunque el trabajo de la capa UI aún debe realizarse tanto en plataformas iOS como Android, si la abstracción es buena, la reutilización de las capas Lógica y Modelo no sólo permitirá la reutilización de código, sino que también permitirá implementar pruebas unitarias de la lógica subyacente. De esta forma, la calidad del código del terminal móvil será más fiable. De hecho, el "Aprende una vez, escribe en cualquier lugar" promovido por React Native es en sí mismo una idea de reutilización. Todo el mundo está cansado de varios lenguajes de programación. Si existe un lenguaje que realmente pueda unificar el campo del desarrollo móvil, será algo bueno para todos. En cuanto al diseño de la interfaz de usuario, siempre no me ha gustado la nueva solución AutoLayout de Apple. De hecho, HTML y CSS han estado profundamente involucrados en el diseño y la presentación de la interfaz durante muchos años. Android también utiliza la solución HTML. . Pero Apple decidió inventar una restricción para implementar la composición tipográfica. En el desarrollo empresarial, la gente rara vez usa Xib y la restricción de escritura a mano es realmente muy dolorosa. Por lo tanto, han surgido marcos de código abierto como Masonry para resolver el problema de estos pares. He estado buscando un marco que use tipografía similar a HTML + CSS, pero que se represente usando controles nativos. De hecho, BeeFramework ya lo ha hecho antes. Así que también lo entrevisté específicamente en nombre de InfoQ. Aunque BeeFramework ha sido de código abierto durante muchos años y tiene más de 2000 estrellas, no ha tenido mucho éxito debido a su propia influencia y la complejidad del marco. Al menos no conozco ninguna gran empresa que lo utilice. Esta vez React Native de Facebook está haciendo algo más radical que BeeFramework. No solo utiliza un diseño similar a HTML + CSS, sino que también cambia el idioma a JavaScript. Se puede decir que este cambio es enorme. Pero Facebook tiene su aura como empresa global de Internet y creo que muchos desarrolladores seguirán su ejemplo y adoptarán React Native. Pero dicho esto, los proyectos de código abierto de Facebook no siempre son buenos. Por ejemplo, Facebook abandonó three20, pero es innegable que three20, como marco, tuvo un valor específico durante ese período. Entonces, incluso si React Native no tiene éxito, pone de relieve la eficiencia del desarrollo móvil. Es probable que como resultado surjan cada vez más marcos relacionados. MVVMMVVM es bastante popular en el campo del desarrollo web, mientras que ReactiveCocoa en el campo de iOS es muy popular, pero sigue siendo un nicho.
La razón es que, por un lado, los cambios en los hábitos de programación provocados por ReactiveCocoa son demasiado grandes y el costo de aprendizaje de ReactiveCocoa y MVVM sigue siendo muy alto. Por otro lado, ReactiveCocoa no es muy fácil de usar en términos de legibilidad, mantenimiento y colaboración del código. La aceptación del modelo de programación MVVM en el campo del desarrollo web es bastante diferente. Existen bastantes marcos MVVM ampliamente utilizados en el desarrollo web, como AngularJS. Creo que React Native promoverá el desarrollo de aplicaciones MVVM en el lado móvil. Las actualizaciones dinámicas finalmente llegan a la parte más "libre de pollo". ¿Estás harto de tener que revisar cada nueva versión durante una semana? La ineficiencia del equipo de revisión de Apple obliga a nuestro ágil equipo de desarrollo, al que no se le permite iterar y actualizar una versión todos los días, a verse obligado a actualizar la versión cada 2 semanas o 1 mes. Muchos equipos no han terminado de revisar la versión anterior y la próxima versión está lista. El lenguaje de React Native se basa en JavaScript, lo que inevitablemente hace posible que el código se actualice dinámicamente desde el lado del servidor. Para entonces, las actualizaciones diarias ya no serán un sueño. Por supuesto, la seguridad del código se verá aún más desafiada y cómo proteger eficazmente la seguridad del código central será un problema difícil. Resumen Pase lo que pase, esta es de hecho una era de Internet móvil. Creo que con el desarrollo de varios años, la ecología de desarrollo de Internet móvil acumulará marcos cada vez más valiosos para respaldar la aparición de mayores aplicaciones. Como desarrollador móvil, estoy muy feliz de ser el protagonista de esta era y utilizar la tecnología de desarrollo móvil para cambiar la vida de las personas.