This document describes how to create your own app for an event.
The following information is required to configure the app for your event. This list is for your preparation. Step 3 guides you through where to enter the information.
- Schedule URL which provides Frab compatible XML
- Session URL template, e.g.
https://awesome-event.com/2021/events/%1$s.html
- Server backend type, one of:
pentabarf
,frab
,pretalx
- Google Play URL, e.g.
https://play.google.com/store/apps/details?id=com.awesome.event.schedule
- F-Droid URL, e.g.
https://f-droid.org/packages/com.awesome.event.schedule
- Event URL, e.g.
https://awesome-event.com/2021
- Event postal address (optional), e.g.
CCH, Congressplatz 1, 20355 Hamburg
- Start and end date of the event
- Email address for bug reports
- Social media hashtags/handles (can be empty), e.g.
#36c3 @ccc
- Schedule feedback URL template (optional), e.g.
https://awesome-event.com/2021/events/%s/feedback/new
- Custom name used for the Engelsystem (optional), e.g.
Trollsystem
- Custom name used for the Engelsystem shifts (optional), e.g.
Trollshifts
- Engelsystem URL (optional), e.g.
https://engelsystem.de/awesome-event/shifts-json-export?key=YOUR_KEY
- Name/s of the author/s of the logo(s), website URL/s optionally
The following graphics and colors are required to customize the look and feel of the app. This list is for your preparation. The specific folders and files are mentioned in the next step.
-
Launcher icon (SVG)
-
Notification icon (SVG)
-
About dialog logo (SVG)
-
Text and background colors (HEX)
-
Tracks background colors (HEX)
-
Icons in the toolbar as well as the session alarm icon (bell) can be customized via the
tool_bar_icon
color resource. -
The alarm icon (bell) which is shown on a session can be customized via the
session_item_alarm_icon
color resource. -
The video recording icons must be customized manually because they contain more than one color.
In some of the steps it is the easiest to copy and adapt configuration settings, folders and files from an existing flavor.
- Fork the repository
- Create a new branch for your event, e.g.
awesome-event-2021
- Add a new product flavor in app/build.gradle e.g.
awesome2021
and the corresponding folder e.g.app/src/awesome2021
- Configure all required properties in your flavor (
applicationId
,versionName
,buildConfigField
,resValue
) - Enable showing the app disclaimer via
SHOW_APP_DISCLAIMER
to acknowledge its origin - Add a new signing config in app/gradle.properties
- Customize texts for the languages which you want to offer (
values/strings.xml
,values-de/strings.xml
, ...) - Add the name/s (and website/s) of the authors of the logo(s) in copyright_logo
- Add track resource names in res/xml/track_resource_names.xml
- Customize track colors in res/values/colors_congress.xml
- Customize app colors in res/values/colors.xml
- Verify colors both in light and dark mode (not all screens switch colors!)
- Add a launcher icon in different resolutions as res/mipmap-[...]/ic_launcher.png
- Add a notification icon in different resolutions as res/drawable-[...]/ic_notification.png
- Add an about dialog logo as res/drawable/dialog_logo.xml
- Customize bell and video recording icons in res/drawable/ (optional)
The following options can be enabled via a buildConfigField
and configured in app/build.gradle as needed.
- Event postal address for easy map navigation via
EVENT_POSTAL_ADDRESS
- Social media hashtags/handles for the event via
SOCIAL_MEDIA_HASHTAGS_HANDLES
- Alternative schedule URL via
ENABLE_ALTERNATIVE_SCHEDULE_URL
- c3nav integration via
C3NAV_URL
- Chaosflix export via
ENABLE_CHAOSFLIX_EXPORT
- Engelsystem shifts via
ENABLE_ENGELSYSTEM_SHIFTS
- Customize the name for the Engelsystem via
engelsystem_alias
- Customize the name for the Engelsystem shifts via
engelsystem_shifts_alias
- Customize Engelsystem shifts JSON export URL hint via
preference_hint_engelsystem_json_export_url
- Customize the name for the Engelsystem via
- Feedback system via
SCHEDULE_FEEDBACK_URL
The app prompts the user for in the following topics if enabled via a buildConfigField
in app/build.gradle.
- c3nav app installation via
ENGAGE_C3NAV_APP_INSTALLATION
- Google Play beta testing via
ENGAGE_GOOGLE_BETA_TESTING
- Google Play rating via
ENGAGE_GOOGLE_PLAY_RATING
- to learn about the screen estate in landscape mode via
ENGAGE_LANDSCAPE_ORIENTATION
The following features are available when the build type is "debug". They are located in the "Development" section of the "Settings" screen. They are intended for the preparation phase of the app to verify that the schedule data is loaded and processed correctly.
The "Schedule statistic" screen shows the distribution of null or empty and non-empty fields in the "sessions" database table. This can be useful for identify missing data in the schedule.