FireTweet


Source link: https://github.com/getlantern/firetweet

FireTweet

FireTweet is an Android app powered by Lantern that gives direct unblocked access to Twitter from anywhere in the world.

You can download the latest build of FireTweet here.

Building Firetweet

Building from Android Studio

Prerequisites

Download the most recent copy of the Firetweet's source code using git:

mkdir -p ~/AndroidstudioProjects cd ~/AndroidstudioProjects git clone https://github.com/getlantern/firetweet.git 

In the welcome screen choose the "Open an existing Android Studio" option and select the firetweet folder you just checked out with git.

Wait until Android Studio finishes importing the project.

After a few minutes you'll end up with a blank workspace, click the 1. Project tab from the left side of the screen and make sure the combo box near the play button says firetweet.

If you want to test Firetweet on an Android emulator or into a real device, just click the play button and choose on which device you want to deploy Lantern. If you want to test this on an emulator make sure you're using the ARM architecture.

To build FireTweet select the Make Project action from the Build menu.

This will create a ./firetweet/build/outputs/apk/firetweet-fdroid-debug.apk file that you can install on an android device with the help of adb:

adb install ./firetweet/build/outputs/apk/firetweet-fdroid-debug.apk 

Building from the Command Line (beta, for development only)

Prerequisites

  • Java Development Kit 1.7
  • Git

Building, installing and running

Build the Debug target:

make build-debug 

Install it:

make install 

Run the app on the device from the command line:

make run 

By default, all three tasks will be run in order with:

make 

How is Lantern included in Firetweet?

We created a really small version of Lantern that can be compiled for Android phones and used by Android apps. This library is bundled with Firetweet, you can always find the latest version of the library here.

If you prefer to build this binary blob for yourself you may check out the Lantern building instructions, in particular the "Creating libgojni.so" section.

VirtualBox Android development images

Why use a Virtualbox image instead of the Android Emulator or a real device?

There are several reasons for doing so. When comparing with the Android Emulator, the main reason is that Virtualbox is faster. It virtualizes the x86 architecture, which introduces less overhead than full ARM emulation. When comparing with a real device, there are also reasons for using Virtualbox instead:

  • On-screen development. This might be useful for remote pair programming or visual testing.
  • Screen size customization.
  • Easier build and bug reproducibility.

One thing to note is that the majority of Android devices use the ARM architecture. Virtualbox relies on the x86 architecture instead. However, the emulation feature called Houdini binary translation allows for instruction translation, which means that we can run native ARM code on our x86 emulator.

The Android x86 images are based on this project: http://www.android-x86.org/

You can find the latest image here

Installing on the VirtualBox image

  1. Make sure that port forwarding is set from 5555 (host) to 5555 (guest) for the main network interface.
  2. Run the Virtualbox image.
  3. Connect with ADB
adb connect localhost:5555 
  1. Check that the device is properly connected
adb devices 
  1. Run make (it will compile, upload and run the app on VirtualBox)
make 

Development notes

Screen orientation

  • Press F12 two times in less than 2 seconds = Rotate 90º to the LEFT.
  • Press F11 two times in less than 2 seconds = Rotate 90º to the RiGHT.
  • Press F10 two times in less than 2 seconds = Rotate 180º.
  • Press F9 two times in less than 2 seconds = Normal view 0/360º.

Screen size

  • Using the kernel VGA configuration option:

When in GRUB, hit 'e' to edit the first entry, then 'e' again to edit the first line. Append the text 'vga=ask' at the end of the boot line. Choose any of the display sizes, but the depth must be 16.

  • Using an app (recommended):

Use the app called Resolution Changer and activate the resolution overriding. There is no need to reboot after this.

Misc

  • For better UI integration, disable mouse integration (Host+I)
  • Certain apps, including Firetweet reorient the screen. This will remap the mouse coordinates and motion, which will drive you crazy! First try rotating setting the screen orientation to landscape. Then, you can try also setting a screen size with Resolution Changer to a new height/width that inverts these values.

Open Source

FireTweet was forked from Twidere, an Open Source client for Twitter.

Twidere - Twitter client for Android

Copyright (C) 2012-2014 Mariotaku Lee [email protected]

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Resources

The mapsforge project provides free and open software for the rendering of maps based on OpenStreetMap data.

A plugin for AndroidStudio/Intellij that creates Data Transfer Objects(DTO) from the given feed.

ReactiveNetwork is an Android library listening network connection state and change of the WiFi signal strength with RxJava Observables. It's a successor of Network Events library rewritten with Reactive Programming approach.

Asynchronous Workers and Worker Managers for Android.

KVS Schema is a code generation library to manage key-value data for Android.

A 3d database ORM experiment for Android.

Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes