Giter Site home page Giter Site logo

push-android's Introduction

Push-Android

This is the repository for the Android app portion of the Push app ecosystem. Theoretically, you should never have to actually touch this code. The idea is that it is pulled once, and sits in a folder. The generator will then automatically customize and build the code.

Features

  • Offline caching of stories
  • Push notification support
  • Analytics support
  • In-line images in stories
  • YouTube player support

Requirements

  • *nix based system (tested on MacOS 10.13 but should work similarly on Linux.)
  • Git Installation instructions here
  • Android Studio found here
  • The Push Backend must be set up before you start here. These instructions are pretty short since most of the work is done by that part of the project.

Note: This project with not work without the generator. The generator adds in specifically needed and customized files, without them everything will break.

Setup steps

  1. Clone this repository git clone https://github.com/PushOCCRP/Push-Android
  2. Create the app in the Google Play Developer Console
  3. Create the app in the Firebase Conosle
  4. After choosing your new app, look to the left side of the conosle, click the "notifications" menu item.
  5. Enter the app id and name (make sure it's the same as in the push generator configuration file)
  6. A file called google-services.json should automatically download.
  7. Copy the google-services.json file to the /google-services/ folder in the generator.
  8. Run the generator https://github.com/PushOCCRP/Push-Generator in offline mode with the -o flag
  9. Open Android Studio. The studio will take some time to build the app up with your local settings.
  10. Do a test build, if it breaks, submit a bug report.

push-android's People

Contributors

bryanlamtoo avatar cguess avatar davidlemayian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

push-android's Issues

Crash: when opening internal link

Opening "The Mayor's Hidden Property" on my tablet, and clicking the link, nothing happened -- it just froze. Then when I click "back" it crashes

Change date to time

Right now the default format for the json is date only, change this to time after doin so on the backend as well.

Video

Integrate video embeds.

Search

Allow a search to be performed against the backend and display results.

Converting to Kotlin

I just received a Mozilla Open Source Software grant to convert Android to Kotlin. This is the issue that will track that progress.

However, what we'll also do is start small, write tests for a class, convert to Kotlin as the tests pass. Changing the architecture wildly is probably not a good idea at this point.

The android app needs more love than iOS so some refactoring may be necessary. If so, tests should still be written, but commit messages have to be very explicit.

gradle build seems looking in src/ instead of app/src/

Dear All

I am trying to build Push-Android using the Generator, i.e., with:

$ ruby push.rb -o -aandroid -mandroid

The script's "gradle build" didn't work out of the box. I have updated some version numbers and a repo path (for viewpager) in templates/android/android_build_gradle.erb.

Currently I am getting this error:

  FAILURE: Build failed with an exception.
 
  * What went wrong:
    Cannot read packageName from
        /path/to/Push-Android/src/main/AndroidManifest.xml

I can't work out why gradle is looking in Push-Android/src/ instead of Push-Android/app/src/.

Running gradle build in Android Studio I found a bit more info:

  1. Crashlytics issues a warning, which seems to be related (looking in src/ instead of app/src/):
    Crashlytics couldn't find the res folder specified in sourceSets.main.res, please make one. It picked: src/main/res
  1. The task that fails is :generateDebugBuildConfig:
  :prepareComViewpagerindicatorLibrary241Library
  :prepareIoFabricSdkAndroidFabric1310Library
  :prepareDebugDependencies
  :compileDebugAidl
  :compileDebugRenderscript UP-TO-DATE
  :generateDebugBuildConfig FAILED

Am I missing a setting somewhere, to tell gradle to look in app/src/?

I am not very familiar with gradle or building for Android so any help gratefully received.

Push looks like a brilliant app and the Generator is an excellent idea. I am very much looking forward to having it up and running.

With thanks and best wishes

Ivan

Donate button is uninspiring

I don't know why I'd click that -- in fact, I might even be afraid to click it.

A better interaction mode for donations is to have a per-article "tip for this article" kind of thing. That also generates more useful data.

Add realm backed categories

following the code to pull from realm add categories to articles.

To do this we'll probably have to add a "category" variable to the Article model, make sure it's set when first pulled down, and then do queries sorting by category. This will make the code cleaner.

Keyboard not dismissed after donating

After putting in an amount and clicking donate the "success" comes up, but the keyboard is not dismissed. You have to press the "back" button to get it go awhile.

Device: Galaxy S4
OS: 5.0.1

Confirm push is working

This is going to be implemented on the backend later, but we want to make sure it'll work when in production.

Visual layout of articles is bad

Should at minimum:

  • Have friendly font for reading
  • Sufficiently large headline font
  • Tags shouldn't be as "loud"
  • Use human readable date formats
  • Limit text to 74-96 characters per line
  • Font should be at least as large as default system font

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.