Git Product home page Git Product logo

tweetlanes's Introduction

Tweet Lanes

Tweet Lanes is a fully functional Twitter client, targeted at Android devices running API 14 and above.

Tweet Lanes

Tweet Lanes on the Google Play Store

This project contains the full source code to:

  • The Tweet Lanes client application.
  • The accompanying SocialNetLib project, which interfaces with the Twitter and App.net APIs.
  • All art resources, notably the logo and Play Store listings.
  • The App Engine project used for tweetlanes.com.

The only items used in the Play Store build of Tweet Lanes not present in this repository are:

  • The Twitter Application consumer and secret keys.
  • The App.net consumer and secret keys.
  • The Play Store key used to sign the application.

Credentials

To build and use the app, you'll need to create your own Twitter application (and App.net application, if you have a developer account).

Twitter

  • Create a Twitter application

  • Don't worry about the callback url, just put a valid http url.

  • Once you create it, go to it's settings.

  • Inside Application Type:

    • Make sure Allow this application to be used to Sign in with Twitter is checked
    • Set the Access to Read, Write and Access direct messages
  • Now that you have the Twitter app configured, open the java file: android/app/src/main/java/com/tweetlanes/android/core/ConsumerKeyConstants.java and modify your TWITTER_CONSUMER_KEY and TWITTER_CONSUMER_SECRET variables with the ones from your Twitter app.

App.net

App.net usage requires a similar set of steps.

Developed By

Credits

Tweet Lanes uses the following open-source software:

Disclaimer

A few points to considering when browsing this code:

  1. Tweet Lanes was the first app I wrote in Java, as well as my first Android app. It is both my Android and Java 'Hello World'. The project contains much code that causes me to cringe when looking at it now, but it exists because I simply didn't know better at the time of writing it.
  2. Tweet Lanes was developed on the fly. I often added a feature and shipped it that night. If that new code was buggy, I sometimes added a quick and dirty fix to get things going again. The intent was often to go back and clean such code up, but due to the sheer amount of work I had to do, that rarely ended up happening.

In conclusion: there is currently some dog-awful code in this project. I know this only too well. Please try not to judge my coding ability on the worst parts, but do feel free to fork 'n fix :)

Usage

\android\client contains the bulk of the code. This project is dependent on the following libraries:

  • \android\libraries\SocialNetLib - An abstracted library that interfaces with Twitter and App.net.

Additional notes:

  • Configuration files for Eclipse are provided. If using Eclipse/ADT, you should be able to import the client and libraries straight in.

License

/*
 * Copyright (C) 2013 Chris Lacy
 *
 * 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.
 */

Contributions

Contributions are most welcome. In fact, they are actively encouraged.

Have a read here for what I consider to be the most pressing tasks in need to attention.

Before contributing please have a read of our wiki which contains useful information to get you started and also where to send your pull requests.

Note

I retain the copyright and ownership of the Tweet Lanes name. If you choose to release a fork of this code, please use a different name for your project.

tweetlanes's People

Contributors

adneal avatar andrewcaul avatar arunsahadeo avatar atomfrede avatar blythmeister avatar chrislacy avatar devisnik avatar fammy avatar garrett avatar jamesduffy avatar macarse avatar modos189 avatar mohitd avatar r4md4c avatar rawkbob avatar rbarbantan avatar sal0max avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tweetlanes's Issues

Fail whale when running the app from a build

I just built the app and run it in my phone. When I try to login, I get the fail whale.
I am not getting it with the app downloaded from the play store.

What might be causing the issue?

Thanks

Background service polling for new tweets

Biggest feature request from users.

This should just be the setup for polling and not the full implementation with notifications. I believe it will be a big undertaking and we should split it up into small simple tasks.

How do we want to break it down?

DashClock support

Jason started working on this, but needs the data the notifications/background service will provide.

License clarification

There seems to be an inconsistency between the notice in LICENSE.md and the Apache License 2.0 § 9, which allows commercial use. Is this a hard prohibition against charging for TweetLanes or more of a suggestion? I have no plans to sell TweetLanes, I'm just hoping to see it in F-Droid :)

Twitter URL shorter length

The t.co URL shorter length needs to be increased as currently the hard coded values are shorter than the generated URLs returned by twitter causing the characters left count when composing a tweet to be incorrect and post failure notifications when trying to tweet.

Current values should be as detailed via the following api call:

https://dev.twitter.com/docs/api/1.1/get/help/configuration

A short term fix will be to increase the values in the following file
https://github.com/chrislacy/TweetLanes/blob/master/android/libraries/SocialNetLib/src/com/twitter/Validator.java - pull request: #50

Long term is to use the api call and use the values returned by the api.

Also, to note, there needs to be an additional value for tweets with media, currently twitter returns URLs with 23 characters which is 1 more than the non-HTTPS URLs and the same as HTTPS URLs.

Cache tweets for the detailed view

When tapping on a tweet, it always reloads the tweet in the next view. This is annoying on cell data, especially when on a bad connection (such as on GRPS-level-speed).

Licence problem

Twidere is published under GPLv3. Use of that code is impossible under an Apache licensed project.

Save image created duplicates

When pressing the save image button in the image viewer, 2 copies are saved.

One in dcim/camera/ folder and a second in pictures/tweet lanes/

Tweetlanes forgets the last viewed lane on opening

Occasionally rather than displaying the last viewed lane (usually the timeline) Tweetlanes will display another lane when opened. In my case this is usually the "My Tweets" lane, though this may depend on the order of the lanes and which you have visible. Ideally you should be able to mark a lane as default and have it always open there, or opt to display whichever lane was visible when the app was closed.

Inline "discussion" and "retweeted" in the tweet view?

Most of the time, in the tweet details view, there are no discussions or retweets. It takes sliding over to the other tabs to reveal this fact, however.

Can the tweets display instantly (related: #11) and then the discussion and retweet information be loaded under the tweet itself?

Edit profile

Allow the user to edit their profile from within the app

Rate Limit Exceeded easily

It's fairly easy to get the "Rate Limit Exceeded" message on a Twitter account. Unsure if this is due to API 1.1 changes or the App.net changes (or some combination of the two).

Reproduce:

  • Keep scrolling through timeline
  • Switch between Twitter and App.net account

Discussion doesn't load

When going into the tweet details view and there to the discussion tab, the current version of TweetLanes in the play store displays only "No content loaded at this time." Refreshing that view displays "Loading...", but nothing ever happens. In previous versions this worked.

ADN timeline showing Tweets and ADN messages

I just installed the beta with ADN support announced here: https://twitter.com/chrismlacy/status/309754532064272384

I have added my App.net user account, which went well. When I view my TL when switched into the ADN account, the TL shows my Twitter tweets mixed (chronologically) with the ADN messages.

Other lanes like My posts, Interactions and Global feed are pure ADN messages. TL and @mentions are mixed.

Is this intended behavior?

If so, then there is a niggle: Twitter avatars not loading when switched into the ADN account.

Android 4.1.1 (Yakjuxw) on Galaxy Nexus.

Large font size setting clips user names in TL view

See the screenshot. When you choose the Large font size in the settings, the font size of the user name is also larger and the lower part of the character (most stuff under the baseline) is clipped.

This does not happen if you choose any other font size. With any other font size, from Extra small to Extra large, the font size of the user name appears to stay the same. Hence no clipping.

Only when you choose the Large font, the user names are also displayed larger and get clipped.

Clean up loading and caching of images to one system

Clean up the loading and caching of images from a URL. Two systems are currently in place, which is not ideal. Chris suggests to go for using the latest, stall-free version of UrlImageViewHelper across the board. Making this change should also help greatly help with the app's overall smoothness.

New message lane notification

See the screenshot. I would really like to see someting like a "new message lane notification" or "new message lane indicator" that shows you if a lane has new messages.

Right now you only see if there are new messages in a lane when you are actually in the lane: the blue pop-up bar at the top.

When you have a lot of lanes (e.g. when you have a lot of lists), then it would be useful to only scroll the 'lane tabs' and enter those lanes that have new messages.

This is the thing I really like about Tweetdeck: it's got the bullets at the top of the screen, indicating your columns and if a column has new messages, the bullet is highlighted. You immediately see how many and which columns there are with new messages.

Never mind my professional image editing skills, you get the point: on the left an indicator showing the number of messages, on the right just a simple visual indicator that the lane has new messages.

New message lane notification

Better media support for App.net

App.net isn't linking the various image posting services that the Twitter half of the app supports.

Add support for:

  • Instagram
  • img.ly
  • youtube
  • others (update this issue)
  • bli.ms (App.net only)

Tutorial doesn't mention App.net

When you use Tweet Lanes for the first time, you can select the App.net as your service, but the tutorial that follows is Twitter specific.

The users to follow (@chrismlacy and @tweetlanes) are hard coded to the Twitter IDs, and don't follow on App.net.

Larger inline media

A few of the other Twitter clients for Android have larger previews for inline media (spanning the width of the text area), instead of a small thumbnail floated to the right of the text.

Should this be considered for TweetLanes too?

Reasons:

  1. It looks a bit slicker when scanning the timeline, as elements are more aligned.
  2. It's easier to see the content of the image in a (slightly) larger preview.

Mute users

I would really like to see Mute added to both Twitter and App.net. I use this all the time in other clients, especially on the Global Feed of App.net.

Status within lane not remembered

When switching accounts, the last read status is not always remember (or remembered wrong). This often puts you at the top of the timeline when looking at the new account.

Enhanced logo & icon

While vectorizing the TweetLanes logo, I played around with the style a bit.

Here's a softer version (using blends & gradients):
tweetlanes-soft

Here's a version based on the above, with outlines, to make the graphic a bit more stylized and stand out better on light backgrounds:
tweetlanes-soft-outline

Both variants were done in Inkscape, each one is completely scalable, and I can make the SVG available.

I have some ideas of tweaking the graphic a little further, but on this first pass, I wanted the shapes and color to stay pretty true to the original graphic.

What do you think?

Tablet support

TweetLanes is awesome, but lacks tablet support.

@chrislacy: I remember reading that you tweeted about various ideas to support tablets better. Do you have mockups to share or any thoughts on the best way to support both 7" and 10" tablets? (And perhaps “phablets” too.)

How does everyone feel about the app icon?

I think the icon is alright, but I would like to see something a bit classier and elegant. (Something that begs to be touched) I know a few design students at my college and I might be able to trade them food for work.

Tweetmarker/ADN Stream Marker support

The API component of this has been implemented in TweetMarkerAPI.java, but it needs wiring up, and likely background sync and caching of tweets needs to be implemented first.

Implement deleting a tweet

I think it is necessary to be able to delete own tweets in TweetLanes as it is possible in nearly (?) all other Twitter clients.

Tap a link in a tweet - incorrect behaviour

Steps to reproduce:-

  1. Find tweet with a link to user/hashtag/link.
  2. Click link on the tweet
  3. Tweet detail is opened (or url if external link) - Unwanted action
  4. Press back or close browser and the users profile/hashtag search is opened - this is what should have been shown at 3
  5. Press back again to take you to the tweet list.

What should happen:

  1. click username/hashtag/link within tweet
  2. user profile/search/url opens
  3. press back to return to tweet list

This may have been caused by this merge as I never noticed this behaviour prior to this:-
#9

Reload Avatars when they change

Currently, TweetLanes only loads avatars once and keeps them, independent of the actual current avatar of the user. This should be fixed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.