My thoughts on Windows Phone
A friend of mine, Ray Camden, has recently posted his thoughts on Windows Phone. As his impressions are quite different from mine I thought I should give it a try and explain what Windows Phone felt like to me.
I had the chance to play with it at Barcelona Mobile World Congress. Right near our booth was the Microsoft booth. There were four devices running the latest Windows mobile OS (I can’t remember all four devices but I’m pretty sure they included Nokia, HTC, and Samsung).
What I really liked was the sheer speed of the device. I couldn’t sense any lag everything was running fast and smooth. This doesn’t mean that this will be the case for anything or everything running on the device – remember I tried just the default apps.
Then, I liked the fact that they went for something different that doesn’t look like Android or iOS or anything else I played with.
Unfortunately, this is exactly why I could not say that I’d love to use it regularly. To me, the two biggest mistakes or drawbacks are:
- Using the apps tiles from the home screen to display notifications. As I was firing up the screens from sleep mode on these phones I couldn’t help feeling that all those notifications were competing for my attention. At a minimum I’d say they are distracting.I could be biased but when I unlock my Android screen I know exactly what I want to do (like checking email or send a message). Although there are notifications in the Android’s title bar they are not screaming in your face.
Compared to this, the dozens of Windows tiles were like a school of piranhas and by the time I was finished dodging them I’ve already forgotten what I wanted to do.After my second attempt using the phone I realized that this phone doesn’t feel like a business or knowledge worker type of phone but like a device for a college kid who only cares about keeping “in synch” with all his friends.
- As I was playing with different apps on the phone I realized that something was odd. After a couple of seconds I realized that there was too much animation going on, things were flying on the screen or flipping over onto something else, and it was all a bit too much.
Note: I may be biased as I’ve been using iPhone and Android phones for the past five years.
About users and modern browsers
During one of the Q&A sessions we had at the Adobe WebUp #2 event I was surprised to see so many people defending quite aggressively the idea of building web sites/apps for the common denominator (in other words making sure that everything works in IE6).
Well, just to be clear there is nothing wrong with building a web site or application that supports IE6. What I think is wrong is when you get so comfortable with this mindset that you don’t even question the need of supporting IE6. And this is the very reason I was actually surprised to see defending the support for IE6 in the name of the user.
Just off the top of my head I can give you three simple examples where supporting old browsers doesn’t add any benefit:
- You build a web site or application for enterprise or something that will be consumed behind a firewall. In this scenario you are free to choose whatever HTML features you want to use because you can control the web browser of the users. So you can enforce the use of modern browsers.
- You build a mobile web site or application. Although there are stats suggesting that the mobile landscape is not only about iOS and Android, I think that for most businesses this is what they mean when talking about mobile web sites. Obviously both iOS and Android have great support for HTML5 and CSS3 features so you are “liberated” to use whatever you want.
- Finally, you’re working on an existing project and the analytics you have suggest that your customers don’t use older browsers.
Am I wrong? Have you seen this in practice? Talk back!
Using PhoneGap Build and Debug
PhoneGap is a great solution for building mobile applications for multiple platforms using the “write once, run everywhere” paradigm. However there is a tricky part: when you want to package your app and get the native installers you get back to the native development nightmare.
Typically you package your PhoneGap app using the developer tool chain for the specific platform. In other words, if you want to package your app for iOS and Android you will be using a Mac and XCode for iOS and Eclipse with Android plugins for Android. As you add more platforms you can get a sense of the magnitude of the problem.
![]()
This is exactly the problem PhoneGap Build solves. Using PhoneGap Build you can let the “cloud” do the crunching task for you. So from the comfort of your browser you only have to upload your application files (HTML, CSS, JavaScript, and images files) and PhoneGap Build will give you back installers for:
- iOS
- Android
- BlackBerry
- webOS
- Symbian
Windows mobile support is coming in case this question was about to land in the comments section :)
Before moving on I want to stress one thing so I make sure you get the awesomeness of this service: in order to use it and get the native installers you don’t have install anything – no IDEs or developer SDKs.
Introducing Adobe Shadow – a new way to debug mobile web sites and apps
So what is Adobe Shadow? Shadow helps developers who work on mobile web sites and applications by enabling them to do “synchronous browsing”. You connect your mobile devices to your computer and then you navigate to a page on your computer and all the devices are synchronized displaying the same web page.

So when you open an URL in your desktop browser, all the connected devices will stay synchronized displaying the same URL. Furthermore, you can open up a debug session with one mobile device and use Web Inspector to check the DOM as it was generated on that device, check the CSS properties for DOM elements, resources, and network calls.
It supports iOS and Android devices and it works on Windows/Mac OS computers using the Chrome browser.
Pictures from MWC12 floor
As my duty at Adobe’s booth started only in the afternoon, I used the first part of the day to walk around and get a sense of the show. Here are some pictures I took with my phone camera.
First, the Adobe booth. I was surprised by the number of people coming right from the opening hours. I was expectecting people to be more interested in all the new cool devices. Instead there were lots of people all over the place.
One of the biggest booths around is Google’s. I think they are using the same booth they had last year. Nevertheless it is impressive. You can see there are lots of people.
Some press guys resting before their next interview.
Next, the Microsoft Windows Phone booth. I played a bit with some HTC and Nokia devices. I am sure I am biased, but I will say it anyway: the devices are fast. No doubt. But somehow I don’t get the UI. Probably all the years I’ve been using iOS and Android devices…
Right near our booth there is the HTC booth. I have to check them out as it seems they announced a crazy powerful new phone, HTC One X.
That phone is powered NVidia’s Tegra 3 chip. So here is NVidia booth:
As with any show there are lots of characters :)
It’s lunch time, which means the crowd is starting to move outside.
That’s it for today. Now I have to run for my booth duties.
Later Update: This is the only conference where I’ve seen only men queueing in front of the rest rooms. It must be divine retribution I guess:
Photoshop Touch for iPad and Barcelona Mobile World Congress 2012
The Mobile World Congress has started this morning and one of big announcements is Adobe’s release of Adobe Photoshop Touch app for iPad 2. This tool offers core Photoshop features plus some features uniquely tailored to the mobile medium like sharing. What’s more is that this is just the first step. Photoshop Touch is part of a family of six touch apps – the rest of the suite will come to iPad later this year. You can see the app here.
If you are at the MWC then make sure you drop by our booth in Hall 1. You can play with the app on our devices and you can see how it is already being used by professionals.

There were two other announcements this morning related to digital publishing and video. If you are a developer, maybe this type of announcement is not your cup of tea, but nevertheless they are important because digital publishing and video publishing are growing.
Adobe’s solution for digital publishing (AKA creating beautiful digital magazines and newspapers for tablets) has served more than 16 million publications for the past 12 months. Using anonymous data collected across these publications we distilled them to:
- 68% of readers are paying for the content
- 48% of readers explore the interactive features (web views, audio and video clips, slide shows, and image sequences
- 56% of readers spent 25 minutes to 2.5 hours reading digital titles each month. What is even more important is the trend: this time has increased more than 70% over the last six months.
Project Primetime was announced today too and it is all about delivering and monetizing video content. Nothing new so far, right? Well, here is where the interesting things come together: Primetime helps you use a single, end-to-end workflow, to create a TV-like experience for premium video and ad content and distribute this to all major Web connected devices: iOS devices, Android devices, and of course desktop computers. It supports live streaming, linear, and on demand streams and for all of them you can insert ads with complete control.
Again, if you are at MWC come to our booth and you can find out more. There are presentations on all these topics.
Finally, here is a picture of the main entrance this morning:
aTabSplitter – the web standards edition
I thought that it would be helpful to document the experience I had while building a web application using jQuery Mobile. And this is what this article is all about. But before going into details let me set the context.
I started building mobile applications a while ago using Adobe AIR and the Flex framework. My first “production ready” application was called aTabSplitter and it is available for download in Android and BlackBerry markets. It was a fun and eye-opening experience. I mean it is one thing “to play” with technology and an entirely different thing to build something that will be actually useful and people will love to use.
Recently, as I was playing with jQuery mobile I had an idea: what if I tried to rebuild the application using HTML, CSS, and JavaScript? To make things more complicated I wanted to retain the same UI and user experience. In other words I treated the mobile application as the design and user workflow diagrams you’d get from a UX.
If you haven’t tried the application yet let me briefly describe it: it allows you to split a restaurant bill. The important workflows are the first screen, where you add new persons, delete them, move them around the table, or adjust the tip, and the calculator screen where you add the items for a single person. Actually, I am pretty proud because I think I found a good/intuitive user interface.
And by the way, here is the link for this web app.
Here are screenshots with the application running on desktop and mobile devices.
Android 4 Phone:
On iPad:
Quick hack to deal with touch and mouse events
If you build web pages that are interactive and work on desktops and mobile devices then chances are that you need to work with touch and click events. For mobile devices you’d want to use events like touchstart, touchmove, and touchend and for desktops you’d use mouse events (mousedown, mousemove, and mouseup).
Most of the time the code you execute as a response to these events is the same between these two platforms. So one way to avoid duplicating your code is to take advantage of the JavaScript’s dynamic nature to inject additional data into the event object and chain the click and touch event listeners.
Here is a snippet of code that illustrates my point:
function init() {
var el = document.getElementById('myDiv');
el.addEventListener('mousemove', onMouseMove);
el.addEventListener('touchmove', onTouchMove);
}
function onMouseMove(e) {
e.touches = [{clientX: e.clientX, clientY: e.clientY}];
onTouchMove(e);
}
function onTouchMove(e) {
//do something with e.touches[0].clientX or e.touches[0].clientY
}
The code should be pretty simple to follow:
- I register listeners for mousemove and touchmove
- If the code runs on a desktop then the mousemove listeners will be triggered. When this happens I inject the mouse X and Y position in the event object using the data structure used by touch events (touch events have a touches property, which is an array of objects that follow this pattern: {clientX: value, clientY: value}). The touches property is an array because you can expect more than one touch point on some devices. Then I call the onTouchMove function passing along the modified event object
- The logic I want to execute for that specific action is declared in a single place, the onTouchMove function
I put together a simple page so you can see the code and test it on you computer/devices: demo here.
What method do you use to deal with this?
Adobe WebUp #2

I am happy to announce that the second event of the Adobe WebUp series has been announced and you can register yourself here. In the meantime we’ve changed the name from “Adobe Developer Days – Web Platform” to “Adobe WebUP”.
The second event is dedicated to HTML5 forms: what HTML5 forms are, how to style them, and browsers support for them.
I hope you’ll join us on February 23rd. You have to register here if you want to participate.
Announcing a series of web conferences organized by Adobe Romania
On February 2nd we will host the first conference from a series of conferences about web technologies and development. Our presenter will be Vincent Hardy, principal scientist at Adobe Systems.

See you on February 2nd!
You can find more info about this conference and register here (the presentations will be in English).
PS. I am so happy to see this finally get started as I’ve been working on it for some time.



















