Giter Club home page Giter Club logo

taz-neo's Introduction

taz/android-app

This repository contains an android reader app for the German newspaper taz. The project regards the app as the primary outlet/user interface instead of displaying digital byproducts of producing a newspaper.

Get it on F-Droid Get it on Google Play

Development

This repository is currently maintained by ctrl.alt.coop. We gratefully accept propositions and welcome discussions.

Consider the contribution guidelines.

Building

Before starting the build process it is necessary to initialize the mupdf-android-viewer submodule:

git submodule update --init --recursive

Additionally mupdf needs to be published to the local maven repository. This step has to be repeated everytime the mupdf library is updated to a new version.

./scripts/publish-mupdf-to-maven-local.sh

With that the build process can be started.

Non-free variant

The non-free variant includes firebase for push notification support. It also minifies sources and provides sentry mappings for efficient error reporting. It's distribution target is the Google Play Store and therefore requires additional files for a successful build that are not included in the repo. (Namely google credentials and sentry auth tokens to upload proguard mappings) Because of the missing sentry token all "release" and "non-free" builds will fail or won't function properly without those present.

The non-free app is published to the Google Play Store with the Gradle Play Publisher Plugin.

For internal development see [INTERNAL_DISTRIBUTION.md] for instructions to setup your development environment.

Free variant

Anyone can produce builds for the free variant without minification enabled. The following flavor creates a free release for Die Tageszeitung app:

./gradlew :app:assembleFreeTazUnminifiedProductionRelease

Be sure that your android sdk path is set correctly, for example by placing a local.properties file in the project root containing the following property:

sdk.dir=/home/me/Android/Sdk

Android Studio usually takes care of this if used.

Also be aware that this will produce an unsigned release. For signing during build please place a tazkeystore.properties in project root providing information about the signing configuration:

keystorePath=keystore.jks
keyAlias=keyAlias

Releasing / Versioning

Our gradle build scripts automatically create versions based on the git tag. To reduce an integer we follow a strict pattern for release tags, that are a subset of semver: MAJOR.MINOR.PATCH[-PRE-RELEASE-TYPE].[PRE-RELEASE-VERSION]. Valid prerelease types are 'alpha', 'beta', 'rc' For example:

git tag -a 1.1.0 # ✓
git tag -a 1.1.1-alpha.1 # ✓
git tag -a 1.2.0 # ✓

The build script will possibly throw an error or generate garbage versions if the last tag is wrong like those bad examples:


git tag -a 1.2 # ✗
git tag -a 1.1.1-alpha-1 # ✗
git tag -a testtag # ✗

LMd Variant

The LMd Release release process follows the taz, but it is only triggered for tags prefixed with lmd-, such as:

git tag -a lmd-1.1.0 # ✓
git tag -a lmd-1.1.1-alpha.1 # ✓

taz-neo's People

Contributors

fupduck avatar eikectrlaltcoop avatar lusy avatar kleingeist avatar footofcupid avatar

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.