Friday morning rant or #thingsthatmakesyougohmm

So, since yesterday i'm one year older i'm also grumpier. This morning i've open my buzz timeline and found that google people, like Reto LIKED new tweetdeck client. I realize its beta, and fully support creative UI. But lets just all agree that some things UX wise should be consistent through platform and the apps.
So here my rant comment to Reto's post
<rant>
Ok, Reto, i'm gonna call you on this one. How it exactly ROCKS ?
Let's do little app surgery shell we ? In this case you won't even need to cut deep.

1) Exit button, TADA - you guessed it - there ! Guess what it does ? I bet it removes alarm on UpdateService.
2) Settings are not implemented at all ??? WTF ???
3) No landscape mode
4) Non of new advocated UX patterns implemented.
5) Non of the new api ( apps to sd, cloud messaging ) are implemented.
6) Yeah, sure graphics look good.
7) Buzz integration plain sucks compare to Seesmic.

Bottom line - if you add a task killer to that thing you would have a PERFECT example how NOT TO write android app.
</rant>
PS - google team PLEASE include an action "do this and you go to the top of the list" to the framework. I don't care what this "do this" will be. Tap on the title bar, swipe, freaking surprise me. But it should be consistent.
PSS - ORACLE sucks and L.Ellison just stole douche of the year title from Jobs hands down.

Focus on View in the AppWidget

If you want your widget to be able to focus on individual views inside it you need those views be clickable and focusable  AND have background/or images to support state. Nice example of such drawable in Jeff's Sky widget.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 Jeff Sharkey, http://jsharkey.org/
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:drawable="@drawable/widget_bg_normal" />
    <item android:state_pressed="true" android:drawable="@drawable/widget_bg_pressed" />
    <item android:state_focused="true" android:drawable="@drawable/widget_bg_selected" />
    <item android:drawable="@drawable/widget_bg_normal" />
</selector>

 

These ten principles defined Dieter Rams’ approach to “good design”.

Good design is innovative.
Good design makes a product useful.
Good design is aesthetic.
Good design makes a product understandable.
Good design is unobtrusive.
Good design is honest.
Good design is long-lasting.
Good design is thorough down to the last detail.
Good design is environmentally friendly.
Good design is as little design as possible.

Copyright Dieter Rams, amended March 2003 and October 2009

First day with iPhone from Android developer.

Hey i got iPhone !  Step away from that "unfollow" button twitter friends. Here is the story.

I'm going to switch to Sprint, but my contract with TMO is expiring in Sep/Oct. In meanwhile i was using test phones which is inconvenient cause i have to flash them every week. Hence i needed tmo phone. The only one i want is N1. But i didn't want to spend 530$ on a phone for network I'm going to leave. As weird alternative I've decided to go with iPhone 3GS. Reasons :
  • I got it relatively cheap - 250$
  • I wanted to play around with iOS3 UI, and apps and do a comparison .
  • It has more or less good resale value and i hope i can either sell it for 200 or ship it to friends and family in Russia.
My experiment will be crippled by the fact that i'm using this thing on TMO network and EDGE connection( jb and unlocked ) and, because i'm gonna get rid of it in a month or two - i've put it in one of those ugly cases to preserve the state. I would never do it to any of my personal phones. Oh well, unless i go crazy and buy iPhone 4, then i have to, according to Steve Jobs. I aslo decided to stay at 3.1.3 and don't go to iOS4
Let's forget that Apple is a "nazi" company with horrible polices in place and their view of opensource is really questionable. They are gonna loose at the end because of all this bullshit, but today i want to review their final product same way i'd review a samsung microwave ( as example ).
First impressions ( my test everyday phone is EVO so i'm comparing to that ) 
 
Rooting/Jailbreaking(iPhone lingo)
Unlocking and jail breaking is major PITA. Community not as friendly as android and answers are harder to find. Could be the fact that i know where to look for android problems and there is always source.android.com. I did jb it with the Spirit tool at the end, cause i have 3.1.3 and new bootloader which makes it unjailbreakable with pwnagetool, or at least i couldn't figure that out.
 
UI Framework - sadly iPhone little bit more intuitive . I though I'm gonna be very bad at navigating, cause all my buttons are gone, but I'm fine with few exceptions. UI itself feels faster and snappier. Nice transition and all. Also, in my view because they control UI, it's one of the reasons it's better. They don't have HTC Sense/Blur/TouchWo/OtherCrazyMods things and crazy people putting hello kitty themes on that thing. So its basically its same if you compare Facebook to MySpace. Android right now is a MySpace which is sad. 
 
Fonts. I'm probably spoiled by EVO screen, but fonts are horrible on iPhone. Especially email/news things. HORRIBLE.
 
Applications.
If you compare stores - i think apple have better choice of good apps. But in general all apps i need are in both stores. iMDB only on iPhone for some reason. Exit store app once you click install - is total bullshit and very annoying.
 
I'm heavily rely on google solutions, gmail, voice, docs, reader etc. So my major concern was my life essential apps.
To my delight my contacts and gmail sync with 0 problems and i spent about 5 minutes to figure that out. Basically experience as good as in android phones.However , email app itself sucks. I find myself to go back to gmail web version more often. 
Another big thing for me is Google Voice which, as we all know, was booted out of app store. But web version works great ! Experience is obviously worse than on EVO with gvoice app, but still very decent. All other apps i was using via web interface anyway - so nothing changed here.
 
Preloaded apps calc/notepad/alarm/weather/stocks - are simple and good. Probably will satisfy 80% of people.
 
Camera is pretty decent. Better than mytouch/g1, worse than EVO
 
Browser
Hm all this pinch to zoom things work MUCH MUCH better on android. In iPhone if i zoom something i'm getting horizontal scroll bar and now need to move page in two directions. Very annoying. In android it page is always fit width and i scroll only up/down.
 
Maps - android with free nav wins hands down. 
 
Other apps i use :
SpringPad - awesome on both platforms.
Foursquare - same as SpringPad.
News apps - goal.com/huff,engadget - better on android due to fonts, larger screen on EVO and more real estate due to hardware buttons on the device ( you don't need to put them as part of UI ). Also for most news apps UI is better on android for some reason. May be a habit.
Facebook - iPhone wins. Not like their app is exceptional as much as android version sucks and i've switch to use m.facebook.com on android, cause the app redirects there all the time anyways.
Twitter apps - tried tweetie( official twitter ) and Seesmic.  In my opinion both apps worse than on android platforms. I'm not sure why Scoble thinks they better. I've also use tweetcaster for android and it's also better than both iPhone clients i've used. 
 
Games - i'm interested only in games for 3-5 year olds and there is better selection in app store at the moment.
 
Battery life since i'm only one day on it - it's hard to judge, but i expect to see improvement of 1.5-2 x times over EVO.
 
If anything else i should try let me know.
 
I also very much agree with this review in Engadget

Scroll ListView to position.

I needed to scroll the list ( ExpandableListView to be exact ) to position.I found this thread where Romain Guy said it got fixed in Froyo. And it is. There is a smoothscrollToPosition in SDK8 and up. As i needed to go lower than 8 here is mine workaround. If anybody knows better way let me know



class ScrollList extends Thread {
        final int position = mListView.getFlatListPosition(ExpandableListView
                .getPackedPositionForGroup(mListAdapter.getTestGroupPosition()));
        View itemView = mListView.getChildAt(position);
        int yPos = itemView.getTop();
        public void run() {
            while (yPos >= 20) {
                try {
                    yPos -= 5;
                    sleep(20);
                    mListView.post(new Runnable() {
                        public void run() {
                            mListView.setSelectionFromTop(position, yPos);
                        }
                    });
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    };


How people managing working in startups after 30+ with kids?

It seems to me, to work in the startup and make it successful  you need dedicate all the time you have to this goal. It's fun then you're single, no house ( mobile ) and have tons of free time. Now if you add little bit of age and couple of kids to the mix i wonder if it's too late. As much as like code, i probably prefer spend sometime with kids. Which by itself is a job, very rewarding, but hard job. So finding time is a challenge. Plus if i do have an hour or so - i'd rather go for a ride. And then other stuff like :  last week i wanted to look at the project that seems to be interesting and i can feel my evenings helping out.  Result :

  • Had to deal with wrecked car ( everybody is fine )
  • AC apparently broke and need a fix ( two visits and research )
  • Roof needs repair and i had to deal with insurance / contractors.
  • Garage door broke.
  • Need new windows  (no, not that,  the real windows)
This is on the top of usual daily things . Do i want to look at the code after all that - nah, not really. Let's hope that everything will resolve itself by the end of the week and then i'll do git pull.
On a positive note - watched interview with Scoble and PlaceBook CEO and apparently people able to do it balancing families and personal lives.

Living will

Somebody just sent me this: 
Last night, my kids and I were sitting in the living room and I said to them, 'I never want to live in a vegetative state, dependent on some machine and fluids from a bottle. If that ever happens, just pull the plug.' 
 
They got up, unplugged the mac, and threw out my beer.

 Just needed to add the phone to the mix. 
 

My thoughts on android UI.

On May 11th i wrote small blog entry about changes i've noticed around android UI in the apps created by google. Apparently it was a good timing. Because on May 12th , android team posted in their blog "Twitter for android : closer look at android's evolving UI patterns" which was followed by google io session Android UI design patterns . Key word here is evolving. If you put it through bs translator it means - hey guys we screwed up but willing to improve.

For a record, i like twitter app look and google I/O app look. I've met with some UI folks at IO and i think that they are  excellent. And the fact that they fixing things is great. However ( this is that big fancy BUT usually follows by "it sucks" ) it shows clearly where google is different from apple. It clear now that Google is company of engineers that building exciting things from technical stand point and Apple is all about design and building beautiful things. If Apple UX team would come to Jobs after pretty much year and a half and said "Um.. you know how we told you we have a good design for iPhone ? Well, we don't and need to change that. A lot." i'm pretty sure that different people will be changing that. In fact it could be happening at google as well, as Google hired Palm lead UI person .

Now things are not just inferior to iPhone, they confusing. For app designers, who want's to follow platform best practices, for developers who implement those things and for end users, who end up with bunch of apps that not using same patterns though platform. Some apps look like iPhone, some like old android, some like new , and some look just like crap . Even after using new twitter for a month, i still press menu in search for refresh. I still expect that if i do long-press something is gonna happen. Basically current state of UI - is a mess. I really hope that Matias going to fix it and soon. With something that will be able to last longer than a year. To be fair the crappy apps part is applied to iPhone as well. It's not UI problem. You want good UI - first two people on the team should be Product Designer and Artist. 

Google changing UX around android apps ?

 Lately i've notice that android apps created by google use different UI patterns from the "standard" look that we know since 1.0. 

25px boring grey title, listviews with black backgrounds, shadows here and there, gradients. Here are, two very simple app to illustrate the look. 

From 2.0 i started notice change in direction - first was change of icons from angled shadow look to a flat beauty. Now i think it's a part of bigger picture. Let's take a look at three apps created by google. Google IO,  Twitter and Facebook. I took two screen shots of each app.

           
What they have in common:

1) Each app have a launcher page from which you select your further action.

2) Standard title is gone and replaced by large title with some actions on it. No or very little gradient and very flat look. I want to say almost the look that MS showed on WP7 demo, but i like this one little bit better.

3) Software search button migrated it's way to the title bar. Which make me think that we should expect devices with no hardware search button and we need to start prepare for it.

4) In two apps refresh made it's way to the title bar as well. "Put most important functions to the title bar" ?

5) Not on the screen shots, but tabs lost gradients as well and now flat.

6) Widget is basically the same.

Overall i really like the new look - small concern that  custom title makes standard android title in the shape it's now completely useless.