naveedahmad99 / FlickrSearch

Write a mobile app that uses the Flickr image search API and shows the results in a 3- column scrollable view. • The app must let users enter queries, such as "kittens". • The app must support endless scrolling, automatically requesting and displaying more images when the user scrolls to the bottom of the view. • Do not use third-party libraries. They should not be needed for a project of this scale and we want to make sure you are familiar with the basics. • We should be able to clone your code from Github, then run the project without doing any additional work.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FlickrSearch (Kotlin)


Alt text

The application has a very basic UI. No work has been done on the design due to shortage of time and a lesser creative mind. The app has the following structure.

  • activity
    • MainActivity (Base class for handling common functionality for all Activities)
  • adapter
    • GenericAdapter (Adapter class for handling data)
    • CustomBindingAdapter (Binding Adapter class for handling ImageView src)
  • utils
    • NetworkRequestUtil (Handled all the network operations here)
  • viewmodel
    • MainActivityViewModel (ViewModel of the MainActivity)
    • PhotoData (Model for Flickr Photo Object)

Probable Improvements for future

  • Improve Image Caching Library to use local cache and avoid external storage.
  • Use Serialization/Deserialization libraries to avoid writing long parser classes.
  • Handle error codes with Api class and send meaningful callbacks.
  • Improve Design to make it more fluid and follow Material Guidelines.
  • Write UI and Unit Test cases. (Will need use of Third Party Libraries, hence avoided)
  • Need to update Proguard for code obfuscation.
  • Refactor code to follow a Clean Architecture guideline and improve usage of interfaces and dependency injection to avoid tight coupling between classes.

About

Write a mobile app that uses the Flickr image search API and shows the results in a 3- column scrollable view. • The app must let users enter queries, such as "kittens". • The app must support endless scrolling, automatically requesting and displaying more images when the user scrolls to the bottom of the view. • Do not use third-party libraries. They should not be needed for a project of this scale and we want to make sure you are familiar with the basics. • We should be able to clone your code from Github, then run the project without doing any additional work.


Languages

Language:Kotlin 97.7%Language:Java 2.3%