This is a pure Android application.
It has the following features.
- Splash Screen.
- Login Screen.
- Signup Screen.
- Firebase based Authentication.
- Displays the list of countries form free api. (API here)
- Has a Logout Button.
- Go to the Firebase Console and navigate to your project:
- Select the Auth panel and then click the Sign In Method tab.
- Click Google and turn on the Enable switch, then click Save.
- Run the sample app on your device or emulator.
- Select GoogleSignInActivity from the main screen.
- Click the Sign In button to begin.
- Go to the Firebase Console and navigate to your project:
- Select the Auth panel and then click the Sign In Method tab.
- Click Email/Password and turn on the Enable switch, then click Save.
- Under Authorized Domains click Add Domain and add
auth.example.com
.
- Run the app on your device or emulator.
- Select EmailPasswordActivity from the main screen.
- Fill in your desired email and password and click Create Account to begin.
- Glide: https://github.com/bumptech/glide
- Dagger2: https://github.com/MindorksOpenSource/android-dagger2-example
- Retrofit: https://github.com/square/retrofit
- lottie: https://github.com/airbnb/lottie-android
- Firebase: https://github.com/firebase/firebase-ios-sdk/tree/master/Firebase/Auth
- Calligraphy: https://github.com/chrisjenx/Calligraphy
- androidsvg: https://github.com/BigBadaboom/androidsvg
- Java 8
- Latest version of Android SDK and Android Build Tools
The app uses themoviedb.org API to get movie information and posters. You must provide your own [API key][1] in order to build the app.
Just put your API key into ~/.gradle/gradle.properties
file (create the file if it does not exist already):
MY_MOVIE_DB_API_KEY="abc123"
You can build the app with Android Studio or with ./gradlew assembleDebug
command.
This project integrates a combination of [local unit tests][2], [instrumented tests][3] and [code analysis tools][4].
Just run build.sh
to ensure that project code is valid and stable.
This will run local unit tests on the JVM, instrumented tests on connected device (or emulator) and analyse code with Checkstyle, Findbugs and PMD.
For transparency and insight into our release cycle, and for striving to maintain backward compatibility, PlexMedia will be maintained according to the Semantic Versioning guidelines as much as possible.
Releases will be numbered with the following format:
<major>.<minor>.<patch>-<build>
Constructed with the following guidelines:
- A new major release indicates a large change where backward compatibility is broken.
- A new minor release indicates a normal change that maintains backward compatibility.
- A new patch release indicates a bugfix or small change which does not affect compatibility.
- A new build release indicates this is a pre-release of the version.
If you distribute a copy or make a fork of the project, you have to credit this project as the source.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/ .
Copyright 2018 mohamedebrahim96
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
http://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.