a principios de este año, los ejecutivos de Apple develó Swift, que está destinado a reemplazar eventualmente Objective-C como lenguaje de programación elegido para Mac y dispositivos iOS. Aunque Objective-C sigue siendo popular, los desarrolladores se quejan con frecuencia de lo difícil que es usarlo; las características de Swift supuestamente eliminarán al menos algunos de esos problemas.
A pesar de su facilidad de uso, los desarrolladores todavía necesitarán pasar algún tiempo aprendiendo cómo funciona el lenguaje. Este es el primero de algunos artículos que muestran cómo programar aplicaciones de iOS con Swift.
Haga clic aquí para encontrar trabajos de desarrollo de Swift.
Requisitos previos
Necesita un Mac que pueda ejecutar OS X Mavericks. En el momento de escribir este artículo, solo puede programar en Swift si es un desarrollador de iOS registrado. Para desarrollar y ejecutar aplicaciones Swift, debe tener iOS 8 y la versión 6 del IDE Xcode de Apple. (Debe ser un desarrollador registrado para probar sus aplicaciones Swift en su iPhone, aunque no necesita serlo para crear y ejecutar esas mismas aplicaciones en un emulador de iPhone o iPad.)
Para los propósitos de este tutorial, estoy usando una versión beta de XCode 6 (a partir de este escrito, ahora hasta GM seed). Antes de comenzar, descargue los archivos del proyecto y (si es un desarrollador registrado de Apple con la última versión beta de Xcode) instálelos. Después de eso, abra los archivos del proyecto y cárguelos en Xcode.
¿Qué hay en una aplicación Swift?
Para crear una aplicación Swift, primero creará un proyecto Xcode y seleccionará Swift como idioma. Después de completar algunos detalles, el software creará un proyecto que, en mi caso, nombré FirstExample. Contendrá dos archivos de código fuente para iniciar, así como dos información.plist archivos que contienen información sobre su aplicación y un archivo de guion gráfico (que no necesitaremos para este ejemplo).
Estos activos son lo mínimo que necesita para crear una aplicación capaz de ejecutarse. Pero si lo ejecuta desde el principio, solo obtendrá una pantalla en blanco, tendrá que agregar más código para que haga cualquier cosa. Llegaremos a esa parte pronto.
Sube tu currículum Los empleados quieren candidatos como tú. Sube tu currículum. Demuéstrales que eres increíble.
Otras preparaciones
Si estás siguiendo y has creado una nueva aplicación, habrá una Principal.archivo de guion gráfico en la lista de archivos de proyecto. Por favor, elimínelo y edite la información.archivo plist. Elimine la clave que comienza con «Nombre de archivo de guion gráfico principal».»
Los dos archivos de código fuente son AppDelegate.swift y ViewController.Swift. En iOS, un delegado es una clase que hace algo en nombre de otra clase, y el AppDelegate es un lugar para manejar especial UIApplication estados. Tiene un montón de funciones llamadas por iOS. Por ejemplo, si tu aplicación está en uso y suena el teléfono, se llamará a la función applicationWillResignActive. Aquí es donde debe pausar tareas, deshabilitar temporizadores, etc.
Aquí hay una lista de funciones que se rellenan en AppDelegate.Swift. Si su aplicación admite el procesamiento en segundo plano, se llama applicationDidEnterBackground, de lo contrario applicationWillTerminate. Estas funciones son lugares para agregar código para guardar datos, pero solo usaremos la primera:
func applicationWillResignActive(aplicación: UIApplication)
func applicationDidEnterBackground(aplicación: UIApplication)
func applicationWillEnterForeground(aplicación: UIApplication)
func applicationDidBecomeActive(aplicación: UIApplication)
func applicationWillTerminate(aplicación: UIApplication)
Si la primera definición de función tiene NSObject: AnyObject, cámbiela para que se lea NSObject: NSDictionary. Esta es la función a la que necesitamos agregar código; es donde comienza todo. El – > Bool significa que devuelve un valor bool, es decir, verdadero o falso. Si algo sale mal en tu código cuando se inicia la aplicación, devolverá «false» (pero en nuestro caso, siempre devolverá true).
Agregar código a AppDelegate.swift
Esto es lo que toda la AppDelegate.el archivo swift debería verse como. He eliminado comentarios para que sea breve:
En Swift se crea una instancia de una clase como esta: window = UIWindow( .. ) para crear una instancia de UIWindow. Este es solo un parámetro pasado, y se llama frame con el valor UIScreen.Pantalla principal().Límites, que especifica el tamaño de toda la pantalla. Tenga en cuenta que la ventana se define en la clase como UIWindow?. El signo de interrogación significa que es un tipo opcional y que el valor puede estar ausente o presente; esto es similar a un valor nil en otros idiomas, pero funciona para todos los tipos, no solo para las clases.
La ventana if let = comprueba que la ventana está presente y desenvuelve la ventana (que es de tipo UIWindow?) para que se puedan utilizar las propiedades y métodos de UIWindow. Intente comentar la línea «if let» y el correspondiente»} » (usando //), y obtendrá tres errores de compilación similares, con el primero diciendo que backgroundColor no es miembro de UIWindow? Es un miembro de UIWindow, así que para obtener de UIWindow? Para UIWindow, necesita desenvolverse; agregue un «!»al final del nombre de la variable para desenvolverla (window!.backgroundColor = funcionará). Dicho esto, sin el desenvolvimiento proporcionado por «if let», cada ventana.referencia en el bloque también tendría que ser ventana!. «If let» hace los tres desenvolvimientos.
Las líneas dentro de esa instrucción establecen ViewController como el controlador de vista raíz, que es el primero creado. Los controladores de vista que implementa controlan la totalidad de la navegación de su aplicación. Vale la pena leer Acerca de los controladores de vista de Apple si desea comprender todo el concepto; sin embargo, en este caso, cubriremos solo un ejemplo. Pero, ¿qué hace exactamente un controlador de vista?
¿Qué es un Controlador de vista?
El área de pantalla de un dispositivo iOS es administrada por uno o más controladores de vista, que se utilizan tanto para navegar entre formularios como para administrar vistas en un formulario determinado. Una vista es una instancia de una UIView o una subclase de una UIView, y administra un área rectangular en el formulario. Si el formulario es el equivalente de una oficina física, los controladores de vista de formulario serían los gerentes de esa oficina, y las vistas son los empleados que realmente realizan el trabajo.
Cada formulario en una aplicación es administrado por uno y (a veces más) controladores de vista. Si un formulario tiene una parte fija y una parte desplazable, puede usar un controlador de vista diferente para cada parte.
En esta aplicación, hay un controlador de vista para los controles y uno que administra la alerta emergente al hacer clic en el botón.
El controlador de vista principal de mi aplicación tiene una vista que comprende una etiqueta (UILabel), un cuadro de edición de texto (UITextField) y un botón (UIButton). Cuando ejecute la aplicación, escriba algo de texto en el cuadro de edición de texto y, a continuación, haga clic en el botón. Esto mostrará un mensaje de alerta que muestra el texto que escribió:
También puede diseñar visualmente el flujo de usuario a través de su aplicación utilizando guiones gráficos, que dependen de menos código y ayudan a eliminar los errores que obtendría al administrar manualmente controladores de vista en código. En este ejemplo, sin embargo, todo se crea en código en ViewController.Swift.
Vistas y controladores de vista
Cada controlador de vista tiene una propiedad de vista que es una colección de vistas UIViews. Los controles que coloca en pantalla son todas las subclases de UIView y se agregan a esta vista.
En nuestro ejemplo, la vista se crea en el método viewDidLoad() del controlador de vista sobrescrito. He codificado esto para llamar a la función makeLayout(), donde se crean los controles UILabel y UIButton. El campo Uitext fue creado a nivel de clase porque necesita ser accedido en la función buttonAction (). Los tres controles tienen sus propiedades establecidas en makeLayout (); un control no aparece hasta que se agrega a la vista llamando a la vista del controlador de vista.Método addSubview ().
La clase ViewController comienza así:
La variable msg contiene la cadena que se escribe. Debido a que necesitamos acceder al campo de texto fuera del método makeLayout () (ver más abajo), se crea a nivel de clase.
Este método consta de tres partes; la primera crea un control UILabel con la instrucción:
let FirstLabel = UILabel()
Las siguientes seis líneas establecen las propiedades de FirstLabel. Tenga en cuenta que el compilador es lo suficientemente inteligente como para saberlo .redColor() es la abreviatura de UIColor.redColor (). Finalmente, el control se agrega a la vista con la instrucción addSubview ().
El control UITextField ya se creó a nivel de clase, así que aquí simplemente configuramos las propiedades y lo agregamos a la vista. Se crea el botón, se establecen las propiedades y se agrega a la vista.
El UIButton.El método addTarget () tiene un parámetro de acción que especifica el nombre de la función a llamar cuando se hace clic en el botón, y tiene un «:» final como «buttonAction:». Esto llama al método con nombre imaginativo buttonAction ().
func buttonAction (remitente:UIButton) {
msg = MyEdit.text
showAlert (remitente )
}
El método buttonAction () asigna la cadena de texto del campo de texto a la variable msg, que luego se muestra mediante el método ShowAlert (). Utiliza el nuevo controlador UIAlertController de iOS 8, que reemplaza al antiguo UIAlertView (ahora obsoleto). El método showAlert () crea una instancia de un controlador UIAlertController, agrega una acción para que tengas algo para hacer clic, y luego llama a presentViewController (), que es una forma de que un controlador de vista cambie a otro.
Comentarios Sobre el Código
La palabra clave «var» se usa para declarar una variable, mientras que «let» se usa para declarar una variable constante o inmutable. Aunque los controles se declaran como inmutables, eso solo significa que no puede cambiar la instancia de control, pero puede cambiar sus propiedades. La alerta es implementada por un controlador UIAlertController; otro tipo de controlador de vista.
- Python, Swift, JavaScript, Java: Las Mejores Formas de Aprenderlos
- Aquí está Apple para Enseñarte sobre Swift
- Un primer vistazo al Lenguaje de Programación Swift de Apple