Multi-platform (Android specifically) MediaGoblin client

Dylan Jeffers a1fdb0b832 Dependency updates: 6 months ago
extensions bbcf1ff75b Edit README, rm symlink 1 year ago
goblinoid e94ea128ee Fix login bugs 1 year ago
images 37045ddd2c Add icons :) 1 year ago
submodules 56bad143c7 Add prebuildozer.sh for f-droid build 1 year ago
.gitignore d737a772b3 Update .gitignore 6 months ago
.gitmodules 56bad143c7 Add prebuildozer.sh for f-droid build 1 year ago
LICENSE cf073d22a9 Init commit 1 year ago
MediaGoblin.jpg 23e03cfed8 Add note about versioning in main.py 1 year ago
README.md bbcf1ff75b Edit README, rm symlink 1 year ago
buildozer.spec a1fdb0b832 Dependency updates: 6 months ago
main.py d2de4a3528 Update build version 1 year ago
mediagoblin.kv 727cb1d675 Update screen transitions 1 year ago
prebuildozer.sh 56bad143c7 Add prebuildozer.sh for f-droid build 1 year ago
requirements.txt 789eab264c Edit README now more intuitive 1 year ago
setup.py b11e5c8f65 Edit simplify setup.py build process 1 year ago

README.md

MediaGoblinApp

I. General Information

Project name: MediaGoblin 
Current devs: Dylan Jeffers, Christopher Webber
Outline: Android App for MediaGoblin using PyPump  Summer 2015
    - GSOC (Google Summer of Code) project to develop an Android client
        for MediaGoblin
    - Project is a Kivy application, which is written in Python. We chose Kivy
        as it allows us to use the MediaGoblin codebase
    - Uses 100% free software
    - GPLv3 or later license

II. Getting Started

Requirements:
    A MediaGoblin account:
        - There are many different MediaGoblin instances to choose from
            - We recommend pump.goblinrefuge.com
        - To create your own MediaGoblin instance, follow the guide at:
            https://mediagoblin.readthedocs.org/en/stable/siteadmin/deploying.html
User Installation Guide:
    Android app is available on F-Droid app store

Developer Installation Guide:
    The Plan:
        Install a combination of system-wide packages and
        virtualenv packages

    0. Clone the repo
      - cd into a dir of your choice and clone the repo:
        git clone https://notabug.org/SapienTech/MediaGoblinApp
        cd MediaGoblinApp
      - and init the submodules:
        git submodule init && git submodule update

    1. Download the following system-wide dependencies:
        sudo apt-get install -y \
        build-essential \
        mercurial \
        git \
        python2.7 \
        python-setuptools \
        python-dev \
        libsdl-image1.2-dev \
        libsdl-mixer1.2-dev \
        libsdl-ttf2.0-dev \
        libsmpeg-dev \
        libsdl1.2-dev \
        libportmidi-dev \
        libswscale-dev \
        libavformat-dev \
        libavcodec-dev \
        zlib1g-dev \
        python-pip \
        python-virtualenv

    2. Set up a virtual environment (in MediaGoblinApp dir):
        virtualenv env

       And activate it:
        source env/bin/activate

    3. Install dependencies:
        pip install -r requirements.txt

    4. Build the project:
      - In the project directory:
        python setup.py develop

      - This will allow you to run kivy from the computer, to install an android
        apk, continue to step 5.

    5. Compiling the Android apk:
        buildozer android debug

     - To run on phone after compiling:
        buildozer android deploy run logcat

III. Testing

- As compiling an apk takes time, it is recommended to first test on the computer,
  before debuging an apk.
    - Note, however that some functionality is exclusive to Android

IV. Contributing

- Contributing to this project is a great opportunity to hone mobile development skills.
As this project is small, but part of the larger MediaGoblin community,
contributers have a great opportunity to fully understand and engage with a
piece of software, while also benefiting from the structure and support of
an established free software community.

- If you feel like reaching out to contribute/learn more/just chat, feel 
free to ping SapienTech on irc.freenode.net in #mediagoblin, or connect
through email at sapientechnology@openmailbox.com

V. Licenses

GPLv3 or later

VI. Contact

Dylan Jeffers: sapientechnology@openmailbox.com