

Twitter: It's time to open source your Android app - chuinard
http://chuinard.com/twitter-its-time-to-open-source-your-android

======
king_magic
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.

~~~
chuinard
From what I've read, they have said it a few times.

[http://stackoverflow.com/questions/4014426/twitter-
android-a...](http://stackoverflow.com/questions/4014426/twitter-android-app-
source-code)

[http://stackoverflow.com/questions/3413980/android-
twitter-a...](http://stackoverflow.com/questions/3413980/android-twitter-app-
source-code)

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.

~~~
king_magic
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.

~~~
chuinard
If I changed the words from 'said they would' to 'said it would be', would
that be satisfactory?

~~~
king_magic
No, I don't think so. If Twitter's statement changed from this:

 _"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.

------
adestefan
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?

~~~
speakbin
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.

------
nekgrim
"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 ?

~~~
chuinard
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.

~~~
nekgrim
I've made this app :
[https://market.android.com/details?id=com.cardiweb.carrefour...](https://market.android.com/details?id=com.cardiweb.carrefour.spectacles)
See the third screenshot :
[https://lh6.ggpht.com/FOyDJtPGapRpBk0zSpFcXVUu45zHEY5OTaHfto...](https://lh6.ggpht.com/FOyDJtPGapRpBk0zSpFcXVUu45zHEY5OTaHftoTphUYl0IT0GziQ6avugg4dRzApPQ)

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...](http://developer.android.com/guide/topics/resources/drawable-
resource.html#Shape)

------
jc4p
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:

<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.

------
lnanek
Hasn't Twitter straight out requested that people not develop more clients?
Example article:
[http://www.readwriteweb.com/archives/twitter_tells_developer...](http://www.readwriteweb.com/archives/twitter_tells_developers_to_stop_building_twitter.php)

Open sourcing it would just help people to publish slightly different versions
with little effort - which is what they say they don't want...

------
nt_mark
I haven't checked this out, all I'm saying is it looks a LOT like
<http://mobile.twitter.com>. Same border, same pull down to refresh. Mobile
web FTW.

------
alimbada
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.

------
adelevie
The Facebook app for Android does a decent job with pull to refresh.

------
outside1234
Warning: the "pull to update" feature is patented by Apple.

~~~
martingordon
This is simply not true.

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.

