Developers (draft)
Create apps, games, .HTML5 files and fonts for Floflis.
Common for app/game developers¶
Introduction¶
Pretty simple: just make an Electron app/game (Construct 2/3 or GDevelop recommended). It is recommended to also make it support Cordova (for doing mobile releases, and for an upcoming/hypothetical mobile version of Floflis).
Note: this app/game need to have electron
as module and support npm start
command. To guarantee better support, just symlink your node_modules
to /1/Floflis/libs/node_modules
(and don't forget to support electron .
in your npm start
script at manifest.json
.
Detect platform¶
To support Floflis' features, you can do it by simply detecting if /1
folder exists.
Note: For a more accurate check: detect if /1/config/user.json
exists or, better, check for /etc/floflis-release
.
So, you can focus on supporting Floflis without causing confusion on other Linux OSes/platforms (MacOS, Windows' Cygwin/WSL, etc).
Pin app/game¶
Floflis Platform package for NPM, soon.
Desktop¶
Explore menu¶
Taskbar¶
Reading shared libs¶
When building for Floflis, you can remove any asset that is already included with Floflis, which makes your app smaller for download.
Libraries are in /1/Floflis/libs
. Root permission will be asked when adding a library, but not when reading.
Common files for Construct 2 are included!
Libraries¶
- FrameworkJS
- Bootstrap
- jQuery
- Popper.js
- UmbrellaJS
- Slick
Todolist is FrameworkJS not having built-in libraries and fonts, but building it depending on target platform (possibly using Plugz).
Fonts¶
Fonts (which are in web format) are stored in /1/Fonts
.
Included fonts:
- Roboto
- Material Icons
- Text Me One
- Cabin
To read a font, just reference to its font.css
file.
Where to save user's files¶
This guide teaches, for every kind of app/game, where to store files produced by its users.
Reading app (draft, outdated)¶
- Books:
/1/Books
- Magazines:
/1/Books/Magazines
- Comics/novels:
/1/Books/Comics
- MkDocs and other kinds of documentations/manuals:
/1/Books/Manuals
- Scanned books:
/1/Books/Scanned
- Other kind of document:
{homefolder}/Documents
- Scanned documents:
{homefolder}/Documents/Scanned
3D app (draft, outdated)¶
This folder isn`t yet very organized, as others. Suggestions and pull requests are welcome.
- Any kind of 3D files:
/1/3D
- 3D objects:
/1/3D/Objects
- 3D voxel objects:
/1/3D/Objects/voxels
- 3D scenes:
/1/3d/scenes
Browsers/code editors/compilers (draft, outdated)¶
Source-codes should be saved into /1/sourcecode
.?
Web browsers would also ask to save .tar.gz
in this folder instead of {homefolder}/Downloads
folder.?
Imaging app (draft, outdated)¶
Normal images/graphics are stored in {homefolder}/Pictures
.
- Photos:
/Pictures/Photos
- Screenshots:
/Pictures/Printscreens
- Draw:
/Pictures/Drawings
- Scanned:
/Pictures/Scanned
- Memes:
/Pictures/Memes
- GIFs:
/Pictures/GIFs
Video app (draft, outdated)¶
Normal videos are stored in {homefolder}/Videos
.
- Series:
/Videos/Series
- Movies:
/Videos/Movies
- Documentaries:
/Videos/Documentaries
- Animations:
/Videos/Animations
- Animes:
/Videos/Animations/Animes
- Memes:
/Videos/Memes
Music app (draft, outdated)¶
Normal music are stored in {homefolder}/Music
.
- Memes:
/Music/Memes
- Effect sounds:
/Music/SFX
- Background music:
/Music/Background
- Voice notes/recording:
/Music/Voice
Downloads app (draft)¶
Files that user is seeding are stored in {homefolder}/Downloads/Seeding
folder.
App developers¶
Where to install it¶
If your app haves a install script, point it to /1/apps
.
Where to install app's user data¶
Put all app's user data in JSON files inside /1/config/apps/{your-app-name}
folder.
Game developers¶
Introduction¶
You can develop games using the Floflis' built-in game engine: GDevelop. But you can use other if you prefer, althought GDevelop is the easiest.
Construct 2 proved to be useful not only for developing professional games, but also apps (Floflis Central is made in Construct 2).
Where to install it (draft, outdated)¶
If your game haves a install script, point it to /1/games
.
Where to install game's user data¶
Put all game's user data in JSON files inside /1/config/games/{your-app-name}
folder.
.HTML5 file developers¶
To learn more about what is a HTML5 file, click here.
Just create a text file with the .html5
extension, and put its content.
To add a script, add its content inside a <script>
tag.
To add a CSS is same as previous step, but with <style>
tag.
Do the same with images, using base64
format in <img>
tag or use a inline <svg>
tag.
For .HTML5
files, it isn't a recommended practice to load external script/css.
Packaging your font¶
Floflis uses web format (woff, woff2) for fonts.
Take a inspiration look at /1/Fonts
folder.
Each font is simply a folder containing the WOFF
files and the font.css
file, which looks like that:
/* vietnamese */
@font-face {
font-family: 'Cabin';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Cabin'), local('Cabin-Regular'), url(cabinregular-vietnamese.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Cabin';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Cabin'), local('Cabin-Regular'), url(cabinregular-latinext.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Cabin';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Cabin'), local('Cabin-Regular'), url(cabinregular-latin.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
You can simply distribute your fonts as compressed files, althought they aren't automatically installable yet.
Zombie Spices¶
- abt cinnamon
- how to make git repo and package
- install from folder or package
Soon, new developments¶
These will be available to develop:
- Screensavers
- Themes
- NFT backgrounds and themes (UniStore)
- others
And you will have the possibility to distribute your productions to a decentralized store. Also, packagers for installing apps, games, fonts and others; and asking to install a .HTML5 file when clicking it.