Green Party Map Server
About
End User Documenattion
Social Media Strategy
Android News App

Android News App


Here is our plan for building an Android App for the Curated Fundraising News letter.



The Application.

The idea is to build a curated fund raising newsletter for various organizations.  Here you can read more about the idea.

 This document is about the proposed Android client. 

OnBoarding

When a user visits a news page, they will see a link to the Google Play store.  They can click into the app store to download the app.  Why would they want to use an app instead of a web site?  Well the app can generate ntofications of new news.  Maybe the app icon can change color when there is new news.  Maybe it can signal if something is a video or a text article.  

User Interface

The application will have the following screens.

Splash screen

login screen

List of Lists screen

Content view

Most recent news items view.

pay pal registration

Cell Phone Client.

We will take a strategy of one volunteer building an Android client, another building an iPhone client.  @tauk says that Java and Cotlin are productive tools on Android.  Works for me.

DEVELOPER DOCUMENTATION

The rest of this page will be developer documentation.  Of less interest to the general user.  
Once the app makes it into production, the top part, the end user documentation, will be moved to the end-user documentation part of this web site. 

Server Model

The server runs on an object-graph database written in Python. You can read more about it there.

Android client

There is a tree of categories with content.  Every node on the tree has both a slug name, and a human readable name.  The slug is the url. No spaces, all small letters.

The client can download the json tree of categories, and it can download a json version of the newest items at:

/us-politics/news

It can store the json file.    It can sort the json news and store it as follows. There will be a directory for content, with subdirectories for each category.  Use the json to create a list of lists.  Click into a category, just load the content from the appropriate directory.  Some categories will have both child categories and content.  Easy.

The text will not take up much space. As for images, just reload them from the server when needed.  No point hogging all that space.

The API.

./categories.json

   There is already a json tree of categories.  I need to modify it to only show categories.

./news.json

The json view for the news for any branch of the tree.

./json

The json view for a single page item.

Not needed for this application, but eventually other applications will need it.

The Images

Every article should have at least one image. ./Logo inherits the image for that branch of the tree.  It checks if the news article has an image if not it checks the parent nodes for an image.  It keeps gong until it finds an image.  Eventually there should be something like ./Logo.json, which returns an image, a text description and a url to visit. 

Authentication.

We can authenticate with Google Oauth Sign on.  We already do that, although probably some changes will be needed on the server to make it work with the client.  I can say more if you want me to.

Evidently Android has some tools for securely passing the client cell phone’s id to the server.  So one only has to sign on once.  @Tauk, can you give us a link to these tools please.

Registration.  Initially the user will register on the web site.

Google Play store.  When you want me to, I will go ahead and create a Google Play Store Account.

Payment.  Initially payment will be through the website. Good thing we are not doing the apple store first!

Releases

  1. Just the news.  No authentication, no payment. (No complaints from free apps.)
  2. Authenticate
  3. Sign up and pay though the app.

 

I need to read more about:

  1. material design
  2. view model model view.
  3. android jet web pack.
  4. Google Sign on from Android
  5. Android Device Ids.

Did I miss anything?  Any questions?



Built using the  Forest Map Wiki