‏إظهار الرسائل ذات التسميات Windows. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات Windows. إظهار كافة الرسائل

الثلاثاء، 3 نوفمبر 2015

4G Smartphones supporting wireless charging between 13 to 20 megapixel camera resolution


These following smartphones meet the critera's of being a 4G, with wireless charging, with a camera resolution between 13 to 20 megapixels .

LG G4
Android 5.1 Lollipop
Launched July 2015

 Samsung Galaxy Note 5
Android 5.1 Lollipop
Launched :August 2015

Samsung Galaxy S6
Android 5.0 Lollipop
launched :April 2015

 Samsung Galaxy S6 Edge
Android 5.0 Lollipop
Launched :April 2015

الاثنين، 2 نوفمبر 2015

10 best free photo editing software for windows and Mac




Photo and Image Editing Tools

Pixlr – Fully functional alternative to Adobe Photoshop. (Web, Windows, Mac)
GIMP – Another Photoshop alternative. (Linux, Mac)
Paint.net – GIMP for Windows (Windows)
Seashore – Basic image editing with layers, textures, gradients and more. (Mac)

Phixr :Lots of filters and effects, easy to use, connects to Facebook, Twitter, WordPress.com
InkScape – Professional vector graphics editor, replaces Adobe Illustrator (Windows, Mac, Linux)
Pinta – Another great Illustrator alternative. (Windows, Mac, Linux)
Canva –makes design easy templates for infographics, banners, newsletters.
Fotor : free online designer and editing tool for amateur and pros
Pixlr-o-Matic –Photo  app with filters and lots of effects  (Android, iOS Mac, Chrome)
Photoscape – Fun and easy photo editing software. (Windows, Mac)

الأحد، 11 أكتوبر 2015

chart of the day :windows 10 adoption at an all time high

How is windows 10 doing ? post its recent release. Pretty well if the latest reports from NetMarketShare is concerned. Windows 10, released on July 29th, has seen faster adoption post-launch than its predecessors including the immensely successful Windows 7. In September, Windows 10 was installed on 6.6 percent of all PCs, which put it ahead of the most recent version of Apple's OS X at that time (Yosemite).

Infographic: Windows 10 Sees Faster Adoption Than Its Predecessors | Statista
source :Statista

الخميس، 30 يوليو 2015

How the launch of Windows 10 affects your business


Microsoft’s highly anticipated Windows 10 was released yesterday. The new multi-platform operating system is intended to bridge the gap between Microsoft devices and merges the eccentric Windows 8, with more traditional components of Windows that users are familiar with.

Whilst achieving these things, the intention is to advance Microsoft’s operating system, giving businesses a platform for the long-term future of computing.

Also, for the first year, it is free to anyone with Windows 7 or 8 currently installed. Find out how to upgrade here.

How the new features can help your business

Being multi-platform, Windows 10 will increase interactivity across the workplace and when working from home. Transitioning between a PC and tablet has never been easier. The majority of Microsoft Office programs are now Universal apps, which means they are available across all Windows 10 platforms.

Operating features like the new start menu, Action center and Quick Access area will increase productivity, making day-to-day usage quicker and easier. Also, Microsoft’s new, faster browser Microsoft Edge, allows you to annotate, save and share web pages easily between colleagues.

Your business’s data will be more protected with the new Windows Passport. This removes the need to use passwords, which can be hacked, instead using fingerprint readers and eventually face and iris readers to gain access to data. This is vital for protecting sensitive data.



The range of platforms on which Windows 10 can operate



What else is new?

  • Security enhancements, including Windows Passport
  • Device Guard - ensures a device only runs apps authorised by your business
  • Device management features – allows you to lock down a device to for a function, for example a portable device for drivers to check their route, to manage multiple users who have Azure AD accounts and to manage VPN configuration
  • Enterprise Data Protection - preventing accidental data disclosure through apps and services outside of your control like e-mail, social media and the cloud
  • Provisioning packages – come with simple instructions so it is quick and easy to configure multiple devices in your business and without mobile device management infrastructure
  • Task view - makes switching between apps and windows easier giving you multiple desktops, allowing you to separate different areas of your work


How you can master Windows 10 first

Because Windows 10 is such a large scale release, expect it to affect many certifications. As referred to in our previous blog post, at WPC 2015, Microsoft unveiled six new MOCs relevant to Windows 10. As well as these, we expect Microsoft to announce a new curriculum for Microsoft MCSA: Windows 10 towards the end of 2015.


Related Articles:




 About the Author:        
Sarah writes for Firebrand Training on a number of IT related topics. This includes exams, training, certification trends, project management, certification, careers advice and the industry itself. Sarah has 11 years of experience in the IT industry. 

الثلاثاء، 21 يوليو 2015

income level in the United States vs education : chart of the day



"he chart above shows the payoff between education and salary level"








Source: College Board
Date Verified: 6.18.2013

What is the correlation between education and your ability to earn money. How many college dropouts across the world have managed to  " make it big in life" with a billion dollar enterprise in their names.

The chart above shows the payoff between education and professional career, it compares the salary/wages/earnings to your education background. While the chart clearly shows they are directly propotional, with increasing education, you tend to earn more.

However not all agree. PayPal Co-Founder Peter Thiel, claim that college just isn't worth it in the age of startups. He's giving 20 bright young people $100,000 each to start a company instead. .

Hear are a few people who has bucked the trend and have achieved fame despite being college dropouts. apart from Steve Jobs, Zuckerberg and Bill Gates 

  1. Matt Mullenweg started WordPress, which now powers 16% of the web. 
  2. Arash Ferdowsi ,co-founder of DropBox, estimated $4 billion,  dropped out of MIT. 
  3. Aron Levie started Box, which has an estimated valuation of $3 billion. 
  4. David Karp founder of Tumblr,  never even graduated high school
  5. At age 19, Pete Cashmore , launched the tech site Mashable and never attended college  

have your post or banner displayed here for $10 a day .Click here to know more

الأربعاء، 13 مايو 2015

2009 to 2015 :change in the mobile industry competitive ecosystem


" the change in the mobile industry " 2009 to 2015"

 Just 6 years have shaken up the mobile devices competitive landscape

The  above chart  compares and depicts the changes in the mobile industry since 2009 onwards In just over 5 years  the mobile landscape has undergone  a massive shift across its competitive ecosystem . RIM and its brand Blackberry have almost but disspeared. The mobile OS Symbian is history. Microsoft has started making phones  after picking up Nokia which was not a long time ago " the market leader in many counties ..Android today has over 60%  mobile OS share as compared to just 4% share back in 2009 

Related Posts on start ups and Venture Funding



Highest Ownership of tech devices 



السبت، 2 مايو 2015

microsoft windows 10 improvements set to be gamechanger


" how microsoft that destroy competition after windows 10 release

Infographic via Perception System
.

Windows 10 would be all about  touch, speech, mouse and keyboard rolled into one

Microsoft  is set to  make the  Desktop OS market  by storm with its impending  windows 10   upgrade Windows 10  made everyone stand up and notice  when it made public of how engaging and all-encompassing Windows 10  will be. Giving everyone a taste of the power this latest Microsoft OS
 via build 10074. This time, this Windows iteration may likely succeed where Windows 8 and 8.1 failed miserably -by integrating  every device from PC's to tablets to handheld devices into one dependable OS.

In a break from the past when Windows platform  is no longer built in a walled garden  but set to  blow the windows  environment  open .Windows 10 will allow apps written specifically for the iOS and Android platforms to  be ported directly into Windows 10 environment

And the best part is that once released officially, Windows 10 will be a free upgrade for everyone - available for older versions and even for pirated ones. With this development, of windows 10,Microsoft could  be a  serious challenge  and in a one clean  sweep come very close to its biggest rivals, Apple and Google, cortana OS  is expected to be l be available this summer in 190 countries and 111 languages


السبت، 29 نوفمبر 2014

Desarrollo Crossplatform usando Tecnologías Microsoft

Hola a todos,

Esta semana fui invitada a dar una conferencia virtual en el Congreso Internacional EAPIIYS USP de Perú, comparto con ustedes el video de la misma y espero les resulte de utilidad.

الأربعاء، 1 أكتوبر 2014

Download Windows 10 tomorrow and shape the future of Microsoft's new OS

By 

Microsoft yesterday announced the launch of Windows 10. You can be the first to download the technical preview tomorrow by signing up to the Windows Insider Program. As an IT pro or PC expert, you will gain exclusive access to the beta and help craft what Windows 10 will become. 

For those eager to get hands-on with the technical previews for Windows Server and associated management tools, i'm afraid you're going to have to wait a little longer. These will be launched 'soon after', which roughly translates to 6-8 weeks.

So let's take a closer look at the new launch....


What to expect in Windows 10


Although it's early days in the development of the new OS, Microsoft's statement of intent is clear. Skipping Windows 9 and going straight to Windows 10 suggests that the new OS is less of an incremental improvement,  but an aspirational phase shift to a new generation of Windows Operating systems.

In fact, that's almost word for word what Terry Myerson, executive vice president of the Operating Systems group at Microsoft said:

Windows 10 represents the first step of a whole new generation of Windows, unlocking new experiences to give customers new ways to work, play and connect. This will be our most comprehensive operating system and the best release Microsoft has ever done for our business customers,” 

In summary: Expect big things from Windows 10. With a focus on the Enterprise.


New Features


Although specific details are yet unclear, we've been given an advanced screening of what to expect in tomorrow's technical preview:

Start menu: Back by popular demand, the Start returns bringing with it customization features allowing you to add your favorite Live Tiles and Apps.




Everything runs in a window: Just like when opening standard desktop applications, the Windows Store Apps will now open in in the same format. Windows can be resized and moved around with the standard maximize, minimize and close buttons also included.




Snap enhancements: It is now possible to open 4 apps on the same screen with a new quadrant layout. This allows rapid transition between applications improving the ability to mutli-task. Should the 'quadrant layout' not contain 4 apps, Windows will suggest other apps with smart suggestions to fill additional screen space.




Multiple desktops: It's now possible to create different desktops for projects, purposes and jobs roles. A desktop for every occasion so to speak. These can be switched between with consummate ease.




New task view button: Transition rapidly between open files and desktops using the new task-view button found in the taskbar.



Find files faster: File Explorer has been upgraded to include a display of recent files and frequently visited folders.

Check out this video from Joe Belfiore,Vice President for Windows, where he introduces you to all the aforementioned features:



What the experts are saying


Whenever a new system is launched, everyone has an opinion. Having perused my way through every Windows 10 launch article imaginable, here's the buzz.

The Register - Iain Thomson
Microsoft unwraps WINDOWS 10. Evidently, Seven ate Nine

"It's very early days yet, and what we've seen so far is only a small facet of what's coming for Windows 10 and its apparent focus on the enterprise sector. More consumer features will be announced in the coming months but, based on the sneak peek, this new OS may get Microsoft back in the good books of enterprise buyers."

The Next Web - Roberto Baldwin
Hands on with the Windows 10 preview build

"Microsoft made certain the audience understood that we were seeing an early build of its next operating system. Early build or not, for power users that demand multi-tasking, the oddly named Windows 10 looks ready to help you get everything done."

BBC Technology - Richard Taylor
Microsoft unveils Windows 10 system with Start Menu

"The user interface feels familiar yet modern. The "dual mode" - which aimed to satisfy tablet and PC users, but alienated both - has been replaced with a dynamically-adjusting interface and behaviour, determined by whether you are using a keyboard/mouse, or touch."

"Ultimately Windows 10 success will depend on its execution. But at least under the new leadership, Microsoft is showing it is listening. It needs to if it is to stay relevant and stop the march of Android and Apple."

Techcrunch - Alex Wilhelm and Frederic Lardinois
Microsoft Announces Windows 10

"One thing Microsoft clearly learned from the experience with Windows 8 is that if it wants to build a single operating system and user interface for every device, it can’t just optimize for edge cases."

Techworld - Juan Carlos Perez
With Windows 10, a contrite Microsoft will try to atone for Windows 8 mistakes

"Humbled by businesses' dislike for Windows 8, Microsoft has issued a mea culpa, offered the world a first peek at Windows 10 and pledged that the new OS will delight IT executives. But the true test of whether Microsoft can move past its Windows 8 mistakes will come when Windows 10 is commercially released at some point next summer."

Make your own decision


Come this time tomorrow, you could already be getting to grips with Windows 10 and making your own opinion on Windows 10. As well as perhaps making some credible suggestions on how Microsoft can make it better.

I for one will be first to put my name down to see what's in store. Exciting times lie ahead.

About the Author

As part of Firebrand's global marketing team, Edward actively works to serve the IT community with news, reviews and technical how to guides. Working in the industry for almost 3 years, Edward has a wide variety of experience with Microsoft Technologies including SharePoint, Windows Server and Exchange Server. Edward is an active member of the IT community contributing to a variety of tech publications including Microsoft TechNet, Channel Pro and PC Advisor.

Microsoft Unveils Windows 10 — The Next Version Of Windows Operating system





While the whole world was waiting for the next generation of Windows operating system, i.e. Windows 9, but skipping right over 9, Microsoft has announced the next version of its Windows is Windows 10, disclosing its first details on Tuesday at an event in San Francisco.



The latest version of Microsoft’s flagship operating system, which will be available for everyone next year, brings back

الأربعاء، 13 أغسطس 2014

Apple Countries vs Android Countries : Kantar Media Report on the Latest Smartphone Face Off


Apple Nations vs Android Nations :  Kantar Media faceoff

Windows continue to falter and Apple continues to grow in fits and starts , as the smartphone sales data from Kantar Worldpanel ComTech, for the three months to March 2014.
Apple performing strongly during this quarter mainly due to the powerful launch of iPhone 5 specially in Japan and Australia
Across Europe, Android remains the top OS with 70.7% share, while Apple holds second position at 19.2%. 
Windows, at third, accounts for 8.1% of smartphone sales globally
By Brands here is how Apple's IOS, Google's Android and Microsoft's Windows stand 


APPLE 

  • Apple saw its smartphone market share rise in five out of nine countries surveyed “primarily due to the strong performance of the iPhone 5s.
  • The iPhone did, however, lose market share in the USA, China, Germany and Italy. 
  • The nations where Apple showed more good  growth was Australia/ Europe and Japan.
WINDOWS

  • Windows had a tough start to the year as a result of its entry-level Nokia models facing fierce competition from low-end Motorola, LG and Samsung Android smartphones. 
  • Windows lost marketshare  across China and Unites States , grew the highest in Australia


ANDROID

  • Android Grew above 5% points across Germany, Italy and US while it decreased in Spain, Japan, Great Britain


الخميس، 26 يونيو 2014

Microsoft CEO " Nadella " Launched ' Skype Translator



\ 
As Microsofts CEO   ends his honeymoon Nadella is slowly coming out  of the shadown of  steve ballmer .. .Microsft has just unveiled some new products, as he  unveils what he refers to as " the new microsofts " web3.0 initiatives..This infographic provides an insights in the " new product launches by Microft under Nadella

Nadella took over Microsoft ' that is incresingly been sen by its competitors and industry analysts as a sleeping giant that  is seem as a technoloy 1.0 company who is still struggling to create its own relevance   in a world dominated by the new giants of Silicon Valley. Howeve it seems  the sleeping giant has awoken, first with Office on the iPad, then with new versions of Windows, then with CortanaSurface 3, and on and on, five months of announcement after announcement.



One of the recent ' initiatives launched   by Nadella  is with Microsoft's new real-time translator for Skype conversations.. With Skype  user base of more  than 300 million users clocking in around one trillion conversation minutes every month is  huge "


Skype Translator, as it is currently called, allows speakers in different languages to hear the other’s words spoken in their own language, according to a demo introduced by chief executive officer Satya Nadella at the Code Conference technology gathering



Among  one persistent problem that has always prevented people from all over the world from truly connecting with one another is the language barrier. With Skype Translator, Microsoft is traversing into previously uncharted territories and could be bridging the gap other companies have tried to close but failed .Whether Microsoft will be able to " plug the gap in the market. only time will tell



الأربعاء، 11 يونيو 2014

Android users account for 56% mobile ad impressions in Millennial Media Platform

According to the latest  Mobile Media  Advertising Mix, out of 73% smartphone users where M Media reached , 56% mobile ad impressions were across Android users, and 37% were from iOS consumers. Impressions  across non phone connected device (( tablets, consoles,)  was  23% ( 3% rise  increase as compared to last year

Ad impressions across iOS OS increased by 3% ( 34% to 37% ) during last FY, while Android  users saw  4% increase in impressions served across their mobile device (  from 52% to 56%)

Android users accounted for 56% Impressions across millennial media
MOBILE AD IMPRESSIONS  ACROSS DEVICES


MOBILE AD IMPRESSIONS  ACROSS MOBILE OS :

السبت، 5 أبريل 2014

#GWAB: Azure Mobile Services

Hace unos días la comunidad Avanet de Colombia y Ecuador realizó el Global Windows Azure Bootcamp, en el cual estuve compartiendo mis experiencias participando en dos proyectos Trivium Cup, el cual les mencioné hace unos días en un post donde les enseñaba la arquitectura que habiamos construido para que fuera cross platform, y como aplicamos buenas prácticas de programación en su construcción.

Además tambien estuve contandoles sobre Scores Gurú, un nuevo proyecto en el que participo en una pequeña parte, y del cual hace parte tambien Walter Novoa, evangelist de Microsoft. La verdad es que lo interesante de la charla fue los demos y código que les mostré a los asistentes, pero alguien me pidió que publicara la presentación y pues aquí va.

الأربعاء، 2 أبريل 2014

Modos de desarrollar para Windows y Windows Phone

Hola

Con el anuncio de las novedades en Windows y Windows Phone una avalancha de contenido se viene en la red, sin embargo, seas nuevo o veterano en Windows Phone, antes de empezar te invito a hacer una parada y recapitular sobre algo que es necesario entender en especial cuando en nuestras apps queremos estar en la mayor cantidad de dispositivos.

Vamos a enumerar los diferentes modelos de programación posibles según las versiones de sistemas operativos disponibles.

Windows Phone 7, Windows Phone 7.5, Windows Phone 7.8

Los dispositivos existentes con estas versiones cada vez se han quedado más atrás, la razón principal es que debido a capacidades de hardware, no pudieron continuar la línea de evolución de Windows Phone, sin embargo, una gran cantidad de dispositivos de este tipo están en el mercado y son usados diariamente por muchas personas.

Caí en cuenta de que este escenario seguía importando con mi ultima aplicación, al pedir gente que nos apoyara como Beta Testers, nos encontramos con que al menos el 40% de ellos no pudieron probar nuestra aplicación por que funcionaba solo en equipos Windows Phone 8.

Mi aplicación probablemente no es tan critica como para que intentemos llevarla a cubrir este porcentaje, pero ¿qué tal si lo fuera?

Hace un tiempo hice una aplicación cuya decisión arquitectónica era justamente cubrir a todos los usuarios posibles y la creamos en Windows Phone 7.5 y hoy continúa oficialmente en Windows Phone 7.5 para poder cubrir la mayor cantidad de clientes posibles, debido a la naturaleza de la empresa para la que se construyó. Así que si este es tu caso, no te olvides, lo que construyas con SDKs para versiones superiores no correrá en estos dispositivos.

Los principales "tipos" de apps que se pueden crear son:
  1. Crear aplicaciones XAML basadas en Silverlight
  2. Juegos usando XNA, tecnología fue muy popular entre los adeptos a Microsoft.

Windows Phone 8 y Windows 8 (Update 1 a 8.1)

Con Windows Phone 8 y Windows 8 vinieron muchas mejoras a la manera como programábamos, pero además la plataforma empezó a abrir espacio a tecnologías más populares como Unity, y escenarios más complejos, dando acceso a C++, a componentes Win32 (en Windows 8) y pudiendo crear aplicaciones para DirectX.

Con esto los sectores empresariales además comenzaron a ver la luz al final del túnel, con versiones de Windows Embedded 8 que devuelven la esperanza a la cantidad de proyectos móviles empresariales basados en esta plataforma.

Además Windows 8 hizo su guiño a los desarrolladores HTML5 y JS mostrándoles como crear aplicaciones "nativas" participando de toda la experiencia y ecosistema de las aplicaciones modernas.

Los "tipos" de apps en esta versión son:
  1. Aplicaciones nativas HTML5 y JS (No disponibles para Windows Phone)
  2. Aplicaciones XAML con C# y VB
  3. Aplicaciones XAML con C++
  4. Aplicaciones DirectX
En Windows Phone las aplicaciones HTML5 solo eran una plantilla con WebView incorporado y no se ejecutaban de forma nativa ni con las ventajas correspondientes de tener mayor acceso a los dispositivos y poder tener referencias a otros proyectos .NET.

Windows 8.1 (Update 1) y Windows Phone 8.1

El dia de hoy nos incorporamos a la nueva aventura, sin embargo todas las nuevas noticias traen implicaciones en desarrollo a las que tendremos que adaptarnos y entender a donde pueden o no llegar nuestras nuevas apps.

Empecemos con calma, primero las buenas nuevas. Windows Phone 8.1 ahora ofrece aplicaciones HTML5 y JS de forma nativa, lo cual es excelente. Bien por todos aquellos devs que lo estaban esperando.

Las apps XAML que veníamos trabajando, pasarán a ser apps XAML basadas en Silverlight 8.1, y tendrán acceso a una cantidad limitada de características nuevas, pero lo realmente importante es que llevan una ruta unificada para trabajar y compartir más código con las Windows 8.1 que trabajamos hasta ahora.

Sobre las Universal apps, hay gran expectativa y alegría, ahora podemos construir aplicaciones que se construyen una única vez y funcionan en todas las plataformas. Lo cual es genial para la plataforma y para nuestro trabajo. Bueno, ¿y por qué el tono de alerta?

Okey, para entenderlo enumeremos los tipos de apps disponibles ahora:
  1. Aplicaciones DirectX
  2. Aplicaciones XAML con C# y VB (Basadas en Silverlight 8.1)
  3. Aplicaciones XAML con C++ (Basadas en Silverlight 8.1)
  4. Universal Apps con C# y VB (Windows XAML)
  5. Universal Apps con C++ (Windows XAML)
  6. Universal Apps con HTML5 y JS
¡Hey! ¡Momento! Más tipos de apps, ¿que tiene eso de malo? Bueno, en principio las apps, apps son pero...

Las apps basadas en Silverlight 8.1 no se podrán portar de forma transparente a Universal Apps. Las apps basadas en Silverlight 8.1 son la oferta de hoy para quienes tienen apps creadas, es el siguiente paso para mejorarlas y que puedan acceder a algunas de las carácteristicas de la evolución de la plataforma.

Las Universal Apps están dirigidas a nuevas apps, o a quienes quieran de plano volver a crear sus apps para volverlas universales. Así que como pueden ver, a hoy, habrá que elegir correctamente que es lo que queremos hacer.
Por otro lado, con como es de esperarse, estas "nuevas apps" no van a correr en Windows Phone 8, para correr todos los tipos de apps que hemos mencionado hasta el momento, se deberá tener Windows Phone 8.1. 
La parte positiva es que a diferencia de Windows Phone 7.5, todos los celulares con Windows Phone 8 podrán actualizarse a Windows Phone 8.1 pero la pregunta es ¿Cuando? Muchos dispositivos hoy siguen sin actualizarse por culpa de los operadores de telefonía móvil, y aunque nosotros los desarrolladores no tenemos ese problema, no hacemos apps para nosotros, si no para los usuarios que seguirán estancados con los operadores en Windows Phone 8. :(
No quiero terminar con una sombra de pesadumbre, todo lo que esta pasando es bueno, muy bueno para la plataforma, hay factores que van a entorpecer y alargar el proceso de que todas estas novedades nos lleguen y le lleguen a nuestros usuarios, pero el futuro es prometedor.

Para quienes hace rato somos devs de la plataforma, claramente las mejoras son geniales, el que la compatibilidad del código sea cada vez mejor, le da un plus para seguir adelante, pero lo mejor es que el conocimiento que tenemos sigue vigente e intacto para seguir construyendo apps.

Nos seguiremos viendo con más análisis y tutoriales sobre las novedades de Windows Phone 8.1 :)

السبت، 8 مارس 2014

Startups, Cross-platform y Azure Mobile Services

Actualización importante 2014/04/05: Hace unos días iniciando la creación de la versión Xamarin en Android y iOS con un amigo, el encontró que Autofac no era compatible con la version Xamarin de iOS hasta el momento. Al revisar el codigo nos encontramos que el contenedor de dependencias estaba acomplado al codigo portable, para solucionar este problema hicimos un servicio con su propia interfaz que sepa recuperar instancias desde el contenedor de dependencias ubicado a nivel de la UI, lo cual solucionó el problema y además ahora nos permite incluso tener el contenedor de dependencias recomendado en cada plataforma sin alterar el código portable.

Hace unos días empecé un proyecto con el ánimo de aprovechar el tiempo libre y aplicar todo lo aprendido en nuestra anterior y detenida serie de post de MVVM Avanzado.

Aprovechando todo el ánimo que tenía decidi iniciar varios proyectos y uno de ellos es el que vengo a comentarles hoy. Esta noche cumplo exactamente 15 dias desde que llegó el correo donde nos proponian crear una app para el mundial. Mi amigo @HernanDGR y yo empezamos la app e iniciamos con la BETA a los 10 días, y hoy en el día 15 estamos listos para nuestro primer release, con feedback de varios BETA Testers.

Nuestra app, un proyecto simple de Trivias de Futbol llamado Trivium Cup con una mecánica de juego basada en jerga del fútbol. Pues bien, no vengo a contarles de la app especificamente si no de que usamos y como podría esa manera de trabajar ayudarlos con proyectos rapidos o con sus Startups.

La primera herramienta que nos ayudo a tener un backend robusto y seguro en 10 días es Azure Mobile Services, servicio que provee Microsoft en Azure y que nos ayuda en temas de base de datos, almacenamiento, tareas en background, validación de identidad con los proveedores más comunes (Google, Facebook, Twitter, Live) y notificaciones push.


Lo mejor de Azure Mobile Services es que a hoy está disponible para ser usado en aplicaciones Windows Store, Windows Phone, iOS, Android, HTML, Xamarin.iOS, Xamarin.Android, Sencha y PhoneGap. Para añadir, lo que tenemos con estos es servicios es la seguridad de que tendremos datos protegidos y una infraestructura sólida para nuestro backend.

Por supuesto cuando pensamos en usar servicios en la nube es importante que consideremos el hecho de que debemos mantener un flujo constante de ingresos por lo que nuestra app ya estaría condicionada a ser por publicidad (si tienen un escenario para tener suficiente) y/o con In App Purchases que garanticen el soporte la infraestructura en el tiempo. Así que es importante enterarse y entender el costo, así que no olviden leer la letra pequeña.

A hoy, esta es la tabla de precios de Azure Mobile Services.


Los servicios gratis son a nivel de suscripción téngalo presente. Si tomamos planes anuales o semestrales probablemente bajemos los costos pero tendriamos que hacer un pago por adelantado, asi que según nuestro modelo de startup quizá nos resulte mejor ir viendo que pasa con nuestra app en el camino, después de todo si comparamos 25 USD versus todos los servicios que ofrece la plataforma, lo que nos corresponde es sacarle el mejor provecho posible.

Actualización 19 de Marzo de 2014: En los recientes días continue mejorando el código, ya que la mejora es pequeña no actualizaré el post y solo haré mención. De los servicios a nivel de la UI solo deje el timer, los demás los pase a la librería propia del teléfono y los generalizé para que me sirvan a cualquier otra app. También en esta librería cree una carpeta de "Converters" para colocar ahí los de uso común en mis apps y los de uso específico los deje a nivel de la UI.

Recuerden que todos los tutoriales necesarios para empezar con esto están disponibles en el sitio de Azure Mobile Services. De hecho para que vean lo sencillo que es les dejo un insert, con el fin de que observen como es tan sencillo como usar un ORM.


Pues bien, aunque Azure Mobile Services está muy bien para empezar, si sentimos algo de miedo de acoplar nuestra solución a esto, la solución es bastante simple. Hay que programar bien y tener buenas estrategias crossplatform. Estas estrategias no solo aislan la complejidad de reutilizar codigo en todas las plataformas, tambien nos ayuda cuando tenemos que aislar nuestro codigo de alguna implementación en particular sin que el resto de la aplicación dependa de ello.

Es por esa razón que retomaremos en este post el tema del crossplatform mirando como resolvimos el tema en Trivium Cup, que si bien a hoy está solo para Windows Phone, el código está listo para ser usado en Windows 8 y tambien en Xamarin con iOS y Android, que es basicamente lo que veniamos hacer en nuestra serie anteior.

Empezaré por mostrarles la radiografía del proyecto a este momento, puesto que desde ya hace varios días no tiene cambios importantes. Como verán si siguen mi blog, tiene una estructura similar a la que veniamos construyendo en la serie de MVVM Avanzado, pero definitivamente más afinada y diria definitiva, así que voy a explicarles cada uno de los paquetes y carpetas y sus responsabilidades.


Infraestructure.Common es una libreria portable a la que le corresponde a todo el codigo que puede ser utilizado no solo por esta app si no por todas las apps que construyamos bajo este esquema. De allí que lo principal sean las clases reutilizables RelayCommand y Bindable Base, y todo lo generico a usar como estructuras de validación de los formularios y los servicios para consumir datos.


Infraestructure.Phone es una librería de plataforma (Windows Phone en este caso) que contiene todas las clases de servicios que necesitan clases específicas que no se encuentran en clases portables. Yo no soy muy amante de los condicionales de compilación, prefiero dejarle la tarea de resolver la implementación de un servicio específico a el ViewModelLocator como vimos en la serie de MVVM Avanzado o en el Hangout de estrategias cross platform. Sin embargo esto es una decisión propia, como veran en la serie o el hangout pueden tener archivos compartidos y condicionales de compilación para hacer esto mismo, de mi parte prefiero código más ordenado y fácil de leer.


Espero que se hayan preguntado por que las interfaces de estos servicios estan en otro proyecto, eso es sencillo, las interfaces son lo que las Vistas Modelo necesitan conocer para desacoplarse de las implementaciones especificas que deban hacerse en cada plataforma. Sin embargo la idea de este proyecto Infraestructure.Phone es que estas clases puedan reusarse en la creación de otras apps.

Trivias.Models tiene el conjunto de clases que nos ayudan a serializar las tablas y vistas de Azure Mobile Services.


Las clases son simples POCO con un atributo de serialización 


La razón por la que las pusimos en un assembly separado fue más algo práctico, ya que tenemos otra app que no tiene toda esta arquitectura y a través de la cual administramos los datos de las tablas maestras, si no tienen este caso o si prefieren administrar los datos por SQL Management Studio tambien es posible hacerlo.

Trivias.Logic es la librería portable que contiene lógica propia de nuestra aplicación. Como ven justo en este punto solo hay un servicio, a Azure Mobile Services, es esta clase la que puede ser reemplazada en implementación por otra que consuma servicios Json por ejemplo.

Además en esta librería tenemos los contratos que usan Vistas Modelos y Modelos en sus firmas (ya que recuerden si quieren poner sus modelos aquí es una opción valida) y tambien tenemos el ViewModelHelper cuya responsabilidad es poblar las Vistas Modelos con los datos de los Modelos que retorna el servicios de Azure.

También ubicamos en esta librería todos los recursos que requieran localización y así nos evitamos un dolor de cabeza de repetirlos todos en cada proyecto :)


Trivias.WorldCups es la app Windows Phone propiamente, la cual tiene recursos propios de front end tales como Datos de ejemplo, Paginas, Convertidores, Recursos Localizados, Controles de usuario y ademas los Templates de XAML agrupados en Recursos. 

Si observan con cuidado verán que tenemos una clase de Infraestructura que es nuestro punto de resolución de dependencias, el ViewModelLocator, que insisto si aún no entienden no dejen de ver el Hangout que les publique hace unos dias, y además notarán que tengo algunos servicios a nivel de aplicación, esto se debió a que en las librerías no tenia acceso a algunas cosas o incluso a temas de distribución de código para tener más cosas reusables en las librerías y las particulares de la app en el nivel correspondiente.


Por favor, no sigan el consejo de que para sacar algo pronto hay que hacer código mal hecho, una vez interiorizado este tema de distribuir código, son muchos más los beneficios incluso rinde mucho más construir la primera versión.

Por último recuerden que siempre hay cosas que mejorar así que si encuentran alguna no duden en decirmelo, que yo también aprendo cada día.

Saludos y hasta la próxima.

الأربعاء، 19 فبراير 2014

Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8

El día de hoy fuí invitada a dar un #DevHangout en DevAcademy.la sobre Windows Phone 8 y Windows 8. Me propuse a mi misma procurar comunicar todos esos temas que necesitamos que los desarrolladores de estas tecnologías empiecen a aplicar en sus apps y bueno el resultado fue muy bonito.

La charla es un compendio principalmente de buenas prácticas enfocadas al uso de MVVM partiendo de prácticas básicas hasta prácticas avanzadas sugeridas. 


Un consejo adicional que les puedo dejar, es que si no entienden mucho que son las vistas modelo o como definirlas se vean el post que publique antes sobre tema, explicandolo detalladamente.


Espero que les sirva mucho y que los anime a profundizar en los temas que les haga falta aprender, recuerden igual que tenemos un proyecto en construcción aquí en el blog donde justamente hemos estado aprendiendo todas las cosas que menciono en la charla.


Les comparto además las diapositivas de la presentación

 

الاثنين، 10 فبراير 2014

Creando Test Unitarios para consumo de datos usando HttpClient

La serie se ha visto detenida debido a que se desarrolla en tiempo libre, en especial los fines de semana y lastimosamente los fines de semana los servidores de Congreso Visible estan siendo sacados del aire.

Uno de los escenarios más comunes en las aplicaciones móviles es realizar peticiones para consumir servicios web, y el proyecto de nuestra serie no es la excepción. Hasta el momento solo hemos creado algunos pocos Test Unitarios para las Vistas Modelos, sin embargo la cantidad de servicios que hemos creado, ameritan muchos Test Unitarios.

En este post nos enfrentaremos a unos test particulares, y son los test de aquellos servicios que usan la clase HttpClient. Pues bien, buscando por ahí encontre un par de alternativas, ambas se ven bien sin embargo un poco más elaboradas. Les comparto los post


Al ver ambos post opté por mi propia implementación mucho más sencilla, la forma de resolver el problema es básica, si encapsulamos en una clase el llamado a HttpClient y a dicha clase le creamos una interfaz, esta podrá ser "Mockeada" por Moq y resolveremos fácilmente el problema.

Para esto nuestros aliados seán Moq y Autofixture, este último lo presenté en una actualización del primer post de refinamiento de arquitectura ya que es de mucha utilidad para crear datos dummy. Empezaré por decir que cree el servicio e interfaz en el proyecto de Infraestructura por que dicho proyecto pretende justamente agrupar el código que podría ser reusado en otros proyectos.


La implementación de la interfaz es bastante simple

Y la implementación del servicio también


Luego de esto fue necesario cambiar la implementación del servicio JsonService particular para el proyecto, con el fin de que usara la nueva dependencia que claramente fue necesario registrar en el ViewModelLocator como vimos en post anteriores.


Hecho esto lo que resta es poco, primero configuramos las fuentes de donde nuestro servicio obtendrá algunos datos es decir el TestDataHelper en el cual usamos Fixture


Observen con especial cuidado las partes donde se usa Autofixture para crear los datos. Para simular la respuesta de un servicio Json, lo que hice fue crear instancias de las clases Modelo con Autofixture y luego serializarla. Esta porción de código seguro se puede generalizar más para serializar cualquier tipo de objeto.

Luego ensamblamos nuestros test usando Moq.


En primer lugar inicializamos la instancia de JsonService que estamos probando tomando de una clase generíca la instancia de los servicios "Moqueados". Luego usando Moq, configuramos la respuesta que darán cada uno de los llamados que usa el método que vamos a probar y por último invocamos el método y analizamos la respuesta que espera nuestro test.

Observen bien las diferentes formas de llamar un método sincronico y un método asincrónico usando Moq, tenemos como les he insistido antes, que conocer bastante bien lo que vamos a probar.

Si les extraña la clase MocksContainer, simplemente decidi tener un punto central donde inicializar todos los servicios, para que estén disponibles para todas las clases de test de mi proyecto de pruebas, colocandolas estáticas y publicas.