
De un traductor: esta publicaci贸n es una traducci贸n del
art铆culo original de Reinder de Vries, un programador experimentado que desarroll贸 su propio curso de capacitaci贸n en codificaci贸n. El autor comparte sus ideas sobre herramientas que pueden ser 煤tiles para los desarrolladores, lo que le permite acelerar y optimizar el proceso de programaci贸n.
Crear una aplicaci贸n requiere mucho tiempo y, a menudo, dinero. A veces puede que no tenga suficientes fondos para desarrollar un programa multifuncional, pero sucede que hay fondos, pero debe trabajar lo m谩s r谩pido posible para no perder un buen momento para el lanzamiento, por delante de los competidores. 驴Qu茅 hacer? 驴Cortar las capacidades del programa para terminarlo m谩s r谩pido o buscar otras formas de acelerar el proceso?
Skillbox recomienda: "La profesi贸n de desarrollador web" .
Le recordamos: para todos los lectores de "Habr": un descuento de 10.000 rublos al registrarse en cualquier curso de Skillbox con el c贸digo de promoci贸n "Habr".
En este art铆culo, hablar茅 sobre cinco herramientas diferentes que recomiendo usar para acelerar el proceso de desarrollo. Permiten matar dos p谩jaros de un tiro: reducen el consumo de recursos de la aplicaci贸n (es decir, reducen los costos) y acercan el tiempo de liberaci贸n.

La primera herramienta que veremos es el servidor Parse de back-end de c贸digo abierto basado en la nube.
As铆 es como funciona:
- Cree una instancia de Parse Server en un PaaS popular como Heroku.
- Conecte su instancia de Parse Server a una plataforma DaaS popular como mLab .
- Integre la aplicaci贸n con la instancia de Parse Server, comience a usar las herramientas de la plataforma.
- Beneficio! Tiene a su disposici贸n una excelente herramienta en la nube con una gran cantidad de funciones: bases de datos, notificaciones push, almacenamiento de archivos y gesti贸n de cuentas de usuario.
Es una herramienta de c贸digo abierto, por lo que puede crear y configurar su instancia de Parse Server con muchos proveedores en la nube como AWS, Heroku, Google App Engine, Azure o Digital Ocean.
Parse Server proporciona a los desarrolladores acceso a una amplia gama de funciones de back-end. A pesar de que todas las funciones funcionan bien, antes de la activaci贸n, tendr谩 que trabajar para configurarlas y luego controlar el funcionamiento normal. Esta es la diferencia entre esta soluci贸n y otras plataformas en la nube que operan en un modo todo en uno.
Parse Server tiene un gran m贸dulo de Funciones en la Nube. Con JavaScript, puede programar la ejecuci贸n de tareas mediante un disparador.
Digamos que est谩 desarrollando un servicio de revisi贸n de pel铆culas, similar a IMDB. Cada vez que un usuario publica una rese帽a de pel铆cula, puede realizar un seguimiento de este evento y notificar a otros usuarios del servicio acerca de una nueva rese帽a por disparador.
Con Parse Server, los desarrolladores gastan menos tiempo y dinero creando sus propias herramientas de back-end y manteniendo servidores web. Parse Server es una herramienta escalable, relativamente simple y personalizable con un mont贸n de caracter铆sticas 煤tiles.
Pros- Una gran cantidad de plataformas, incluidos los entornos IoT.
- Excelente documentaci贸n t茅cnica.
- Comunidad activa
Contras- Requiere una plataforma separada para el trabajo, por ejemplo Heroku.
- El escalado depende de la infraestructura general.
- Esta no es una herramienta todo en uno.
CostoTodo esto es gratis, pero, como se mencion贸 anteriormente, para trabajar con la herramienta necesitas una nube como Heroku, y ya cuestan dinero.
PlataformasiOS, macOS, tvOS, Android, JavaScript, React, .NET, Unity, PHP, Arduino, Embedded C.

Fastlane es una herramienta que se centra principalmente en la integraci贸n continua (CI) y la implementaci贸n continua (CD). Cada vez que crea una nueva versi贸n de la aplicaci贸n, se dirige autom谩ticamente a los usuarios y a los beta testers.
Imagine que cre贸 una aplicaci贸n y acaba de cargar la versi贸n 1.0 en la App Store. Dos semanas despu茅s, corregimos errores y agregamos una nueva funci贸n. Desea proporcionar una versi贸n 1.1 mejorada a los beta testers lo antes posible y luego a los usuarios.
Esto es lo que debe hacer para completar su tarea:
- Cree una nueva compilaci贸n y publ铆quela en App Store Connect.
- Crea capturas de pantalla para cada uno de los dispositivos compatibles.
- Actualizar metadatos, capturas de pantalla, etc.
- Proporcione beta testers con TestFlight.
Si es un codificador solitario, deber铆a tener tiempo suficiente para completar todas estas tareas sin herramientas adicionales. Pero imagine que est谩 trabajando en equipo y que aparecen nuevas versiones de sus programas con bastante frecuencia.
En este caso, el flujo de trabajo puede volverse bastante complicado y confuso. Para automatizar y simplificar todo, tambi茅n se necesita Fastline. Esto es lo que puede automatizar:
- capturas de pantalla para varios dispositivos e idiomas;
- distribuci贸n de compilaciones beta de aplicaciones, por ejemplo, nombrar una compilaci贸n nueva, firmar un c贸digo, descargar una aplicaci贸n y registrar cambios;
- publicar la aplicaci贸n, incluso agregar nuevos metadatos, descargar capturas de pantalla, enviar la solicitud para su revisi贸n;
- utilizando claves y certificados dentro de su equipo.
Fastline se integra con herramientas populares de CI / CD como CircleCI, Jenkins y Travis CI.
Y lo mejor de todo, esta herramienta es de c贸digo abierto. Esto significa que los desarrolladores pueden mejorarlo agregando sus propios scripts y complementos. Cada una de las caracter铆sticas de Fastline est谩 bien documentada, incluidos ejemplos y casos. En general, una herramienta es simplemente imprescindible.
Pros- Ahorra mucho tiempo al automatizar los procesos necesarios.
- Ayuda a evitar errores que ocurren cuando se trabaja "manualmente".
Contras- Se necesita un poco de esfuerzo para sintonizar.
- No es adecuado para desarrolladores sin un equipo o aplicaciones que rara vez se actualizan.
Precio隆Gratis!
PlataformasiOS, Android.
Plantillas de dise帽o de aplicaciones

El dise帽o de su aplicaci贸n significa mucho. Un buen dise帽o a menudo proporciona a la aplicaci贸n un lugar m谩s alto en la clasificaci贸n de la tienda de aplicaciones, por supuesto, si el programa en s铆 es bueno.
Naturalmente, los usuarios necesitan un UX normal: ahora son muy exigentes con el dise帽o, y si no tiene 茅xito, incluso el mejor programa puede permanecer impopular.
Para ayudar al desarrollador a comprender qu茅 dise帽o necesita su creaci贸n, hay plantillas. Est谩n preparados por dise帽adores profesionales de UI y, si lo desea, puede adaptarlos a sus necesidades.
Aqu铆 hay una lista de los patrones que m谩s me gustan:
Algunas plantillas est谩n dise帽adas espec铆ficamente para ciertos tipos de aplicaciones, como redes sociales, soluciones de productividad o comercio electr贸nico.
Cuando use la plantilla, aseg煤rese de cumplir con los t茅rminos de licencia especificados por el autor. La plantilla puede estar disponible, pero esto no significa en absoluto que tenga derecho a cambiarla o implementarla en un producto comercial.
Pros- Ahorra mucho tiempo y dinero.
- F谩cil de usar
- Muchas plantillas son f谩cilmente personalizables.
Contras- La configuraci贸n lleva tiempo.
- Tienes que buscar una buena plantilla.
- Los t茅rminos de la licencia no siempre son claros.
PrecioHay plantillas pagas y gratuitas.
PlataformasCualquiera.

Cuando trabajas con PaintCode por primera vez, puedes pensar que esto es pura magia. De hecho, no hay brujer铆a, por supuesto, solo 茅l puede generar c贸digo para los componentes visuales de la interfaz de usuario.
As铆 es como funciona:
- Crea un componente de IU, como un bot贸n, en PaintCode.
- PaintCode genera c贸digos Swift, Objective-C, Java, C #, JavaScript o SVG.
- Utiliza el c贸digo en su aplicaci贸n, el componente UI aparece y funciona.
En una situaci贸n normal, el desarrollador dise帽a cada elemento por su cuenta. Cuando el bot贸n est谩 listo, su color, texto y bordes se escriben en la aplicaci贸n. Este es un componente visual simple, pero imagine cu谩nto tiempo y esfuerzo tomar谩 si es m谩s complejo.
Los desarrolladores y dise帽adores a menudo se ven obligados a buscar una posici贸n intermedia entre los deseos del dise帽ador y las capacidades del programador. PaintCode le permite crear un componente de interfaz de usuario de cualquier complejidad, creando el c贸digo deseado usted mismo.
La versi贸n final se exporta a un solo archivo, de modo que se puede volver a importar en cualquier momento cuando se actualiza el componente. Es posible utilizar todo tipo de variables y expresiones.
Adem谩s, PaintCode tiene un complemento para Sketch, un popular editor de gr谩ficos. Con 茅l, sus proyectos se pueden exportar desde Sketch directamente a Swift o Objective-C.
PaintCode tiene muchos tutoriales y documentaci贸n bien escrita. El soporte es muy receptivo y siempre est谩 listo para ayudar.
Pros- Ahorra tiempo y le permite cambiar la decisi贸n en el proceso.
- Tiene alta flexibilidad y personalizaci贸n.
- Admite 4 plataformas principales de desarrollo de aplicaciones.
Contras- Debe tener una buena comprensi贸n del dise帽o y desarrollo.
- Algunas personas prefieren el "manual" en lugar del c贸digo generado.
- Soporte limitado para el flujo de trabajo orientado a Interface Builder.
CostoPer铆odo de prueba gratuito, luego $ 99 por a帽o para un equipo de 1-3 personas.
PlataformasiOS, macOS, Android y la web.

T茅cnicamente, Awesome no es una herramienta, sino un recurso: una lista de marcos, bibliotecas, cursos, libros, blogs, podcasts, herramientas y plantillas para desarrollar aplicaciones. Una simple b煤squeda en GitHub muestra que la lista incluye lo mejor de lo mejor, y para diferentes plataformas, desde iOS y Swift hasta Android y JavaScript.
Yo recomendar铆a estas colecciones:
En conclusi贸n, dir茅 que mis 5 herramientas principales para optimizar procesos se pueden ampliar agregando sus propios elementos que usted mismo utiliza. Vale la pena explorar nuevas herramientas, debe buscarlas, al menos para ahorrar su propio tiempo.
Skillbox recomienda: