Mobilize

News, code, tech, trends, social, hacks and stuff

Calcular el tiempo correcto para el desarrollo de aplicaciones es vital para tener un presupuesto adecuado.

Aquí tenemos algunos consejos al respecto.

No calcular tiempos estimados en sitios web

Estimar tiempos basados en sitios web que ofrecen calcular tiempos de desarrollo basados en características (como si de piezas lego tratase) es un error. Dichos sitios no contemplan imprevistos y tiempos de entrega de información, casi todos omiten la planeación o riesgos.

Compromete un plan detallado de tareas y tiempos

Para estimar tiempos de desarrollo es necesario organizar reuniones con el cliente y usuarios con el fin de explorar los alcances y conocer de primera mano las expectativas que se tienen sobre el producto que se espera. Para tal fin el proveedor de soluciones junto con el cliente deben acordar que para lograr llegar a la meta se necesitan tiempo y recursos. Conocer al detalle las necesidades de la aplicación es de gran valor para los desarrolladores pues con esta información no asumen funcionalidad.

Dedicar tiempo a la planeación es menos costoso que pagar tiempos por retrasos

Dedicar de una a dos semanas en la planeación del desarrollo de la aplicación es una inversión que se debe considerar antes de comenzar a escribir código. Si el desarrollador comienza adelantar tareas sobre un plan inexistente y a la postre recibe observaciones que emanan del plan establecido, su trabajo se duplica pues en lugar de estar desarrollando un feature ahora dedica tiempo a correcciones antes de tener un producto terminado. Inadmisible.

Termina el diseño antes de comenzar a escribir código

Una vez que se han aprobado los alcances de la aplicación, se debe acordar el aspecto gráfico de la misma. Dedicar el tiempo necesario para mostrar un diseño a satisfacción del cliente evita retrasos y correcciones de última hora que afectan gravemente al desarrollo en sí.

Sí, pero ¿cuánto tiempo se necesita para desarrollar mi app?

Los factores a considerar son cuantiosos y antes debemos hacernos ciertas preguntas:

  • ¿Cuántas pantallas tendrá la aplicación?
  • ¿Necesita un Splash Screen?
  • ¿Necesita conectividad o consume Rest?
  • ¿Es necesario registrar usuarios?

Entre otras. No hay una fórmula para calcular el tiempo que necesita una aplicación para ser desarrollada, tampoco se puede asumir por el número de desarrolladores involucrados. Para determinarlo se necesita escuchar al cliente, analizar, volverlo a escuchar y emitir un plan basado en sus expectativas y presupuesto.

En Mobilize te ayudamos a calcular no solo el desarrollo de tu app, sino cualquier solución que estés planeando para tu empresa o negocio.

Ponte en contacto con nosotros.

Tutorial REST con Spring Boot

- Posted in Spring Boot by

En este video se muestra cómo desarrollar de forma fácil y sencilla servicios REST con Spring Boot

Obtener un substring

- Posted in Swift by

Para extraer el substring de una cadena y almacenarla en un arreglo basta hacer lo siguiente:

var cadena ="valores : separados"
 cadena.components(separatedBy: ":")[0]

De este modo tendremos como resultado la palabra "valores"

Crear Spinner mediante extensión

- Posted in Swift by

Un elemento indispensable de UI para nuestras aplicaciones es el control Spinner; por medio de él el usuario es notificado visualmente cuando un proceso ha terminado y los elementos de la UI están disponibles para su uso. Un ejemplo de lo anterior es cuando cargamos datos remotos y debemos esperar su procesamiento y despliegue en, digamos, una lista.

La siguiente extensión agrega un control Spinner a cualquier view de nuestra aplicación, incluso en imagenes

import Foundation
import SwiftUI
var vSpinner : UIView?

extension UIViewController {
    func showSpinner(onView : UIView) {
        let spinnerView = UIView.init(frame: onView.bounds)
        spinnerView.backgroundColor = UIColor.init(red: 0.5, green: 0.5, blue: 0.5, alpha: 0.5)
        let ai = UIActivityIndicatorView.init(style: .large)
        ai.startAnimating()
        ai.center = spinnerView.center

        DispatchQueue.main.async {
            spinnerView.addSubview(ai)
            onView.addSubview(spinnerView)
        }

        vSpinner = spinnerView
    }

    func removeSpinner() {
        DispatchQueue.main.async {
            vSpinner?.removeFromSuperview()
            vSpinner = nil
        }
    }
}

La forma de usarlo es la siguiente. En el método viewDidLoad de nuestra clase llamamos la función de la extensión:

self.showSpinner(onView: self.view)

y para ocultar el spinner:

self.removeSpinner()

Y eso es todo ✌️

Efecto bounce para IOS-Swift

- Posted in Swift by

Es muy sencillo hacer un efecto bounce para iOS usando Swift.
Tan solo necesitamos crear una extensión:

import Foundation
import UIKit

extension UIView {

    func bounceView() {
        let viewToAnimate = self

        let expandTransform: CGAffineTransform = CGAffineTransform(scaleX: 1.45, y: 1.45)
        let expandTransformRevert: CGAffineTransform = CGAffineTransform(scaleX: 1.0, y: 1.0);


        UIView.transition(with: viewToAnimate,
                duration: 0.1,
                options: UIView.AnimationOptions.transitionCrossDissolve,
                animations: {
                    viewToAnimate.transform = expandTransform
                },
                completion: { (finished: Bool) in
                    UIView.animate(withDuration: 0.4,
                            delay: 0.0,
                            usingSpringWithDamping: 0.40,
                            initialSpringVelocity: 0.2,
                            options: UIView.AnimationOptions.curveEaseOut,
                            animations: {
                                viewToAnimate.transform = expandTransformRevert
                            }, completion: nil)
                })
    }
}

Y usarla en cualquier view de nuestra aplicación de este modo:

btnPlay.bounceView()

Y es todo 👌🏽