This is a social media app for sharing memes (funny pictures). The app is mainly written in Kotlin and uses the Gradle build system. It uses Firebase for the backend with Firebase Functions providing additional server side functions. You can view the Functions code in the Dank-Memes-Functions repo with the guide on deploying it.
You can download the app from the Play Store here: Dank Memes
- 100% Kotlin
- MVVM Architecture
- Koin for DI
- Coroutines
- RxJava
- Firebase
- Firebase Auth
- Firebase Database
- Firebase Storage
- Firebase Firestore
- Crashlytics
- Performance Monitoring
- GCM
- Android Jetpack
To setup the project in your machine
- Clone the repo
foo@bar:~$ git clone https://github.com/tirgei/DankMemes.git
You can then import the project to your Android Studio then head to your Firebase Console
- Create a new Dank Memes project.
- Enable Email/ Google sign in
-
Add a new Android project under
Project Settings
menu -
Fill in the project details then download the
google-services.json
file and place it inapp/
directory
- Create a
keys.xml
file in theapp/src/main/res/values/
directory where we will place our API keys. The following are required:
// Google Sign in key
<string name="google_signin_key">YOUR_GOOGLE_SIGN_IN_KEY</string>
For native ads, the following are required (You can use test IDs from the Admob docs)
// Admob
<string name="admob_app_id">YOUR_ADMOB_APP_ID</string>
<string name="admob_native_ad_id">YOUR_ADMOB_TEST_AD_ID</string>
- Sync your gradle. After successful sync, you can run the app to test it out.
Login | Registration | Home page |
---|---|---|
![]() |
![]() |
![]() |
Navigation | Favorites | Notification |
![]() |
![]() |
![]() |
My Profile | Comments | Post Meme |
![]() |
![]() |
![]() |
Edit Profile | ||
![]() |
Copyright 2020 Vincent Tirgei
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: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.