¿Debo usar Swift u Objective-C para aprender el desarrollo de iOS?

Hay una gran idea errónea sobre el desarrollo de iOS. Esta idea errónea es que es “difícil” porque Objective-C es un lenguaje difícil de usar, y esto ha servido como una barrera de entrada para muchos.

Sí, Objective-C puede parecer un poco divertido. Sí, es un poco detallado. Sí, puede tener muchos corchetes y demás, pero cualquiera que haya aprendido cualquier otro idioma debería poder aprender la sintaxis en aproximadamente 30 minutos. No es broma.

¡El verdadero obstáculo que debes superar para aprender el desarrollo de iOS es aprender Cocoa Touch! ¡La API de Cocoa es enorme! Además, presenta muchos paradigmas de codificación que no se encuentran explícitamente en otros entornos de desarrollo como:

-delegados
-fuentes de datos
-propietario del archivo
-primeros respondedores

Tiene una forma muy específica de ejecutar aplicaciones, y debes seguir las reglas o inventar la rueda desde cero.

¡Todo esto aún persiste en Swift! ¡Utiliza los mismos marcos! Sí, puede requerir menos pulsaciones de teclas para concatenar una cadena en Swift, pero esto no es lo que dificulta el desarrollo de iOS: está aprendiendo cómo usar Cocoa de manera efectiva.

Una vez que aprende la forma de desarrollo de Cocoa, otras cosas como las rarezas de sintaxis se convierten en un problema porque obtienes el diseño general.

Así que mi sugerencia: no te obsesiones con “Objective-C o Swift ??” – concéntrate en aprender Cocoa, por cualquier medio que puedas. Aprenda sobre delegados y fuentes de datos. Envuelva su cabeza alrededor de lo que significan detrás del “propietario del archivo”. Aprenda Xcode y cómo los elementos de la interfaz de usuario se vinculan al código.

No seas ese chico / chica que se preocupa por “qué idioma”, ¡aprende todo! Los idiomas son fáciles de aprender una vez que se te ocurre que son difíciles de aprender 🙂

Actualización 21/09-16

Woah! Han pasado muchas cosas en los últimos años desde que escribí mi respuesta original. Quería venir aquí y darle una actualización.

Actualmente, mi respuesta ha cambiado 180 grados y creo firmemente que las nuevas aplicaciones deberían usar Swift . Hay algunas excepciones a esta regla (como todas las reglas), pero primero quiero explicar mis razones para favorecer a Swift.

  • Primero, el compilador Swift es estable y cuenta con características lo suficientemente completas como para ser utilizado día a día sin muchos problemas. Por supuesto, todavía hay problemas, pero son mucho menos y más largos de lo que solían ser.
  • Segundo, ¡Swift es simplemente un gran lenguaje! El sistema de tipos es de apoyo, pero no se siente el peso en ningún lado. No solo eso, los errores del compilador están mejorando cada vez más. Aunque tedioso a veces, esos errores en promedio en realidad conducen a una depuración más rápida y un desarrollo más rápido.
  • Finalmente, Swift es hacia donde va el mercado. Cada vez más, veo a nuestros alumnos recibiendo entrevistas en Swift sobre Objective-C. No solo eso, la comunidad ha adoptado completamente el uso de Swift, y todas las nuevas características creadas por la comunidad llegan primero a Swift.

Tengo algunas excepciones a mi regla de usar Swift. Todavía hay algunas situaciones en las que Objective-C brilla:

  • Si necesita interactuar con una antigua biblioteca C / C ++, Objective-C es mucho mejor.
  • Si está haciendo una ** tonelada ** de video o audio. Esto se puede hacer al 100% con Swift, pero me parece que esas bibliotecas de iOS son un poco viejas y crujientes y realmente se prestan mejor a Objective-C.

En Flatiron School, llegamos a esta conclusión hace unos meses y hemos estado trabajando las 24 horas para traducir todo nuestro Programa de Desarrolladores iOS de NYC a Swift, así como para lanzar un curso Swift gratuito en línea. Compruébalo: Swift: creación de aplicaciones para iOS. Swift es un lenguaje realmente asombroso; Usted debe darle una oportunidad.

Respuesta original de 2014:

En resumen, no. Cada base de código actual será objetivo-c. Toda biblioteca de terceros actual es objetiva-c. No necesita saber obj-c para aprender rápido, pero será de gran ayuda. Saber que el objetivo-c será crucial durante al menos los próximos seis meses a un año. Siempre encontrarás formas de retrasar el aprendizaje de algo. Saca Swift de la ecuación.

Afortunadamente, aprender objetivo-c te ayudará enormemente con Swift. Gran parte de la programación de iOS es simplemente aprender los marcos. Aunque la sintaxis cambia de Obj-C a Swift, las propiedades, los métodos y todo lo demás acerca de estos marcos es coherente. Por último, la mayoría de los materiales de aprendizaje para Swift suponen que usted ya conoce el objetivo-c y existen a propósito muchos paralelos entre el objetivo-c y swift. Aprenda Objective-C, luego, cuando lo necesite, aprenda rápido. Va a ser bastante fácil aprender ese segundo idioma.

Aprenda Objective-C ahora. Si desea ayuda con el objetivo-c, reuní algunos recursos en la escuela Flatiron Pre-work para mi clase en la escuela Flatiron School. Con suerte, te ayudarán.

El lenguaje de programación rápido es la respuesta. Está ganando más popularidad e incluso los fundadores lo están promocionando más que el Objective-C para el desarrollo de aplicaciones iOS. Hace más de un año que se lanzó Swift. Este nuevo lenguaje de programación de iOS ha ganado suficiente tracción de la comunidad de desarrolladores y las alabanzas siguen llegando continuamente. Las reseñas sobre este idioma muestran claramente que este es el futuro lenguaje iOS. Las personas que van a hacer su carrera en el desarrollo de aplicaciones, Swift serán su primera prioridad en idiomas.

Lanzamiento de Swift

En WDC 2014, Swift es lanzado por Apple. Esta compañía ha dado una gran sorpresa a todos los desarrolladores al lanzar este nuevo lenguaje. La marca del lenguaje Swift comenzó con el lenguaje de programación “Rápido, moderno, seguro e interactivo”. Según los creadores, este lenguaje es mucho más fácil de aprender y ayudará a que la programación sea más productiva.

¿Por qué se lanzó Swift mientras Objective-C está allí?

Todos estaban desarrollando aplicaciones iOS en Objective-C antes del lanzamiento de Swift. Las personas han estado usando este lenguaje por más de 20 años. Según las revisiones de diferentes desarrolladores, Objective-C es mucho más difícil de aprender y la sintaxis parecía extraña. El código escrito en Objective-C para cualquier aplicación parece realmente extraño, a veces asusta al principiante y, por lo tanto, detiene el campo de desarrollo de aplicaciones iOS. Es por eso que Apple planeaba lanzar un lenguaje con una sintaxis clara y conceptos fáciles. Swift tiene todo lo que un principiante quiere. Las personas que usan Swift de la versión beta, dicen, Swift es mucho más productivo en comparación con Objective-C. Una vez que una persona comenzó el desarrollo en la programación Swift, sería realmente difícil para él volver a Objective-C.

Diferencias clave entre Swift y Objective-C

    • El objetivo C ha hecho que la programación sea de alguna manera más compleja. El objetivo C ha introducido el símbolo @ para diferenciar las palabras clave y el tipo de los tipos C. Ahora Swift no está construido a través del lenguaje c, puede unificar principalmente todas las palabras clave y, por lo tanto, eliminó el símbolo @ y facilitó el lenguaje Swift.
    • En Swift, no hay necesidad de escribir punto y coma en las líneas finales. El otro buen cambio que trae Swift es que, para llamar a métodos y funciones, solo necesita usar la lista de parámetros separados por comas estándar de la industria entre paréntesis. No es necesario usar [[[]]] que estábamos usando en Objective-C. Este tipo de cosas pequeñas hacen de Swift un lenguaje simple y fácil.
    • El objetivo C está hecho del lenguaje C. Para mejorar el tiempo de compilación y la eficiencia de la aplicación, un desarrollador debe mantener dos archivos de código si la aplicación se desarrolla en el objetivo C. Mientras esté en Swift, no es necesario mantener dos archivos diferentes, Xcode y el compilador LLVM calcula automáticamente los requisitos y realiza compilaciones incrementales automáticamente. Si desarrolla aplicaciones en Swift, el encabezado del objetivo C (.h) y el archivo de implementación (.m) se convierten en un único archivo de código con extensión (.swift).
    • Swift es muy superior y de apoyo también con los otros lenguajes, mientras que el objetivo C falta aquí. El soporte de ARC- Recuento automático de referencias en el Objetivo C solo está disponible dentro de las API de Cocoa y el código orientado a objetos. Para el código de procedimiento C y las API como Core Graphics, ARC no es compatible con el objetivo C. Por lo tanto, aquí la responsabilidad de un programador se vuelve doble porque necesita administrar manualmente la memoria mientras trabaja con las API de Core Graphics y otras API de bajo nivel. disponible en iOS.
    • Este problema de administración de memoria del Objetivo C se resuelve en Swift. Un programador que usa Swift no debe preocuparse por la memoria de cada objeto digital creado por él / ella. ARC maneja estos procesos de gestión de memoria en el momento de la compilación. Por lo tanto, un programador puede centrarse totalmente en la lógica principal de la aplicación y las nuevas características. Este sistema de gestión de memoria automático y superior ayuda a aumentar la productividad.
    • Si está creando una aplicación en el Objetivo C, debe escribir cientos de líneas de código para declaraciones repetitivas y manipulación de cadenas. Swift ha reducido el código en este tipo de cosas. Si necesita combinar dos piezas de información, debe seguir una serie de pasos mientras Swift está utilizando características modernas del lenguaje de programación donde puede conectar dos cadenas con el operador simplemente “+”.
    • En Swift, el compilador puede detectar automáticamente los tipos que reducen la complejidad de las declaraciones de código. En el Objetivo C, si un programador ha usado una cadena incorrecta, la aplicación podría bloquearse instantáneamente. Swift admite métodos en línea para manipular cadenas de texto y datos que lo ayudan a salvar su trabajo de daños en este tipo de situaciones.

    Sobre todo, su popularidad ha alcanzado tal altura que incluso Google está pensando en Swift para el desarrollo de Android.

    ¡Buena suerte!

    Fuente: Los términos clave que prueban, Cómo Swift supera a Objective-C

    Lo que sigue siendo lo mismo (Pros de Obj-C):

    – Los marcos no cambian, los desarrolladores que usan las bibliotecas de Cocoa Touch para las interacciones y esa sigue siendo una forma sólida de tratar con Obj-C. Swift acaba de dar una nueva forma de hacerlo.

    – Las aplicaciones que están activas y en mantenimiento conservarán su código Obj-C, ¿por qué alguien tendrá una revisión de toda la base de código a Swift, siendo un nuevo lenguaje? Eso reduce los cambios o las adopciones más amplias.

    – Sensación de pérdida de tiempo invertida en Obj-C, no a todos los desarrolladores les gustará realmente. Las habilidades desarrolladas no se aplicarán exactamente de la misma manera.

    – Conjunto limitado de atributos en Swift.

    – Materiales de aprendizaje, fuentes de aprendizaje y apoyo comunitario ya consolidados para problemas. Es como coger un nuevo monorraíl, en lugar del viejo metro.

    Lo que es realmente nuevo (Pros de Swift y efectivamente Contras de Obj-C):

    – Código reducido, más ágil y más limpio, al igual que los lenguajes modernos como Python. Definitivamente reduce la curva de aprendizaje y, con suerte, veremos a más desarrolladores jóvenes recogiendo Swift a un ritmo sin precedentes.

    Ciertos ejemplos: no es necesario finalizar las declaraciones con punto y coma, sin necesidad de archivos de encabezado, inferencia de tipos incluida, tipeo fuerte, sobrecarga del operador, soporte completo para Unicode.

    – Arreglando el comportamiento problemático de Obj-C (familia C) mediante la eliminación de punteros, errores de tiempo de compilación para asignaciones de valor cero, sin necesidad de ‘interrupción’ en bloques de interruptores, control de desbordamiento de variables

    – Depuración más fácil y automatizada. Un elemento clave del sistema Swift es su capacidad de depuración limpia y ejecución dentro del entorno de desarrollo, utilizando un bucle read-eval-print (REPL), lo que le otorga propiedades interactivas más comunes con los sistemas de script como Python que los lenguajes de programación de sistemas tradicionales .

    – Salida en tiempo real: REPL se mejora aún más con Playgrounds que son vistas interactivas que se ejecutan dentro del entorno Xcode que responden a los cambios de código o depurador sobre la marcha. Asistente de línea de tiempo para ver la salida de manera más interactiva.

    Apple afirma que Swift “es el primer lenguaje de programación de sistemas de calidad industrial que es tan expresivo y agradable como un lenguaje de secuencias de comandos”.

    Gestión automática de la memoria, definiciones claras de la complejidad del código en tiempo real.

    – Ciertos otros refinamientos modernos según lo dicho por los desarrolladores:

    Cierres unificados con punteros de función
    Tuplas y múltiples valores de retorno
    Genéricos
    Iteración rápida y concisa sobre un rango o colección
    Estructuras que soportan métodos, extensiones, protocolos.
    Patrones de programación funcional, por ejemplo: mapa y filtro.

    – Dato curioso: ahora puedes usar emojis en tu código. 😛

    – Fuerte respuesta y desarrollo de la comunidad: ya veo más de 600 repositorios en GitHub. Ver aquí: cree un software mejor, juntos.

    Hay toneladas de improvisaciones disponibles de las que puedo seguir hablando todo el día, pero eso realmente no hace la diferencia.

    Sin embargo, la diferencia aparecerá cuando las nuevas aplicaciones en iOS 8 y OSX 10.10 parezcan ser mejores en todos los aspectos técnicos más adelante en otoño.

    Los primeros programadores que comenzaron con Python, C / C ++ seguramente optarán por Swift como el camino para el desarrollo de Apple.

    A los desarrolladores de mucho tiempo para otras plataformas como Windows, Windows Phone, Android y Chrome también les gustará probar esta llamada ‘C con esteroides’, es decir, Swift.

    Cada codificador desea un lenguaje más simple que le ahorre tiempo y sea más fácil de compartir, aprender de forma iterativa y enseñar a los equipos de desarrolladores.

    Conclusión: ¿Entonces irás por Swift siendo un codificador experto de Obj-C? Totalmente tu elección amigo! Apple te dio el poder, ahora es tu turno de elegir las armas sabiamente.

    Mi consejo: “A veces, para ver la luz, debes arriesgarte a la oscuridad”.

    Definitivamente, esta pregunta pertenece a los problemas más populares, especialmente a los desarrolladores que solo comienzan su camino en el desarrollo de iOS y piensan en elegir entre Objective-C y Swift como una plataforma más productiva para el inicio profesional.

    Recientemente publicamos el artículo llamado Swift u Objective-C? Consejos sobre herramientas para desarrolladores de iOS en Tubik Blog en el que Tubik CTO y la experimentada desarrolladora de iOS Maria Nazarenko compartieron su opinión sobre este tema discutible. Revisemos algunos puntos de este artículo, ya que definitivamente refleja la pregunta.

    Debido a Xcode, que es el entorno de desarrollo integrado (IDE) con un conjunto de herramientas de desarrollo de software, los desarrolladores de iOS pueden trabajar aplicando Objective-C o Swift, de hecho, utilizando la misma herramienta de desarrollador.

    Mientras Objective-C exista por mucho más tiempo, es natural que muchas aplicaciones simples y complejas ya se hayan logrado con este lenguaje. No conocer Objective-C y comenzar directamente desde Swift puede limitar la flexibilidad profesional del desarrollador. Puede ser especialmente obvio en caso de que los desarrolladores tengan que actualizar los productos existentes.

    A veces sucede que los desarrolladores, conociendo solo a Swift, recomiendan reescribir el código existente (tal vez grande o incluso enorme) de Objective-C a Swift, los clientes lógicamente no ven esto aceptable y ciertamente no aceptan la necesidad de pagar por esto. trabajo.

    Considerando esto, la mejor opción es conocer ambos idiomas. Eso brinda a los desarrolladores flexibilidad profesional natural para cualquier tarea y entorno que tengan que abordar en los proyectos actuales. Al elegir con qué lenguaje de programación comenzar, hay dos estrategias que dependen principalmente del tiempo disponible.

    En caso de que haya una cantidad considerable de tiempo entre estudiar conceptos básicos y aplicarlos en la práctica real, nuestro consejo es comenzar con Objective-C. Aunque a menudo se describe como más complicado, establece una base sólida de principios básicos y la rutina de crear aplicaciones para y usar el sistema iOS. Sobre esta base, aprender otro idioma de iOS, como Swift, que es sintácticamente más simple, no parecerá demasiado difícil.

    Sin embargo, también puede haber otra estrategia, un poco más dinámica que la anterior y aplicable para aquellos que no tienen suficiente tiempo a su disposición que necesitan comenzar el trabajo real lo antes posible. En este caso, puede comenzar con Swift, ya que es más fácil en sintaxis y más similar a otros lenguajes de programación, por lo que tomará menos tiempo comenzar la codificación práctica. Obteniendo los conceptos básicos del desarrollo de esta manera, no olvide agregar Objective-C a la práctica y pulir las habilidades en ambos idiomas. Definitivamente dará resultado si se aborda con cuidado y rigor.

    Como de costumbre, estoy abierto a más discusión si lo desea. ¡Buena suerte!

    ¿Cómo se come un elefante? ¿Cómo logras una tarea enorme? ¿Cómo se construye una pirámide?

    Una pieza (mordisco) a la vez.

    Swift y Objective C son muy fáciles de comenzar, son los frameworks y las conexiones, el tiempo de ejecución y demás lo que es difícil de hacer.
    Hacer cualquier programación en iOS u OS X no es difícil per se, pero es muy avanzado. Requiere una gran cantidad de conocimientos previos. Debes saber cómo codificar, principios orientados a objetos, punteros, montones, pilas y algunas otras cosas avanzadas, solo para comenzar. Esto es muy factible, no es fácil. Se necesita mucho trabajo. Las universidades tardan 3 años en enseñar a alguien a hacer esto, y los estudiantes allí trabajan 40-90 horas por semana mientras la escuela está en marcha.

    Deberías comenzar, aprender los conceptos básicos.

    Una manera muy fácil de comenzar es f.ex. haciendo programación LUA con Corona SDK. Esto te permite hacer juegos con física (o sin ellos), mover objetos, hacer toques, deslizar y hacer juegos que puedas vender. Escribí breakout y pong en 100 líneas de código (cada una). Sí, solo cien líneas. Por supuesto, esta no era una aplicación de calidad de la tienda de aplicaciones. Pero hice esto en 1 noche y a mis hijos les encantaron mis pequeños juegos tontos. Hice algunos más, con música, tempo, más dificultad. Y puede comenzar de forma gratuita, como en 0 dólares. Hay una persona increíble llamada cheetomoskeeto en youtube que tiene tutoriales gratuitos.

    Enlace: cheetomoskeeto

    Luego está XOJO, que es un dialecto básico avanzado, donde puedes escribir aplicaciones para Mac, Linux, Windows e iOS, de forma gratuita. Es muy bueno. Aprenderás las cuerdas allí. Tienen excelentes libros y tutoriales e incluso videos en youtube con juegos y aplicaciones rudimentarios, escritos desde cero. Gratis.

    Diría que le tomará solo unos meses con cualquiera de estas herramientas para ponerlo en marcha, e incluso permitirle enviar una utilidad simple a App Store. Luego, avanzas más y continúas, porque esto es muy divertido una vez que haces rodar la pelota. Dentro de un año, debe estar calificado para juzgar si continúa con las herramientas anteriores o si pasa a Swift u Objective C.

    Tanto Corona como Xojo tienen un excelente grupo de personas a su alrededor, y foros en los que a la gente realmente le gusta ayudarte. Eso es lo que necesitas para ponerte en marcha.

    Whoah! Respuestas confusas!

    Esto es lo que todos dicen, en orden de preferencia:

    1. C objetivo
    2. Rápido
    3. C

    Yo digo: ¡ comienza con Swift!

    Es mucho más fácil que Objective-C, de verdad. Además, no tienes experiencia con la programación, ¡así que aún tienes que descubrir si realmente te gusta programar!

    Swift es una excelente manera de hacerlo, porque es fácil, tiene un área de juegos y ofrece la recompensa más rápida de los 3 idiomas.

    Te mantendrás motivado con la programación de aprendizaje si ves que lo que haces tiene un efecto positivo. Para C y Objective-C, pasará mucho tiempo antes de que haya hecho algo tangible. Con Swift, eso sucede mucho antes, por lo que te mantendrás motivado.

    Otra cosa: Swift crece contigo. Tiene muchas características interesantes para programadores de nivel intermedio y avanzado.

    Soy el autor de un curso que te enseña programación Swift para aplicaciones en 2 meses. Te lleva de cero a héroe; desde no tener experiencia en codificación hasta poder crear sus propias aplicaciones. Está por aquí: LearnAppMaking.com

    Si sabe cómo crear sus propias aplicaciones, realmente ha dominado la programación.

    EDITAR: desde que respondí esta pregunta, actualicé mi pensamiento Swift vs. Objective-C en esta publicación de blog: ¿Deberías aprender Swift o Objective-C? [ACTUALIZADO] – LearnAppMaking

    Elegir Swift es una opción real, más que nunca, especialmente porque el lenguaje ha madurado mucho y tiene muchas ventajas sobre Objective-C.

    ¡Absolutamente! Hay varias razones por las cuales, pero te daré tres por ahora:

    • Objective-C ha existido mucho más tiempo y, por lo tanto, hay más tutoriales disponibles para ello. Sin embargo, con el tiempo extra, veremos la cantidad de tutoriales de Swift que reemplazan la cantidad de tutoriales de Obj-C.
    • Si está solicitando un trabajo, muchas compañías aún le pedirán que tenga experiencia en Objective-C. Dado que Swift (en el momento en que esta respuesta) aún está madurando, las compañías pueden ser reacias a mover todo o la mayor parte de su código a Swift. Esto es especialmente cierto para las grandes empresas como Google, Microsoft o Facebook, donde muchas de sus aplicaciones tienen miles de líneas de código, y no pueden simplemente cambiar todo su código Objective-C a Swift, solo para que solo romper si la comunidad Swift decide eliminar algo Entonces, al menos durante algún tiempo, todavía van a necesitar programadores de Objective-C. Si no recuerdo mal, las dos únicas aplicaciones de Apple que están escritas principalmente en Swift son la aplicación WWDC y la aplicación Calculadora. Entonces, incluso Apple no ha pasado por un cambio completo a Swift.
    • Todavía hay más proyectos de código abierto Objective-C disponibles en GitHub y BitBucket que Swift. Además, hay comunidades para muchos de los proyectos de Objective-C que son más grandes y más activas y, por lo tanto, más fáciles de responder. En algún momento en el futuro, eso cambiará y los estados de los dos idiomas cambiarán por completo, pero por el momento, si hay un proyecto en GitHub que desea usar para su propio proyecto, pero está disponible en Objective-C , entonces podría ser más difícil para usted entender lo que está sucediendo.

    Ahora con eso dicho, no tienes que entender todo . En cambio, le recomiendo que al menos comprenda la sintaxis y conozca las cosas básicas de Obj-C. Recomiendo esta serie de publicaciones de blog, ya que me ha ayudado mucho con el aprendizaje de Swift, por lo que debería ayudarlo a saber cómo traducir el código Obj-C a Swift.

    Dicho esto, ¿significa esto que no deberías aprender Swift principalmente? ¡Por supuesto no! Deberías poder salirte con la tuya. Todo lo que digo es que no debes descuidar Objective-C solo porque todos están aprendiendo Swift. Al menos para mí, me gusta Swift y prefiero codificar en Swift, pero también conozco Objective-C. Actualmente estoy construyendo mi próxima versión de una aplicación que he estado haciendo desde 2011 y aunque está siendo escrita en su mayoría en Swift, todavía hay algunos proyectos de GitHub que estoy usando que están escritos en Objective-C. Realmente no puedo hacerlo, así que no tengo más remedio que usarlos. Pero como sé cómo usar Objective-C, puedo leer fácilmente la documentación de los proyectos y escribirlos en Swift.

    Conocer ambos es la mejor opción, pero si desea codificar principalmente en Swift, al menos estar familiarizado en Objective-C será de gran ayuda.

    Estoy respondiendo esta pregunta en base a mi experiencia, pero espero que esto te haya ayudado.

    Como con la mayoría de las cosas, dependerá de cuáles sean sus objetivos. Hay ventajas y desventajas de ambos enfoques, que voy a destacar a continuación. Como muchas personas han respondido, hay muchas bases de código que están actualmente escritas en Objective-C. Sin embargo, Swift se está poniendo al día y creciendo en popularidad como loco.

    Este artículo puede interesarle en el blog Touchtap:
    Swift Open Source y el idioma más popular de Github | Desarrollo de aplicaciones móviles Desarrolladores de aplicaciones Dallas Fort Worth DFW

    En mi opinión, aquí están los pros y los contras de aprender Swift primero:

    • Pro: vanguardia de los lenguajes de desarrollo móvil para Apple
    • Pro: curva de aprendizaje rápido, con gran parte de la pelusa cortada
    • Pro: algo traducible a Objective-C
    • Con – no completamente traducible a Objective-C
    • Con: el desarrollo móvil de Apple comenzó en Objective-C, y el lenguaje sigue vivo y bien.
    • Con: muchas personas no han cambiado a usar Swift

    Si estuviera en tu lugar con mis propios objetivos, comenzaría a aprender Swift (sin embargo, ya tengo Objective-C y muchos otros idiomas en mi haber). ¿Su objetivo es ir a trabajar para una agencia de desarrollo o startup, crear y apoyar aplicaciones móviles? Me gustaría saber para quién quieres trabajar, y me imagino que están usando para construir sus aplicaciones. ¿Tu objetivo es crear tus propias aplicaciones? Comenzaría con Swift, ya que la curva de aprendizaje es más pequeña. ¿Su objetivo es incursionar solo en el desarrollo móvil de iOS, solo para familiarizarse con él? Definitivamente comienza con Swift.

    ¡Ojalá esto ayude! En Touchtap, estamos usando Swift exclusivamente para nuevos proyectos, pero aún admitimos bases de código heredadas escritas en Objective-C. Es importante que sepamos ambos por esa razón.

    “Los lenguajes de programación no mueren fácilmente. Sin embargo, la compañía que los usa a menudo lo hace “.

    Esta línea es suficiente para presionar a las nuevas empresas de aplicaciones móviles y a las compañías existentes para que tomen una sabia decisión entre los dos principales lenguajes de programación de Apple, Objective-C y Swift.

    Fuente: Appinventiv

    Es cierto que Objective-C no se declara muerto, todavía existe en el mercado. Sin embargo, no puede negar el hecho de que Swift se ha apoderado del mercado de iOS.

    Fuente: Tendencias de Google

    Presentado hace solo 3 años, Swift de Apple ahora se encuentra entre los 10 principales lenguajes de programación. Está ganando una importancia primordial en el mercado de iOS con características como código abierto, codificación más rápida, manejo efectivo de errores, enfoque interactivo, fácil mantenimiento, seguridad y legibilidad. Ha introducido varios conceptos nuevos que los desarrolladores de aplicaciones esperaban, como Tuples, Genéricos, Opcionales, Subíndices, Inferencia de tipo y Protocolos, etc., que no solo alentaron a los desarrolladores de aplicaciones iOS a construir sus futuras aplicaciones móviles en Swift, sino también a convertir sus aplicación completa de Objective-C en Swift.

    Entonces, diría que aprender el desarrollo de Swift es rentable. Después de todo, es el futuro del desarrollo de aplicaciones iOS. Sin embargo, el mercado aún no ofrece muchas oportunidades para el desarrollo de aplicaciones Swift. Tanto los recursos como la demanda para desarrollar aplicaciones en Swift están restringidos.

    Mientras que el Objective-C reside en el mercado de Apple durante los últimos 10 años. Hay abundantes recursos disponibles para aprender el desarrollo de iOS con Objective-C, y de hecho, las compañías de desarrollo de aplicaciones móviles aún exigen desarrolladores con experiencia en Objective-C. Esto implica que uno no puede pasar por alto la importancia del aprendizaje de Objective-C.

    Teniendo en cuenta todos estos factores, recomiendo aprender tanto el lenguaje de desarrollo de aplicaciones.

    Si bien Objective-C asegurará tu presente, Swift te preparará para el futuro.

    Además, el concepto de interoperabilidad será más fácil de entender e implementar cuando tenga un conocimiento sólido de ambos idiomas.

    Descansa, es tu decisión. Haga la investigación de mercado, analice bien y tome la decisión.

    Aquí hay 10 razones para adelantarse al juego comenzando a trabajar con Swift ahora.

    1. Swift es más fácil de leer

    C objetivo
    sufre todas las verrugas que esperarías de un lenguaje construido en C.
    diferenciar las palabras clave y los tipos de los tipos C, introdujo Objective-C
    nuevas palabras clave con el símbolo @. Debido a que Swift no está construido en C, puede
    unifique todas las palabras clave y elimine los numerosos símbolos @ delante de
    cada tipo de Objective-C o palabra clave relacionada con el objeto.

    Gotas rápidas
    convenciones heredadas. Por lo tanto, ya no necesita punto y coma para terminar las líneas o
    paréntesis para rodear expresiones condicionales dentro de if / else
    declaraciones. Otro gran cambio es que las llamadas a métodos no se anidan dentro
    entre ellos resultando en un infierno de paréntesis – adiós, [[[ ]]] .
    Las llamadas a métodos y funciones en Swift usan el estándar de la industria
    lista de parámetros separados por comas entre paréntesis. El resultado es un
    lenguaje más limpio y expresivo con una sintaxis y gramática simplificadas.

    Rápido
    el código se parece más al inglés natural, además de otros
    lenguajes de programación populares y modernos. Esta legibilidad lo hace más fácil.
    para programadores existentes desde JavaScript, Java, Python, C # y C ++ a
    adoptar Swift en su cadena de herramientas, a diferencia del patito feo que era
    C objetivo.

    2. Swift es más fácil de mantener

    El legado es lo que
    detiene Objective-C: el lenguaje no puede evolucionar sin C
    evolucionando C requiere que los programadores mantengan dos archivos de código para
    mejorar el tiempo de construcción y la eficiencia de la creación de la aplicación ejecutable, un
    requisito que se traslada al Objetivo-C.

    3. Swift es más seguro

    Un aspecto interesante de Objective-C es
    la forma en que los punteros, particularmente los punteros nulos (nulos), son
    manejado. En Objective-C, no pasa nada si intentas llamar a un método
    con una variable de puntero que es nula (sin inicializar). La expresión o
    la línea de código se convierte en una no operación (no-op), y aunque pueda parecer
    beneficioso que no se bloquee, ha sido una gran fuente de errores. UNA
    no-op conduce a un comportamiento impredecible, que es enemigo de los programadores
    tratando de encontrar y arreglar un bloqueo aleatorio o detener el comportamiento errático.

    Opcional
    los tipos hacen que la posibilidad de un valor opcional nulo sea muy clara en Swift
    código, lo que significa que puede generar un error del compilador a medida que escribe mal
    código. Esto crea un ciclo de retroalimentación corto y permite a los programadores codificar
    con intención Los problemas se pueden solucionar a medida que se escribe el código, lo que en gran medida
    reduce la cantidad de tiempo y dinero que gastará en corregir errores
    relacionado con la lógica del puntero de Objective-C.

    Tradicionalmente, en Objective-C, si se devolvía un valor de un
    método, era responsabilidad del programador documentar el comportamiento
    de la variable de puntero devuelta (usando comentarios y nombres de métodos
    convenciones). En Swift, los tipos opcionales y los tipos de valor lo hacen
    explícitamente claro en la definición del método si el valor existe o si
    tiene el potencial de ser opcional (es decir, el valor puede existir o puede
    ser nulo)

    Para proporcionar un comportamiento predecible Swift desencadena un tiempo de ejecución
    bloquearse si se utiliza una variable opcional nula. Este choque proporciona
    comportamiento consistente, lo que facilita el proceso de corrección de errores porque
    obliga al programador a solucionar el problema de inmediato. El tiempo de ejecución Swift
    el bloqueo se detendrá en la línea de código donde una variable opcional nula tiene
    ha sido usado. Esto significa que el error se solucionará antes o se evitará por completo.
    en código Swift

    4. Swift está unificado con gestión de memoria

    Rápido
    unifica el lenguaje de una manera que Objective-C nunca tiene. El apoyo
    para el conteo automático de referencias (ARC) se completa en todo el procedimiento
    y rutas de código orientadas a objetos. En Objective-C, ARC es compatible con
    las API de Cocoa y el código orientado a objetos; sin embargo, no está disponible
    para código de procedimiento C y API como Core Graphics. Esto significa que se convierte
    la responsabilidad del programador de manejar la administración de memoria cuando
    trabajando con las API de Core Graphics y otras API de bajo nivel disponibles
    en iOS La gran pérdida de memoria que un programador puede tener en Objective-C
    son imposibles en Swift.

    Un programador no debería tener que pensar
    sobre la memoria para cada objeto digital que crea. Porque ARC
    maneja toda la gestión de memoria en tiempo de compilación, la capacidad intelectual que
    han ido hacia la gestión de la memoria, en cambio, pueden centrarse en la aplicación principal
    lógica y nuevas características. Porque ARC en Swift funciona en ambos
    código procesal y orientado a objetos, no requiere más contexto mental
    interruptores para programadores, incluso mientras escriben código que toca
    API de nivel inferior: un problema con la versión actual de Objective-C.

    Automático
    y la gestión de memoria de alto rendimiento es un problema que ha sido
    resuelto, y Apple ha demostrado que puede aumentar la productividad. El otro
    efecto secundario es que tanto Objective-C como Swift no sufren de un
    El recolector de basura ejecuta la limpieza de la memoria no utilizada, como Java, Go,
    o C #. Este es un factor importante para cualquier lenguaje de programación que
    se utilizará para gráficos receptivos y entrada del usuario, especialmente en un
    dispositivo táctil como el iPhone, Apple Watch o iPad (donde el retraso es
    frustrante y hace que los usuarios perciban que una aplicación está rota).

    5. Swift requiere menos código

    Rápido
    reduce la cantidad de código que se requiere para las declaraciones repetitivas
    y manipulación de cuerdas. En Objective-C, trabajar con cadenas de texto es
    muy detallado y requiere muchos pasos para combinar dos piezas de
    información. Swift adopta características modernas del lenguaje de programación como
    agregando dos cadenas junto con un operador “+”, que falta en
    C objetivo. El soporte para combinar caracteres y cadenas como este es
    fundamental para cualquier lenguaje de programación que muestre texto a un usuario en
    una pantalla.

    El sistema de tipos en Swift reduce la complejidad del código
    declaraciones – ya que el compilador puede descubrir tipos. Como ejemplo,
    Objective-C requiere que los programadores memoricen tokens de cadena especiales ( %s , %d , %@ )
    y proporcionar una lista de variables separadas por comas para reemplazar cada token.
    Swift admite la interpolación de cadenas, lo que elimina la necesidad de
    memoriza tokens y permite a los programadores insertar variables directamente
    en línea con una cadena orientada al usuario, como una etiqueta o un título de botón. los
    el sistema de inferencia de tipos y la interpolación de cadenas mitigan un común
    fuente de accidentes que son comunes en Objective-C.

    Con
    Objective-C, desordenar el orden o usar el token de cadena incorrecto causa
    La aplicación se bloquea. Aquí, Swift nuevamente lo libera del trabajo de contabilidad,
    se traduce en menos código para escribir (código que ahora es menos propenso a errores)
    debido a su soporte en línea para manipular cadenas de texto y datos.

    6. Swift es más rápido

    Goteante
    las convenciones heredadas de C han mejorado enormemente Swift debajo del capó.
    Los puntos de referencia para el rendimiento del código Swift continúan apuntando a Apple
    dedicación a mejorar la velocidad a la que Swift puede ejecutar la lógica de la aplicación.

    Conforme
    a Primate Labs, creadores de la popular herramienta de rendimiento GeekBench,
    Swift se acercaba a las características de rendimiento de C ++ para las tareas vinculadas a la computación en diciembre de 2014 utilizando el algoritmo Mandelbrot.

    En febrero de 2015
    Primate Labs descubrió que Xcode 6.3 Beta mejoró Swift’s
    rendimiento del algoritmo GEMM: un algoritmo vinculado a la memoria con
    acceso secuencial de matrices grandes, por un factor de 1.4. La FFT inicial
    implementación: un algoritmo vinculado a la memoria con acceso aleatorio de gran tamaño
    matrices: tuvieron una mejora de rendimiento de 2.6 veces.

    Promover, adicional
    se observaron mejoras en Swift mediante la aplicación de mejores prácticas,
    resultando en un aumento de 8.5 veces para el rendimiento del algoritmo FFT (dejando
    C ++ con solo una ganancia de rendimiento de 1.1 veces). Las mejoras también
    Swift habilitado para superar C ++ para el algoritmo de Mandelbrot por un factor
    de un mero 1.03.

    Swift está casi a la par con C ++ tanto para la FFT
    y algoritmos de Mandelbrot. Según Primate Labs, el algoritmo GEMM
    el rendimiento sugiere que el compilador Swift no puede vectorizar el código de C ++
    compilador puede: una ganancia de rendimiento fácil que se podría lograr en el
    próxima versión de Swift.

    7. Menos colisiones de nombres con proyectos de código abierto

    Uno
    El problema que ha plagado el código Objective-C es su falta de apoyo formal
    para espacios de nombres, que fue la solución de C ++ para codificar colisiones de nombres de archivo.
    Cuando esta colisión de nombres ocurre en Objective-C, es un error de enlace,
    y la aplicación no puede ejecutarse. Existen soluciones alternativas, pero tienen potencial
    trampas La convención común es usar letras de dos o tres letras.
    prefijos para diferenciar el código de Objective-C que se escribe, digamos, por
    Facebook versus tu propio código.

    Rápido
    proporciona espacios de nombres implícitos que permiten que exista el mismo archivo de código
    en múltiples proyectos sin causar una falla de compilación y sin requerir
    nombres como NSString (Siguiente paso: la compañía de Steve Jobs después de ser despedido
    de Apple) o CGPoint (Core Graphics). En definitiva, esta característica en
    Swift mantiene a los programadores más productivos y significa que no tienen que hacerlo
    la contabilidad que existe en Objective-C. Puedes ver Swift’s
    influencia con nombres simples como Array, Dictionary y String
    de NSArray, NSDictionary y NSString, que nacieron de la falta
    de espacios de nombres en Objective-C.

    Con Swift, los espacios de nombres se basan en
    el destino al que pertenece un archivo de código. Esto significa que los programadores pueden
    diferenciar clases o valores usando el identificador de espacio de nombres. Esta
    El cambio en Swift es enorme. Facilita enormemente la incorporación abierta
    proyectos de origen, marcos y bibliotecas en su código. los
    los espacios de nombres permiten a diferentes compañías de software crear el mismo código
    nombres de archivo sin preocuparse por colisiones al integrar código abierto
    proyectos Ahora tanto Facebook como Apple pueden usar un archivo de código de objeto
    llamado FlyingCar.swift sin errores ni fallas de compilación.

    8. Swift admite bibliotecas dinámicas

    los
    El mayor cambio en Swift que no ha recibido suficiente atención es el
    cambiar de bibliotecas estáticas, que se actualizan en las versiones principales
    (iOS 8, iOS 7, etc.), a bibliotecas dinámicas. Dinámica
    Las bibliotecas son fragmentos de código ejecutables que se pueden vincular a una aplicación.
    Esta característica permite que las aplicaciones Swift actuales se vinculen con versiones más recientes de
    el lenguaje Swift a medida que evoluciona con el tiempo.

    los
    el desarrollador envía la aplicación junto con las bibliotecas, las cuales son
    firmado digitalmente con el certificado de desarrollo para garantizar la integridad
    (hola, NSA). Esto significa que Swift puede evolucionar más rápido que iOS, que es un
    requisito para un lenguaje de programación moderno. Cambios en las bibliotecas.
    todo se puede incluir con la última actualización de una aplicación en App Store,
    Y todo simplemente funciona.

    Las bibliotecas dinámicas nunca han
    ha sido compatible con iOS hasta el lanzamiento de Swift y iOS 8, aunque
    Las bibliotecas dinámicas han sido compatibles con Mac durante mucho tiempo.
    Las bibliotecas dinámicas son externas al ejecutable de la aplicación, pero están incluidas.
    dentro del paquete de aplicaciones descargado de la App Store. Reduce el
    tamaño inicial de una aplicación cuando se carga en la memoria, ya que
    el código está vinculado solo cuando se usa.

    La capacidad de diferir la carga en un
    La aplicación móvil o una aplicación integrada en Apple Watch mejorará la percepción
    rendimiento para el usuario. Esta es una de las distinciones que hacen que el
    El ecosistema de iOS se siente más receptivo. Apple se ha centrado en cargar
    solo activos, recursos y ahora código compilado y vinculado sobre la marcha. los
    La carga sobre la marcha reduce los tiempos de espera iniciales hasta que un recurso es
    realmente necesitaba mostrar en la pantalla.

    http://www.infoworld.com/article

    Si está comenzando desde cero, ¡use Swift!

    Después de haber pasado años maldiciendo a Objective-C, puedo decir que Swift es una gran mejora.

    Es útil conocer Objective-C, pero puede no ser REQUERIDO. Pero el futuro de iOS es Swift. Escribirás menos líneas de código. Serán más fáciles de entender. E incluso pueden correr más rápido.

    Un inconveniente de saltar a Swift NOW es que TODAVÍA no hay muchas bibliotecas Swift de terceros. Hay algunos, pero la falta de soporte de marco rápido en Cocoapods está dificultando la reutilización del código rápido de otras personas. Puedes hacer submódulos git pero esos son desordenados.

    Por supuesto, mezclar Swift y Objective-C es bastante sencillo, y puede importar cualquier buen código Objective-C de terceros en su código Swift sin dificultad. Pero entender que el código aún implicará cierta capacidad para conectar Objective-C, y también entender cómo swift “traduce” el código de Objective-C a swift. Hace algunas cosas inteligentes, pero no siempre será obvio, si todo lo que tiene es documentación de Objective-C. Pero una vez que lo descubres, no es tan difícil.

    Pero puede heredar y crear extensiones de objetos Objective-C rápidamente. Por lo tanto, puede mantener SU código rápidamente si lo desea, incluso si está utilizando bibliotecas de terceros escritas en Objective-C.

    Esperamos que solo nos falten unas pocas semanas para el soporte de Swift en Cocoapods, por lo que espero que esto cambie mucho en los próximos 6 meses.

    Swift tiene una pequeña curva de aprendizaje. Tienes que aprender cómo funcionan los opcionales. Más importante: debe aprender a usarlos correctamente. Lo que no harás al principio. Pero está bien.
    Espere pasar unos días luchando cosas estúpidas y tontas como cómo funciona “for” y “switch”. Y recordando usar siempre corchetes {} después de sus declaraciones “if” (a menos que ya haya sido bueno al respecto en Java).

    Pero swift tiene un tipeo muy fuerte sin conversiones implícitas (a propósito, ayuda a prevenir errores).

    Pero también estás invirtiendo en ti mismo. Y en el futuro de iOS y Mac, se requerirá la experiencia de Swift. (¡La experiencia de Objective-C será útil!).

    Puede usar cualquier persona, sin problemas,

    Pero Objetivo: C es más fácil que Swift.

    Es mejor tomar cualquier curso en línea.

    Te sugeriré los mejores cursos en línea de desarrollo de iOS: –

    1. iOS 10 y Swift 3: de principiante a profesional pagado
    2. El curso completo para desarrolladores de iOS 10 – Build 21 Apps
    3. iOS 10 y Xcode 8: curso completo de Swift 3 y Objective-C

    Es mejor tomar el segundo curso

    Aquí puede aprender: Nunca antes había sido posible desarrollar aplicaciones tan ricas e interactivas … De hecho, este es el lanzamiento más grande y más esperado de Apple hasta la fecha.

    Repleto de nuevas y emocionantes funciones, con iOS 10 sus aplicaciones pueden extenderse a Mensajes, Siri, Teléfono y Mapas para proporcionar una funcionalidad más atractiva como nunca antes. Ahora sus usuarios pueden ver fotos, ver videos y escuchar audio directamente desde una notificación.

    De principiante a desarrollador de aplicaciones ios 10 en seis semanas

    • XCode e Interface Builder
    • Entradas, botones e interfaces reactivas
    • Nuevo lenguaje de programación de Apple: Swift
    • Variables, matrices, tablas y bucles
    • Navegación, almacenamiento y contenido en vivo
    • Imágenes, mapas y música
    • Acelerómetros y Motion Feedback
    • Datos básicos y JSON
    • Almacenamiento en línea con Parse
    • Juegos y el kit de Sprite
    • Clones de Instagram y Snapchat
    • Envío de la tienda de aplicaciones
    • Hacer un sitio web de marketing para su aplicación

    Comenzamos con lo básico para construir su confianza. Lo encontrará rápido, entretenido y extremadamente fácil de recordar.

    ¡¡¡MÁS!!! Material extra para llevarte al siguiente nivel

    • Alojamiento web ilimitado por un año (con un valor de $ 200) * Limitado a un año por estudiante, no por curso *
    • Una copia de mi libro electrónico más popular Cómo ganar $ 10,000 mientras aprende a codificar, calificado como 5 estrellas en Amazon
    • Más de 1,000 activos gráficos (fondos, botones e íconos, etc.), por un valor de $ 300, para usar en sus aplicaciones.
    • Y sin olvidar: $ 50 de crédito de AWS.

    Todo lo mejor .

    Si yo fuera tú, iría por Swift porque:

    • En comparación con el código del Objetivo C, el factor de legibilidad de Swift es mucho mayor. Es menos borroso y no se ve como el Objetivo C. Cuando observa la sintaxis rápida, tiene la sensación de que el creador de Swift debe haber odiado realmente la codificación en Obj-C. Echar un vistazo:

    Código del objetivo C:

    // Diccionario no mutable
    NSDictionary * myFixedDictionary = @ {@ “clave1”: @ “Este es el valor1”, @ “clave2”: @ “Este es el valor2”};

    // Diccionario mutable
    NSMutableDictionary * myFlexibleDictionary = [[NSMutableDictionary alloc] init];
    // Establecer objeto usando sintaxis antigua
    [myFlexibleDictionary setObject: @ “Este es el valor1” forKey: @ “key1”];
    // Establecer objeto usando nueva sintaxis
    [myFlexibleDictionary setObject: @ “Esto es value2” paraKey: @ “key2”];

    NSLog (@ “myFixedDictionary:% @”, myFixedDictionary);
    NSLog (@ “myFlexibleDictionary:% @”, myFlexibleDictionary);

    // Matriz no mutable
    NSArray * myFixedArray = [[NSArray alloc] initWithObjects: @ “Object1”, @ “Object2”, nil];

    // Matriz mutable
    NSMutableArray * myFlexibleArray = [[NSMutableArray alloc] init];
    // Añadir objeto usando sintaxis antigua
    [myFlexibleArray addObject: @ “Object1”];
    // Agregar objeto usando nueva sintaxis
    myFlexibleArray [1] = @ “Object2”;

    NSLog (@ “myFixedArray:% @”, myFixedArray);
    NSLog (@ “myFlexibleArray:% @”, myFlexibleArray);

    Código SWIFT:

    // Diccionario constante (casi similar con el diccionario no mutable)
    let myFixedDictionary = [“clave1”: “Este es el valor1”, “clave2”: “Este es el valor2”]

    // Diccionario variable (casi similar con el diccionario mutable)
    var myFlexibleDictionary = [String: String] ()
    myFlexibleDictionary [“key1”] = “Este es el valor1”
    myFlexibleDictionary [“key2”] = “Este es el valor2”

    println (“myFixedDictionary: \ (myFixedDictionary)”)
    println (“myFlexibleDictionary: \ (myFlexibleDictionary)”)

    // Matriz constante (casi similar con la matriz no mutable)
    deje myFixedArray: [String] = [“Object1”, “Object1”]

    // Matriz variable (casi similar con matriz mutable)
    var myFlexibleArray = [String] ()
    myFlexibleArray.append (“Object1”)
    myFlexibleArray.append (“Object2”)

    println (“myFixedArray: \ (myFixedArray)”)
    println (“myFlexibleArray: \ (myFlexibleArray)”)

    • Swift es más fácil de mantener : lo que pospone el objetivo C es el legado. El objetivo C simplemente no puede evolucionar sin cambiar el C. tradicional. Por ejemplo, C requiere que los programadores mantengan dos archivos para mejorar el tiempo de compilación y la eficiencia ejecutable. Y esta cosa agotadora se trasladó a Obj-C. (que odio) Swift, por otro lado, eliminó el proceso de dos archivos al permitir que Xcode y LLVM descubrieran las dependencias, eliminando así una gran carga para los programadores.
    • Swift es más seguro que Obj-C: ahora hay varios aspectos para considerar este factor. Pero aquí hay un ejemplo: en Objective-C, no sucede nada si llama a un método con una variable de puntero que no está inicializada. La expresión o línea de código se convierte en una no operación, y si bien puede parecer beneficioso que no se bloquee, ha sido una gran fuente de errores. y esto conduce a un comportamiento impredecible, que es el enemigo de los programadores que intentan encontrar y corregir un bloqueo aleatorio o detener el comportamiento errático. Mientras que, por otro lado, Swift desencadena un bloqueo en tiempo de ejecución si es opcional sin inicializar, lo que facilita la corrección de errores y también, el bloqueo en tiempo de ejecución de Swift se detendrá en la línea de código donde se ha utilizado esa variable, lo que significa que el error se corregirá cuanto antes.
    • Swift está un poco casado con la gestión de la memoria : Swift logra unificar el lenguaje de una manera que nunca se ha hecho con Obj-C. Lo mejor que han hecho con Swift es que el conteo automático de referencia (ARC) se completa en todas las rutas de código orientadas a objetos y procedimientos. Mientras está en Obj-C, el ARC es compatible con las API de Cocoa y no está disponible para construcciones de código de procedimiento que nuevamente se convierten en responsabilidad del programador para manejar la administración de la memoria mientras se trabaja con las API gráficas principales. Además, muchas causas de grandes pérdidas de memoria en Obj-C también se han improvisado / erradicado en Swift, lo que es un gran alivio para los programadores.
    • Swift admite bibliotecas dinámicas : este es el mayor cambio en Swift que a menudo pasa desapercibido. Anteriormente Swift tenía bibliotecas estáticas que solían actualizarse en las principales versiones. Y a partir de ahora se han cambiado a bibliotecas dinámicas y reduce el tamaño inicial de la aplicación.

    Hay muchas más ventajas que Swift tiene sobre Obj-C, pero creo que ahora te haces una idea. Podía recordar estos muchos de la parte superior de mi cabeza. 🙂

    Recientemente, muchos bloggers de tecnología elogiaron a Swift y lo describieron como la alternativa sólida del Objetivo C e incluso reemplazará a ‘C’ por la codificación integrada en toda la plataforma de Apple, incluidos Mac, dispositivos de mano iOS y dispositivos portátiles en un futuro próximo. Si las esperanzas son tan altas, entonces tiene algunas razones válidas detrás. Exploremos por qué Swift es elogiado más.

    Facilidad en el código y comprensión
    Swift no está construido en C, por lo que está libre de todas las verrugas relacionadas con los lenguajes de clase C. Por ejemplo,

    • Si desea introducir un nuevo tipo de Objetivo C o una palabra clave relacionada con el objeto en el Objetivo C, debe usar el símbolo @ en cada caso. Afortunadamente, Swift está libre de todo y es capaz de unificar todas las palabras clave al eliminar símbolos @ adicionales para desordenar los documentos del código.
    • Swift no sigue las convenciones heredadas, por lo tanto, los programadores pueden evitar fácilmente los puntos y comas excesivos que deben indicar el final de la línea.
    • Puede evitar el uso de paréntesis para rodear expresiones condicionales, especialmente dentro de sentencias if / else.
    • Puede evitar el infierno entre paréntesis [[]] en Swift, ya que ya no necesita anidar llamadas de método o función entre sí porque Swift usa una lista de parámetros separados por comas estándar de la industria entre paréntesis.
    • Swift es un lenguaje de tipo natural, por lo que su legibilidad se asemeja al inglés, por lo que los programadores modernos ciertamente lo aman.

    Facilidad de mantenimiento
    Swift también ofrece facilidad de mantenimiento y se ha evidenciado en los siguientes ejemplos:

    • Swift evita fundamentalmente la creación de archivos dobles para mejorar el tiempo de compilación y la eficiencia de la programación.
    • Xcode y el compilador LLVM son capaces de descubrir dependencias y realizar compilaciones incrementales automáticamente para la programación Swift
    • Los programadores Swift no tienen que seguir el paradigma C para crear dos archivos separando la tabla de contenido y el cuerpo porque (.swift) combina ambos (.h) y (.m).
    • En Swift, no necesita sincronizar los nombres de los métodos y los comentarios entre archivos.
    • Xcode y el compilador LLVM pueden reducir la carga de trabajo de los programadores detrás de escena porque exige menos contabilidad para reducir el trabajo repetitivo y mejora la calidad del código Swift junto con la productividad.

    Facilidad en la depuración
    Swift permite generar un error de compilación junto con la escritura continua del código en el documento. Por lo tanto, la depuración es instantánea y rápida.

    Facilidad en la gestión de la memoria
    Swift admite el recuento automático de referencia (ARC) para rutas de procedimiento y OOP. Por lo tanto, la administración de memoria es rápida y sin pérdida de memoria.

    Codificación rápida
    Swift inherentemente evita la repetición, la manipulación de cuerdas y otros obstáculos en las prácticas de codificación rápida. Además, con Swift, puede agregar dos cadenas juntas para que sea compatible con la combinación de dos caracteres en las pantallas.

    Rendimiento rápido
    Swift tiene un algoritmo GEMM vinculado a la memoria con acceso secuencial de matrices grandes. Por lo tanto, junto con el algoritmo FFT y Mandelbrot, mejora el rendimiento general de muchos pliegues.

    Fomentar la codificación interactiva
    Swift tiene una herramienta altamente interactiva para programadores experimentados o experimentados en forma de Playground para que los programadores puedan escribir un algoritmo mientras obtienen comentarios instantáneamente.
    En resumen, Swift es un lenguaje de programación altamente accesible y con todas las funciones que permite a los desarrolladores de iPhone crear aplicaciones de iPhone de próxima generación, así como aplicaciones de iPhone que solo admiten Apple Watch y otras aplicaciones de dispositivos portátiles con facilidad y de manera rentable. Si tiene alguna idea de aplicación para el desarrollo de aplicaciones de iPhone de próxima generación, http://Mindinventory.com cuenta con un equipo impecable de desarrolladores de aplicaciones para iPhone con experiencia en Swift y otras tecnologías, herramientas y técnicas modernas de desarrollo de iOS.

    por favor lea esta información y escoja su idioma.

    En 2014, Apple lanzó Swift, un nuevo lenguaje de programación para aplicaciones móviles iOS que ofrece a los desarrolladores de iOS una alternativa a Objective-C, un superconjunto orientado a objetos del lenguaje de programación C que ha sido el núcleo del desarrollo de iOS hasta ahora. Swift está diseñado para ser compatible con todas las herramientas de desarrollo de iOS existentes (xCode, Objective-C y Cocoa framework), pero su facilidad de uso y características mejoradas significan que está comenzando a reemplazar rápidamente Objective-C. En este artículo, exploraremos algunas razones por las que debería participar en el lenguaje de programación Swift para su próximo proyecto de desarrollo de aplicaciones iOS, si aún no lo ha hecho.

    SWIFT ES MÁS RÁPIDO, MÁS FÁCIL Y DEJA QUE LOS DESARROLLADORES SEAN MÁS PRODUCTIVOS.

    Gran parte de en qué se basa el sistema operativo OS X proviene de tecnología heredada que data de los inicios de Apple, y los componentes más nuevos de OS X se han basado en Objective-C, incluidas las aplicaciones móviles. Las fortalezas de Objective-C residen en las interfaces gráficas de usuario (GUI) y sus marcos ricos en funciones, pero en comparación con los lenguajes más nuevos, es difícil de escribir.

    A medida que el hardware y el software del sistema operativo iOS han evolucionado y mejorado con una mejor memoria y procesadores, Apple pudo desarrollar un lenguaje optimizado que era más adecuado para el desarrollo rápido de aplicaciones, y también para abordar algunas de las desventajas de Objective-C. Al sacudirse parte del “equipaje” que viene con un lenguaje de más de 30 años como C, Swift está diseñado para hacer que la vida de los desarrolladores de iOS sea más fácil y productiva.

    COMPATIBILIDAD CON EL MARCO TOUCH DEL CACAO Y EL LENGUAJE OBJETIVO-C

    Los marcos son bibliotecas de módulos de código que hacen que el desarrollo de aplicaciones sea más rápido y optimizado para los desarrolladores. Los marcos asociados con los sistemas operativos de Apple son Cocoa (para OS X) y Cocoa Touch (iOS). Con módulos escritos en el lenguaje Objective-C, Cocoa Touch está específicamente diseñado para dispositivos táctiles como iPhones y iPads. Entonces, ¿qué significa esto para un nuevo lenguaje como Swift?

    Swift es completamente compatible con Objective-C al desarrollar aplicaciones en Cocoa Touch, el marco móvil para iOS. Funciona junto con Objective-C, por lo que los desarrolladores pueden interactuar entre los dos idiomas, crear aplicaciones de lenguaje mixto y aprovechar las clases de Cocoa Touch con Swift y las clases de Swift con Objective-C. Estas clases intercambiables, patrones de diseño y API facilitan que un desarrollador elija y elija.

    Migrar código de Swift a Objective-C también es fácil. Los desarrolladores pueden aprovechar las funciones avanzadas de Swift reemplazando fragmentos de código de aplicación escritos en Objective-C con Swift.

    Swift está diseñado para funcionar con el marco Cocoa Touch; solo necesitará configurar un entorno de desarrollo Swift en Xcode. Luego, importe los marcos de Cocoa, las API y los módulos de código Objective-C para comenzar.

    Algunas ventajas clave de Swift incluyen:

    1. Swift corre más rápido, casi tan rápido como C ++ . Y, con las versiones más nuevas de Xcode en 2015, es aún más rápido .
    2. Swift es más fácil de leer y más fácil de aprender que Objective-C . Objective-C tiene más de treinta años, y eso significa que tiene una sintaxis más torpe. Swift simplifica el código y se parece más al inglés legible, similar a lenguajes como C #, C ++, JavaScript, Java y Python. Los desarrolladores ya versados ​​en estos idiomas pueden esperar que Swift se levante rápidamente. Además, Swift requiere menos código. Mientras que Objective-C es detallado cuando se trata de la manipulación de cadenas, Swift emplea interpolación de cadenas, sin marcadores de posición ni fichas.
    3. Los archivos unificados hacen que el código sea más fácil de mantener . Una vez más, un antiguo estándar del lenguaje C retiene Objective-C: un requisito de dos archivos. Esto significa que los programadores tienen que actualizar y mantener dos archivos de código separados, mientras que en Swift, estos se convierten en uno. Eso significa menos trabajo para los programadores, pero no a costa de la velocidad en el front end.
    4. Mejores compiladores = una mejor experiencia de codificación para programadores. Swift está construido con la máquina virtual de bajo nivel (LLVM), un compilador que es utilizado por lenguajes como Scala, Ruby, Python, C # y Go. El LLVM es más rápido e inteligente que los compiladores C anteriores, por lo que se transfiere más carga de trabajo del programador a Xcode y al compilador. Obtenga más información sobre los compiladores .
    5. Sin punteros significa que Swift es “más seguro”. Objective-C, como otros lenguajes C, utiliza punteros, un método para exponer valores que les da a los programadores un acceso más directo a los datos. (Lea más sobre los punteros en este artículo sobre C ++.) El problema con los punteros es que pueden causar vulnerabilidades en la seguridad. También crean una barrera para encontrar y corregir errores. Sin embargo, con Swift, si al puntero de su código le falta un valor (un valor nulo ), en lugar de continuar ejecutando la aplicación, la aplicación se bloquea y le permite localizar y corregir errores en el acto. Tendrá un código más limpio y pasará menos tiempo buscando errores en el futuro.
    6. Mejor gestión de la memoria . Las “pérdidas de memoria” pueden ocurrir en la programación orientada a objetos y en las aplicaciones, y disminuyen la memoria disponible para que una aplicación se ejecute, lo que hace que la aplicación falle. Por lo general, las API de Cocoa Touch admiten el conteo automático de referencias (ARC), una forma simplificada de manejar la administración de memoria. Pero en el contexto de la API Core Graphics, ARC no está disponible, depende del desarrollador. Este es un escollo común cuando una aplicación está utilizando búferes de datos grandes, video o gráficos. Cuando se usa demasiada memoria durante una pérdida de memoria, el sistema operativo puede cerrar una aplicación. Para solucionar esto, Swift admite ARC en todas las API, y esta estabilidad significa menos tiempo que los programadores deben dedicar a la gestión de la memoria.

    ¿CUÁL ES EL FUTURO DEL OBJETIVO-C?

    Si bien muchas aplicaciones existentes escritas en Objective-C tendrán que mantenerse (es decir, Objective-C no será obsoleto en el corto plazo), las API existentes de Apple requieren un poco de adaptación de código para funcionar con Swift. Las actualizaciones de Xcode también han provocado cambios junto con nuevos lanzamientos.

    Swift es probablemente su mejor apuesta para aplicaciones generales ahora. Sin embargo, todavía habrá momentos en los que es útil tener un control muy preciso sobre las cosas, momento en el que un conocimiento práctico de C y Objective-C lo mantendrá en una buena posición.

    También es MUCHO más fácil visualizar exactamente lo que sucede en términos de instrucciones de CPU y accesos a la memoria cuando se trabaja en C u ObjC, por lo que es probable que sea beneficioso poder desplegarse a ese lenguaje para que pueda ajustarlo para un rendimiento óptimo si necesario.

    Por ejemplo, supongamos que implementa un árbol rojo-negro en Swift junto con el resto de su aplicación. Después de la creación de perfiles, verá que se dedica mucho tiempo a esto, incluso después de haberlo optimizado lo mejor que pueda. En este punto, puede valer la pena volver a implementarlo en Objective-C: la interfaz exportada a su API Swift será idéntica (por lo general, si está devolviendo tuplas, etc., puede subclasificarla en Swift para volver a agregarla) esa funcionalidad), y podrá realmente ajustar el código a un nivel que probablemente no sería tan fácil en Swift.

    Creo que Greg Parker lo dijo mejor cuando dijo que Objective-C ahora sería una forma de lenguaje de ‘Asamblea Orientada a Objetos’. No se necesita con mucha frecuencia, pero es invaluable para esos casos ajustados (Objective-C y Swift message-pass se implementa en el código de ensamblaje sin procesar).

    Recuerde que swift es compatible con el objetivo C … Obj-C puede usar bibliotecas swift y Swift puede usar bibliotecas Obj-C, por lo que no es necesario refactorizar proyectos que no sean cambiar el idioma por el simple hecho de cambiar el idioma.

    Recomendaría aprender Swift como principiante, ya que es mucho más fácil de aprender y comprende algunos conceptos que Obj-C no comprende, como bloques de interruptores multitipados y enumeraciones que son instancias de objetos expresados ​​en lugar del método constante objetivo c.

    Swift es un lenguaje más indulgente que Obj-C también. los terminadores de línea son opcionales, el alcance de la variable, la función y la clase es obvio (en comparación con Obj-C), las asignaciones de las variables finales (como en Java) son obvias a través de la declaración let, en general, la rapidez será más fácil de aprender. Y una vez que sepa la traducción rápida de Obj-C para el caso de escribir código rápido, será algo trivial.
    El objetivo es aprender a programar, y Swift es un lenguaje más avanzado con conceptos más modernos. Una vez que comprenda estos conceptos, aprender a leer el siguiente idioma se vuelve trivial, aunque crear puede ser un poco difícil.

    En el mundo del lenguaje de codificación de iOS, hay una mejor versión que saldrá a su debido tiempo al igual que su sistema operativo que se actualiza constantemente. Los desarrolladores a menudo sufren el dilema de decidir el tipo de lenguaje, que se utilizará en el desarrollo de una aplicación. La popularidad de Objective – C ha crecido desde que entró en el mercado. Sin embargo, durante el último año, es Swift el que ha salido a la luz en lo que respecta al El lenguaje de desarrollo de aplicaciones de iOS está preocupado.

    Si bien ambos idiomas tienen sus puntos fuertes y facilidad de uso únicos, todavía confunde al desarrollador con respecto a su uso. Through this blog, we will let you know why Swift always ranks higher as compared to Objective C and why will you be beneficial with it.

    Benefit 1: Easy Implementation With Less Coding

    As far as programming is concerned, Swift is more compact in terms of the language. The lesser the code, the better will be the readability. This logic is not only applicable in case of coding rather it simplifies the task of coding itself. One can reuse the code again and again where as in Objective – C you will not be able to use the again once you have used it once.

    Benefit 2: Less Chance Of Errors

    The presence of language constrictions and syntax make the process of coding vulnerable to errors when applied with Objective- C. On the other hand, Swift prevents the software from writing bad code and there are very few crashes. This process is known as quality control that prevents the developers from committing unwanted mistakes. These are the reasons that make Swift as the safest programming language.

    Benefit 3: An Open Source Application

    One can write Swift even in Linux apart from all the other operating systems of Apple such as tvOS, IOS, WatchOS and OSX. A swift code will be a swift one as it allows a developer to write the code even at the backend. The limitations of Objective-C is covered fully by Swift. Developers are trying to make Swift compatible with Android.

    Benefit 4: Interactions Is Much Easier

    Swift has introduced new characteristics to make the task of developers much easier. One can test code without collecting the bigger pieces. This means the hassle of creating the full app can be avoided. Programmers can now do a quick check before finally releasing the app. It will be beneficial especially for doing code experiments and custom views.

    Benefit 5: Closer To Platforms

    The programming language for Swift is such a way that it is easily understandable even by non-iOS developers. The language is very simple and makes it easier to understand. It can be used as a script language. It makes the process of building the process much easier. Though most of the organizations often take the help of Ruby on Rails and Python, but Swift makes al the resources easily accessible to the iOS app developers. iOS Mobile Applications iOS Swift Development Services | Hire iOS Swift Developers

    Swift is a fast, sophisticated, and intuitive language. It has learned from the triumphs and flaws of the previous ones. On one hand, when used inside an Xcode playground it can behave as an interpreted language. This is great for testing as you go, similar to php or JavaScript. On the other hand, when running on a device, Swift behaves as a compiled language. This is great for performance purposes. Furthermore, the official documentation is free and includes examples that can be run as a playground in Xcode.

    So the answer should be easy… Just learn Swift, right? After all, Objective-C is doomed to disappear, right?

    Well, not quite…

    You see, learning the syntax of Swift will take you no time. Learning the interaction between that and Cocoa Touch, the views, the controllers, the objects, the xibs, etc. is a whole different matter. Since Swift is relatively new, a good percentage of the existing apps are currently running in Objective-C. This means that most of the examples and tutorials that you will find of solving non-trivial problems will be in the form of Objective-C.
    Moreover, since one language descends from the other, it is useful to master the original to comprehend the paradigms of the other. This is also useful if you happen to need to update a project from one language to the other.

    Hence my advice is, learn both. Start with objective-c. Walk and reproduce examples. Little by little make the transition to Swift until you feel comfortable in both languages.