If you're using a library that is licensed under GNU GPL v3 to help develop your application, then from what I understand, you must release your application for free and it's source code.
Is it then possible or permitted to release your application for free, but allow people to purchase content that is separate from its source code and therefore not required to be released with the source code?
For example, consider the following apps where a GNU library helped create the functionality
- a video player, but the content videos are sold separately
- a text reader, but the text files sold separately
- a video game engine for a type of game, but levels, models and overall content sold separately
All the bare core essential source code of the application is released for free under GNU as required by the license, but it's like an empty application, where the content is sold separately.
To solidify it further, think of a language learning app! The bare structure of the app is the menus and functionality to load text and play audio back, and this source code is released. Then sold separately is the language packs which consist of the text and audio files that are not part of the source code. People can also create their own language pack and sell them separately, within the app or their own language learning app that is a derivative of the original app.
From what I understand, all the functionality of the app has to be there in the source code, so you can't create separate modules that introduce new functionality without releasing them as part of the source code - but media like videos, audio, text files, etc... could possibly be released separately?
Although, this leaves me thinking what could be counted as separate content from the apps source code like XML files and where the limits are?
And I suppose too, these downloadable files/content have to be external and therefore loaded from the app from a different directory to not be considered part of the app's source code?
Would the separate content also have to be not sold together with the app?