• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

Programando Apps

Desarrollo de apps nativas para iOS y Android

  • SERVICIOS
  • Tutoriales
  • blog
  • contacto

herramientas

Como configurar Github y Bitbucket en Xcode

24 marzo, 2020 by George

En un tutorial anterior ya hablamos sobre la importancia, y la necesidad, de trabajar con un sistema de control de versiones para evitar perder cambios en nuestros proyectos y también para poder colaborar con otros miembros de nuestro equipo de desarrollo de una forma segura y eficiente.

Seguro que te suena, o conoces a alguien, que en alguna ocasión ha trabajado en un proyecto, ha querido añadir una funcionalidad nueva o crear una nueva versión, y ha copiado la carpeta completa del proyecto, la ha renombrado como «mi nuevo proyecto» y desde ahi ha continuado. Luego has o ha querido añadir algunos nuevos cambios y ha creado la clásica «mi nuevo proyecto 2» , «mi nuevo proyecto final» «mi nuevo proyecto final de verdad» 🙂  Y cuando nos damos cuenta tenemos 3 4 o más carpetas de nuestro proyecto copiadas. El problema es si queremos deshacer una de las funcionalidades que hemos añadido, o por cualquier motivo, volver a una versión anterior. Aquí empiezan los problemas, ya que tenemos cada cambio en una carpeta de las que hemos ido creando en cada versión que hemos creado.

Tal y como comentamos, con un sistema de control de versiones podemos optimizar y llevar un control de nuestras versiones de una forma eficiente y ordenada, y así poder volver hacia atrás en el tiempo a algún momento de nuestro código.

Bitbucket y Github

Antes de continuar, aclarar qué Git no es lo mismo que Github. Git es un sistema de control de versiones o software de control de versiones , mientras que Github es una plataforma para desarrolladores que permite alojar y compartir nuestros proyectos. Utilizando Git, si pero no es lo mismo 🙂

Lo primero que tendremos que hacer es crearnos una cuenta en Github o Bitbucket. Ambas plataformas cuentan con opciones gratuitas y para la mayoría de casos son mas que suficientes.

Sobre qué plataforma es mejor, esto ya es algo que va a gustos y también es algo que dependerá de con quién estemos trabajando. Hay empresas que prefieren trabajar con Github, otras con Bitbucket, otras con Gitlab… asi que lo que os aconsejaría es crearnos una cuenta en ambas.

Vamos entonces a ver lo sencillo que es añadir una cuenta de Bitbucket y Github a nuestro Xcode.

Para ello iremos al menu Xcode > Preferences , y una vez dentro de la ventana de preferencias, iremos a Accounts.  Aquí es donde gestionamos todas las cuentas que tenemos configuradas con nuestro IDE, Cuenta de desarrollo, Apple ID, cuentas de Github, Bitbucket etc

Inicialmente no tendremos ninguna cuenta añadida, por lo que para añadir nuestra cuenta de Bitbucket haremos click en el pequeño icono con forma de cruz de la parte inferior izquierda.

Xcode preferencias

 

Entre las diferentes opciones que nos ofrece Xcode , seleccionaremos Bitbucket y le daremos a continuar

Añadir cuenta bitbucket Xcode

Y ahora solo nos quedará ya añadir nuestros datos de acceso a Bitbucket y darle a Sign In para vincular nuestra cuenta a Xcode

configurar bitbucket en Xcode

 

En el caso de que queramos añadir una cuenta de Github es exactamente el mismo proceso pero seleccionando la opción de Github.

añadir cuenta de Github a Xcode

 

También mencionar que Xcode no solo nos permite integrar Bitbucket y Github en nuestros proyectos, también podemos añadir cuentas de otras plataformas, como Gitlab o incluso si tenemos un servidor git propio, y no queremos utilizar ninguna de las plataformas mencionadas, podemos utilizarlo sin ningún tipo de problema.

Gitlab en Xcode

 

Conclusión

Hemos visto que en muchas ocasiones, aunque creamos que conocemos nuestro proyecto a la perfección, nos encontramos en situaciones en las que queremos volver atrás en el tiempo a alguna versión de nuestro código o nuestro proyecto, ya sea por volver a una versión anterior por un error que hemos cometido y nuestro código ha dejado de funcionar, o simplemente para testear funcionalidades y comprobar que lo que estamos haciendo lo estamos haciendo de forma correcta, para ello la forma mas optima y profesional de hacerlo es a través de un sistema de control de versiones como Github y Bitbucket.

Gracias a la integración de un sistema Git en nuestro IDE (integrated development environment) podemos realizar estas tareas de una forma sencilla, elegante y profesional, ademas de que nos va a ayudar a poder compartir el proyecto con otros programadores y , de esta forma, poder realizar proyectos en colaboración con otras partes del equipo de desarrollo sin miedo a pisar el código de otros integrantes de nuestro equipo.

 

 

Publicado en: herramientas

Que es un sistema de control de versiones

30 enero, 2020 by George

Hay cierta confusión en lo que se refiere a lo que es un sistema de control de versiones, ya que , probablemente habremos oido hablar acerca de Github, git, bitbucket, SourceSafe, Mercurial …Pero ¿Qué es exactamente un sistema de control de versiones?

¿Qué es un Sistema Control de Versiones?

Un sistema de control de versiones es aquel que nos permite registrar los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo. Este tipo de sistemas nos permiten volver en el tiempo a una versión anterior y, de este modo, salvar nuestro trabajo o recuperar una versión anterior de un archivo en concreto. Además no solo nos permite poder llevar un seguimiento de nuestros archivos en el tiempo, sino también, y esto es realmente importante cuando trabajamos en equipo, nos permiten llevar un seguimiento de quien ha hecho dichos cambios y de que es lo que ha cambiado, algo extremadamente útil en proyectos en los que colaboramos con mas personas.

Ventajas de usar un sistema de control de versiones

Usar un sistema de control de versiones no solo nos va a permitir colaborar con otras personas en distintos proyectos en los que estemos trabajando, sino que también nos va a dar una gran tranquilidad a la hora de trabajar, ya que si integramos un sistema de control de versiones en nuestro flujo de trabajo (workflow) podremos tener una gran tranquilidad en caso de perdidas de datos de nuestro ordenador o discos duros, ya que nuestros archivos estarán a salvo en todo momento, no solo a salvo, sino que , como comentamos, dispondremos de un histórico de cambios.

En cuanto al histórico de cambios, si utilizamos un sistema de control de versiones, podremos obtener un seguimiento de nuestros archivos a lo largo del tiempo, y no solo saber que cambios se han realizado en algunos archivos en concreto, sino saber cuando y quien realizo dichos cambios. Pudiendo siempre que lo necesitemos volver a una versión anterior de los mismos.

Otra de las ventajas que nos ofrece un sistema de control de versiones es que podemos volver a una versión anterior con mucha facilidad, algo que es muy útil cuando por ejemplo queremos comprobar ciertas funcionalidades que hemos añadido a nuestro proyecto y , de repente, vemos que en la nueva version el comportamiento es distinto al anterior. De esta forma podemos volver a la versión anterior que teníamos funcionando correctamente y ver de que forma los nuevos cambios han «estropeado» un comportamiento que inicialmente erra el esperado 🙂

Una ventaja muy utilizada es la de poder crear pruebas con nuevas funcionalidades sin tener que tener por si no funcionarán como esperamos. Podemos crear una nueva version, probar los cambios que queramos realizar, y una vez probados y comprobados continuar el desarrollo desde ese punto. En el caso que no sea lo que esperamos, siempre podemos volver a una versión anterior.

Algo muy extendido es el trabajo en equipo, en la que cada miembro del mismo desarrolla una parte del proyecto. Gracias a un sistema de control de versiones podemos estar seguros que todos los miembros del equipo tendrán las versiones actualizadas de las diferentes partes del proyecto, algo que agiliza mucho la forma de trabajar, sobretodo en proyectos grandes.

Cuando trabajamos con mas personas en un proyecto, gracias a integrar en nuestro workflow un sistema de control de versiones, nos permite reducir los posibles conflictos entre las diferentes partes de un proyecto, ya que al utilizar un sistema de control de versiones podemos prevenir que un usuario «pise» ciertos archivos en los que este trabajando otro usuario. De esta forma podemos tener mejor organizado a nuestro equipo delegando ciertas tareas a cada una de las partes teniendo la tranquilidad de que todos los miembros trabajarán con la ultima versión de los archivos.

Herramientas de control de versiones

Hemos visto que es un sistema de control de versiones, pero en muchas ocasiones se cree que este es implemente la herramienta que utilizamos para ello. En el caso de github o bitbucket , ambas son muy buenas opciones para trabajar y para levar un control de versiones, , ademas de estar muy extendidas, pero estas herramientas no son en sí un sistema de control de versiones. En realidad ambas herramientas trabajan con git , que ya es propiamente el software de control de versiones. Git además de ser una gran opción para llevar un control de versiones, es un software libre de control de versiones diseñado por Linus Torvals. con lo que se ha convertido en un standard a la hora de trabajar en el mundo del desarrollo. Herramientas con Xcode y Android Studio también integran Git, siendo muy sencillo gestionar nuestros proyectos de desarrollo de aplicaciones.

Conclusión

Como hemos visto, utilizar un sistema de control de versiones en nuestro día a día nos va a ayudar en nuestra jornada como desarrolladores, ya no solo para poder integrar nuestro trabajo con un equipo de personas, sino también para darnos ese grado de tranquilidad al saber que nuestros archivos están a salvo, además de saber que podremos tener guardados todos esos cambios en el tiempo para , cuando lo necesitemos, poder ir a una versión en concreto.

 

 

Publicado en: herramientas

Que es Firebase y en que puede ayudarnos

10 enero, 2019 by George

Que es firebase

Posiblemente si preguntásemos que es Firebase la mayoría de las personas probablemente nos responderían que es una base de datos en tiempo real. ya que Firebase no era lo que hoy en día conocemos como Firebase.

Firebase empezó siendo una base de datos en tiempo real, que nos proporcionaba un API para poder tener nuestras aplicaciones web y móviles cliente sincronizadas en todo momento, algo que en su momento fue de gran ayuda para desarrollos que necesitasen datos en tiempo real. Pero Google continúo desarrollando y ampliando funcionalidades de esta plataforma añadiendo nuevos servicios para , de esta forma , poder ofrecer un abanico de opciones y posibilidades con el cual no necesitemos, en un principio, tener que contratar un servidor y desarrollar todas estas funcionalidades para nuestro proyecto, ya que Firebase nos ofrece la gran mayoría de servicios que podemos necesitar para cubrir las necesidades de la parte servidora (backend) de nuestros aplicaciones y proyectos.

Hoy en día Firebase sigue ofreciendo bases de datos en tiempo real, pero como un servicio más, ya que a través de su plataforma nos ofrece una colección importante de servicios que nos van a ayudar a cubrir las necesidades de backend de nuestros proyectos y aplicaciones. Para ver en detalle los servicios que nos ofrece Firebase podemos visitar el sitio web oficial de Firebase.

Desarrollar, crecer y monetizar

Los servicios de Firebase se pueden dividir en tres grandes bloques: Desarrollar, Crecer y Monetizar.

Desarrollar

En este primer apartado podemos encontrar todos los servicios que necesitaremos para desarrollar nuestra aplicación móvil o nuestro proyecto web.

Bases de datos

Firebase como backend

Uno de los puntos fuertes son las bases de datos en tiempo real, las cuales nos van a permitir tener los datos de nuestros proyectos sincronizados en tiempo real y con la garantía de estar almacenados en los servidores de Google. Estas bases de datos no son bases de datos relacionales las cuales tienen una variedad de tablas y relaciones e índices.

La nueva versión de la base de datos que ofrece Firebase  se llama Firestore, y es su nueva base de datos principal para el desarrollo de aplicaciones móviles. Mejora el rendimiento de la antigua base de datos en tiempo real con un nuevo modelo de datos más intuitivo. Firestore, es bastante similar, pero en realidad no está almacenado los datos en formato JSON.

Autenticación de usuarios

También contamos con herramientas para la autenticación de usuarios, lo cual hace realmente muy sencillo registrar a los usuarios de nuestra aplicación o proyecto, autenticarlos de forma segura e incluso ofrecer alternativas de autenticación a través de gmail, Facebook etc. Algo que nos agiliza mucho este tipo de tareas que son bastante críticas en prácticamente cualquier tipo de aplicación.

Almacenamiento en la nube

El Cloud storage , o almacenamiento en la nube, está diseñado para ayudarnos a poder almacenar y poder servir el contenido generado por los usuarios de nuestra aplicación móvil o proyecto web de una forma rápida y sencilla. Por lo tanto si necesitamos que nuestras aplicaciones puedan generar y almacenar archivos de forma segura y tenerlos centralizados, esta es una opción que , sin lugar a dudas, nos va a facilitar mucho la vida.

Crash Reporting

Cuando estamos desarrollando y cuando estamos poniendo en marcha una aplicación móvil o proyecto es vital poder controlar y tener constancia de en que puntos nuestra aplicación falla para poder corregirlo, para ello Firebase nos ofrece un completo control de crash reporting ,  con le que podemos hacer un seguimiento del rendimiento de nuestras aplicaciones.

En este bloque de desarrollo no podemos dejar de mencionar test lab y remote Config, a los cuales les vamos a dedicar un tutorial completo.

Crecer

El conjunto de servicios de Firebase también nos ofrece varias herramientas de crecimiento para nuestra aplicación móvil o proyecto web, algo que permite que los departamentos de desarrollo y marketing trabajen conjuntamente para un bien común: El crecimiento de nuestro proyecto.

Notificaciones

Push notificationsHoy en día gran cantidad de aplicaciones necesitan poder avisar al usuario de diferentes eventos que ocurren tanto dentro como fuera de la app, como por ejemplo la recepción de un mensaje, un aviso de llegada de un mail, que algún usuario nos ha solicitado unirnos a nuestra red de contactos etc.

A través de las notificaciones podemos enviar a nuestros usuarios tanto notificaciones relacionadas directamente con nuestra aplicación, como las mencionadas anteriormente, así como otro tipo de notificaciones que puedan ser de interés para nuestro negocio y nuestro equipo de marketing. como por ejemplo notificaciones de ofertas a usuarios que este en ese momento a 100 metros de nuestro local, promociones y descuentos para usuarios que suelen comprar en nuestro comercio etc. Las posibilidades y las opciones son prácticamente ilimitadas y Firebase nos facilita la gestión de este tipo de campañas con una integración realmente sencilla, la cual nos evita tener que desarrollar todas esta parte en nuestro servidor.

App indexing

Firebase App Indexing nos permite poder integrar nuestra app en la Búsqueda de Google.Algo realmente muy útil y potente ya que nos permite generar interacciones con nuestros usuarios de una forma bastante sencilla.  Si nuestros usuarios tienen nuestra app instalada, pueden abrirla para poder ir directamente al contenido que estén buscando. Si los usuarios todavía no tuviesen nuestra app integrada, las consultas que fuesen relevantes activarán una sugerencia de instalación de nuestra app en los resultados de búsqueda, con lo que no deberemos de perder de vista esta interesante característica.

Dynamic links

Con los Dynamic Links podemos implementar enlaces que funcionan exactamente como nosotros queremos, en diferentes plataformas y sin importar que el usuario haya instalado previamente nuestra app.

Nos permiten poder generar vínculos para poder dirigir a los usuarios donde mas nos interese para poderles ofrecer la mejor experiencia posible. Si un usuario abre nuestro vinculo dinámico en una app nativa de iOS o de Android , podemos llevarlo directamente al contenido que tengamos vinculado con dicho link. Por el contrario, si nuestro usuario abre ese mismo vinculo en un navegador de escritorio, lo podremos llevar al mismo contenido pero en nuestro sitio web. Una forma realmente muy interesante de poder ofrecer una gran experiencia a nuestros usuarios, ya que incluso en el caso de que no tenga instalada nuestra aplicación móvil,  se le puede sugerir el instalarla.

Monetizar

monetizar una app

Tal y como vimos en el artículo como monetizar nuestra app , vimos que una de las posibles formas de poder monetizar nuestra app era a través de la publicidad, insertando anuncios dentro de la app. Para ello podemos utilizar varias redes publicitarias, entre ellas AdMob de Google.

Desde Firebase podemos realizar este tipo de tareas de una forma muy fácil. De hecho hacerlo desde dentro de Firebase es opcional, aunque si que es recomendable.

Conclusión

Contar con Firebase cuando estamos arrancando un proyecto puede ayudarnos mucho, sobretodo en lo que a costes se refiere, ya que desarrollar la parte servidora de un proyecto o aplicación  no suele ser barato, y Firebase en ese aspecto nos ofrece prácticamente todos los servicios que podemos necesitar desde el primer instante, y lo más importante, con coste cero o apenas sin coste mensual.

El problema vendrá cuando nuestro proyecto empiece a crecer, ya que , en la mayoría de los casos y en función del crecimiento, nos podrá llegar a interesar contar con nuestros propios servidores y nuestro propio backend, ya no solo por tener control absoluto del proyecto sino también por los costes que nos puede generar un alto numero de peticiones en Firebase. Todo dependerá del tipo de proyecto y lo este nos esté demandando.

Sin lugar a dudas, Firebase es una gran opción cuando estamos arrancando un proyecto que necesita contar con un backend, y para ello lo único que necesitamos es una cuenta de google para empezar a trabajar con Firebase.

 

 

Publicado en: herramientas

Que son los frameworks de desarrollo

9 enero, 2019 by George

herramientas de desarrolloEs más que probable que en más de una ocasión, cuando estamos realizando un proyecto o un desarrollo, nos encontremos con la necesidad de dotar a nuestras aplicaciones de ciertas funcionalidades las cuales, posiblemente, no hemos trabajado nunca o no hemos profundizado demasiado en las mismas, como por ejemplo mostrar un mapa en el que queremos insertar localizaciones de comercios, utilizar dispositivos bluetooth, crear llamadas a un servidor y consumir una API etc. En este punto entran en juego unos jugadores que nos van a ahorrar cientos de horas de desarrollo, y estos nuevos jugadores son los conocidos frameworks de desarrollo

En realidad, ¿qué es un framework?

Un framework , a grandes rasgos, es un conjunto de clases, objetos, métodos y propiedades que nos van a agilizar la forma de desarrollar ya que gran cantidad del código que vamos a necesitar para cubrir las funcionalidades que queremos que nuestro proyecto tenga, ya se encuentra agrupado en un paquete que podemos reutilizar, este paquete es el framework en si. Ni mas ni menos, un framework es un paquete que nos ofrece ciertas funcionalidades las cuales se encuentran agrupadas en dicho paquete que simplemente deberemos importar a nuestro proyecto para poder empezar a utilizar.

Frameworks de cada sistema

Tenemos a nuestra disposición gran cantidad de frameworks para cada plataforma, por ejemplo seguro que sí estamos familiarizados con el desarrollo backend, conoceremos Laravel, el conocido framework para desarrollar en php. O por ejemplo si estamos familiarizados con el desarrollo web, posiblemente conozcamos o utilicemos Genesis framework. Estas herramientas son frameworks que nos facilitan y agilizan nuestro trabajo como programadores, ya que encapsulan gran cantidad de funcionalidades las cuales podemos reutilizar en nuestros proyectos.

Las plataformas iOS y Android nos ofrecen también gran cantidad de herramientas para agilizar nuestro trabajo como desarrolladores de apps. De hecho, por ejemplo, cuando estamos trabajando desarrollando una aplicación para iOS estamos utilizando el framework UIKit, el cual importamos en nuestros archivos con import UIKit , este es el framework de Apple que nos permite utilizar en nuestras aplicaciones cajas de texto, botones, etiquetas etc.

Desarrollo de apps para iOS

Al igual que UIKit posiblemente conozcamos AVFoundation, Foundation, Core Data etc. Todos estos frameworks son frameworks de apple, los cuales nos permiten realizar gran cantidad de tareas sin tener que escribir el código especifico para esas funcionalidades. Si necesitamos realizar un proyecto para trabajar con bluetooth, no necesitamos programar a bajo nivel  todas las funciones para controlar dispositivos etc, simplemente importamos el framework correspondiente, en este caso Core Bluetooth y podemos empezar a utilizarlo y centrarnos en nuestro desarrollo en si. Igual ocurre si necesitamos incorporar bases de datos en nuestro proyecto, en tal caso podremos utilizar Core Data para poder gestionar todo lo referente a bases de datos.

Sin lugar a dudas tenemos a nuestra disposición gran cantidad de frameworks, los cuales podemos disponer de serie en nuestra plataforma, simplemente deberemos importarlos y utilizarlos.

Frameworks de terceros

Hemos visto que tenemos a nuestra disposición gran cantidad de frameworks de desarrollo incluidos en cada plataforma  para cubrir las necesidades especificas que podamos tener en nuestras apps y desarrollos, pero no solo tenemos disponibles los frameworks que nos ofrecen las diferentes plataformas. Podemos contar también con los frameworks de desarrollo que han creado otros desarrolladores y ponen a disposición de quién los quiera utilizar, habitualmente a través de github.

Hay gran cantidad de frameworks de terceros que podemos usar. Para ello deberemos incorporarlos a nuestro proyecto normalmente a través de un gestor de dependencias como CocoaPods y Carthage.Una vez incorporados a nuestro proyecto, ya podemos utilizarlos de la forma habitual importándolo a nuestro proyecto.

Desarrollando nuestros propios frameworks

Herramientas software

Si en nuestros proyectos necesitamos ciertas funcionalidades propias que vayamos a reutilizar es una muy buena practica desarrollar nuestro propio framework. De esta forma podremos reutilizar nuestro código, tenerlo centralizado y , en caso de tener que actualizarlo simplemente deberemos actualizar nuestro framework y recompilar los proyectos que hagan uso de él.

Evidentemente si hemos creado un framework que creemos que podrían utilizar otros programadores, es una gran idea compartirlo para que todos se beneficien de él. Al fin y al cabo nosotros también utilizamos otros frameworks de terceros y es justo que, de una forma u otra, contribuyamos con una comunidad que no deja de crecer.

Conclusión

Como hemos visto los frameworks de desarrollo son poderosas herramientas que nos facilitan enormemente nuestro trabajo como programadores, ya que nos permiten centrarnos en tareas que realmente son importantes y no tener que invertir tiempo y esfuerzo en desarrollar algo que ya se ha desarrollado, esta probado y testado y es realmente fácil integrar en nuestros proyectos.

Existen una gran cantidad de frameworks para iOS y frameworks para Android para realizar gran cantidad de tareas y poder dotar a nuestras apps de interesantes funcionalidades.

Algo que tenemos que tener muy en cuenta antes de integrar un framework de desarrollo en nuestros proyectos es estar seguros de la procedencia del framework, estar seguros que esta libre de bugs y sobretodo que es fiable y compatible con nuestras herramientas de desarrollo y nuestro proyecto, sino más que ahorrarnos tiempo y esfuerzo no será más que un quebradero de cabeza. Afortunadamente hay grandes opciones donde elegir, muy variadas y con muy buena documentación y un equipo de personas detrás de muy alto nivel.

 

 

 

Publicado en: herramientas

Barra lateral principal

© 2020 Programando Apps - Todos los derechos reservados

Aviso legal - Privacidad

Esta web utiliza cookies para mejorar la navegación y la usabilidad . Estamos seguro que no te importa, en caso contrario puedes dejar de navegar si así lo deseas. .Aceptar Rechazar Leer más
Privacidad & Politica de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR