Thursday, March 11, 2010

Android Tab Rant

July 31st, 2009 by s

So I’ve been trying out an Android phone for a couple of weeks now (ADP1), and it’s not a bad device. I’d heard grumbling about it, so I was pleasantly surprised. I like the physical keyboard much better than the Palm Pre’s or the Nokia E75’s.

My biggest complaint is a software one, and a UI one at that. I don’t like the standard Tabs. I’ve seen other rants about the Tabs on Android, but I don’t really mind the huge, blocky, drab look. It kind of goes along with the clunk Android buttons and fits the whole utilitarian, unapologetically, non-sexy Android vibe.

I don’t like the placement of the built-in Android tabs, specifically how they’re on the top of the screen. Sure you can roll your own, but a lot of apps use the standard tabs.

Even Androids Get the Blues

It’s not like I have sausage fingers either. I have fairly large hands, but it’s still a cumbersome move to reach a top left tab with my thumb when operating the phone one-handed. Maybe the Android team has freakish, Uma Thurman-like thumbs. When using an app with tabs on top, I usually end up switching to holding the phone in my left hand and using my right index finger.

I definitely lean toward tabs on the bottom of the screen (as well as on-screen buttons). It puts most of the primary actions close to the physical buttons (menu, home, back, etc.) Plus it keeps your thumb from blocking you from seeing things happening on the screen.

The HTC Hero got many things right. One thing I especially like is how they do their tabs.

So when it came time to do the UI for an Android app that I’m working on (Practice Speaking English, below right), I decided to screw the standard tabs and emulate the HTC tabs (below left). (as well as iPhone tabs too)

Posted in Android | No Comments »

Palm Pre Mojo SDK Released!

July 16th, 2009 by s

Woohoo! The Palm Pre SDK is officially released.

Mojo SDK Released

Posted in Palm Pre | No Comments »

July and August Mobile Events

July 15th, 2009 by s

I missed these the last time I posted about events.  Here are a few more mobile/geo events around Silicon Valley this summer.

July 21
Web Map Social Mountain View, 7pm
NASA WorldWind, Brightkite, WeoGeo + networking

July 22
Silicon Valley Android Developers Palo Alto, 6:30pm
App demos and how to program in Android

July 27
iPhone Business Meetup Santa Clara, 6pm
Challenges and Opportunities for iPhone in Enterprises

July 28
Verizon Developer Conference San Jose, CA

July 28
Palm Pre, Mojo, and webOS Meetup Sunnyvale, 7pm

August 7
GTUG Campout Mountain View
Weekend Hackathon on Google Technologies

Posted in Android, Mobile, Palm Pre, events, iphone | No Comments »

Google Wave Hackathon!

July 9th, 2009 by s

Cool, I just was that there’s going to be a Google Wave Hackathon coming up on July 20.

Google Wave Hackathon and Federation Day

Posted in Wave | No Comments »

Clang for iPhone – syntax error before ‘AT_NAME’ token

July 6th, 2009 by s

So I finally got tired of struggling with Instruments trying to find memory leaks. I first read about Clang a while ago , but just filed it away to check out later.

But Instruments proved too frustrating, so I downloaded Clang from here. It was a little tricky to install, but after a few hurdles, I found 20 memory leaks in my app. If you’re developing iPhone apps, you really need to check out Clang if you haven’t already.

Two things tripped me up in the installation process.

1. Could not find clang-cc line

The solution for this was at cramfighter.com. Basically I need to change some projects settings.

2. syntax error before ‘AT_NAME’ token

This was tricker to figure out because there errors weren’t in my files and looks like the problem started with the 3.0 SDK. I ended up going with this solution as a temporary workaround. This involved commenting out the UILocalizedIndexedCollation.h import in UIKit.h.

As is often the case, after I got things up and running, I found a great page with an intro to Clang at fruitstandsoftware.com.

Posted in iphone | No Comments »

iPhone File Upload Progress Bar

July 3rd, 2009 by s

So I’ve been working on an iPhone app that uploads a file to a website through a POST request. At first I just used a standard Activity Indicator during the upload, but every time I would test out the app out around town, it made for a terrible user experience because uploading an image can take a while.

I’d tried a few times to get a nice Progress Bar showing how many bytes have been uploaded, but gave up because I could never get it to work. Then today I noticed the didSendBodyData delegate method for NSURLConnection. I don’t know how I missed this before, but I feel like an idiot.

NSURLConnection Class Reference

connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:
Sent as the body (message data) of a request is transmitted (such as in an http POST request).

- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSINteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite
Parameters

connection
The connection sending the message.
bytesWritten
The number of bytes written in the latest write.
totalBytesWritten
The total number of bytes written for this connection.
totalBytesExpectedToWrite
The number of bytes the connection expects to write.

Discussion

This method provides an estimate of the progress of a URL upload.

The value of totalBytesExpectedToWrite may change during the upload if the request needs to be retransmitted due to a lost connection or an authentication challenge from the server.

Posted in iphone | 1 Comment »

Upcoming Events

July 2nd, 2009 by s

May and June has a lot of great events. These look promising for July and August.

July 14 San Francisco Android Users Group, San Francisco

July 20-24 OSCON 2009, San Jose

July 31-Aug 2 iPhone Dev Camp 3, Sunnyvale

[Probably Delayed] Pre Dev Camp, San Francisco

Aug 12-13 Open Source World/Foss Dev Camp, San Francisco

Posted in Android, events, iphone | No Comments »