Ejecución instantánea o Recarga caliente para Xcode

Soy un desarrollador de Android y recientemente comencé a aprender Swift. Hay una característica interesante en el estudio de Android llamado Instant Run , que networkinguce significativamente los times de creación e implementación para los cambios incrementales de código durante la encoding.

Introducido en Android Studio 2.0, Instant Run es un comportamiento para los commands Ejecutar y depurar que networkinguce significativamente el time entre las actualizaciones de su aplicación . Aunque su primera compilation puede tardar más en completarse, Instant Run empuja las actualizaciones posteriores a su aplicación sin crear una nueva APK, por lo que los cambios son visibles mucho más rápidamente.

Si habilita Instant Run en Android Studio, no hay necesidad de crear y ejecutar la aplicación desde cero, especialmente cuando está trabajando en algunos detalles View Controller en el medio de la aplicación (storyboard).

Tengo curiosidad por saber si esta function o algo similar está disponible en XCode o debo ejecutar la aplicación desde cero cada vez que quiero probar la aplicación.

HAY UNA MANERA !

Encontré esta pregunta hace un time y concluyo que no había ninguna forma de tener una ejecución instantánea real en iOS.

PERO ! Recientemente encontré una increíble biblioteca que te permite llevar a iOS esta increíble function. Lo comparto aquí porque se volvió esencial para mí y me hubiera encantado encontrarlo cuando vine aquí por primera vez. Se llama inyección para Xcode y toma la forma de un complemento. La installation es un poco larga debido a las nuevas limitaciones de Xcode. Tendrá que parchear Xcode para poder ejecutar complementos en él. Puede encontrar todas estas informaciones en Léame o en "Problemas". Puede demorar hasta 30 minutos, ¡pero este complemento es un ahorro de time real !

Una vez que esté instalado, ejecute su aplicación como siempre con Xcode ( CMD + R ). Luego, cambie el código en algún lugar de un controller. Ahora, click CTRL + = para usar el complemento de inyección. No verá ninguna recarga en su simulador, pero si lo intenta, verá que se han tomado los cambios de su código (¡en unos pocos segundos!).

Por ejemplo, tiene esta línea:

 self.view.backgroundColor = [UIColor blackColor]; 

Después de que su aplicación se esté ejecutando con CMD + R , cambie la línea a:

 self.view.backgroundColor = [UIColor whiteColor]; 

Presione CTRL + = y ¡disfrute!

Espero que esto ayude a alguien! Si tiene alguna pregunta (para installation u otra), pídeme un comentario.

Puede seleccionar el inicialviewController para su proyecto desde el guión gráfico o programáticamente; a la vista, que solo necesita cargar en el momento de la testing.

Pero , en realidad no necesita preocuparse por comstackr su código desde cero. Esto es una especie de comportamiento de automation para xCode, ya que solo comstack el código que ha cambiado. Puede observar esto dentro de su jerarquía de files como se muestra a continuación:

La 'M' y 'A' al lado de los files se refiere a; 'Archivos modificados' y 'Archivos agregados'

La 'M' y 'A' al lado de los archivos se refiere a; 'Archivos modificados'

Los files sin modificaciones; Después de una compilation, no tomará tanto time para build.

Simplemente agregue más explicación a la respuesta de Aashish:

Lograr esto:

¿Hay alguna function en xcode que me haga capaz de no ejecutar la aplicación desde cero y reiniciar el controller de vista actual durante el process de construcción?

puede configurar el controller de vista como Controlador de vista inicial

introduzca la descripción de la imagen aquí

Por supuesto, el comentario de HAS tiene toda la razón:

El controller de vista inicial es con el que comienza su aplicación, de modo que si en su flujo original pasa datos de VCA a VCB y luego establece VCB como el controller de vista inicial, cuando la aplicación vuelve a ejecutarse, los datos no se pasan a ella ( porque VCA no se instancia en absoluto) y probablemente no puedas hacer mucho