Posts Tagged ‘correo’


Esta es una continuación de la serie sobre desarrollo en móviles que comencé aquí. Les recomiendo comenzar a escribir el código fuente desde la parte 1 ya que no se publica el código para descarga.

Bien, con lo desarrollado en la parte 07 ya tenemos una aplicación funcional que filtra los datos por categoría, pero no está completa pues faltaría una forma de poder elegir la categoría mediante un menú. En Ionic Framework, tenemos una librería de controles interesantes, y para nuestro caso, vamos a utilizar el side menú. Para eso tenemos que hacer la introducción de un concepto nuevo: estado abstracto.

Un estado abstracto es un estado utilizado para cuando lo que se quiere hacer es mostrar una parte del UI que es común para otros estados. Pensemos en que un estado abstracto es un marco donde podremos poner logos y cabeceras, e incluso poner cierta lógica y que tiene una zona donde otros estados podrán mostrar información.

Primero, comencemos cambiando nuestra configuración de estados en el archivo app.js:

.config(function($stateProvider, $urlRouterProvider) {
    $stateProvider
        .state('app',{
            abstract: true,
            views:{
                "home":{
                    templateUrl:"templates/menu.html",
                    controller:"menuController as menu"
                }
            }
        })
        .state('app.news', {
            url: "/",
            views: {
                "menuContent":{
                    templateUrl: "templates/news.html",
                    controller: "newsController as news"
                }
            }
        })
        .state('app.detail', {
            url: "/detail/:id",
            views: {
                "menuContent":{
                    templateUrl: "templates/detail.html",
                    controller: "detailController as detail"
                }
            },
            resolve:{
                detail: function($stateParams){
                    return $stateParams.id;
                }
            }
        });
        $urlRouterProvider.otherwise('/');
    });

Como pueden ver, hemos agregado un estado en la línea 17 donde el primer atributo es uno nuevo: abstract:true, lo que significa que éste será nuestro estado abstracto que servirá para colocar el side menu.
Una vez que hemos agregado el estado abstracto, ahora hay que indicar a los otros estados que deben tener como estado “padre” al estado “app”. Para eso, simplemente le añadimos “app.” al nombre de cada estado, con eso basta para indicar la dependencia. Fijense como ha cambiado el nombre en la línea 26 y en la línea 35.
Otro punto importante que deben notar es que hemos cambiado el valor del atributo “views” en la definición de cada estado en las líneas 29 y 38. Inicialmente, habíamos indicado que el estado sea mostrado en la vista “home” ahora le estamos diciendo que utilice la vista “menuContent”, puesto que estos estados serán mostrados dentro del estado abstracto, tendremos que indicar una vista definida dentro del estado abstracto. Veremos esto más claro al definir la vista para el menú.

En la configuración de estados hemos indicado que hay un controlador para el estado abstracto, así que agreguemos el controlador al archivo controllers.js:

angular.module('controllers',['services'])
	.controller('menuController',function(){
	})

Por ahora lo mantendremos así sin código.
Ahora agreguemos un template para el menú que hemos definido como el archivo menu.html

<ion-side-menus enable-menu-with-back-views="true">
    <ion-side-menu-content>
        <ion-nav-bar class="bar-stable">
            <ion-nav-buttons side="right">
                <button class="button button-icon icon ion-android-exit " ng-click="salir()"> Salir
                </button>
            </ion-nav-buttons>
            <ion-nav-buttons side="left">
                <button class="button button-icon button-clear ion-navicon" menu-toggle="left">
                </button>
            </ion-nav-buttons>
        </ion-nav-bar>
        <ion-nav-view name="menuContent"></ion-nav-view>
    </ion-side-menu-content>

    <ion-side-menu expose-aside-when="large" side="left">
        <ion-header-bar class="bar-stable">

<h1 class="title">Noticias</h1>

        </ion-header-bar>
        <ion-content>
<div align="center">
                <img width="50" src="img/ionic.png">Categorias
            </div>
            <ion-list>
                <ion-item nav-clear menu-close>
                    Nacional
                </ion-item>
                <ion-item nav-clear menu-close>
                    Internacional
                </ion-item>
                <ion-item nav-clear menu-close>
                    Espectáculos
                </ion-item>
                <ion-item nav-clear menu-close>
                    Opinión
                </ion-item>
            </ion-list>
        </ion-content>
    </ion-side-menu>
</ion-side-menus>

El componente sidemenu tiene dos partes: el side-menu y el side-menu-content, en nuestro ejemplo, hemos definido primero el side-menu-content donde podrán ver en la línea 13 que hemos definido la vista “menuContent” donde se mostrarán los demás estados dependientes.
En la línea 16 hemos definido el side-menu que es el menú propiamente que aparecerá a un costado. En este caso hemos definido que el estado se muestre a la izquierda “side=left” y que si la pantalla es muy ancha entonces el menú se muestre desplegado por defecto, si la pantalla es angosta, el menú se esconderá a la espera que hagamos un “swipe” o hagamos click en el botón de tres líneas que aparecerá.

Para resumir, tenemos ahora varios niveles de estado:
– Index.html define la vista “home”
– En la configuración de estados, pintamos el estado abstracto “app” definido en el archivo “menu.html” en la vista “home”
– Menu.html define la vista “menuContent”
– Todos los demás estados se hacen dependientes del estado app y serán mostrados en la vista “menuContent”.

El resultado es algo parecido a esto:
Con la pantalla ancha tipo tablet.

menuA

Con la pantalla angosta

menuB01 menuB02

Si hacemos click a una noticia podemos ver como se sigue mostrando dentro del mismo marco. También notarán que la lista de categorías está puesta manualmente y además no hacen mucho. Para no extender mucho el post, primero hacemos que el menú funcione.

Primero revisemos el estado original de nuestro servicio que controla los datos (services.js)

angular.module('services',[])
.factory('db',function($rootScope){
    var key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
   var pass = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
   var remote = 'https://'+key+':'+pass+'@server.cloudant.com/news';
   var db;
   var mostrar = function(){
        db.allDocs({startkey:'news_\uffff',endkey:'news_',descending: true,include_docs:true})
                    .then(function(result){
                    $rootScope.$broadcast('refrescar',result.rows);
                });
    };
    var mostrarCat = function(catId){
        db.query('news/topic',{key:[catId],include_docs:true,descending:true})
                    .then(function(result){
                    $rootScope.$broadcast('refrescar',result.rows);
                });
    };
    return {
        init: function(){
            if (!db) {
                db = new PouchDB('news');
            }
            mostrarCat("cat_01");
            this.replicate();
        },
        replicate: function(){
            db.replicate.from(remote,{live:true,retry:true})
                .on('paused',function(info){
                mostrarCat("cat_01");
            });
        },
        get: function(id){
            return db.get(id);
        }
    }
});

NOTA: En la línea 14 estoy incluyendo una corrección : he cambiado el parámetro “startkey” por “key”. La diferencia es que “startkey” se usa para cuando se quiere establecer un rango, por lo que “cat_01” con el parámetro descending true devolverá sólo “cat_01”, mientras que “cat_04” mostrará también “cat_03”, “cat_02” y “cat_01” lo que no buscamos. Con “key” solamente se devolverán los valores iguales al id de categoría.

Podemos ver que estamos pasando “en duro” la categoría 1 como parámetro para mostrar, por lo tanto tenemos que crear una variable miembro para almacenar este valor, cosa que al seleccionar un elemento del menú su valor se cambie para mostrar las noticias correspondientes. Por defecto mostraremos todas las noticias y tendremos que agregar un método para actualizar la variable de categoría y refrescar la vista. En el archivo services.js, empecemos agregando la variable cat:

angular.module('services',[])
.factory('db',function($rootScope){
        var key = 'bentareadyessharyinessee';
        var pass = 'OnEixgKgpt8LyEtl0S5DkAon';
        var remote = 'https://'+key+':'+pass+'@supermio.cloudant.com/news';
        var db;
        var cat;

Luego agregamos el método que llamaremos “setCat”

get: function(id){
    return db.get(id);
},
setCat: function(id){
    cat = id;
    mostrarCat(cat);
}

Ahora, tenemos que eliminar las llamadas de mostrarCat con la categoría “en duro”

return {
    init: function(){
        if (!db) {
            db = new PouchDB('news');
        }
        mostrarCat(cat);
        this.replicate();
    },
    replicate: function(){
        db.replicate.from(remote,{live:true,retry:true})
            .on('paused',function(info){
            mostrarCat(cat);
        });
    },

Finalmente, si mostrarCat recibe un valor nulo o vacio debemos mostrar todas las noticias.

var mostrarCat = function(catId){
    if (catId)        
    db.query('news/topic',{key:[catId],include_docs:true,descending:true})
                .then(function(result){$rootScope.$broadcast('refrescar',result.rows);});
    else mostrar();
};

Con eso ya arreglamos el modelo, ahora vamos al controlador en el archivo controllers.js.

angular.module('controllers',['services'])
	.controller('menuController',function($state,$scope,db){
		$scope.setCat = function(id){
			$state.go('app.news');
			db.setCat(id);
		};
	})

Aquí estamos usando una nueva entidad $state que nos va a permitir llamar a un estado.
Ahora, en la vista tenemos que llamar a la función del controlador al momento de hacer click. Como tenemos las categorías “en duro”, seguiremos indicando las claves “en duro”, así que modificamos el archivo menu.html para incluir los links que llamen a la función $scope.setCat(id):

 <ion-list>
     <ion-item nav-clear menu-close ng-click='setCat("cat_01")'>
       Nacional
     </ion-item>
     <ion-item nav-clear menu-close ng-click='setCat("cat_02")'>
       Internacional
     </ion-item>
     <ion-item nav-clear menu-close ng-click='setCat("cat_03")'>
       Espectáculos
     </ion-item>
     <ion-item nav-clear menu-close ng-click='setCat("cat_04")'>
       Opinión
     </ion-item>
</ion-list>

Lo que hemos hecho es agregar la propiedad ng-click para que se ejecute la funcion setCat(id) definida en el controlador tal como lo dijimos.

Y listo. Por ahora tendremos el siguiente comportamiento:

  • La aplicación mostrará todas las noticias al cargar
  • Al hacer click en una categoría, se mostrarán solamente las tareas relacionadas

En el siguiente post veremos como cargar las categorías directamente de la base de datos y ya no “en duro”. Ya saben si encuentran algún error, me avisan.

Advertisements

Windows 10 ha sido lanzado y con esto Microsoft promete un nuevo tipo de aplicaciones: “Universal” que asegura su ejecución en todas las plataformas Windows disponibles, desde teléfonos con Windows 10 Mobile, y Pcs. Lo que no nos está diciendo es que se ha redefinido el concepto de PC.

Las PC eran la primera opción para el trabajo tanto para casa como para oficina, con el tradicional monitor y teclado por un lado y el “CPU” por otro. Si nos hacía falta movilidad, no había problema de cambiar a una laptop. Sin embargo, surgieron los smartphones y las tablets y nos dimos cuenta que iban creciendo en potencia y capacidades al punto que muchas personas pueden quedarse con una tablet como computador principal.

Ahora bien, desde el punto de vista funcional, tener una tablet en lugar de una laptop no es nada del otro mundo. Todo está en función de las necesidades de cada usuario.

Para los desarrolladores el problema es desde donde comenzar.

Si vamos por el ala Apple, comenzamos haciendo programas para iPhone/iPod y luego las hacíamos escalar para soportar tablets iPad, cambiando principalmente las pantallas y las resoluciones soportadas. Si queríamos que nuestra app funcione también en Macs ya teníamos que cambiar el código e incluso las gráficas pues el modelo de programación para Mac OSX es diferente al que tiene iOS.

Para el caso de Microsoft, la separación también era clara, si querías móviles te ibas por un rumbo y si querías PC hacías el desarrollo de siempre. El problema es que siempre que hablamos que Windows Phone, o Windows 10 Mobile hasta ahora siempre hemos hablado de teléfonos que nunca llegaron a ser tablets. Cierto que salió Windows RT donde salieron unas tablets pero esa iniciativa nunca tuvo tanto peso comercial. Lo que si parece que viene con fuerza son las tablets pero con Windows 8.1/Windows 10, es decir, el mismo sistema operativo que tenemos en la PC o en la laptop a un precio incluso menor a las tablets disponibles con sistemas operativos móviles consolidados como iOS o Android.

Con el lanzamiento de Windows 10 se viene otra ola que es la “Aplicación Universal” donde se promete que una misma aplicación podrá ser ejecutada tanto en Windows 10 como en Windows 10 mobile. Hasta el momento no se incluía el soporte para teléfonos con Windows Phone 8/8.1 lo que significa que aún no podrá ser tan universal, pero la presencia en el mercado estas tablets con Windows 8/10 abren la posibilidad de una nueva generación de aplicaciones “super inteligentes” ya que no estamos hablando de apps reducidas para entrar en un equipo móvil, sino la misma app que usamos al sentarnos en la oficina. Si podemos tener la misma app empresarial movilizada con una tablet que cuesta 100 usd ¿Para qué molestarnos en hacer una aplicación en un sistema operativo móvil?

En la última versión de Visual Studio (2015), se incluye también el soporte de Apache Cordova, lo que “oficializa” el soporte de Microsoft de tecnologías abiertas para el desarrollo de aplicaciones multiplataforma. Con Cordova, es posible que nuestra app pueda ejecutarse en iOS, Android, Windows y en otros sistemas operativos móviles en forma limitada. Si bien el funcionamiento tiene aún algunos problemitas, la posibilidad de hacer un sólo código justifica la atención.

De hecho, ya en un post anterior, les he descrito mi aplicación Supercomics basada en Cordova que se ejecuta tanto en Windows Phone, iOS y Android. Aún estoy salvando unos problemitas para publicar la versión para Windows, y para ser específico debo decir que en Windows soporto Windows Phone 8 y 8.1, Windows Phone 10, Windows 8/8.1 y Windows 10. Notarán que puedo ir más allá de lo que ofrece una “Aplicación Universal”.

Por supuesto que una “Universal App” puede darnos opción a integrar APIS empresariales  y más funciones en la parte de desarrollo que aún estoy descubriendo. Hasta el momento he visto que las aplicaciones mientras más desconectadas estén, mejor experiencia de uso brindan, así que empezaremos a comparar las ventajas para sugerir la mejor plataforma para nuestras aplicaciones.

Veamos el siguiente cuadro:movilesCon esto vemos un poco más claramente que significa “Aplicación Universal”.

No es mala idea el Universal App, de hecho, es una gran cosa para el mundo empresarial donde las políticas internas normalmente, favorecen el uso de una misma plataforma para sus aplicaciones internas donde ya Microsoft reina. El tema está en el punto débil de Windows en este momento: la falta de aplicaciones móviles, y la inclusión de Apache Cordova significa que Microsoft ha aceptado que ir por la alternativa de HTML5 es lo más eficiente en este momento.

Como siempre, la pregunta que se hace un desarrollador es sobre la velocidad y las funciones que soportará cada opción pues es obvio que una herramienta “nativa” nos ofrecerá un código más rápido y nos permitirá acceso a los recursos de hardware en el terminal. Siempre al inicio de todo desarrollo se tiene que hacer una evaluación de los requerimientos para nuestra aplicación. Si vamos a desarrollar un juego con alto nivel de procesamiento, la opción nativa se impone, pero si queremos una app tipo red social o capturadora de datos con soporte a múltiples dispositivos entonces podremos “sacrificar” la velocidad por la facilidad de desarrollo pues tenemos que considerar que hay otros aspectos como la velocidad de la red o la cantidad de datos, o la integración a otros sistemas que impactan mas fuertemente en el rendimiento de nuestra aplicación.

Ninguna alternativa es completamente a prueba de balas, todo depende de lo que necesitemos. Es una gran opción usar la misma aplicación en todos nuestros dispositivos, pero la movilidad no está en el dispositivo, está en la forma en la que diseñemos la aplicación. Es necesario que se incluyan paradigmas como sincronización, bases de datos locales, autenticación, encriptación en la que se dejemos de lado de una vez por todas el supuesto que todos los recursos estan disponibles todo el tiempo.


Desde que probé la MacBook Air de 13 pulgadas, descubrí que estuve muy equivocado en el tema de laptops pues luego de trabajar duro por una laptop gigante de 17 pulgadas o más, me dí cuenta que lo que más vale es que puedas trabajar por un largo periodo de tiempo, y sin malograrte la espalda en el camino.

El día de hoy comprar una laptop basada en Windows significa que tienes que elegir una muy ligera que pueda convertirse en tablet, de lo contrario, estás comprando algo que no te va a durar. Y no hablo solamente de moda, SSD y Connected Standby son dos características que toda laptop basada en Windows debe tener y eso viene solamente en las laptops convertibles. La única excepción es si eres un professional gamer o estas en arquitectura o ing civil y debes hacer trabajo en la obra, en estos casos debes comprarte una Alienware o una mobile workstation de HP, respectivamente, pero son casos especiales.

El perfil de trabajadores móviles es de aquellos que básicamente utilizan office, email y web, con alguna que otra app por ahi. Eventualmente, un programa empresarial. Bajo este perfil, no hay mejor equipo de una Macbook Air. En el mundo Windows pueden haber opciones, de hecho, tengo una Sony Vaio Duo que me sorprendió gratamente con unas 6 horas de trabajo continuo y con energía para seguí quizá una hora mas, pero ya no hay Sony, y las demás marcas no las he probado.

Con el anuncio de Apple el día de hoy, definitivamente borran las demás alternativas posibles con un modelo mas ligero, mas delgado y por sobre todo, con una pantalla Retina. Simplemente injusto para los demás. Para nosotros, el punto es el ideal.

Resumiré lo que obtendrás con una MacBook Air :

– Hasta 10 horas de batería (Digamos que sean 8 horas efectivas, yo he llegado hasta 6 horas full con la antigua MBA)

– Más memoria (Con 4 gb se portaba muy bien, pero 8 es mucho mejor, de verás se siente la diferencia)

– Pantalla Retina (No solamente para ver una película, sino también para aumentar el tamaño del escritorio, genial)

– Trackpad y teclado (Ambos ya eran muy buenos, pero el teclado ha sido mejorado para que sea mas silencioso y el trackpad tiene respuesta táctil que no se bien que es pero si se porta al menos igual que el actual, bienvenido)

Lo mejor de todo es que el precio no es tan alto aunque la realidad es que tienes que añadirle algunos accesorios básicos:

– Hub USB (El equipo viene con USB tipo C así que si quieres usar tu mouse actual, esto es obligatorio)

– Salida de video (si quieres hacer tu presentación no hay ni HDMI ni VGA así que tendrás que comprar uno)

– Finalmente, un estuche para que ningún rayón malogre su caja de aluminio (Thule recomendado)

Así que ya sabes, si trabajas la mayor parte del día en la calle, junta tu billete para que este 20 de abril te compres tu MacBook Air 2015.

Sobre Apple Watch, si quieres un reloj que puede quedarse sin batería en algún momento, cómpratelo. 18 horas de duración no es suficiente para utilizarlo para reemplazar un aparato que en su modelo más barato tiene una duración de 3 años (un Casio). En mi caso, tengo una banda Xiaomi que me avisa todo lo que pasa en mi celular por 20 dólares cuya batería dura 1 mes (comprobado) además de registrar información básica del ejercicio que hago.


Tenía mucha expectativa en el rendimiento del Nokia Lumia 1020, principalmente porque su cámara digital le hace un buen segundo equipo si es que eres aficionado a la fotografía y sales con tu DSLR. Revisemos como me fue usando el equipo sólo para trabajar.

Usabilidad: Debo comenzar diciendo que una cosa es el Lumia 1020 con Windows Phone 8 y otra muy diferente con Windows Phone 8.1. La inclusión del menú de controles y notificaciones es un salto de 3 escalones y mucho mas con la inclusión de carpetas. Permite ver y acceder a todo desde una sola pantalla. Realmente muy práctico. Igual, tenemos que tomar un tiempo para acostumbrarnos a la forma de usar las cosas en Windows Phone.

Encontrar los programas es muy fácil creando carpetas pues de la forma tradicional tendríamos que navegar por el menú que las ordena de forma alfabética que hasta ahora no me hace ninguna gracia. Tampoco me hace mucha gracia tener que pasar la lista de programas de arriba hacia abajo, pero es algo que ya no tengo que hacer mas. Las carpetas en el Menú inicio son una gran cosa que hace que WP sea el más práctico de los OS para ubicar programas. Y si además, todos los programas tuvieran iconos transparentes sería aún mas genial pues permitiría poner una imagen de fondo.

Las notificaciones, también ya tienen un sitio como en Android, y donde también podemos apagar el wifi, los datos o el bluetooth. Realmente muy útil y algo que ya todos los móviles tienen. Es también muy bueno que solamente exista un indicador genérico para cuando tenemos notificaciones, permitiendo tener una barra superior muy limpia. La que se llena de cosas y también muy bien es la pantalla de bloqueo donde se ponen todas las alertas que interesan como son notificaciones de mensajes de correo o de texto sin leer, así como eventos pendientes de calendario y demás. Esto juntamente con el hecho de que podemos agrupar los iconos de las cuentas de correo en la pantalla de inicio, hace que sea muy fácil leer los correos que nos llegan, así como cualquier otro evento.

El cliente de correo es muy bueno, al punto que no hay otro, ni siquiera en el portal de apps. Incluso es posible que podamos registrar las cuentas de proveedores de correo y se integren también las listas de notas, calendarios, quizá la presentación no sea tan elegante como en iOS, pero hace bien el trabajo. Luego, podemos dedicar un icono a cada cuenta de correo (lo cual prefiero), o unirlas todas en una sola bandeja , muy práctico. Para la lectura de los mensajes, Windows Phone siempre propuso una presentación minimalista donde sólo se utilicen dos colores (blanco y negro), de esta manera, podremos leer con letras negras sobre fondo blanco o letras blancas sobre fondo negro. Además de esto, Nokia ha incluido un mecanismo que permite que la pantalla se lea bien incluso con luz solar directa, es de lo más efectiva.

La gran decepción aquí es el rendimiento de lo que llamamos Push Email, mientras que para cuentas tipo Gmail o Hotmail funciona de manera aceptable, para Yahoo es verdaderamente lento, para darles una idea, puede ser que no se enteren que tienen correos de Yahoo hasta luego de 5 minutos o mas, lo cual es inaceptable. Por lo demás, todo funcionó como debía.

Como era de esperarse Office Mobile es muy bueno, así como la integración con One drive.

El navegador me sorprendió gratamente por su modo de lectura donde la página es mostrada en pantalla completa con un tipo de letra especial y con un layout también optimizado donde realmente se puede leer. Hasta ahora me pregunto porqué no hacen este modo de visualización el modo por defecto.

El aspecto mas importante, el teclado viene mejorado en WP 8.1 al integrar un “like” Swype con una omisión crítica. En Android les recomendé SwiftKey que tiene también un método rápido tipo Swype que tiene una línea donde se muestran las sugerencias de palabras, de tal forma que podríamos elegir la palabra sin terminar de hacer el movimiento de ingresar todas las letras. En WP, tendremos que esperar hasta terminar de hacer el movimiento completo para poder ver las sugerencias, además éstas serán solamente del idioma principal del equipo, mal.

Batería: En este punto estoy muy decepcionado. Recuerdo que lo primero que encontré cuando revisé Windows Phone 7 fue que se restringía el número de aplicaciones que corren en Background justamente para ahorrar batería y aumentar performance. En Windows Phone 8.1, el control de ahorro de energía es realmente quien hace esta optimización en lugar de ser una restricción propia del sistema operativo, teniendo en cuenta que el ahorro de energía es una aplicación más. Es así que si ustedes hacen como yo, instalar todas sus apps favoritas como desesperados encontrarán muy pronto que su batería dura casi nada. Felizmente encontré la función de restringir el uso en segundo plano donde dejé solamente un par de aplicaciones. Felizmente compré el accesorio para tomar fotos que además viene con una batería de respaldo, así que me quedo mas o menos cubierto con esta limitación.

Puntos adicionales para resaltar: en primer lugar, es un valor muy alto que todos los Lumia tengan el navegador GPS Here+ instalado gratuitamente  ya que permite navegar sin conexión a Internet a nivel mundial, algo que cuesta algo de dinero en otros teléfonos. Segundo, la cámara es muy buena tanto en software como en hardware, quizá algo lenta para levantar la primera vez, pero de ahí en adelante tienen una gran cámara de fotos. Cortana es una gran promesa para competir con Google Now pero lamentablemente sólo trabaja en Inglés y sus funciones son interesantes pero limitadas.

En general, Lumia 1020 se nota un teléfono fácil de usar pero que requiere cierto tiempo para encontrar todas las funciones necesarias. No es tan rápido como usar un Android o un iPhone pero para las funciones de trabajo como son teléfono y correo esto no se nota. El correo y la sincronización es muy buena, con la excepción del correo de Yahoo que demora. Y sobre el consumo de batería, tenga de cuidado de restringir el uso de energía en segundo plano.

 

Conclusión: Puedo salir a la calle con el Windows Phone Nokia Lumia 1020 confiadamente siempre y cuando haya quitado de mi teléfono cualquier aplicación que no sea de trabajo. Usar la cámara tendría que ser en ocasiones muy raras y necesariamente con una batería adicional.


Hace unos dias un amigo me pregunto como podia hacer para que un equipo Windows Mobile haga lo mismo que un Blackberry. Simple pregunta que debemos desarrollar por partes.

Primero, “hacer lo mismo que Blackberry” se refiere por lo general a las funciones de correo. Con BB es muy facil registrar una cuenta de correo y empezar a recibirlos, pero no lo de correo se alimenta el verdadero usuario movil. Para estos, la verdadera magia esta en contar con E-mail, Contactos, Calendarios , algo que hace Blackberry solamente con el servicio tipo BES. Los usuarios que no son verdaderos trabajadores moviles y se animan a comprar Blackberry bajo una oferta consumer, realmente estan comprando un equipo que es solamente correo, es decir partido para un trabajo de verdad.

Para definir bien lo que “hace un Blackberry” vamos a hacer una separacion. Usuarios corporativos: Tienen ademas de su correo electronico, toda la informacion que suelen manejar en su Bandeja (Calendarios, Contactos, Tareas, Notas) usando el servicio de correo de la empresa. Usuarios masivos: Quieren correo y la capacidad de navegar en la Web usando el servidor de correo publico gratuito. En ambos casos, la configuracion debe ser muy simple.

Ahora veamos como se porta Windows Mobile. Por diseno se ofrecen dos alternativas. Para usuarios corporativos, se ofrece full sincronizacion con Activesync trabajando exclusivamente con Microsoft Exchange. Para usuarios masivos, se ofrece Windows Live Services para cuentas Hotmail, MSN y live. En ambos casos, se sincroniza todo (Email, Calendarios, Contactos, etc). Es decir, tengo todos los servicios para ambos tipos de usuarios, la diferencia esta en el tio de servidor. El problema aparece cuando queremos usar otro tipo de servidor, por ejemplo, en la empresa queremos usar Lotus Notes y como usuario masivo quiero usar por ejemplo, Yahoo! En ambos casos, la funcionalidad se reduce a correo.

En otras palabras Microsoft defiende su ecosistema ofreciendo un alto nivel de experiencia de usuario en sus moviles cuando estas dentro y un siguiente nivel muy abajo si estas fuera.

Por otro lado, si se ofrece dentro del ecosistema tiene funciones muy superiores a Blackberry sin dudas. Ademas considerando que su servicio de correo es el mayoritario en ambos mundos corporativo y masivo, es facil armar una propuesta de valor en estos dos mercados enfocandose a soluciones dentro del sistema Microsoft.

Esclavizarse? no, simplemente aprovechando las ventajas dentro de un mundo de opciones.

Como hacer equivalentes ambas propuestas? En el mercado corporativo, BB y WM hacen lo mismo pues Exchange ya es mayoritario. En el mercado masivo, BB ofrece solo correo y navegacion, WM ofrece correo, contactos,calendarios, mensajeria instantanea y navegacion dentro de Hotmail, MSN y Live, y funcionalidad limitada para otras cuentas.

Finalmente, el detalle que faltaba no tiene nada que ver con el correo. La duracion de la bateria. BB tiene un mejor manejo de energia que WM. Asi que para cualquier caso, si WM viene con bateria adicional estaria menos descontento con su poca duracion.





%d bloggers like this: