Skip to content

DroidsOnRoids/Toast-App

Repository files navigation

Toast

Branch Build Status Unit tests coverage
Master Build Status codecov
Develop Build Status codecov

Toast App is supporting Android developers meetup in Poland - Toast, which takes place in Wrocław.

This app allows you to keep up to date with the latest events info like speakers descriptions, lectures topics or previous events photo galleries. Additionally, user may contact us via contact form.

App screenshots

Features

  • Events and lectures info
  • Event photo gallery
  • Speakers list and details
  • Contact form
  • Notifications about new content
  • Local notifications to remind about incoming event

Communication

  • If you found a bug or have a feature request - open an issue.
  • If you want to contribute - submit a pull request.

Requirements

  • Android 5.0+
  • Android Studio 3+
  • Kotlin 1.2.30

Installation guide

  • Download repo
    $ git clone https://github.com/DroidsOnRoids/Toast-App.git
    
  • Run the app

Project info

The app is using the MVVM architecture with Android Architecture Components and databinding

Firebase Cloud Messaging

There are 3 topics for notifications: new event, new photos, new talk.

Notification template for a new event:

{
  "message": {
    "android": {
      "data": {
        "event_id": "EVENT_ID"
      },
      "notification": {
        "click_action": "pl.droidsonroids.toast.event",
        "title_loc_key": "new_event_title",
        "body_loc_key": "new_event_description",
        "body_loc_args": ["EVENT_TITLE"]
      }
    },
    "topic": "new_event"
  }
}

Notification template for a new photos:

{
  "message": {
    "android": {
      "data": {
        "event_id": "EVENT_ID"
      },
      "notification": {
        "click_action": "pl.droidsonroids.toast.event",
        "title_loc_key": "new_photos_title",
        "body_loc_key": "new_photos_description",
        "body_loc_args": ["EVENT_TITLE"]
      }
    },
    "topic": "new_photos"
  }
}

Notification template for a new talk:

{
  "message": {
    "android": {
      "data": {
        "event_id": "EVENT_ID"
      },
      "notification": {
        "click_action": "pl.droidsonroids.toast.event",
        "title_loc_key": "new_talk_title",
        "title_loc_args": ["EVENT_TITLE"],
        "body_loc_key": "new_talk_description",
        "body_loc_args": ["AUTHOR_NAME", "TALK_TITLE"]
      }
    },
    "topic": "new_talk"
  }
}

Remote config

The app is using remote config for API URL changes. There are two keys for each flavor. I.e. for toast flavor: toastBaseUrl and toastImageUrl. Value cache time is set to 1 day. Keep it in mind when you're changing config from Firebase console.

Mocking server responses sample in UI test using MockWebServer path dispatcher -> HERE

License

Toast App is licensed under Apache License 2.0. See LICENSE for details.

About us

Droids On Roids

Toast App is maintained by Droids On Roids. For more details visit our website.

Check out our other open source projects and our blog.