Coder Social home page Coder Social logo

appdf's Introduction

Dear friends

Currently our small team doesn't have enough time to support and develop the project. I hope in the nearest future we will continue the work.
Thank you!

AppDF

Uploading Android application to several appstores could be time consuming. AppDF format is designed to simplify this process. You describe your Android application once, create a simple AppDF file that includes description, APK file(s), screenshots, app icon, promo images, etc and just upload this AppDF file to all the stores that support AppDF uploading.

What Is AppDF

AppDF file is a ZIP archive with .appdf extension. This archive must contain description.xml file with application description (title, description text, category, price, requirements, etc.). This description.xml file contains links to the other files in the archive like APK file(s), screenshots, promo graphics, video, etc. The main sections of the description.xml file are:

  • Category information
  • Text description (title, short description, full description, keywords, etc)
  • Images (app icon, screenshots, promo images)
  • Videos
  • Content rating information
  • Availability (country list, etc)
  • Price
  • Requirements (you can specify supported devices if different from the APK file manifest)
  • Testing instructions
  • Consent
  • Customer-support information
  • Store specific section

How AppDF Works

There are more than 15 alternative Android appstores. All of them have their own audience. You loose many millions of potential addressable users by submitting your application to Google Play only. But submitting an app to all the appstores could take you several days, and then you need to upload each update to all the stores as well. AppDF allows you to submit your application as easy as uploading one file. You simply create an AppDF file using HTML5 AppDF Editor and submit the generated AppDF file to all the appstores.

AppDF Diagram

  1. Create AppDF file for your application either using AppDF Editor or just follow the specification to create an AppDF file manually
  2. Submit your AppDF file to the supporting appstores

No Middle Man

AppDF is an open file format. It is not an aggregator. There is no middle man in the process. The app developers work directly with the appstores as before. There is just a common file format that makes it easier.

Appstores

We have just started the AppDF project. The following Android application stores already support AppDF format (you can go to their developer portals and submit AppDF files):

The following appstores are working on AppDF support but not ready with implementation yet:

Specification

Current AppDF specification status is 1.0. It can be found here:
http://www.onepf.org/appdf/specification/

Current version of AppDF specification in work can be found here:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md

AppDF Samples

You can download four AppDF samples:

There are two ways to explore the samples:

  1. Open a sample in AppDF Editor
  2. Download a sample, rename it to .zip file, unzip it, check description.xml file

AppDF Editor

We are developing an HTML5 AppDF editor (client-side only code). Current preview version that does not support several important features yet could be found at: http://onepf.org/editor

Source code here: https://github.com/onepf/AppDF-tools-editor

License

Source code of the AppDF Editor and the reference parser libs is available under the terms of the Apache License, Version 2.0:
http://www.apache.org/licenses/LICENSE-2.0

The AppDF specification and the related texts are available under the terms of the Creative Commons Attribution 2.5 license:
http://creativecommons.org/licenses/by/2.5/

How Can I Help?

  1. Join our mailing list.
  2. Choose an open task from the task list or propose a new one.
  3. Email the group that you want to work on this task and let's discuss on how to do it the best way.

What's Next (AppDF Roadmap)

  • In-App Billing support in the next version of AppDF
  • Add a feature to the AppDF Editor to automatically download application description from Google Play
  • Add "What's Next" section to the AppDF Editor that explains how the generated AppDF file could be submitted to appstores
  • Add better documentation about AppDF parser reference source code

appdf's People

Contributors

abautu avatar akarimova avatar kapji avatar kapoynako34 avatar morozstepan avatar oorlov avatar shtirlic avatar thevery avatar vassiliphilippov avatar yinegvey avatar ymkawb avatar

Stargazers

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

Watchers

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

appdf's Issues

Extract java script needed to convert categories json to Xml

It looks like it's a good idea to generate categories.xml and all such resources ( languages etc.) during build of parser-lib. Easiest way from my point of view would be to extract javascript code already wroten for that to separate file and call it via Rhino during build.,

Implement "Requirements" section loading from XML

The AppDF editor already supports editing of the Requirements section but there is no loading. This logic should be added in the follosing three places:

  1. XML parsing code to be added into parseDescriptionXML function in appdfparser.js
  2. Validation code to be added as a new function validateRequirements in appdfparser.js
  3. Populating the editor with the loaded data code to be added into loadDescriptionXML function in appdfxmlloading.js file

Add AndroidPit AppCenter support to the AppDF specification

In order to add information about the Android Pit AppCenter one needs to create a developer account there, publish a test application (you can take Life sample from https://github.com/onepf/AppDF/tree/master/samples/Life) and collection information about supported features.

You should add information about AppCenter to all tag descriptions here:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#descriptionxml-structure

as well as general information about the store there:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#application-store-support

and category mapping to:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#category-list

Add Nook AppStore support to the AppDF specification

In order to add information about the Nook AppStore one needs to create a developer account there, publish a test application (you can take Life sample from https://github.com/onepf/AppDF/tree/master/samples/Life) and collection information about supported features.

You should add information about Nook AppStore to all tag descriptions here:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#descriptionxml-structure

as well as general information about the store there:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#application-store-support

and category mapping to:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#category-list

Add Ouya support to the AppDF specification

Not sure what store data are publicly available yet. As soon as it is open for general submission, publish a test application (you can take Life sample from https://github.com/onepf/AppDF/tree/master/samples/Life) and collection information about supported features.

You should add information about Ouya to all tag descriptions here:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#descriptionxml-structure

as well as general information about the store there:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#application-store-support

and category mapping to:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#category-list

Implement "Requirements" section saving into XML

Editor code for the Requirements section is already written but we need also to create code to save the data into XML.

This code should be implemented in generateRequirementsXML function in appdfxmlsaving.js file

Add AppsLib support to the AppDF specification

In order to add information about the AppsLib one needs to create a developer account there, publish a test application (you can take Life sample from https://github.com/onepf/AppDF/tree/master/samples/Life) and collection information about supported features.

You should add information about SK Telekom T-Storeto all tag descriptions here:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#descriptionxml-structure

as well as general information about the store there:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#application-store-support

and category mapping to:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#category-list

Create XML scheme for description.xml

AppDF specification is described here:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md

The central place of the specification is description.xml file that is described there as well.

We need to create XML Schema based on this specification.

More about XML Schema:
http://www.w3.org/XML/Schema.html
http://en.wikipedia.org/wiki/XML_Schema
http://www.w3schools.com/schema/default.asp

Note that the specification is not final, so be ready to update the XML Schema when the specification is updated.

Should we include some logic to the model classes?

Does it make sense to include some login to the model classes? For example make a class for a file inside AppDF package (screenshot, icon, APK file, etc) and where appropriate return such class instead of String?

It will allow to automatically check that the files exist, provide functionality to extract these files, etc.

Add SK Telekom T-Store support to the AppDF specification

In order to add information about the SK Telekom T-Store one needs to create a developer account there, publish a test application (you can take Life sample from https://github.com/onepf/AppDF/tree/master/samples/Life) and collection information about supported features.

You should add information about SK Telekom T-Storeto all tag descriptions here:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#descriptionxml-structure

as well as general information about the store there:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#application-store-support

and category mapping to:
https://github.com/onepf/AppDF/blob/master/specification/appds_spec_1_0.md#category-list

Add browser compatibility checking

Check which browsers are supported right now. Add checking that a supported browser is used. Show error message if unsupported browser is used.

Write code that checks if APK files are ZIP aligned

Google Play could show the following error message for some APK files:

You uploaded an APK that is not zip aligned. You will need to run a zip align tool on your APK and upload it again.

We should also learn how to check it

Should we use Enum or String for the lists?

For example the following XML:

    <included-activities>
      <in-app-billing>no</in-app-billing>
      <gambling>no</gambling>
      <advertising>no</advertising>
      <user-generated-content>no</user-generated-content>
      <user-to-user-communications>no</user-to-user-communications>
      <account-creation>no</account-creation>
      <personal-information-collection>no</personal-information-collection>
    </included-activities>

Should we create Enum with all included activity tag options or simply pass a string?

Which language should we use for the parser/validator library?

What this library should do:

  • Extracting the files from ZIP archive
  • Check description.xml validity
  • Parse description.xml file and present it as an easy to use structure
  • Check APK files vavility
  • Extract information from APK files
  • Check that all the files mentioned in the description.xml are presented in the ZIP archive
  • Resize the images to the needed resolution

Where this library will be used:

  • By appstores for parsing AppDF files as a reference implementation
  • In our online validation tool

So the question is: which language should we use for this parser/validator library?

Create PHP AppDF parser

Create reference PHP code for parsing AppDF file. It should be located here
tools/parser/php

What should be interface of Java library to parse/validate/create AppDF files?

Our main library for AppDF file support will be in Java. It should support the following functionality:

  • Creating AppDF file (will be used in our website for AppDF file generating)
  • Parsing AppDF files (will be used by appstores for parsing submitted AppDF files)
  • AppDF file validation (will be used by our online validator tool)

Couple of questions about the library structure:

  1. What should be top level library interface (classes/interfaces/main methods)?
  2. What are similar Java libraries? For creating/parsing some format files with package structure and a description file?
  3. Should we merge creating/parsing functionality in one class?

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.