I see no reason why Twitter should open source their app. They have absolutely no obligation to, and IMO, should not be pressured to do so just because some blogger feels that " there is an increasing divide between the UI patterns in their Android app versus the UI patterns that most developers work with".
The author says: "And lastly, Twitter should release this app because they said they would.".
Well, here is the statement from Twitter:
"We had a great time working with the Android team and are thrilled that Google will be open sourcing the code used in this app in the near future."
Saying Google will open source the code used in this app is completely different from saying "we ourselves will open source this app". It almost certainly means that Google will open source some small component that is used in the app. IMO, it is a bit of a leap to interpret that statement as saying "Twitter will open source the app".
IMO, in the absence of a more complete statement from Twitter regarding open sourcing their app, it is dishonest of the blogger to say Twitter "has no interest in making good on their word" when it seems like the blogger is putting words in Twitter's mouth. If a more explicit statement exists from Twitter, then the blogger should have cited that, instead of the slightly-but-not-really-ambiguous statement from Twitter that he used.
Twitter has a solid collection of open source stuff on GitHub, i.e. the Twitter Bootstrap. Sure, maybe they don't have to release the ENTIRE app, but it would be ideal if they could contribute some of their work (such as the UI patterns) back to the community.
I've searched for more info on this, and each time it comes back to that one quote I posted. That quote, IMO, absolutely is not saying Twitter will open source their app. It sounds to me like they were saying Google would open source some code used in the app.
Maybe I'm missing something, but I really do not see that quote the same way the OP does.
Most of Facebook's Android app is just a web view as is their iPad app and probably their iPhone app too. I wouldn't be surprised if the Twitter Android app is also a web view.
"You'll notice that Twitter is no longer using the standard Android ListActivity. There is a slight border around this list right now, which is VERY new to Android apps."
A ListView with some layout_margin ? Am I missing something special ?
I always felt the ListView needed to expand the screen. I could be wrong though, this might just be a layout_marginLeft or layout_paddingLeft attribute. Either way, it is a very new pattern for Android apps. You'll also notice the rounded corners, which I don't think come naturally with a ListView margin.
I've seen it a few times (though I can't recall any examples immediately) in the market, and implemented it once or twice.
Usually it's in apps that are ported from iOS with minimal consideration for Android user interface expectations, because it's a much more standard design pattern there.
Yeah i can think of a number of ways to do this with padding or layout margins and then setting a shape drawable or 9 patch for as the backround of the list or its container. In fact i just checked and i have done this for a couple published apps. The pull to refresh feature is interesting. I would be tempted to mess with the sliding door class for a solution.
I don't see it either. There is nothing in that layout that I don't know how to implement, so unless I'm missing something more subtle, I don't think it's anything new.
Pull to Refresh was invented by Loren Brichter, author of the Tweetie app for iPhone, and he filed a patent for it (http://gorumors.com/twitter-patent-drag-to-refresh/2754292). As the article states, the patent application was submitted the day before Tweetie was acquired by Twitter, so we don't know for sure if Loren or Twitter own it, but it sure isn't Apple.
So the argument is basically, "I want my app to look like yours; so open source it for me to steal the layout." Is this really how people write software these days?
It's better for the overall ecosystem. Higher quality apps means more time spent on your phone. If we can't duplicate the features of the app that aren't domain-specific, it results in an overall worse feel for the end user.
I understand that Twitter said they were going to open source their application a very long time ago, but I've found that if I am interested on how they do anything the folks on the official Android irc channel are very helpful. Their initial version of the application used the dashboard interface that google revealed as the future of Android UI but there was absolutely no example code on how to do it until the recent Google I/O application that was open sourced. The people on the IRC channel helped me replicate that very quickly.
If you were angry enough to write a blog post, you could've also looked into decompiling the code and seeing how they do it yourself. If you use dex2jar:
you can see that the view you're discussing is a custom ListView they made called RefreshableListView which actually does extend ListView so it is technically a ListView.
25 comments
[ 4.4 ms ] story [ 50.5 ms ] threadThe author says: "And lastly, Twitter should release this app because they said they would.".
Well, here is the statement from Twitter:
"We had a great time working with the Android team and are thrilled that Google will be open sourcing the code used in this app in the near future."
Saying Google will open source the code used in this app is completely different from saying "we ourselves will open source this app". It almost certainly means that Google will open source some small component that is used in the app. IMO, it is a bit of a leap to interpret that statement as saying "Twitter will open source the app".
IMO, in the absence of a more complete statement from Twitter regarding open sourcing their app, it is dishonest of the blogger to say Twitter "has no interest in making good on their word" when it seems like the blogger is putting words in Twitter's mouth. If a more explicit statement exists from Twitter, then the blogger should have cited that, instead of the slightly-but-not-really-ambiguous statement from Twitter that he used.
http://stackoverflow.com/questions/4014426/twitter-android-a...
http://stackoverflow.com/questions/3413980/android-twitter-a...
Twitter has a solid collection of open source stuff on GitHub, i.e. the Twitter Bootstrap. Sure, maybe they don't have to release the ENTIRE app, but it would be ideal if they could contribute some of their work (such as the UI patterns) back to the community.
Maybe I'm missing something, but I really do not see that quote the same way the OP does.
"We had a great time working with the Android team and are thrilled that Google will be open sourcing the code used in this app in the near future."
To this:
"We had a great time working with the Android team and are thrilled that we will be open sourcing this app in the near future."
Then I would have been convinced.
A ListView with some layout_margin ? Am I missing something special ?
The list at the bottom is just a RelativeLayout, with some rounded corners. Wrap this in a ScrollView, and voila.
See http://developer.android.com/guide/topics/resources/drawable...
Usually it's in apps that are ported from iOS with minimal consideration for Android user interface expectations, because it's a much more standard design pattern there.
Pull to Refresh was invented by Loren Brichter, author of the Tweetie app for iPhone, and he filed a patent for it (http://gorumors.com/twitter-patent-drag-to-refresh/2754292). As the article states, the patent application was submitted the day before Tweetie was acquired by Twitter, so we don't know for sure if Loren or Twitter own it, but it sure isn't Apple.
Open sourcing it would just help people to publish slightly different versions with little effort - which is what they say they don't want...
If you were angry enough to write a blog post, you could've also looked into decompiling the code and seeing how they do it yourself. If you use dex2jar:
http://code.google.com/p/dex2jar/
you can see that the view you're discussing is a custom ListView they made called RefreshableListView which actually does extend ListView so it is technically a ListView.