I want to talk a little about Android. I am very much going to sidestep the holy war about is it or isn’t it Java, except to say, this looks a lot like something that would have been derived from the Danger stack. The commonalities are striking. As a Sidekick owner, I am terribly pleased with “Java-ish” development for that platform, and I think seeing something similar in wide deployment is great. That said…
First, lets talk about the Android UI API. I recall last year at Sun Tech Days,”The Gos” was asked what, in retrospect he would do different with Java. The first thing he came up with was the Swing API. The “747 Cockpit” feel of the API is overwhelming to new users. Frankly, Android takes this to a whole new level. Just look at the JavaDoc for the Checkbox class:
Constants inherited from class android.view.View
Fields inherited from class android.view.View
Public Constructors
CheckBox(Context context) CheckBox(Context context, AttributeSet attrs, Map inflateParams) CheckBox(Context context, AttributeSet attrs, Map inflateParams, int defStyle)
Methods inherited from class android.widget.CompoundButton
Methods inherited from class android.widget.Button
Methods inherited from class android.widget.TextView
addTextChangedListener, append, append, computeHorizontalScrollRange, computeScroll, computeVerticalScrollRange, debug, getBaseline, getDisabledTextColor, getFilters, getFocusedTextColor, getHintTextColor, getInputMethod, getInterestingRect, getLayout, getLineBounds, getLineCount, getLineHeight, getMovementMethod, getNormalTextColor, getPaint, getPaintFlags, getSelectedTextColor, getText, getTextScaleX, getTextSize, getTransformationMethod, getTypeface, length, onDraw, onFocusChanged, onKeyDown, onKeyUp, onMeasure, onTextChanged, restoreState, saveState, saveStateAndText, setAlignment, setCursorVisible, setDisabledTextColor, setEms, setFilters, setFocusedTextColor, setGravity, setHeight, setHiliteColor, setHint, setHint, setHintTextColor, setHorizontallyScrolling, setIncludeFontPadding, setInputMethod, setLineSpacing, setLines, setMaxEms, setMaxHeight, setMaxLines, setMaxWidth, setMinEms, setMinHeight, setMinLines, setMinWidth, setMovementMethod, setNormalTextColor, setPadding, setPaintFlags, setScroller, setSelectAllOnFocus, setSelectedTextColor, setShadowLayer, setSingleLine, setSingleLine, setText, setText, setText, setText, setText, setText, setTextColor, setTextScaleX, setTextSize, setTextSize, setTransformationMethod, setTypeface, setWidth, windowFocusChanged
Methods inherited from class android.view.View
awakenScrollBars, awakenScrollBars, bringToFront, clearAnimation, clearFocus, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, copyWindowBitmap, createDrawableState, debug, debug, debugIndent, dispatchDraw, dispatchKeyEvent, dispatchMotionEvent, dispatchUnhandledMove, dispatchWindowFocusChanged, draw, drawableStateChanged, findFocus, findParentViewOfType, findViewById, findViewWithTag, focusSearch, focusSearchInDescendants, forceLayout, getAbsoluteLocationOnScreen, getBackground, getBaseline, getBlockDescendantFocus, getBlockUnmatchedKeyUps, getBottom, getContext, getCurrentAnimation, getDefaultSize, getDrawableState, getDrawingRect, getDrawingTime, getFocusType, getFocusables, getGlobalVisibleRect, getGlobalVisibleRect, getHeight, getHitRect, getHorizontalFadingEdgeLength, getId, getInterestingRect, getLayoutParams, getLeft, getLocalVisibleRect, getLocationOnScreen, getMeasuredHeight, getMeasuredWidth, getOnFocusChangeListener, getPaddingBottom, getPaddingLeft, getPaddingRight, getPaddingTop, getParent, getResources, getRight, getRootView, getScrollX, getScrollY, getTag, getTop, getVerticalFadingEdgeLength, getVisibility, getWidth, getWindowBottom, getWindowFrame, getWindowLeft, getWindowRight, getWindowSession, getWindowToken, getWindowTop, hasBackground, hasFocus, hasWindowFocus, initializeFadingEdge, initializeScrollbars, invalidate, invalidate, invalidate, invalidateDrawable, isEnabled, isFocusable, isFocused, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isLayoutRequested, isSelected, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, layout, measure, offsetLeftAndRight, offsetTopAndBottom, onAttachedToWindow, onDetachedFromWindow, onDraw, onDrawAfterChildren, onDrawBackground, onFinishInflate, onFocusChanged, onKeyDown, onKeyUp, onLayout, onMeasure, onMotionEvent, onScrollChanged, onSizeChanged, performClick, postInvalidate, postInvalidateDelayed, refreshDrawableState, requestFocus, requestFocus, requestLayout, requestRectangleOnScreen, resolveSize, scheduleDrawable, scrollBy, scrollTo, setBackground, setBackground, setBackgroundColor, setBlockDescendantFocus, setBlockUnmatchedKeyUps, setCurrentAnimation, setEnabled, setFocusType, setFocusable, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setId, setKeyListener, setLayoutParams, setMeasuredDimension, setOnClickListener, setOnFocusChangeListener, setPadding, setPreferredHeight, setPreferredWidth, setSelected, setTag, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVisibility, setWillNotDraw, startAnimation, takeFocus, unscheduleDrawable, unscheduleDrawable, verifyDrawable, willNotDraw, windowFocusChanged


