This is an Native Android App about concerts at Lima.
As users, we need to:
- Discover the newest concerts at Lima
- Discover the upcoming concerts at Lima
- Select concerts as favorites, and save them for later
- Know more about a concert; as social networks, videos, bands, venue and date
- Discover the bands that will play in a concert, and the detail about them
This app was designed following Clear Architecture and the SOLID principles. This app has been divided in 3 modules:
- Domain: Kotlin Module
- Data: Kotlin Module
- App: Android Module. This module contains the Presentation and the Framework modules.
In this module we tried two different presentation patterns just for academic purposes. We separated the implementations in two branches.
The first presentation pattern that we implement in this project was MVP pattern.
To do it we defined a base contract that contains both View
& ActionListener
interfaces,
and then we created an abstract classes: BaseActivity
& BasePresenter
.
The second presentation pattern was MVVM pattern. Here we use the Android's ViewModel class,
and we applies the observable pattern to communicate the ViewModel
with its View
,
so now we can update the view easily using LiveData.
This app was made using Kotlin mainly, but we used C++(NDK) too.
This project need Git and AndroidStudio previously installed. Then you should:
- Clone the repository, the default branch is staging.
- Launch AndroidStudio and use the option
Open an existing project
.
Once you have the project open, make sure you choose the Debug
build variant.
It is important to say that Debug
variant will use a online mock as API.
Finally, run the app module.
Copyright 2020 HornsApp Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.