All Projects → pwittchen → Searchtwitter

pwittchen / Searchtwitter

Licence: apache-2.0
Android app, which allows to search tweets as user types and scroll them infinitely

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Searchtwitter

Search Tweets Python
Python client for the Twitter search endpoints (v2/Labs/premium/enterprise). Now supports Twitter API v2 /recent and /all search endpoints.
Stars: ✭ 378 (+2600%)
Mutual labels:  twitter-api, twitter
Twitter Php
Small and easy PHP library for sending messages to Twitter and receiving statuses.
Stars: ✭ 507 (+3521.43%)
Mutual labels:  twitter-api, twitter
Twitter Sort
🐦 Sort numbers with some help from the Twitter API
Stars: ✭ 384 (+2642.86%)
Mutual labels:  twitter-api, twitter
Remote Dev Jobs Streamer
Match Tweets containing remote developer jobs using Filtered Stream and Tweet Annotations
Stars: ✭ 24 (+71.43%)
Mutual labels:  twitter-api, twitter
Twitter
Twitter API for Laravel 5.5+, 6.x, 7.x & 8.x
Stars: ✭ 755 (+5292.86%)
Mutual labels:  twitter-api, twitter
Advertools
advertools - online marketing productivity and analysis tools
Stars: ✭ 341 (+2335.71%)
Mutual labels:  twitter-api, twitter
Twitteroauth
The most popular PHP library for use with the Twitter OAuth REST API.
Stars: ✭ 4,134 (+29428.57%)
Mutual labels:  twitter-api, twitter
Surfbird
A Microblogging client built on Electron and Vue
Stars: ✭ 309 (+2107.14%)
Mutual labels:  twitter-api, twitter
Twitterapi
Minimal python wrapper for Twitter's REST and Streaming APIs
Stars: ✭ 724 (+5071.43%)
Mutual labels:  twitter-api, twitter
Social Amnesia
Forget the past. Social Amnesia makes sure your social media accounts only show your posts from recent history, not from "that phase" 5 years ago.
Stars: ✭ 656 (+4585.71%)
Mutual labels:  twitter-api, twitter
Mastodon Twitter Poster
Crossposter to post statuses between Mastodon and Twitter
Stars: ✭ 317 (+2164.29%)
Mutual labels:  twitter-api, twitter
Um Twitteremojianalysis
Twitter Emoji Analysis
Stars: ✭ 6 (-57.14%)
Mutual labels:  twitter-api, twitter
Tweetie
Simple jQuery Twitter feed plugin
Stars: ✭ 314 (+2142.86%)
Mutual labels:  twitter-api, twitter
Tweetbotornot
🤖 R package for detecting Twitter bots via machine learning
Stars: ✭ 355 (+2435.71%)
Mutual labels:  twitter-api, twitter
Twitter Api V2 Sample Code
Sample code for the Twitter API early access endpoints (Python, Java, Ruby, and Node.js).
Stars: ✭ 306 (+2085.71%)
Mutual labels:  twitter-api, twitter
Linqtotwitter
LINQ Provider for the Twitter API (C# Twitter Library)
Stars: ✭ 401 (+2764.29%)
Mutual labels:  twitter-api, twitter
Twitter Scraper
Scrape the Twitter Frontend API without authentication.
Stars: ✭ 3,037 (+21592.86%)
Mutual labels:  twitter-api, twitter
Coretweet
Yet Another .NET Twitter Library
Stars: ✭ 281 (+1907.14%)
Mutual labels:  twitter-api, twitter
Twitter Lite
A tiny, full-featured, flexible client / server library for the Twitter API
Stars: ✭ 611 (+4264.29%)
Mutual labels:  twitter-api, twitter
Tweetinvi
Tweetinvi, an intuitive Twitter C# library for the REST and Stream API. It supports .NET, .NETCore, UAP (Xamarin)...
Stars: ✭ 812 (+5700%)
Mutual labels:  twitter-api, twitter

SearchTwitter Build Status

Android app, which allows to search tweets as user types and scroll them infinitely

Utilizes modern Android libraries

for Dependency Injection, Reactive Programming, Networking, Images Loading, Logging, User Interface, etc.

Code quality is assured by Unit Tests, Static Code Analysis and Continuous Integration.

Contents

Overview

User can search tweets with a given keyword as he or she types or by touching search icon. Moreover, application has so called infinite scroll for tweets. Implementation of the dynamic search is quite simple thanks to RxJava and Reactive Programming principles.

Screenshot

Screenshot

Configuration of Twitter API keys and tokens

Go to https://apps.twitter.com/ website, register your account and Twitter app. Next, generate your keys and tokens. When you have them, go to gradle.properties file in the repository and add the following contents to this file:

TWITTER_CONSUMER_KEY=your-consumer-key
TWITTER_CONSUMER_SECRET=your-consumer-secret
TWITTER_ACCESS_TOKEN=your-access-token
TWITTER_ACCESS_TOKEN_SECRET=your-access-token-secret

and set your keys and tokens to appropriate variables.

After that, you can build and run the app.

Working with secrets in Git Repository

We shouldn't keep tokens and API keys in the Git repository. In order to work efficiently with Git, we can add gradle.properties file to .gitignore file in the repository or add the following aliases to our .gitconfig file:

ignore-local = update-index --assume-unchanged
unignore-local = update-index --no-assume-unchanged
ignored-local = !git ls-files -v | grep "^[[:lower:]]"

Then, we can execute:

$ git ignore-local gradle.properties

After that, we can add our keys and tokens to this file and our secrets won't be commited or pushed.

To undo this operation, we can simply call:

$ git unignore-local gradle.properties

To list all files ingored locally in the Git repository, we can call:

$ git ignored-local

Twitter API rate limits

Please remember that Twitter API has its own rate limits, so when user will perform too many requests in a short period of time, further requests may be blocked for a given amount of time. Don't worry - it's not so long. Error code for rate limit is provided in TwitterApiProvider class and is used by RxJava error handling in MainActivity class.

Building the project

We can build project with Gradle Wrapper and the following command:

./gradlew build

Tests

Tets are located in app/src/androidTest/java and can be executed on device or emulator with the following command:

./gradlew connectedCheck

Reports from tests are located in app/build/reports/androidTests/ directory.

Static Code Analysis

Project uses the following tools for static code analysis configured in config/quality.gradle file:

  • Checkstyle
  • PMD
  • FindBugs
  • Android Lint

Reference to this file is added in app/build.gradle file.

Static Code analysis can be executed with the following command:

./gradlew check

Reports from analysis are generated in app/build/reports/ directory.

Code style

Code style used in the project is called SquareAndroid from Java Code Styles repository by Square available at: https://github.com/square/java-code-styles.

Used libraries

License

Copyright 2016 Piotr Wittchen

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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].