Escribe una aplicación para iOS. Cómo aprender a hacer aplicaciones para iOS y macOS

Sin inversiones financieras y conocimientos especiales.

Estas son las instrucciones más sencillas sobre cómo crear una aplicación iOS básica y probarla en su dispositivo. En base a ello, podrás profundizar en el tema y crear programas realmente útiles.

Nota para usuarios de Windows: Para crear aplicaciones para iOS es necesario instalar OS X en una máquina virtual (VirtualBox, VMware). Este proceso no es en absoluto sencillo y requiere instrucciones aparte.

1. Vaya a App Store e instale el entorno de desarrollo XCode:

Si ya tiene XCode, debe actualizarlo.

2. Inicie xCode y seleccione el elemento del menú. Archivo -> Nuevo -> Proyecto:

3. Seleccione la plataforma y el tipo de aplicación:

4. Proporcionar información sobre el proyecto. Tenga en cuenta que hemos seleccionado el tipo de aplicación "Universal":

5. Haga clic en el botón Nueva carpeta e indicamos el nombre de la carpeta en la que almacenaremos los archivos de la aplicación:

6. Desmarque la casilla de verificación Crear repositorio Git y haga clic en el botón Crear. Como resultado, debería llegar a la pantalla de inicio para trabajar en la aplicación:

7. Haga clic en el artículo Guión gráfico principal en el menú de la derecha, arrastre el elemento al campo principal Etiqueta y agregarle texto Hola Mundo:

8. Ahora necesitamos crear un ícono para la aplicación. Seleccionamos una imagen y la subimos a mapappicon.com:

9. Esperamos a que la aplicación web termine de funcionar e indicamos tu dirección de correo electrónico para recibir el archivo con iconos:

10. Regrese a XCode y seleccione la sección en el menú de la izquierda. Activos.xassets:

11. Abra el archivo desde el correo y arrastre los íconos desde allí al espacio de trabajo de XCode:

12. Seleccione uno de los simuladores de dispositivo, haga clic en el botón de inicio de la aplicación (triángulo negro) y enciéndalo en su Mac Modo desarrollador:

13. Intentamos empezar de nuevo. Estamos esperando que iOS se cargue en el simulador:

14. Asegúrese de que la aplicación esté funcionando:

Miramos la aplicación terminada en el dispositivo.

Ahora puedes ver cómo funciona la aplicación en el dispositivo. Antes de seguir las instrucciones, asegúrese de tener las últimas versiones de XCode e iOS.

1. Vamos a xCode -> Preferencias -> Cuentas y agrega tu ID de Apple:

2. Conecte el dispositivo iOS a la computadora:

3. Seleccione el dispositivo deseado en la lista y haga clic en el botón de inicio. Estamos esperando un rato.

4. Si aparece un mensaje sobre problemas de seguridad, en el dispositivo iOS vaya a Ajustes -> Básico -> Gestión de dispositivos y permitir que las aplicaciones del desarrollador se ejecuten con su ID de Apple:

5. Vaya al escritorio y busque el ícono de la nueva aplicación:

6. Lanzamiento:

7. Desconecte el dispositivo de la computadora. Ahora se puede utilizar la aplicación.

¿Qué hacer si quieres más?

Con la ayuda de Google y la investigación científica, puede ampliar la secuencia de acciones anterior y crear una aplicación más funcional. Pero sólo puedes usarlo en tus propios dispositivos.

Después de todo, Apple impone exigencias muy altas a las aplicaciones. Las pautas de revisión de la App Store incluyen 29 puntos y más de cien subpuntos. Para que una aplicación los cumpla y sea aceptada para su publicación en la tienda, el desarrollador requiere una gran cantidad de conocimientos técnicos.

Si desea crear aplicaciones iOS de alta calidad destinadas a un uso masivo,

La creación de una aplicación para iPhone se puede tratar en cientos de libros sobre programación en C++ u Objective C. Este no es un manual de instrucciones, sino una lista paso a paso de los pasos que deberá seguir para crear su primera aplicación para iOS.

1. Piensa en una idea y recluta un equipo. Todo comienza con una idea sencilla e innovadora y un equipo dispuesto a asumirla. Por lo general, se trata de al menos un par de programadores con especialización limitada en diferentes áreas, un animador, un diseñador, un probador y un depurador. También necesitará a alguien que tenga buenos conocimientos de usabilidad.

2. Asegúrese de crear una ID de Apple. Tenga en cuenta que si en el futuro publica una aplicación en su propio nombre, y no en una entidad legal, su nombre y apellido serán los del desarrollador. Puedes usar un truco y escribir el nombre de la empresa en su lugar, por ejemplo: Pupkin Development, pero nadie te garantiza que no se producirán consecuencias después de un tiempo.

3. Registro en la comunidad de desarrolladores. Para hacer esto, tendrás que gastar $100 (este es el precio mínimo para una suscripción anual) y registrar una cuenta en Apple Developer Connection.

4. Instalación del SDK. El kit de desarrollo de software le permite desarrollar aplicaciones directamente para iPhone o iPad. Contiene un conjunto de estándares para iniciar el desarrollo. El SDK incluye XCode y iPhone Simulator. El primer software se utiliza para escribir código y el segundo para probarlo en tiempo real. Los programas se inician desde la carpeta Aplicaciones. Si confió el desarrollo a un estudio, espere y corrija su trabajo con el asesoramiento de su experto.

5. Piense en un nombre sonoro que también contenga palabras clave. No está prohibido escribir el título en dos idiomas a la vez, lo que aumentará las variaciones para futuras búsquedas de tu creación en iTunes.

6. Ahora necesitas registrarte en iTunes Connect, a través del cual la aplicación se publicará directamente en la App Store. Esto tomará sólo unos segundos ya que se utilizarán los datos de su perfil de ID de Apple.

7. Es hora de crear una descripción de la aplicación y tomar capturas de pantalla coloridas, que determinarán si los usuarios de la App Store prestarán atención a su creación. A menudo se añaden subtítulos a las capturas de pantalla para fomentar la acción.

8. La aplicación debe probarse minuciosamente antes de enviarla para su revisión a Apple. Puede ver cómo funciona su programa en iPhone Simulator desde el SDK o mediante la aplicación TestFlight.

9. Envíe su solicitud para su aprobación. La verificación se realiza manualmente, por lo que tendrás que esperar de 1 semana a un mes (especialmente si se acercan algunos días festivos). Lo más molesto es que si la solicitud se cancela por algún tipo de defecto que solucionas en un minuto, entonces tendrás que esperar el mismo tiempo para una nueva revisión.

10. Cuando aparezca la tan esperada luz verde de Apple, todo estará en tus manos. Decide el precio (solo recuerda que las compras dentro de la aplicación son muy importantes), la campaña publicitaria y los resultados que deseas lograr. Pero la promoción en la App Store es tema para otro artículo.

Esta es mi segunda experiencia creando una aplicación. Hablé del primero en detalle: allí estábamos hablando de atraer inversiones, seleccionar desarrolladores, etc. Desafortunadamente, el primer panqueque salió con grumos.

Me decepcionó mucho mi falta de habilidades de programación, lo que permitió a los desarrolladores torcerse los brazos y sacar provecho de la ignorancia. Por eso, decidí que necesitaba dominar la programación yo mismo, ya que crear aplicaciones y no saber programar supone caer en una dependencia muy grave, que los desarrolladores conocen y muchas veces aprovechan.

Educación

En general, se tomó la decisión y en enero de 2016 comencé a trabajar. Soy un científico informático aplicado de profesión, pero de hecho, aparte de las habilidades más básicas para trabajar con Pascal, no aprendí nada de la universidad, y eso fue hace cinco o seis años. También tuve un poco de experiencia trabajando con HTML y CSS, al crear sitios web simples, lo que, sin embargo, no ayudó mucho en la creación de aplicaciones. Entonces comencé desde lo más básico. Del antiguo y casi completamente olvidado Pascal. Descargué el editor "Free Pascal" http://freepascal.ru/, encontré un libro de texto y comencé con programas sencillos de suma y resta. En total, me llevó unas dos semanas de clases, de dos a tres horas al día, para refrescar mi memoria.

El estudio en profundidad de Pascal requirió más práctica, para lo cual encontré el libro de problemas de Pascal de Abrahamyan con 1000 problemas (PDF).

Como quería empezar a escribir aplicaciones lo antes posible, sin esperar al final de la primera etapa de formación, paralelamente a la resolución de problemas en Pascal, comencé a estudiar C, según el libro "El lenguaje de programación C" - Brian Kernighan y Dennis Ritchie (PDF). Aquí diré por separado que a pesar de que este libro también está en ruso, lo estudié en el idioma original, ya que en general conozco bastante bien el inglés, y esto, en mi opinión, es bastante importante para cualquier persona involucrada en la programación. . Por regla general, hay muchos más materiales educativos y materiales simples sobre un determinado lenguaje de programación en inglés que en ruso. Trabajar con la AppStore, descargar la aplicación, condiciones de uso, etc., todo esto también está mayoritariamente en inglés. Entonces podemos decir que el inglés al nivel de lectura de literatura técnica es una habilidad obligatoria para un programador.

He tenido una Mac para programación en C desde mi primer proyecto. Resolví problemas de C en Xcode. Para comprender mejor la diferencia en la sintaxis de Pascal y C, comencé a resolver problemas del mismo libro de problemas de Abrahamyan, pero en C. Después de dos semanas de lecciones diarias de 4 a 5 horas, pude resolver unos 300 problemas en Pascal y la mitad en C, además de leer unas 100 páginas de un libro en C. Al mismo tiempo, decidí conectar un servicio en inglés al proceso de aprendizaje: Tree House.

Este es un servicio de formación que me ayudó mucho a dominar HTML y CSS. La suscripción cuesta desde $25 por mes. Pero en mi opinión esto está justificado. El servicio proporciona materiales de formación sobre una variedad de lenguajes de programación, incluidos Java, C#, Python, Swift y muchos otros. La formación se desarrolla por etapas, de vídeo en vídeo, con diversas inserciones de tareas prácticas.

Todos los videos son muy visuales, interesantes, se actualizan constantemente y explican en detalle todos los puntos clave, ya sea la esencia misma de la programación orientada a objetos o los principios de trabajo en Xcode. Naturalmente, elegí materiales de formación sobre C y sobre la creación de aplicaciones iOS con Objective-C.

Por tanto, mi formación parecía un intento de avanzar en todos los frentes a la vez. Practiqué la resolución de problemas en Pascal para, según me pareció, sentar las bases de la programación lo más firmemente posible, estudié C para comprender mejor Objective-C y finalmente estudié Objective-C para comenzar a escribir para IOS. lo antes posible.

Así pasó otro mes de clases diarias en promedio 4-5 horas al día. Por un lado, podría ser más lógico avanzar paso a paso, digamos, primero tratar con Pascal, luego con C y luego pasar a Objective-C, pero de hecho, fue el intento de cubrir todo lo que finalmente me permitió Ahorré mucho tiempo, ya que comencé a prestar cada vez más atención no a resolver problemas en Pascal y C, sino directamente a crear aplicaciones desde el programa de capacitación Tree House. Esto fue mucho más interesante y esencialmente demostró que las tareas del libro de problemas de Abrahamyan, así como los materiales del Libro sobre C de Kernighan y Ritchie, son buenos para comprender los conceptos básicos, pero en general están bastante lejos del proceso real de creación de aplicaciones. Como resultado, al final del tercer mes de mi entrenamiento, dejé por completo de practicar Pascal y C. En cambio, me concentré en los materiales prácticos de Tree House sobre Objective-C y la creación de aplicaciones en Xcode.

Creación de juegos. Idea

Después de crear algunas aplicaciones sencillas a partir del tutorial, decidí que finalmente estaba listo para hacer algo más interesante. Habiendo abierto mi lista de ideas, que agrego periódicamente cuando me viene a la mente algo potencialmente interesante, me fijé en ideas para crear un juego sobre el tema "Lucha contra la corrupción". El significado de la idea es que los funcionarios corruptos actúan como enemigos, es necesario neutralizarlos y entonces el mundo del juego mejorará. También hay un subtexto que dice que la corrupción es mala y que cuanto menos sea, mejor será el medio ambiente. Teniendo en cuenta que el tema es relevante para Rusia y no pude encontrar aplicaciones con una idea similar, me decidí por él y comencé a pensar en la mejor manera de implementarlo.

Aunque todavía no tenía idea de cómo crear juegos, decidí que algunos videos tutoriales resolverían este problema. Primero tuvimos que decidir cómo sería el juego. Después de una pequeña lluvia de ideas, se decidió que la opción más óptima sería un juego en 2D, donde el héroe de cada nivel corre de izquierda a derecha y varios oponentes y obstáculos corren a su encuentro. Esta opción me pareció aceptable para la idea del juego y no demasiado difícil de implementar.

Una vez aprobado y descrito brevemente el concepto, era necesario comprender cómo se creaban los juegos. Después de buscar en Google un vídeo, inmediatamente encontré uno que mostraba cómo crear un juego como Flappy Bird ( YouTube).Aquí surgió una pregunta importante. No es ningún secreto que Apple lanzó un nuevo lenguaje de programación en 2014: Swift, que absorbió muchas cosas buenas de Objective-C y se convirtió en su continuación lógica.

El video que encontré hablaba sobre la creación de Flappy Bird específicamente en Swift, pero no pude encontrar uno que fuera igualmente simple y comprensible para Objective-C. Sin dudarlo, decidí que el futuro todavía pertenece a Swift y sería mejor no quedarme atrás, sobre todo porque la misma Casa del Árbol tenía excelentes materiales para estudiarlo. Como resultado, me tomé un descanso para aprender Swift, comprender la sintaxis y las principales diferencias con Objective-C. Pasó otra semana de clases, con un promedio de 8 horas diarias. Leí los tutoriales básicos de Swift y decidí que finalmente estaba listo para ver el video sobre cómo hacer un Flappy Bird. En un par de días pude crear esto:

Habiendo adquirido una comprensión general sobre cómo trabajar con el motor Sprite Kit, finalmente pude pasar a trabajar en mi aplicación.

Concepto

Al principio, planeé hacer solo las cosas más simples: un fondo de desplazamiento de 3 niveles, un héroe animado, armas, la capacidad de saltar y disparar. Esto fue necesario porque, aparte de las ideas más generales sobre cómo trabajar con Sprite Kit, no tenía experiencia, tenía que empezar con algo muy simple. Cómo registrar clics y realizar saltos de héroe, cómo desplazarse por el fondo, cómo crear balas en el momento de disparar, etc. Había docenas o incluso cientos de estas preguntas. Y la solución para todos siempre ha sido la misma: Google. Afortunadamente, hay una gran cantidad de materiales diferentes en Internet (desafortunadamente, principalmente en inglés) sobre la creación de juegos en Swift, que brindan ejemplos de cómo resolver varias preguntas que me surgieron. El servicio de preguntas y respuestas Stack Overflow también proporciona una ayuda enorme e invaluable.

Creo que pude resolver el 70% de todas las dudas que tuve con su ayuda. También recurrí a la documentación de Apple, pero muy raramente. Quizás en el 10% de los casos como máximo, y luego cuando no había otras opciones.

Después de otra semana ocupada, durante la cual dediqué casi todo mi tiempo a la programación (de 8 a 10 horas al día), pude crear esto:

Podía mover las piernas (yo mismo dibujé la animación en Photoshop), saltar y disparar con una escopeta con un sonido característico, mientras el fondo se desplazaba al mismo tiempo. Este fue el comienzo)

Prototipo

Este boceto me permitió comprender mucho sobre la mecánica de mi futuro juego y, una vez asegurado de que el concepto era correcto, decidí agregar enemigos que puedan disparar además de un diseño normal como siguiente paso. Inicialmente, planeé encargar todo el diseño (fondo, animaciones de héroes y enemigos, elementos, etc.) a un profesional independiente, ya que esto es lo único que no podía hacer yo mismo. Pero luego me acordé del sitio web de Envato Market: http://market.envato.com/, donde anteriormente compré música, plantillas de sitios web, presentaciones, etc.

Además de lo que figura en el sitio, hay una gran selección de todo tipo de animaciones, texturas, sonidos y otras cosas que son sumamente necesarias a la hora de crear aplicaciones. Los precios, en mi opinión, también son muy razonables. Por ejemplo, el conjunto de animaciones del personaje principal que seleccioné, además de bonificaciones en forma de varios objetos (monedas, diamantes, etc.), incluye 8 animaciones como disparar, correr, saltar, morir, etc.

Compré este juego por $7. El único punto es que los productos que les compran están sujetos a diferentes licencias. Algunos, por ejemplo, permiten el uso de un producto en un solo producto para su distribución gratuita ilimitada, otros permiten su reventa a terceros cuyo objetivo es la misma distribución gratuita ilimitada, otros, como en el caso de la música, por ejemplo, permiten la distribución sólo a un número limitado de oyentes, etc. El costo de estas licencias varía y, a menudo, puede variar entre 4 y 5 veces.

Pero como no iba a vender el héroe como un producto separado, una licencia para su distribución gratuita ilimitada fue suficiente para mí.

En general, compré un héroe, armas, enemigos y todo lo necesario para el fondo. El fondo en sí no se vendió tal cual.

Este es el resultado de mi trabajo en Photoshop creado a partir de un par de docenas de objetos diferentes: una valla, asfalto, agujeros, montones de basura, etc. En total, su creación llevó varios días. Posteriormente, miré Envato unas 10 veces y cada vez compré algo más que necesitaba.

Luego vino el trabajo habitual, por un lado rutinario, pero al mismo tiempo muy interesante. Paso a paso, resolví ciertos problemas emergentes, agregué nuevas funciones, reescribí fragmentos de código aparentemente ya escritos cuando encontré una opción para acortarlos, optimizarlos o mejorarlos, solucioné errores, etc. Por supuesto, si estuviera escribiendo una aplicación de este tipo ahora, habría hecho todo el doble de rápido, pero en ese momento absolutamente todo era nuevo para mí y tuve que dedicar mucho tiempo a encontrar mejores soluciones. Pasaron dos meses de intenso trabajo y finalmente se realizó el prototipo, tal como estaba previsto.

Tenía un nivel terminado con 5 tipos de armas, botiquines de primeros auxilios, objetos, enemigos y mucho más. A continuación, decidí realizar pruebas entre mis amigos y hacer una lluvia de ideas para comprender qué faltaba. Ha habido bastantes correcciones y adiciones. Tanto que, según mis estimaciones, seguro que habría estado trabajando en el juego otros seis meses. Pensé en todo durante un par de días y al final hice una lista de lo que realmente se necesitaba, taché todo lo demás y decidí utilizar un método de la industria espacial del que había oído hablar una vez. La cuestión es que a partir de cierto punto, antes del lanzamiento, estaba prohibido realizar cambios o mejoras en el cohete. De lo contrario, se puede mejorar para siempre.

Finalización del juego

Luego vino la cuestión del diseño enemigo. Tengo 6 tipos en total: 5 enemigos simples y un jefe + un ciudadano honesto. Planeé ordenar que se dibujaran todos estos sprites, porque quería que los personajes fueran más realistas. Entré en Freelance.Ru y publiqué un anuncio para la creación de 5 personajes, con 18 animaciones (8-25 fotogramas) para cada uno. Había muchas animaciones, porque además de las estándar correr, disparar, ser arrestado, pararse, etc., también había animaciones de muerte por cada tipo de arma, en cámara lenta o no en cámara lenta. El precio más barato que me ofreció un autónomo de buena reputación fue de unos 40.000 rublos y 1 mes de trabajo. Me pareció un poco caro, así que volví a recurrir a Envato. Afortunadamente, se acababa de subir al sitio una colección de diferentes sprites del mismo diseñador.

Los sprites de su colección, junto con un conjunto de animaciones, cuestan un promedio de 15 dólares. Lo más importante es que el archivo con el sprite contenga archivos para el programa Spriter.

Al abrir Sprite en este programa y entenderlo un poco (es muy fácil de aprender), puedes hacer absolutamente cualquier animación para tus personajes con diferentes guiones gráficos. En general, lo pensé y compré todos los personajes en Envato, después de lo cual los procesé yo mismo, agregué las animaciones necesarias y los subí a la aplicación. Hay que decir que trabajar con texturas es extremadamente tedioso y monótono. Necesitaba descargar la animación creada desde el programa Spriter, luego procesarla en Photoshop (ampliar, establecer dimensiones), luego comprimir, cambiar el nombre y hacer imágenes 1x, 2x, 3x. Probablemente me llevó al menos un mes procesar todas las animaciones. Un mes entero de trabajo monótono y monótono, afortunadamente pude involucrar a un asistente en este trabajo. Pero resolví todo el proceso, hice yo mismo las animaciones que quería, rehaciéndolas tantas veces como fuera necesario.

Paralelamente a trabajar en las texturas, continué desarrollando el juego paso a paso. Después de dos meses de trabajo continuo, finalmente vi la luz al final del túnel. Pero lamentablemente resultó que me vi obligado a dejar de trabajar durante casi dos meses, ya que se acumularon otras cosas, además del verano, y en general el proyecto quedó en pausa. Posteriormente regresé a trabajar a principios de octubre. Aunque esperaba que quedara muy poco, de hecho, empezaron a aparecer frente a mí problemas que, por inexperiencia, ni siquiera había sospechado antes.

En primer lugar, a pesar de que comprimí mis texturas png usando este servicio en línea: http://compresspng.com/ru/, esto no hizo que ocuparan menos RAM mientras se ejecutaba la aplicación. Ya era hora de descubrir que el tamaño de la imagen no es igual al tamaño de la RAM necesaria para ella.

En segundo lugar, descubrí el maravilloso mundo de las pérdidas de memoria, las herramientas Xcode para rastrearlas y todos los "delicias" del "ciclo de referencia fuerte". Después de ejecutar mi juego a través de las herramientas, descubrí alrededor de 3.500 fugas.

En tercer lugar, me di cuenta de que la resolución estándar de la textura de los personajes de 180x180 para mi juego es esencialmente demasiado alta y puedo rehacer fácilmente todas las animaciones con una resolución de 117x117 sin ninguna degradación en la calidad. Es interesante que a la hora de crear las animaciones me preocupaba no dejar las fuentes en resolución 360x360. Como el tamaño de la imagen 2x era 180x180, la imagen 3x, según tengo entendido, debería haber sido 360x360, pero por ignorancia no las hice, y resultó que gracias a Dios, porque al final fueron No es necesario.

En cuarto lugar, mi juego, cuando se agregaron todas las animaciones y objetos, comenzó a ralentizarse notablemente. Esto requirió mucho trabajo para optimizar y precargar animaciones, sonidos y otras cosas.

Como resultado, me vi obligado a rehacer completamente los atlas de animación que creé (al final resultó que, no fue la última vez) para reducir el consumo de RAM. Comprime y recorta todas las imágenes, reduciéndolas en una media del 30%. Rechace las imágenes 3x por considerarlas innecesarias y limítese a solo 1x y 2x. Realice un gran trabajo de optimización y eliminación de pérdidas de memoria, etc. Además, se requirió mucho trabajo para completar el juego en sí, ya que al principio todo parece listo y solo necesita agregar los toques finales, pero agregar estos toques requiere un montón de tiempo. En general, esto tomó más de un mes, aunque no fue un trabajo muy intensivo, en promedio de 4 a 5 horas al día, ya que no hubo oportunidad de participar plenamente en el proyecto. Y a principios de noviembre todo estaba más o menos listo.

A continuación, cárguelo en la App Store. Aquí, gracias a la experiencia previa, no hubo dudas. Durante el día hice capturas de pantalla, una descripción simple, el primer ícono que me vino a la mente (por cierto, tan pronto como tengas un ícono listo, es mejor ejecutarlo a través de este servicio: https://makeappicon.com /, subes tu ícono allí y te lo devuelve en todos los tamaños y resoluciones requeridos) y palabras clave (las seleccioné usando el servicio https://sensortower.com/, el sitio puede brindarte toneladas de información útil sobre tu o cualquier otra aplicación, aunque la suscripción no es barata).

Y ahora la aplicación está disponible en la AppStore. Hurra, hurra, pero no realmente.

Errores, frenos terribles, imágenes faltantes, fallas, etc. Esto es lo que me esperaba al probar en diferentes iPhones con diferentes versiones de IOS. Inmediatamente resultó que, a pesar de que el juego funciona bien en IOS 9, en iOS 10 funciona con frenos terribles y, de vez en cuando, el sonido desaparece todo el tiempo. Quedé “encantada” con el regalo que contenía el 10, pero no había adónde ir y seguí buscando y eliminando errores. Una vez más, tuve que rehacer completamente el sistema para colocar todas las texturas en la aplicación, rehacer completamente el sistema para reproducir todos los sonidos y corregir muchos errores adicionales. La necesaria conversión de código de Swift 2.0 a Swift 2.3 al trabajar con el XCode actualizado dejó una impresión especialmente cálida. En definitiva, una vez más estuve más de un mes ultimando todo y recién el 13 de diciembre pude subir una versión más o menos funcional. Aunque está claro que esta no es la última actualización.

9 de febrero de 2015 a las 17:54

Creando una aplicación para iOS. De la idea al resultado

  • desarrollo de iOS
Todo empezó cuando miré a mi alrededor y, al no ver el coche de mis sueños, decidí diseñarlo yo mismo.
Fernando Porsche

Hola Habr. Quiero contarles cómo creé mi primera aplicación para iOS y qué surgió de ella.

Idea

La idea de la aplicación surgió de forma natural: crear algo que usted mismo estaría encantado de utilizar. Escribo notas todo el tiempo. Después de todo, cada persona ocupada tiene un cierto conjunto de datos que recibe durante el día y que vale la pena recordar. Y como todo el mundo lo olvida (¡y eso es normal!), no hay mejor solución que simplemente escribirlo. Siempre sentí algún tipo de inconveniente al trabajar con las aplicaciones para tomar notas presentadas en la AppStore. La excesiva complejidad en la gestión, la presencia de categorías innecesarias, una gran cantidad de información adicional: todo esto impide que la aplicación realice su función principal. Además, muchas de estas cosas simplemente se ven feas.

Por eso, apostando por la sencillez y la comodidad, comencé a crear un concepto. Modelo de aplicación con listado único de notas. Todo en un solo lugar, ¿qué podría ser más sencillo? Si algo es de gran valor o relevancia, no es necesario etiquetarlo; simplemente puede mover el elemento más importante al principio de la lista. Las entradas antiguas e innecesarias se moverán gradualmente hacia abajo y eventualmente serán eliminadas por el usuario.

Funcional

Una vez pensado el concepto, escribí la funcionalidad principal: aquellas cosas en las que me gustaría centrarme en la gestión:

Estarás de acuerdo con una funcionalidad bastante estándar para este tipo de aplicaciones. Pero esto es sólo la punta del iceberg, el diablo está en los detalles.

Herramientas

Antes de escribir el código en Xcode, recreé completamente la apariencia de la aplicación en el editor vectorial Sketch. Este programa es ideal para crear diseños rápidamente. Hay muchos complementos disponibles para esta aplicación, entre ellos se encuentra Sketch Preview, que permite ver la mesa de trabajo directamente en el dispositivo a través del programa Skala Preview. Sólo necesita descargar los programas gratuitos Skala Preview a su computadora y dispositivo móvil e instalar el complemento. Después de eso, seleccione la mesa de trabajo deseada, presione la combinación Comando+P y en un segundo la apariencia de la aplicación se transmite al dispositivo.

Además, la aplicación es muy conveniente para crear capturas de pantalla y publicarlas en la AppStore. Para cada tamaño de pantalla, se creó un conjunto diferente de mesas de trabajo y el uso de estilos fue mínimo; Pero sobre la publicación un poco más tarde.

Desarrollo

En la aplicación, utilicé solo dos controladores: uno directamente para todas, todas, todas las notas, el otro para mostrar un pequeño tutorial cuando se inició por primera vez. Organicé el trabajo con la base de datos utilizando el marco CoreData.

Después de crear la funcionalidad básica (crear, eliminar, editar notas), decidí mejorar cada una de estas funciones.

De acuerdo, la edición de texto en iOS se implementa de manera bastante inconveniente. Si te equivocas en una palabra, para mover el cursor a la posición deseada deberás tocar y, sin quitar el dedo de la pantalla, intentar entrar en la zona seleccionada. Además, después de corregir el error, debe devolver el cursor al final de la línea. En mi aplicación, decidí reelaborar el mecanismo de movimiento del cursor: para realizar un cambio en una palabra, basta con deslizar el dedo en el área entre el teclado y la frase que se escribe sin bloquear la vista del texto.

Decidí implementar yo mismo las animaciones de borrar y subir a la parte superior, y acercar el acompañamiento visual lo más posible a la vida real. Algo ha adquirido una mayor prioridad: deslícese hacia la derecha y la nota pasará al principio de la lista. Para eliminar, deslícese hacia la izquierda y la animación tachada mostrará cuánto tiempo necesita extender el deslizamiento para completar la eliminación. Si la borras accidentalmente, sólo tienes que agitar el dispositivo (“Agitar”) y la nota volverá a su lugar original.

Para resaltar la nota, utilicé LongTapGesture y los tres colores principales de la aplicación: blanco, azul y rojo, que formaban la paleta de colores principal.

Decidí hacer automática la transición entre los temas diurnos y nocturnos. ¿Por qué a nadie se le ha ocurrido todavía cambiar la apariencia dependiendo de la posición del sol en el cielo? Es muy simple: después del anochecer y después del amanecer, el tema cambia y el usuario no necesita distraerse tomando notas, porque la aplicación siempre se ajustará automáticamente a las condiciones del entorno.

Nombrar

El nombre de la aplicación es la parte más importante durante el desarrollo; es lo primero que ve el usuario en la tienda. Hay información sobre esto en Habré. Decidí abordar la selección del nombre a fondo: primero, revisé la lista de las 1000 palabras más populares en inglés y escribí todo tipo de combinaciones que serían adecuadas para el nombre de una aplicación móvil para tomar notas; Además, quería mantenerlo entre 8 y 10 caracteres. Pero al mismo tiempo, no quería elegir el nombre SuperNotes o NotesPlus, etc., quería algo nuevo. Me gustó la combinación nota loca, que encontré accidentalmente en Urban Dictionary:
Nota loca: excelente, entretenida, sorprendente, inesperada o asombrosa.

Inmediatamente apareció el eslogan: MadNotes - Note your passion. Como ya tenía lista una paleta de colores primarios (blanco, azul, rojo), decidí crear inmediatamente un ícono adecuado. La situación de los logotipos para aplicaciones de este tipo es deplorable:

Dado que las notas en papel se escriben con un lápiz o un bolígrafo, decidí mostrarlo en el ícono: un lápiz girado en un ángulo de 45 grados. Resultó así:

Resultado

Dado que el proyecto se concibió inicialmente como un proyecto de diseño, decidí participar con mi solicitud en el concurso ucraniano Premios de Diseño Ucranianos: The Very Best Of en la categoría Diseño Digital. Quedaban varias semanas antes de la competencia, tiempo durante el cual logré hacer una publicación en Behance, donde mostré visualmente todas las funciones principales de la aplicación y también grabé una vista previa en video.
Dado que los ganadores del concurso no se anuncian hasta el último momento, fue increíblemente agradable ver mi trabajo en la exposición de las obras de los ganadores: el jurado vio y apreció el concepto principal: minimalista y, al mismo tiempo, Aplicación funcional para tomar notas.


La aplicación ha estado en la AppStore durante varios meses, tiempo durante el cual realicé seis actualizaciones y reescribí el código en Swift. La última versión (1.2) agregó sincronización con iCloud, por lo que las notas ya se trasladaron a la nube.

Gracias por su atención.
Toma nota de tu pasión

A finales del mes pasado, el desarrollador Richard Felix publicó un entretenido artículo en el que intentaba explicar de la forma más clara y concisa posible cómo crear una aplicación exitosa para iOS. En particular, compartió consejos útiles para desarrolladores novatos, sus propias observaciones en términos de diseño de programas y las últimas tendencias en la App Store.

Richard conoce todas las complejidades del desarrollo por experiencia personal, ya que en los últimos años ha creado una serie de aplicaciones populares para plataformas móviles modernas y la web (Are My Sites Up, Stunning, Dispatch y otras).

Entonces, en algún momento de tu vida, decidiste convertirte en desarrollador e intentar crear tu propia aplicación para iOS. Tienes miedo de gastar mucho tiempo (y dinero) desarrollando un programa que nadie utilizará. Sueñas con crear una aplicación que se venderá activamente un año después de su lanzamiento, pero no tienes idea de cómo hacerlo. Los consejos que se describen a continuación le ayudarán a alcanzar sus objetivos.

Encuentra una idea original

En cada presentación, Apple anuncia millones de ventas de dispositivos iOS y fantásticos récords en la App Store. Guiados por este hecho, muchos desarrolladores novatos asumen erróneamente que crear otro cliente de correo electrónico banal o un editor de fotografías les permitirá ganar millones de dólares (en su opinión, esto no necesariamente requiere subir a la cima de las listas de la tienda de aplicaciones de Apple).

Sin embargo, a pesar de la prevalencia de la plataforma iOS, esto es un gran error. Por supuesto, en este caso ganarás algo de dinero y recuperarás el proceso de desarrollo, pero para lograrlo realmente significativo Para tener éxito, su programa no sólo debe realizar las funciones indicadas, sino también tener alguna característica original, una especie de entusiasmo que lo distinga de cientos de competidores y atraiga la atención en el contexto general.

Investiga tu público objetivo

La App Store ofrece a cualquiera un verdadero tesoro en forma de listas de aplicaciones populares, a partir de las cuales puedes decidir la categoría del programa, observar algunos puntos por ti mismo y encontrar esa idea tan original.

Actualmente, podemos distinguir las siguientes tres categorías de los programas más populares en la App Store:


  • Aplicaciones alternativas para programas del sistema iOS (calculadoras mejoradas, calendarios, clientes de correo electrónico, editores de fotografías, listas de tareas, etc.). Son populares porque muchas personas se enfrentan a las limitaciones de las herramientas estándar de iPhone/iPad y quieren ampliar la funcionalidad de sus dispositivos. Apple crea programas para las masas (son fáciles de usar e intuitivos), razón por la cual los usuarios más avanzados sufren (si necesita más funciones, tendrá que usar una aplicación de terceros, y esto es una ventaja para nosotros).

  • Juegos y una variedad de ellos. Especialmente aquellos que te obligan a compartir la aplicación con amigos y compañeros, lo cual tiene mucho más valor que cualquier banner publicitario.

  • Aplicaciones con un mínimo de funciones que a primera vista parecen entonces Es elemental que muchos desarrolladores descarten tales ideas incluso en la etapa de pensar en el proyecto. Un ejemplo típico es un programa llamado Over, que le permite agregar títulos elegantes a sus fotografías. Para un usuario avanzado, Over puede parecer una herramienta bastante limitada, pero muchos principiantes están completamente satisfechos con este "editor de fotos", lo cual se confirma con sus buenas ventas. Es sorprendente cómo la implementación correcta de una única función declarada puede conducir a un programa completamente exitoso.


No reinventes la rueda y actualiza con frecuencia

Muchas aplicaciones populares de iOS han logrado su éxito gracias a la siguiente característica: permiten al usuario realizar rápidamente alguna acción (editar una foto, por ejemplo), pero no lo cargan con funciones y botones innecesarios. No es necesario reinventar la rueda y crear un editor de fotografías con función de reproducción de música.

Ponte en el lugar del usuario, intenta centrarte en las funciones que en realidadútil. No es necesario implementar todas tus ideas en la primera versión; deja ideas menores para futuras actualizaciones de la aplicación. Después de que el programa se lance en la App Store, recibirá muchas reseñas de usuarios, en base a las cuales podrá sacar conclusiones sobre la necesidad de implementar tal o cual función.

Además, las actualizaciones periódicas de la aplicación permiten que su producto se escuche constantemente, "destelle" ante los ojos de compradores potenciales en la blogósfera.

Dibuja un icono colorido

Un hermoso ícono es la clave del éxito de cualquier aplicación ( entonces alguien? - Nota del editor). Al tener un iPhone o iPad en sus manos, el usuario siempre quiere ver en su pantalla gráficos de alta calidad y un diseño "delicioso", que, como dicen, es agradable a la vista. Será más probable que las personas presten atención al programa si el departamento de diseño dedica suficiente tiempo y esfuerzo a crear un ícono de marca atractivo. En última instancia, esto debería ayudar a que su aplicación alcance la cima de las listas de la App Store.

En sitios especializados como




Arriba