Category: Development

Plan X

February 24th, 2014

Nokia X

Lo que debió ser el plan B por si la estrategia Symbian+MeeGo no funcionaba, termino luego de varias iteraciones tratando de posicionar a Windows Phone como OS mainstream en esto, un móvil Nokia corriendo un fork de AOSP, con una UI mezcla de MeeGo, Asha y Windows Phone, el Nokia X, también conocido como “Normandy” es posiblemente el móvil mas filtrado de la historia y a pesar de todas estas filtraciones y de que ya ha sido presentado aun sigue habiendo cosas no muy claras en lo que respecta a la estrategia que esta tratando de llevar a cabo Nokia, Microsoft o Nokia y Microsoft, porque no sabemos nada de los entretelones del lanzamiento, el Nokia X es un proyecto anterior a que Nokia fuese vendida, si ha salido a la luz es porque tiene el beneplácito de Microsoft, lo que no sabemos es si este ha sido desde un principio un plan de Microsoft por tratar de introducir sus servicios en el mundo Android e intentar acercar desarrolladores a Windows Phone, o si al ver que la vieja Nokia iba a lanzar si o si el Nokia X, Microsoft se subió al carro aportando sus servicios para tapar lo que podría ser una gran derrota, que su principal socio use el OS de la competencia, la idea de desembarcar con sus servicios en Android es muy interesante, ya que hay millones de móviles Android chinos económicos que salen al mercado sin acceso a los servicios de Google y sin una tienda de aplicaciones confiable, los cuales ahora tienen una alternativa para instalar, también muchos desarrolladores tendrían un incentivo para portar sus apps a los servicios de Here y Microsoft porque la base de usuarios potenciales es muy grande, asi que el plan tiene algo de lógica, solo restaria que Microsoft comunicara de forma contundente sus intenciones y los pasos a seguir, lo que despejaría dudas sobre la continuidad del Nokia X ya que este sigue siendo un lanzamiento de la vieja Nokia y hay que ver si cuando la fusión con Microsoft se concrete de forma plena esta estrategia seguirá existiendo.

Pasando a la parte divertida, si ya son desarrolladores Android en Nokia Developer se explica muy bien como es el proceso para portar sus apps a Nokia X, segun Nokia el 75% de las apps tendrían que funcionar sin ningún cambio, tienen una analizador de compatibilidad para probar y despejar dudas, las apps que usan mapas, in app purchasing y notificaciones deberán ser modificadas para usar los servicios y APIs de Nokia en lugar de las de Google, en el apartado de la UX, aunque sin cambios las apps corren sin problemas hay una serie de consejos a seguir para lograr que una app Android generica se vea mas “nativa”.

Yo por lo pronto voy a jugar un poco mas seriamente con Qt for Android, quizás en un futuro no muy lejano desarrolle una versión de SubteGo para el Nokia X.

Announcements, Development , 1 response

BB10Believe

January 30th, 2013

Thorsten Heins introducing BB10

En unas horas se estará presentando BB10, el nuevo OS de BlackBerry, he tenido la suerte de estos últimos meses poder probarlo en mi BB10 Alpha Dev y desarrollar algunas apps para el mismo, RIM ha hecho un gran trabajo con BB10 ha sabido apoyarse en tecnologías Open Source y se ha preocupado en dar soporte y colaborar con muchísimos proyectos código abierto, algunos de ellos forman parte del OS y otros son soportados para que quienes desarrollan con ellos puedan fácilmente portar sus apps, BB10 viene cargado de funciones y características que seguramente serán detalladas a lo largo de los días en miles de blogs, en el apartado de desarrollo, BB10 se distingue por el soporte a múltiples tecnologías, Qt, Cascades, HTML5, Adobe Air y Java Android Runtime, así que es muy fácil para cualquiera comenzar a desarrollar para BB10, la documentación es relativamente buena, el repositorio de ejemplos en github es muy completo, la comunidad que se ha creado entorno a BB10 colabora y es muy activa tanto en los foros como en twitter y github, por ultimo quiero resaltar el trabajo del equipo de Developers Relations que viajo alrededor del mundo presentando, enseñando y facilitando las herramientas (BB10 Alpha Dev) a todo aquel developer interesado en la plataforma.

Thorsten Heins en RIM al igual que Stephen Elop en Nokia, tomo una empresa a la que todos los medios daban por condenada a muerte, con cambios en la cúpula, con una linea de productos que el publico en general tildaba de obsoleta y con un personal un poco desmoralizado al ver todos los golpes que la compañía en la que trabajan estaba recibiendo, pero ha diferencia de Nokia, Thorsten Heins continuo con la reinvención de RIM, mucha gente con muchos años en la empresa se fue, mucha sangre nueva entro y a pesar de las dudas estamos hoy a horas del lanzamiento de BB10, una plataforma totalmente nueva, creada en tiempo record y que le permite a RIM seguir en control de su destino, lo que Nokia no quiso hacer con MeeGo, RIM lo hizo con BB10, es por ello que yo creo en BB10, porque es necesario que a RIM le vaya bien, porque el mercado necesita competencia y porque si BB10 triunfa, aunque sea de forma modesta, le mostrara a mucha gente en la industria que esta carrera recién comienza y que aun hay lugar para otros jugadores, como RIM, Jolla, Firefox y Ubuntu.

Announcements, Development , , , No response

QZXing, Códigos QR y MeeGo

December 31st, 2012

ZXing es una biblioteca open source para el procesamiento de códigos de barras, la biblioteca ha sido ampliamente portada a varias plataformas, en Qt podemos usar QZXing, la cual se integra fácilmente en Symbian y Harmattan.

En este ejemplo vamos a crear un pequeño lector de codigos QR, pero QZXing es capaz de procesar muchos otros formatos de codigos de barras, como por ejemplo Data Matrix (V1.1), Aztec Code (V1.2), UPC_E, UPC_A, EAN_8, EAN_13, CODE_128, CODE_39 e ITF entre otros.

Para comenzar, hay que bajar y agregar QZXing en nuestro proyecto, para ello solo debemos crear una carpeta QZXing en la raiz del proyecto y copiar dentro de ella todos los archivos que conforman QZXing.

Luego la incluiremos en nuestro proyecto agregando la siguiente linea en el archivo .pro.

include(QZXing/QZXing.pri)

A continuación declararemos la headers de QZXing en el archivo main.cpp.

#include 
#include "qmlapplicationviewer.h"

#include 

Q_DECL_EXPORT int main(int argc, char *argv[])
{
    QZXing::registerQMLTypes();

    QScopedPointer app(createApplication(argc, argv));

    QmlApplicationViewer viewer;
    viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
    viewer.setMainQmlFile(QLatin1String("qml/qrcodereader/main.qml"));
    viewer.showExpanded();

    return app->exec();
}

Lo bueno de QZXing es que se integra fácilmente con QML, el primer paso es crear los imports a QtMultimediaKit y QZXing, luego crearemos un objeto QZXing que sera el encargado de leer la imagen (imageToDecode) que el elemento Camera tomara cuando presionemos el botón Scan.

Como verán usar e integrar QZXing en un proyecto Harmattan es muy simple, yo no lo he probado en Symbian, pero su integración y uso es similar, lo único que no me ha gustado es como ha quedado el posicionamiento del elemento Camera, primero tuve que usar posicionamiento absoluto en vez de relativo, ya que el elemento Camera no se lleva bien con los anchors, segundo, tuve que aplicar una rotación de 90° ya que el elemento Camera se inicializa en modo landscape y como no encontré ninguna forma de ponerlo en modo retrato decidí usar la rotación.

import QtQuick 1.1
import com.nokia.meego 1.0
import QtMultimediaKit 1.1
import QZXing 1.2

Page {
    id: mainPage
    orientationLock: PageOrientation.LockPortrait
    tools: commonTools

    Rectangle {
        id:header
        width:parent.width
        height: 72
        z:10
        color:"#002c78"
        Text {
            id:title
            text: "QZXing"
            anchors.left: parent.left
            anchors.leftMargin: 8
            anchors.verticalCenter: parent.verticalCenter
            color:"#fff"
            font.pixelSize: 32
            font.weight: Font.Normal
            font.family: "Nokia Pure Text"
            lineHeightMode: Text.FixedHeight
            lineHeight: font.pixelSize * 1.1
        }
    }

    QZXing {
        id: decoder
        onDecodingStarted: console.log("decoding ...")
        onTagFound: capturedText.text = tag
        onDecodingFinished: console.log("decoding finished " + (succeeded===true ? "successfully" : "unsuccessfully") )
    }

    Camera {
        id: camera
        x: -80
        y: -32
        rotation: 90
        width:640
        height: 640
        focus: visible
        captureResolution : "1024x768"
        onImageCaptured : {
            imageToDecode.source = preview
            decoder.decodeImageQML(imageToDecode);
        }
    }

    Image{
        id: imageToDecode
        height: 360
        anchors.left: parent.left
        anchors.leftMargin: 0
        anchors.right: parent.right
        anchors.rightMargin: 0
        anchors.top: header.bottom
        anchors.topMargin: 0
        visible: false
    }

    Label {
        id:capturedText
        anchors.bottom: scanButton.top
        anchors.bottomMargin: 8
        anchors.horizontalCenter: parent.horizontalCenter
        font.pixelSize: 24
        font.weight: Font.Normal
        font.family: "Nokia Pure Text"
        color:"#333"
    }

    Button {
        id:scanButton
        text: "Scan"
        anchors.bottom: parent.bottom
        anchors.bottomMargin: 16
        anchors.horizontalCenter: parent.horizontalCenter
        onClicked: {
            camera.captureImage();
        }
    }
}

Para finalizar una imagen del ejemplo funcionando.

QZXing Demo

Development , , , 2 responses

Firefox OS sigue avanzando

November 19th, 2012

Firefox OS

Ha pasado mucho tiempo desde la ultima vez que escribí acerca de Firefox OS, o B2G como era conocido anteriormente, el tiempo que ha pasado ha sido muy bien aprovechado por la Fundación Mozilla, tan solo hace falta ver el repositorio de github para darse cuenta la magnitud del progreso, pero no todo ha sido código, también la comunidad tanto de empresas como de colaboradores que giran en torno a Firefox OS esta creciendo y tomando forma.

Si realmente están interesados en Firefox OS, pero no han podido seguir su desarrollo detenidamente y quieren ponerse al día sobre el estado del proyecto les recomiendo ver los videos que se encuentran a continuación, donde podrán conocer los objetivos del proyecto, las APIs, el Marketplace y el ambiente de desarrollo y si desean comenzar a trabajar con el, pueden probar Firefox OS usando el nuevo Firefox OS Simulator el cual es una extensión .xpi para Firefox, o pueden usar la versión desktop de las nightly builds de Firefox OS.

Firefox OS – Introduction & Components

Download slides: Firefox OS introduction (PDF)

FirefoxOS – Developer Enviroment, Apps, Marketplace

FirefoxOS – WebAPIs & UI hacking

Download slides: Firefox OS – WebAPIs & UI hacking (PDF)


Design, Development, User Interface , , No response

Devaamo Hackday with Jolla and friends

September 10th, 2012

El pasado 8 de septiembre en Tampere, Finlandia, se estuvo llevando a cabo el Hackday with Jolla and friends organizado por Devaamo, las charlas se centraron en presentar a Jolla como empresa y su filosofía de trabajo como asi tambien de los pilares en los cuales se esta apoyando Jolla para crear la nueva generación de dispositivos MeeGo.

Afortunadamente las charla fueron grabadas, así que si están interesados en conocer mas acerca de Jolla, Mer Project y Nemo Mobile, estas charlar son un buen lugar para comenzar.

Introduction to Mer – Timo Härkönen

Download Slides

Jolla – Stefano Mosconi

Getting Started in Hacking Nemo Mobile and Mer – Vesa-Matti Hartikainen

Download Slides

QA in Mer and Nemo – Iekku Pylkkä

Community, Development, Events , , , Comments Off on Devaamo Hackday with Jolla and friends