Android and iOS – Two Approaches to Managing Constraints

iOS-Home

In a perfect world with infinite resources, one can create a perfect product. It would be a thing of beauty, with oodles of functional excellence and be dirt cheap. Unfortunately that world does not exist but in the fevered imaginations of dreamers. The rest of us have to live with constraints the real world imposes. We think hard about which audience we create the product for, how will it help solve their problems, what price will they pay, and so on. I have learnt a lot from this post on constraints by Matt Gemmell. Some quotes from that post, which should be read and assimilated in its entirety by the way.

All technology imposes constraints.

There are many factors to consider. Performance and power consumption. Size and weight. Noise and heat. Beauty, durability, and portability. Connectivity and upgradeability. Compatibility and of course cost. At buying time, we presumably consider availability too. They’re all interrelated in various ways, forming a complex web of trade-offs.

What will you optimize for, given the constraints imposed. What is more important to you as a creator. What is important to users you wish to target. But the hard reality is this, Users don’t really get to make a complete choice.  The hard choices are already made by the designer.

I remember Steve Jobs mentioning in one of his presentations that users employ product creators to make these decisions on their behalf. It is the job of the designer to choose between constraints judiciously. Not to randomly tack on features because it helps tick off one more check box in the minds of consumers who might not think deeply. Whether multi-tasking is a benefit when considering power management on a mobile device. Whether screen-size accounts for ergonomics of a human holding the device.

Superficial customization, extensibility options provide an illusion of control for the end user but come saddled with unacceptable tradeoffs for some users. For example extensible memory on my Galaxy S2 was seldom used. I preferred syncing over Wi-Fi or even a cable with my PC.

As a concrete example of how engineering decisions impact user experience, see this post by a Google engineer on why Android does not have a Fluid UI experience and might never have one. Here is the money quote:

It’s not GC pauses. It’s not because Android runs bytecode and iOS runs native code. It’s because on iOS all UI rendering occurs in a dedicated UI thread with real-time priority. On the other hand, Android follows the traditional PC model of rendering occurring on the main thread with normal priority.

That gentlemen is a classic example of a design decision taken on the Android platform. Deep in the bowels of the OS is a decision that ripples up to the UI. Of course am not sure if this was a decision to not optimize for fluid user interface. Or perhaps it was a legacy constraint that Android engineers could not work around.

The point is this, what are you optimizing for. Will you take the hard engineering decisions, that would not be seen or even understood by 99% of your users? Will you ask user’s to trust your judgement or will you take the lazy route and give everything the user asks for?

Apple chooses to optimize for user experience, for tactile responsiveness. Android chooses to optimize, or not, for broadest compatibility across a range of devices. Seen another way, the choices seem to be whether to work well on a single class of devices or work sub-optimally on a range of devices. What the designer chooses says a lot about their priorities. Which platform a customer chooses says a lot about what constraints they are willing to live with in exchange for what services.

Don’t miss reading Matt’s post, it opens up additional perspectives on how one should think when creating anything.

This is our Signature. And it means everything.

This is it.
This is what matters.
The experience of a product.

How it makes someone feel.
Will it make life better?
Does it deserve to exist?

We spend a lot of time
On a few great things.
Until every idea we touch
Enhances each life it touches.

You may rarely look at it.
But you’ll always feel it.

This is our signature.
And it means everything.

My iPhone 4S drowned around 5 months back. Not wanting to spend a ton of cash on an iPhone, I took another route. I opted for a Windows Phone, a Lumia 820. I could handle it for a few months.

About two weeks back, I had enough. I had enough compromising on my own design and aesthetic sensibilities, enough compromising on what I valued and enjoyed in any device I used. I gave in and bought an iPhone 5. If there is one thing I have noticed that good engineering is not just about features, it is primarily what informed the design thinking of the creators, it is about what they wanted to evoke in you every time you used their creation.

Now, more than ever, I utterly understand what Apple means by “You may rarely look at it. But you will always feel it”, every damn time I lift the phone and use any of the apps.

Other platforms can try their best to cram features, add bigger screens, be first to add a visual idiom etc. But most do not understand whatever deep design-based thinking can accomplish can only be bettered by superior design thinking. Without it one builds castles in sand.

Pixate – Style your iOS Apps Using CSS!

It is a truth universally held by all learned men and women that Apple’s development environment and tools suck big time. Others say XCode and iOS dev environment have grown mature lately, perhaps it is true but I can only imagine the horror it must have been! Last week I came across a effort called Pixate on Kickstarter that should alleviate some pain for iOS developers.

Pixate – Styling in iOS

To be honest XCode does a half-decent job to let you style controls. But the workflow of importing graphical assets of multiple resolutions remains convoluted, leave alone making UI respond to state changes within the application. Pixate seems to have solved this problem rather elegantly, they propose styling apps their components using CSS and their custom CSS Engine. This is awesome at couple of levels. First developers can piggy back on their knowledge of CSS from web development world and two it enables an extra level of separation between Views and how content within is actually styled.

Ancestry of Pixate

I personally do not know what exactly inspired Pixate developers to use CSS as the styling engine. Use of CSS in web development as mentioned above is well known, so that is an obvious starting point. But there are precedents in other areas too.

Take for example how XAML works in WPF and Silverlight. There too is a clean separation of control elements and the code to style them. In fact, though XAML is a proprietary language, I thought it was a well engineered technology. Of course Microsoft never quite nailed positioning for XAML leading to its poor adoption and high failure rate. I have seen projects on WPF/Silverlight being used for purposes they were never designed for, say real-time rendition of high volume graphs, that too on half a decade old hardware.

A minor detail, XAML is not just about building UIs and styling them, it was a markup for object serialization..which explains why Workflow Foundation rules/graphs could be described in XAML. Sadly it did not take off but am fond of XAML still.

Support Pixate on Kickstarter!

Without digging into the past, let me just say I love what Pixate are attempting. Driving look and feel in iOS apps via CSS-like syntax is a good thing. So I have registered myself on Kickstarter as a supporter of this project. If you are curious am going for the $99 pledge, gets me a single user dev license if the project goes through. I would highly recommend you take a look at Pixate and support them, we all win if tools surrounding iOS(they have an Android equivalent on their plans too) development get more smarter.

Update – Pixate now supports importing Adobe Photoshop Layers in Real-Time! This is awesome, check it and give it your support!

ReWire, Weak-ties and Serendipity

Rewire

ReWire is an app to help train your attention/concentration skills. ReWire is the first product that my startup developed and it is out on the AppStore. I say developed because the idea and spirit was the brainchild of Mike Redmer, we only played a technical role. Anyway, the topic of this post is how this partnership between Mike and I came to be. And you should check out ReWire, it’s an awesome app which is sort of obvious given its pedigree..well you surely don’t expect objectivity from me on this 🙂

ReWire Day Zero

It was many months ago, I was lazily reading through some blog post and monitoring twitter. The question occupying my thoughts were around which idea to focus on in the startup I had launched. It was the typical problem of plenty, when you could choose anything to work on what do you choose? Of course the standard questions around technical feasibility, resource availability, monetization concerns were all there but still its a tricky question to answer.

Given the set of people I follow on twitter there was the usual mixture of technology, spirituality and hindu nationalism related tweets that were flying past. In case you did not know, I follow a lot of Buddhist practitioners on twitter. Like thirsty men who drink from every available stream, I too dig into every path to see if there is an insight or technique that will refine the animal within.

Weak-ties

As tweets were whizzing past I noticed a tweet that said, and I paraphrase, “Looking for iOS devs to help build a meditation app“. That held my attention immediately but the tweet was from nobody I knew. It was a retweet by Vince Horn. Vince, if you do not know, runs the Buddhist Geeks podcast, of which I have been a fan for long because of the sincerity and insight with which he conducts himself and the show.

Serendipity

I could not resist, and replied to the tweeter saying our fledgling startup could lend a hand. Of course I also told him we have built products before but not on iOS and not within our startup itself. There were tons of unknowns between Mike and our firm. The funding situation, the scope of work involved, our relative inexperience on iOS platform and more. But we barged our way through based on trust and common spiritual interests. Staring with a simple proof of concept we did several iterations to get to a mature beta. As mentioned at the top of this post, the app is ReWire and it got approved by Apple early in the day today.

It is an amazing feeling to see this little app go live. It is such insignificant thing in the larger scheme of things but very important to me and Mike because of the way it came about and how we have grown as people by learning from and trusting each other.

Looking back

I think this is a good example of serendipity enabled by weak-ties. You don’t think so? Well, imagine I have to be a technology person(to have the courage to think I could build it on my own if I can’t hire an iOS developer), I need to have the freedom to work on what I want(which essentially means a startup or some free time if working full-time elsewhere), I need to have interest in spirituality and follow Vince Horn’s Buddhist Geeks podcast and I had to watch the twitter feed at that exact moment in time. Damn..that is near impossible right! Yet, here we are.

I can’t help but be reminded of this quote by Steve Jobs.

You can’t connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something – your gut, destiny, life, karma, whatever.

Credits

So Mike, if you are reading this..awesome work and thanks for trusting us with ReWire. You have a unique vision on how technology can help contemplative practices, so keep plugging away!  And to my wife and family who give me support to even attempt this, a big thanks.

Finally to those few who answered my call, “who will come with me, who will walk with me“, you have my gratitude. And yes, we are taking this baby places.

[Note: Our primary product is still in development. We can’t wait to show you what it does. We believe it will simplify how people collaborate with each other and help catalyze serendipity, just as I described in this post. Subscribe to this blog or register your email at Tataatsu to hear more on our progress.]

Enhanced by Zemanta

Windows 8: Awesome UX, Not So Much Underneath

Big news coming from the D9 conference around Microsoft. Its flagship OS gets a rethink with the tentatively codenamed Windows 8. Take a look.

Simply love the concepts here. The tiles, ability to compose windows, IE 10.0 and more.

But all the rush vanished when they showed Excel and Windows Explorer. You got to the same old Windows, the junk was brushed under the carpet and nothing more.

John Gruber does a fantastic job enumerating why this is a flawed approach.

I quite understand Microsoft’s predicament. How could you not provide backward compatibility?! There would be a virtual revolt from consumers, especially the corporates, if their favorite apps did not work. So the internals with its 20 odd years of legacy will have to remain. What about the Office suite? Imagine all the corporate drones who live in Office, who raised a ruckus when the Ribbon menu interface was introduced! Whilst it would be possible for the Office team to reinvent the UI for a touch based environment, they would have a PR disaster on their hands if they attempted anything on those lines.

Microsoft is doomed by its past successes. Whilst it might have the intellectual mettle to re-invent itself for the post-PC world, it is chained to its legacy and thus doomed for irrelevance. Apple has craftily maneuvered itself out of its niche status in the PC world by using its low market penetration to invent iOS and related services to define a new field and own it.

Interesting times.

For iPad, To Go Native or With Web Standards? See Flipboard

Flipboard is a hot new startup that offers a social magazine on the iPad. Basically it takes your Twitter, Facebook feeds, scrapes out the links in them, does some more smart crawling and provides a magazine like experience. Everything from choosing pictures to display from the links, the dimensions, layout etc. is dealt with dynamically.

Today they announced a feature called Flipboard Pages, which I came across via ReadWriteWeb. The feature itself is said to be a framework that..

..automatically converts traditional Web content into an iPad-friendly format, featuring full-screen, paginated, magazine-like pages.

It seems content publishers have to publish information in a certain way to make the magazine like reading experience possible, instead of a staid old web-page.

Now to the key point that caught my eye

All publishers worked with Flipboard to create their own HTML5-based framework, so they each have their own look and feel.

Wow. I am excited by a few things here.

  • Ability of HTML 5.0 to act as an informal contract between content publishers and aggregators
  • The rise of aggregators that can morph a bunch of links fished out of content streams and construct a magazine like experience. On the fly. Dynamically. Personalized for every user.
  • Publishers produce content in one format HTML 5.0, which by default would be handled by most modern browser. And there is the differentiated experience via special apps.
  • All of them driven by web standards and not a proprietary technology in sight!

On a plain HTML 5.0 page it would not be possible to do all that can be done within iOS, at least in my understanding. But this news reduces the need to go native iOS for one more class of apps.

Publishers, aggregators and consumers win with this approach. For those who still on the Flash, Silverlight bandwagon for dynamic rich experiences its time to rethink your approaches.