¿Puedes hacer una aplicación usando solo la codificación Swift?

Puede escribir una aplicación para iOS o Mac hoy que no contenga nada más que código Swift, pero aún se utilizará en marcos como Foundation y UIKit / AppKit que se escriben principalmente en Objective-C y otras variantes de C. Sin embargo, probablemente necesite saber Objective-C de todos modos; La mayoría de los códigos de muestra, tutoriales y otro material educativo para las plataformas de Apple está actualmente escrito en Objective-C, y a menos que ya esté bien versado en los marcos, necesitará poder leerlo.

También hay ciertos marcos y tecnologías que funcionan mal en Swift. Por ejemplo:

  • No puede obtener un puntero compatible con C para una función Swift, por lo que las llamadas que usan devoluciones de llamada de puntero de función son difíciles de usar desde Swift. Por lo general, debe escribir al menos un poco de C para llamar a un bloque Swift. (En general, no es difícil escribir una función de contenedor que tome un bloque en su lugar).
  • Ciertas API que requieren que llame a un selector arbitrario en un objeto, como NSDocument.saveToURL (_: ofType: forSaveOperation: delegate: didSaveSelector: contextInfo :), son difíciles de implementar porque las llamadas utilizadas para hacer eso, como NSInvocation y -performSelector :, están prohibidos como inseguros en Swift.
  • Scripting Bridge en la Mac, que se utiliza para controlar otras aplicaciones (como iTunes) a través de Apple Events, depende en gran medida del despacho dinámico de Objective-C y la escritura suelta. Eso hace que sea tan difícil usar Swift que generalmente es mejor envolver completamente los objetos de Scripting Bridge en sus propios objetos Objective-C, y luego usar esos objetos envolventes en su código Swift.
  • Core Data funciona, en parte gracias a las características especiales específicamente agregadas a Swift para admitirlo, pero NSManagedObject en particular es muy peculiar y tiene menos funciones que Objective-C.

No tengo dudas de que las futuras versiones de las plataformas de Apple y Swift abordarán muchos de estos problemas; por ejemplo, no hay una buena razón para usar devoluciones de llamada de puntero de función o pares de selector de destino ahora que tenemos bloques, por lo que estas API están listas para su reemplazo. Pero por ahora, algunas API que usan patrones de diseño relativamente arcaicos no serán fáciles de usar con Swift, y es posible que necesite un poco de pegamento C o Objective-C para que funcionen.

Eso no quiere decir que todas las aplicaciones tengan que incluir algún código de Objective-C, y ciertamente no quiere decir que debas evitar Swift. Pero probablemente todavía no pueda salirse con la suya sin conocer Objective-C, y debe estar preparado para contaminar su aplicación Swift pura y agradable con un par de docenas de líneas de calzas Objective-C para llenar los vacíos en Swift de los marcos. apoyo.

Sí, si te refieres a la codificación Swift + Cocoa Touch SDK + las otras cosas que Xcode te ofrece.

Pero, la mayoría de la gente espera que una “aplicación” (no un juego o algo trivial) tenga alguna funcionalidad del lado del servidor. Para eso, necesita un servicio de back-end, o Backend-as-a-Service, o CloudKit (Apple Framework).

Sí, ese es el objetivo de Swift. Ya no necesita usar Objective-C.

Sin embargo, puede ser útil conocer Objective-C lo suficientemente bien como para leer y comprender el código fuente, ya que la mayoría de los tutoriales y otro material en línea, e incluso la documentación oficial de Apple, se escribirán en Objective-C. Esto cambiará, por supuesto, pero Swift sigue siendo bastante nuevo.

Comencé el desarrollo de iOS en 2014 y todas las aplicaciones que hice fueron 100% rápidas.

Al principio, el lenguaje no era muy estable, pero hoy con Swift 3 ya no necesitas el objetivo-c.

De todos modos, los conceptos básicos de Objective-C pueden ser algo bueno para usted porque comprenderá toda la arquitectura, pero no es obligatorio.

Swift es IMPRESIONANTE! 😀

Sí, puedes, no solo bueno, ¡fantástico incluso! Sin embargo, algunos de los muchos marcos buenos son más antiguos que Swift y, por lo tanto, están escritos en Objective-C. Eso es genial sobre Swift; puede importar marcos de Objective-C antiguos en Swift, utilizando un encabezado de puente.

Puede crear los marcos en Swift para que no se necesite otro lenguaje de programación.

¡Sí, por supuesto! La única desventaja de usar Swift es que la mayoría de las API y bibliotecas geniales están escritas principalmente en Objective-C. Pero el lenguaje rápido es relativamente nuevo y está creciendo y mejorando rápidamente . No duermas en eso.

En resumen, sí.

Sí, por supuesto, Swift es un poderoso lenguaje de programación y puedes hacer una buena aplicación usándolo

en primer lugar, simplemente comienza a aprender de estos sitios web

Aprende lo esencial de Swift

https://developer.apple.com/libr

y luego entra en tu primera aplicación

Sí tu puedes. No entiendo sobre qué base dijiste “solo en la codificación rápida”. Las aplicaciones nativas en iOS están integradas en Swift u Objective-C y sí, este lenguaje es lo suficientemente bueno.

Seguro que puede. Algunas aplicaciones importantes ya están construidas con eso. Creo que la aplicación Uber está construida con Swift y, por supuesto, algún sistema de back-end.

Si alguna compañía no tiene que usar el objetivo C, le recomiendo que use Swift. Es muy bueno y mejora todo el tiempo.

Absolutamente puedes. Swift es casi todo lo que estoy usando en estos días.

Si necesita admitir aplicaciones antiguas, también sería bueno conocer el Objetivo C, pero Swift es el camino a seguir.

Solo miré brevemente a Swift, y parece ser más un lenguaje de pegamento como TCL o tal vez más como Rexx de IBM, simplemente más moderno. Por lo tanto, para escribir algo significativo, debe tener en cuenta los servicios rápidos proporcionados por otras bibliotecas y aplicaciones en el sistema. Dicho esto, debería poder crear su aplicación, pero probablemente necesitará algunos módulos de Objective C para elementos personalizados. Verifique cómo hacer que su Objective C brinde servicios de manera rápida para que sean reutilizables.

Sí. (Respuesta corta, ¿eh?)

Swift fue creado para facilitar el desarrollo más rápido de grandes aplicaciones. Solo se hará más fuerte en el futuro.

Sí.
Estoy haciendo exactamente eso.

Absolutamente si quieres desarrollar una aplicación nativa para iOS o OSX.