programming, swift

Swift 3.0 Unsafe World

Like most of the modern languages, in Swift you will be living in a happy world where all the memory is managed by an external element, it could be the compiler/runtime like swift or it could be worse and depend on a garbage collector. References to instances that fly around are hidden in the language and rarely you need to deal with these issues.

However, given Swift versatility you could need to call a dirty C Api like OpenGL or POSIX functions, and in those cases you will need to deal with that thing that has caused lots of headaches to many of us, yes, I'm talking about pointers and allocating memory manually in the heap

Before 3.0, Swift unsafe API was a little bit confusing, there were several paths to achieve the same result, and that caused that you usually ended by copying and pasting what you saw in stackoverflow without understanding what is really happening. In 3.0 everything has changed, and it has done it for the better.

In this post I won't write how to migrate from Swift 2.x to 3.0 code, instead I will describe how the things works in 3.0 and will be comparing occasionally with C, since usually the main purpose of using unsafe references is to interact with low level C APIs.

Let's start by doing the simplest operation, allocating memory to hold an Integer.

Continue reading

android wear

Nuevo modelo de permisos en Android Wear

modelo de permisos
El API 23 introducido con Android 6.0 Marshmallow cambia por completo el modelo de permisos que veníamos utilizando para realizar aplicaciones tanto para Android como para Android Wear.

Hasta ahora las aplicaciones al instalarlas hacían una petición al usuario de permisos de todas las funciones planteadas en la aplicación, sin tener en cuenta si realmente se hacía uso de ellas. El nuevo modelo de permisos consiste en la petición al usuario en el momento que se haga uso, por ejemplo de la localización, el acceso a tus contactos ó al calendario…. Es decir, que hasta que no llegue el momento utilizar alguno de estos recursos, el usuario ya no tiene que pre–concederlos. Y además, a través del menú de preferencias se puede quitar o permitir el acceso en cualquier momento.

Continue reading

programming, rust

Cargo. Configurando nuestro proyecto.

cargo

En el anterior post escribimos nuestro primer programa en Rust, para ellos creamos un fichero .rs donde pusimos la implementación, sin embargo cuando creemos proyectos con Rust, usaremos una aproximación diferente.

Integrado en Rust tenemos una herramienta que nos ayudará a crear y configurar nuestros proyectos. Esta herramienta es cargo y es algo que si habéis desarrollado en otros lenguajes como C o C++ os va a gustar bastante.

Continue reading

dart, desarrollo movil, programming

Flutter. Nuevo framework multiplataforma

14101776

Recientemente Google nos ha sorprendido con el lanzamiento de un nuevo framework para realizar aplicaciones multiplataforma (iOS/Android) llamado Flutter.

El objetivo de este framework es poder realizar aplicaciones usando Dart, y que se ejecuten en nuestros teléfonos de manera nativa, y con un rendimiento equiparable a las aplicaciones desarrolladas con Java, Swift ó Objective-C que usan los SDKs oficiales.

Para ello, el equipo de flutter se ha alejado de otras aproximaciones que usan soluciones basadas en Javascript y HTML, creando una librería de componentes gráficos en C++ desde cero.

Continue reading

android wear, smartwatch

Los fabricantes de relojes tradicionales también apuestan por Android Wear

No nos cabe duda que las nuevas tecnologías siempre marcan tendencias y en el mundo de los relojes, la moda y la tecnología van siempre de la mano.
Este año, en la BaselWorld 2015, feria que reúne a las marcas de relojería más importantes del mundo, han sido numerosos los smartwatches presentados. Fabricantes, como Kairos, han optado por sistemas híbridos entre un reloj mecánico y un smartwatch. Otros, simplemente han incorporado un monitor de actividad al reloj manteniendo la esfera analógica y dejando de lado las notificaciones.

Fossil Q Android Wear
Fossil

Pero las marcas de relojes tradicionales no habían apostado por utilizar el sistema operativo Android Wear. Hasta ahora, los smartwatches de Android Wear provienen del mundo de la tecnología, Sony, Samsung, LG, Motorola, o recientemente Huawei. Sin embargo, lo que está claro es que algo está cambiando en el sector.

Continue reading

programming, rust

Rust playground

 

rust_playground

En el anterior post introdujimos el nuevo lenguaje de programación surgido de los labs de Mozilla. En esta nueva entrada vamos a ponernos manos a la obra y preparar nuestra maquina para empezar a jugar con Rust.

Dependiendo del sistema operativo que utilicemos tendremos diferentes alternativas para instalar Rust, la manera más sencilla es descargar el instalador para nuestro sistema operativo desde la propia web de rust.

Continue reading

apple watch, smartwatch

WatchOS 2, explorando las novedades

Después de aproximadamente 3 meses del lanzamiento del tan esperado Apple Watch, tenemos la primera actualización de su sistema operativo.
Tanto usuarios como desarrolladores lo estábamos esperando desde su anuncio en el WWDC 2015, y aunque con unos días de retraso de la fecha prevista, ya está aquí el WatchOS 2.
Pero ¿qué hay de nuevo? A continuación veremos cuáles han sido las principales novedades introducidas en esta actualización y cómo sacarles el máximo partido.

meronapps-new-looks-watchOS-2 Continue reading

programming, rust

Introducing Rust

rust-logo-256x256-blk

Cada poco tiempo un nuevo de lenguaje de programación aparece tratando de aportar nuevas características y mejorar la manera en que nos comunicamos con nuestros ordenadores.

La gran mayoría de lenguajes acaban apuntando a ámbitos de alto nivel como el desarrollo web, el scripting o entornos específicos. Sin embargo en 2010 en el departamento de investigación de Mozilla se creó un nuevo lenguaje de programación destinado a un ámbito que normalmente llama muy poco la atención, lo que se conoce como “system programming”, y que actualmente esta ampliamente dominado por C y C++.

Rust compite con grandes “players” en el ámbito de los lenguajes de programación, y es que su meta, sin llegar a explicitarlo, es poder destronar a los reyes de la programación.

Y ¿qué aporta Rust que no podamos hacer ya con los diferentes lenguajes que tenemos disponibles?

Continue reading