The authentication of the app was carried with firebase authentication.When the app starts it first displays the splash activity with “Desi Gif” written on it.After that login activity and signup activity does their job.I have beautify the things with the addition of material design and mprogress bar.I have done data validation here and carried out view injection with butterknife.
The main challenge was to make gif images directly from the camera.This was one of the most challenging part as camera api were deprecated by google and need to make it on camera2 api which they support.Online material on making camera from gif were scarce.I made gif from AnimatedGifEncoder.After the has been made it gets saved locally to device and from there it gets displayed in gif feed.
My next challenge was how to display gif.It was because android studio was designed to display images and videos.I learned more about online and contents regarding this were also scarce.But i was able to do it with the help GifImageView.Besides this i implemented single tap to like the gif.To like a gif many things comes in practice,when a user like the gif the like icon needs to be replaced with red like icon during runtime and vice versa.The icons displayed were also material design icons recommended by google.Sharing of the gif was done with the sharing intent.It allows user to share intent to other platforms like facebook,whatsapp etc.The comment,title user profile and icon were also wired with gif post.A refresh icon was also provided to refresh the gif feed.
I implemented various feature under settings tab and they are Profile,Folder To Save Gif,Invite Friends,Edit Profile,Change Password,Block List,Privacy,Feedback,Logout.Many of them were simple to execute as i had prior knowledge of it.There are some features in it that lack functionality because they are dependent on backend services.I also implemented notification that utilizes list adapter and scrollview to display its content.In many activities i have utilized toast for user convenience to update him about the status of activities.
To ensure quality of app i tested it on around seven devices.I tried to make app as small in size as possible as it plays crucial role when a user decides to download the app.When user downloads the app he judges the app based on its ui/ux and speed.I tried to overcome it with material design and good practices.