Paperboy

Additional

Language
Kotlin
Version
3.0.0 (Apr 4, 2016)
Created
Jun 16, 2015
Updated
Jul 19, 2016 (Retired)
Owner
Dominik Hibbeln (porokoro)
Contributors
Dominik Hibbeln (porokoro)
negue
2
Activity
Badge
Generate
Download
Source code
APK file

Commercial

Paperboy

A changelog library for Android

Download

Grab via Gradle:

compile 'com.github.porokoro.paperboy:paperboy:3.0.0'

or Maven:

<dependency>
    <groupId>com.github.porokoro.paperboy</groupId>
    <artifactId>paperboy</artifactId>
    <version>3.0.0</version>
</dependency>

Note: If not already done so, add the JCenter Repository to your build script. This library is not getting published or synced to Maven Central anymore.

Usage

This library mainly consists of one Fragment that you can include wherever you like. This class is the PaperboyFragment. It also features an simple Builder residing inside the fragment which allows you to configure its visual representation.

The changelog elements are loaded from a json file that normally resides inside your assets Folder. The library supports language resolving as you should know it from the standard Android resource folders.

Please place your json files under assets/paperboy/changelog.json. To provide alternate versions for different languages proceed as follows:

  • assets/paperboy/changelog-de.json
  • assets/paperboy/changelog-jp.json
  • ...

As an alternative you can use the res/raw folder for changelog files. Just tell paperboy which file to use by calling setFileRes(int) on the builder.

JSON Structure

You write the json files in the following structure:

[
    {
        "name": "1.0.0",
        "items": [
            {
                "type": "F",
                "title": "This is a new feature!"
            },
            {
                "type": "B",
                "title": "This is a fixed bug!"
            },
            {
                "type": "I",
                "title": "This is an improvement!"
            }
        ]
    }
]

For further examples please see the sample project.

The structure should be very simple and straight forward. Please note that all keys are handled case insensitive. So you don't need to worry about that.

For example:

[
    {
        "NAMe": "1.0.0",
        "ITEMS": [
            {
                "TyPe": "F",
                "tITLe": "This is a feature."
            }
        ]
    }
]

Item types

You can define an item type in different ways.

  • Feature: 1, F or FEATURE
  • Bug: 2, B or BUG
  • Improvement: 3, I or IMPROVEMENT

Please note that the string representations are handled the same way as the json keys, case insensitive.

In addition you can define your own item types using the ItemTypeBuilder in combination with the addItemType(ItemType) method on PaperboyBuilder. You can even override the default ones.

Migration

Please see https://github.com/porokoro/paperboy/blob/develop/MIGRATION.md for migrating to version 3.0.0.

License

Copyright (C) 2015-2016 Dominik Hibbeln

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.