Giter Club home page Giter Club logo

tdcapp's Introduction

TDC App

Sample app which access the TDC (The Developer's Conference) REST API.

In this sample I tried to follow the Clean Architecture principles and use some cool Android libraries.

The Application is divided in modules as displayed below:

ModalitiesList

  • UI contains all UI related classes (Activities, Fragments, Adapters, etc.). The dependency injection is also declared in this layer.
  • Presentation stores all view model classes, once this project is trying to follow the MVVM pattern.
  • Domain in this module are declared the application's use cases and the basic data classes used as DTO. This layer also declares the basic operations that must be provided by the application's repository.
  • Data defines a basic repository flow to access two data sources: a remote (to retrieve data from the sever); and local (for now, just to save bookmarked sessions).
  • Data Remote contains a implementation of a remote data source.
  • Data Local contains a implementation of a local data source.
  • Data Memory could be used as remote repository for development purposes (or if you don't have an API key, see the section ).

Screenshots

Events List

This screen lists all events organized by Global Code organized by date and showing the most recent on top.

EventList

Modalities List

The activities (e.g.: sessions, workshops, etc.) that will/were occur in the event are displayed in this screen grouped by date.

ModalitiesList

Session List

This screen display the sessions for a given modality sorted by time.

Sessionsist

Session details

Session details are shown in this screen, including the speaker and his mini-bio.

SessionDetails

Libraries

This project is written in Kotlin and it's using the following libraries:

Get started

This application were created using Android 3.3 Canary 2. To run this application, you must have a Client ID and Secret to access the TDC REST API. To get those information, access the Global Code web site, create an account and request your credentials. After that, create the apikey.properties file in the root's project directory and put your credentials as below:

apiClientId="<YOUR_CLIENT_ID>"
apiSecret="<YOUR_API_SECRET>"

But if want to test the app without real data (or you cannot have an API key), just make the following change in the PersistenceModule.kt file.

package br.com.nglauber.tdcapp.di
// ...
val persistenceModule = module {
    ...
    single {
        // Instead of this --> TdcRemoteDataSource(tdcWebService = get()) as RemoteDataSource
        InMemoryRepository() as RemoteDataSource // Use this one
    }
}

And that's it! You're good to go.

IMPORTANT! Credits!

This sample is based on the sample presented by Joe Birch in his course at caster.io.

Any feedback and/or PR's are appreciated! :)

tdcapp's People

Contributors

nglauber avatar nascimentodiego avatar

Watchers

James Cloos avatar

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.