Developer Spotlight: M. Saleh Esmaeili | webOS Nation

Developer Spotlight: M. Saleh Esmaeili

by Derek Kessler Wed, 27 Apr 2011 10:56 am EDT

Join us as we talk to developers large and small in the webOS community. This week: M. Saleh Esmaeili. Are you a developer interested in getting spotlighted? Hit us up!

Name: M. Saleh Esmaeili

Company: dots & lines

Location: Dubai, UAE

webOS Apps: Carbon for Twitter, upcoming are Diamond for webOS (Carbon on steroids for Touchpad) and Nitrous, a reader app for Touchpad

Current devices: Pre 2, Pixi, Samsung Omnia WP, iPhone 3GS

Tell us about yourself. Really, we want to know.

A simple web-type. I go by that on most of my profile bios. Persian, grew up in the sunny Dubai, UAE where I enjoy a global cultural mashup. I started my career as a branding artist some ten years ago where I later shifted my interest to multimedia and interactive design. In 2005 I co-founded a design boutique where I got involved in designing user-experiences for on-TV games, shopping mall kiosks and ATM interfaces along with product micro-sites. In 2007 I founded a web consultancy firm that was initially a mobile web design firm, but we couldn’t sell that as a service and got back to online advertising and experience design.

I’m all-around a speed junkie, so if you don’t find me designing or writing I’d most probably be at the nearest race track either watching or putting on a show in Track Days and AutoX contests, ah show off, no seriously I love engines. Oh and I love ohotography, but then who doesn’t? I’d usually use my shots in commercial projects and have won a couple of awards for’em too. Show off!

What in your background led you to develop for webOS?

I’d say my long years in design and UI development took me to webOS. There’s only one reason to develop for webOS and that’s webOS. The original webOS (1.x) had that design harmony that screamed for love, while I don’t see the same design path followed in 2.x I still see the core and the genius workflow screaming for developers to write apps for it.

Although one might expect to hear “yea, I was into Web so the transition to webOS apps was close to nothing (Mojo, not Enyo), but really I would’ve gotten apps developed for webOS even if it was in Java or C#. But then I’d only design for it and not code, but I’d produce apps for webOS anyways. It’s that lovely.

Why do you continue to develop for webOS?

If you asked me this question a month ago, I would’ve asked you to rephrase your question to “What is slowing down your development for webOS, or what is going to stop you from doing that?” as I felt webOS dev relations was meant to support side-project or college-level apps and not real world marketable apps. But, the last couple of weeks proved to be going to where every webOS developer likes HP to go. Despite all that, I don’t think there’s any other platform that has a friendlier community with such a welcoming warmth and openness. That in itself is one of the reasons that keeps me going for it.

Being different and starting where others end their apps with is another reason why I continue on webOS. While others port their iOS or Android apps to webOS I’m working with my colleagues to port our webOS app to Windows Phone 7 and iOS.

And we’ll continue the same way with other apps, start with webOS and if we find the opportunity we’ll port to other platforms. I believe in the experience that starts on webOS, because the basic UI in webOS can put any app in the right direction with its simplicity, it’s a UI framework that one can build on and customize for other platforms as needed. The same is not doable from WP7 or iOS because they are already complex and custom in structure while webOS has an open and minimal UI structure.

So you do development for other platforms? How does your webOS experience compare?

When it comes to WP7 and iOS I only work on designing the experience and UI and they are completely different. The only part that WP7 and iOS beat webOS is UI consistency in all apps, and that’s because of their strict criteria for app submission. As for development I believe WP7 and iOS are superior to webOS for the time being as they have the best IDEs and Design tools available in the market. Many would disagree with me on this, but man they’re really superior.

One very obvious shortcoming of webOS design is the design guidelines document. For some reason it looks like technical writers who wrote the documentation for Mojo thought only programmers would work on webOS and no designers are to be involved as you might have seen the whole reference pages are written in programmers lingo while WP7 has a rich branding-guidelines-like documentation that explains every part of the UI system along with the philosophy behind it and gives directions for every possible UI need. We don’t have that in webOS and I think that’s the reason why we see inconsistent design patterns in apps on webOS. Some might say that’s a good thing, in the long run, that’ll make webOS lose its identity. As simple as the UI structure is in webOS it is hard for non-designers to understand it. We need designer-language documentation for UI/Experience design on webOS.

What’s your take on the current state of webOS development?

I think it’s a great time for webOS development, having new devices coming out and backed by HP’s marketing budgets, it’s one of the hottest platforms yet the riskiest to invest in with time and funds. I don’t think anyone’s going to complain about SDKs or dev tools anymore as they are up to the mark and needs of developers. The 2.X NDA is lifted and 3.0 beta SDK was released, so no complaints on that. Not that great of a documentation for SDKs but still usable for developers who consider themselves cutting-edge.

Again, the same issue exists on webOS 3.0 documentations for developers, the design guidelines are very raw and from the looks of it, it wasn't really meant to be for developers outside of HP. For most it is a confusing document and at times one might feel treated lightly as a developer receiving a document that was made three, maybe four months ago for internal use as a base for developing UI and experience for apps.

As for companies jumping on webOS, I think it’s early to tell, as these are cards that startups would want to play smartly and wait before announcements. Say, FlipBoard going webOS? Time would tell, but from what we hear and expect from the SWAT teams at HP, they are going to be handholding those who show the intention to develop for webOS. What’s obvious is the fact that there is going to be a huge gap between the amount of support that indie developers would get vs. the support that HP is willing to give to household brands, which makes it tough for developers to compete given a limited access to dev devices.

An example of low-key support for developers is our experience with Developer Device Program. We had a developer coupon that we wanted to use and all of the sudden it was upgraded to a Pre 2 giveaway. Neat! We get an e-mail that it’s going to be shipped in 10 days but then on day 17th after three follow up e-mails we get a cold reply that they ran out of stock. Well, we got ourselves a Pre2 from Ebay and called it a day. But look at stuff like these that might seem small to a side project or a hobbyist developer.

Are we going to count on getting a Pre 3 or a TouchPad as developers? Not counting on it anymore. The problem is this: HP would support brands and big names with everything it could, from their SWAT team to Developer Devices, while smaller players get almost nothing. This worries us as it gives the edge to our competitors who are bigger and have more resources in the first place.

Where do you see webOS development going in the future? In particular, how do you see Enyo and devices like the TouchPad running webOS 3.0 affecting your development?

I don’t think Enyo is going to change the way I develop for webOS as an individual but it would definitely change the way a team works on webOS apps. Previously in Mojo, the framework had UI and code separation to a level that a designer with HTML knowledge would be able to control some of the UI using HTML and CSS, using Enyo it’s all about CSS so no actual control is given to designers. In Enyo, designers would have access to the CSS and any drastic change has to be done through a programmer who’d know the syntax. That isn’t a problem for small teams or for individual developers who work alone on apps.

Another side of the whole Enyo fear was the fact that we’d have one app for all. It just doesn’t work that way. The email app that the Enyo team kept on showing off over and over is an app that illustrates how you could do multi-size apps when that is the sole goal. Given the difference in user experience on a small screen and a big screen on TouchPad it is wrong to design one UI to fit Pre 2, Pre 3, Veer, and TouchPad, it’s just wrong even if some of the Enyo widgets allow that and make it possible. On-screen keyboard, back buttons, etc change the ball game from Basketball to BaseketBall. So given that we’ll have to shift to Enyo anyways, we’ll have to develop at least two versions of the UI for each of our applications. And that’s natural.

So the promise that Enyo would come out and make you design once is a false promise that no one actually could fulfill. Yes, apps are made using web-tools but they’re not websites for us to expect for them to work the same way on different browsers or resolutions or even different environments that use different human input and interaction. Another selling line that I wish the Enyo team would stop repeating is “Bring your web knowledge to webOS and build apps” because that is false too. You need to learn a new framework. Just because it relies on web technologies under the hood doesn’t mean anything to web developers really. Any Action Script or ECMA programmer could jump the wagon, “Bring your web dev expertise” is now false, unlike how it was with Mojo because it used “Prototype” Javascript framework and built on it, which in part made sense to many web developers as an initiating point for development and learning the Mojo system.

Given the chance, what’s the one thing you would change about the webOS development process?

In all honesty there’s no complaint that I have in the development process, but I wish the App Catalog was open for all. For developers, that is more exposure and potential customers. Another wish that I have is to have more options for developers to receive payments. PayPal doesn’t have the same support in all the countries and going forward that is going to become a limitation for international developers.

I wish HP took webOS app catalog a lot more seriously, as it is the sole point-of-sale for developers. Poor performance and really loose and illogical app rankings are some of those that have to be taken a good look at. For instance, apps on the Hot List are ranked with accumulative ranking, so if an app is really ‘hot’ at the time of its launch, it won’t end up on the Hot List, even if the whole community goes crazy about it.

Hot Apps, Featured Apps, all are timely lists and are supposed to be reflecting the status of apps in the Catalog, and not accumulated data or for HP's own marketing purposes. Hope they'll take it seriously from here on, as this is very critical.

What are you working on right now?

Carbon, our flagship product for webOS is what keeps us busy most of the time as we’re going a little broader than just Twitter for end-users and working on a pro version for social media gurus that’s going to be a TouchPad-only app.

We’re working on three more apps right now: Diamod for Twitter (Carbon on steroids for the TouchPad), an Instapaper client for TouchPad, and as we whispered recently, a Media Check-in app.

Thank you so much for your time. Any parting thoughts for the webOS community?

No compliments, no politics here, but I think the webOS community of users are indirectly developing the apps and not developers alone. Some of the smartest features in Carbon are those that were proposed by our early Beta testers. And since I have the floor, I wanna’ thank WebOS Internals gang for what they make possible for all, re5pect!