This project is an android app inspired by the tv show "Friends"

Related tags

App F.R.I.E.N.D.S
Overview

F.R.I.E.N.D.S-App

If this frame looks familiar then this app is for you!

This project is an android app inspired by the tv show "Friends" , built using android studio & Kotlin with a sprinkle of awesome 3rd party libraries :)

Dependencies

I've used the following ones in my project:

  • Glide : to upload images by URL
implementation 'com.github.bumptech.glide:glide:4.12.0'
  • PDFview : to view pdf file in the app
implementation "com.dmitryborodin:pdfview-android:1.1.0"
  • gson : to convert data from Json files
implementation 'com.google.code.gson:gson:2.8.8'
  • gif : to display gifs
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.23'
  • lottie : to display json drawables
implementation 'com.airbnb.android:lottie:3.0.7'

App Sections

image

1) Catchphrase

At the top of the main page , I displayed a random quote from my "quotes.json" file , along with a drawable of the Catchphrase's character.

?>() {}.type val myQuotes: List = gson.fromJson(jsonFileString, listQuotesType) var rand = (myQuotes.indices).random() var currentQuote = myQuotes[rand] tvQuote.text="\"${currentQuote.quote}\"" //display the quotes' corresponding image when(currentQuote.character){ "Monica"->charImageView.setImageResource(R.drawable.monica) "Ross"->charImageView.setImageResource(R.drawable.ross) "Joey"->charImageView.setImageResource(R.drawable.joey) "Phoebe"->charImageView.setImageResource(R.drawable.phoebe) "Rachel"->charImageView.setImageResource(R.drawable.rachel) "Chandler"->charImageView.setImageResource(R.drawable.chandler) } ">
//read the quotes from JSON file, shuffle them and display a random one in the catchphrase bar
        val jsonFileString = getJsonFromAssets(this, "quotes.json")
        val gson = Gson()
        val listQuotesType = object : TypeToken
    
     
      ?>() {}.type
        val myQuotes: List
      
        = gson.fromJson(jsonFileString, listQuotesType)
        var rand = (myQuotes.indices).random()
        var currentQuote = myQuotes[rand]
        tvQuote.text="\"${currentQuote.quote}\""

        //display the quotes' corresponding image
        when(currentQuote.character){
            "Monica"->charImageView.setImageResource(R.drawable.monica)
            "Ross"->charImageView.setImageResource(R.drawable.ross)
            "Joey"->charImageView.setImageResource(R.drawable.joey)
            "Phoebe"->charImageView.setImageResource(R.drawable.phoebe)
            "Rachel"->charImageView.setImageResource(R.drawable.rachel)
            "Chandler"->charImageView.setImageResource(R.drawable.chandler)
        }

      
     
    

2) Characters List

With a horizontal layout , I displayed all the actors in my "actors.json" file , each in a card view generated by the recyclerview.

?>() {}.type var myActors: List = gson.fromJson(jsonFileString2, listCastType) myActors= myActors.shuffled() rvMain.adapter = RecyclerViewAdapter(this,myActors) rvMain.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false) ">
//get all the actors from the JSON file and display them in the recyclerview
        val jsonFileString2 = getJsonFromAssets(this, "actors.json")
        val listCastType = object : TypeToken
    
     
      ?>() {}.type
        var myActors: List
      
        = gson.fromJson(jsonFileString2, listCastType)
        myActors= myActors.shuffled()
        rvMain.adapter = RecyclerViewAdapter(this,myActors)
        rvMain.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)

      
     
    

3) Rounded Buttons

There are 4 rounded themed buttons inspired by Friends' logo, each button has a diffrent sevice as follows:

  • Map : with one click you'd find yourself inside Friends' aparetment! just click on Map and it will redirects you to a new page where 2 maps are shown, each has 2 unique secret spots that when clicked , shows an image of the real-life spot (ex:kitchen, livingroom).

image

  • Recipes : ever felt hungry watching all the yummy food in the episodes? click on Recipes and reveal the secrets on "how to pull a monica" !! the cookbook is displayed for the user to view & zoom.

image

  • Episodes Picker : must be hard to choose among all these amazing episodes! so just click on the episode picker which will open a new page and randomly pick an episode for you!

image image

  • Quiz : if you like fun games this one is for you ! 4 diffrent online quizzes to complete with various fun facts and questions :)

image image

4) Info Dialog

At the right-top corner there is a yellow info icon which when clicked shows some details regarding the app , my contact info & accounts and credits. Try clicking on the twitter & github icons to be redirected to the corresponding account :)

infoDialog.mp4

Final Result !

Here is the full app , hope you enjoyed it :D

fullApp.mp4

Credits

Thanks to Melanie Seltzer & Dimitri Wahyudiputra for all Friends data & quotes :D

You might also like...
Android app to show fruits
Android app to show fruits

🚀 Aplicativo Frutas ( Pós-Graduação C.E.S.A.R School ) 🚀 Tecnologias Esse projeto foi desenvolvido com as seguintes tecnologias: Kotlin 🍉 Projeto P

Mobile app to Show Movies From TMDB API [Qhala Interview Solution], for the Android Engineer Role
Mobile app to Show Movies From TMDB API [Qhala Interview Solution], for the Android Engineer Role

Qhala Interview 🎥 📺 This is an Interview Tech challenge by Qhala I used TMDB API to solve this challenge. Screenshots Movies Movie Detail Prerequisi

An android app that show us nike products and user can buy them or add to shopping cart.
An android app that show us nike products and user can buy them or add to shopping cart.

Nike Store-Android-App An android app that show us nike products and user can buy them or add to shopping cart. Screenshots Libraries included Materia

Android app that show the palette of material theme based on your wallpaper
Android app that show the palette of material theme based on your wallpaper

Material-You-Palette Android app that show the palette of material theme based on your wallpaper Show color blocks and names in on color Few Samples W

Movie streaming is an android app that show us last,newest,top imdb and popular movies.
Movie streaming is an android app that show us last,newest,top imdb and popular movies.

Movies-Streaming-Android-App An Android application which shows Popular, New Movies, Top Rated movies and all the details of any movie like- Cast, Rev

Mobile app to show images from Pixabay. Interview solution for Adanian Labs android developer role.
Mobile app to show images from Pixabay. Interview solution for Adanian Labs android developer role.

PixaBay An android app built using Kotlin that consumes Pixabay API to display images.It has been built following Clean Architecture Principle, Reposi

Android app to show my clone of the Tesla website.
Android app to show my clone of the Tesla website.

TeslaRoadster Android app to show my clone of the Tesla website. Shows ability to use HTML5 in Android Apps Shows how drawer is implemented Shows embe

Dynamic-UI-From-JSON - A Sample Android app to show dynamic UI generation from Json
Dynamic-UI-From-JSON - A Sample Android app to show dynamic UI generation from Json

Dynamic UI from JSON Functionality The app's functionality includes: The app gen

Android app based on clean architecture and using the github API to show open pull requests

This app is based on clean architecture and using the github API to show open pull requests. The code is made considering all design principles and guidelines.

Owner
Reem
I'm just a Cloud ☁️
Reem
A simple Android App to wish your friends Happy Birthday

Birthday-Wishing A simple Android App to wish your friends Happy Birthday! Youtu

AnshDeep Yadav 1 Dec 16, 2021
Share your minecraft-adventure with your friends in nation-party.

Nation Party Make your adventure as shared with your friends and family in Nation Party. Features * Create your own party with your own name; * Invite

Luiz Otávio 1 Jan 9, 2022
RedditVanced - Reddit Android app mod inspired by Aliucord

RedditVanced A rootless a Reddit android app mod ⚠️ NOTE ⚠️ This project is curr

RedditVanced 47 Dec 5, 2022
Android app inspired by NASA APOD Api

MVVM - Clean Architecture - Kotlin - Retrofit - Room - Dagger Hilt - Coroutines - Flow - Coil - Navigation Component

Valentin 4 Sep 4, 2022
Simple timer app inspired by Newton's Cradle. Created in Jetpack Compose for #AndroidDevChallenge.

Newton's Timer ?? Description Simple timer app inspired by Newton's Cradle. Created in Jetpack Compose for #AndroidDevChallenge. ?? Motivation and Con

Maciej Ciemięga 278 Dec 28, 2022
E- commerce app👕 built with Jetpack Compose and Compose Destinations. The design was inspired by Sajjad Mohammadi Nia

E-Commerce Clothing App ?? This a Jetpack Compose app that replicates of an E-commerce app design I was inspired by on Dribble. It's an E-Commerce app

Breens Robert 19 Nov 23, 2022
Android-stories: A simple stories library inspired by Instagram and alike

A simple stories library inspired by Instagram and alike. Requirements Min SDK >= 22 Installation Add these dependencies to your proje

red_mad_robot Tomsk 5 Aug 31, 2022
Implementation of useful hooks inspired by React for Compose

useCompose React inspired hooks for Compose Installation Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the

Pavitra Golchha 20 Nov 14, 2022
Not so deep text reader inspired by BORIS, written in Kotlin

Barnable Reader Prototype Deep text reader library that generates a semantic model from a short input text. At the moment it is very primitive and is

David Jones 0 Dec 28, 2021
A Discord bot heavily inspired by Ultimate Bravery to spice up your Pokemon Unite experience.

UniteBraveryBot ?? A Discord bot heavily inpired by Ultimate Bravery to spice up your Pokemon Unite experience. Required Permissions ?? View Channels

Alexander Deledda 2 Sep 8, 2022