/ya-photos

Android app to demonstrate usage of Yandex.Fotki API and third-party libraries

Primary LanguageJavaMIT LicenseMIT

YaPhotos

Sample Android app to demonstrate usage of Yandex.Fotki API.

Displays three public photo albums: "Recent photos", "Popular photos" and "Photos of the day".

This is a version of YaPhotosNoLib with third-party libraries and more features.

Album view Photo view Fullscreen view

Features

  • Album view:
    • Swipe and tab navigation
    • App bar scrolling off-screen
    • Pull to refresh
    • Thumbnails caching and preloading (with lower priority)
    • Endless scrolling
    • Thumbnail size and column number auto-adjusted to screen size
    • Progress and error indicators
  • Detail view:
    • Swipe navigation
    • Fullscreen mode
    • Share button
    • Link to web page
    • Endless scrolling
    • Thumbnail preview while loading full-size image
    • Image size auto-adjusted to screen size
    • Progress and error indicators
  • Multi-layer model repository (memory/database/network)
  • Persistence for better offline UX
  • Workaround to calculate next page for "Photos of the day" album
  • Instrumentation and unit tests

Technologies used

  • Dagger
  • EventBus
  • Glide with RecyclerViewPreloader
  • greenDAO
  • Gson with custom TypeAdapter
  • Mockito
  • Parceler
  • Retrofit
  • Robolectric
  • AsyncTask
  • AtomicBoolean, AtomicReferenceArray
  • CoordinatorLayout, AppBarLayout, Toolbar, TabLayout
  • Date, Calendar, SimpleDateFormat
  • FileProvider
  • Fragment, FragmentManager
  • JUnit, Espresso, UI Automator
  • RecyclerView, GridLayoutManager
  • StrictMode
  • SwipeRefreshLayout
  • Thread
  • ViewPager, FragmentStatePagerAdapter, FragmentPagerAdapter
  • WebView

Installation

This is an Android Studio project.

License

Project is distributed under MIT license.

Third-party libraries are distributed under their own terms, please see their websites & repositories.

The use of Yandex.Fotki service and its API is regulated by API User Agreement, Yandex.Fotki Service Terms Of Use and general User Agreement for Yandex Services.

All photos are exclusive property of their right holders, available for personal non-commercial use under certain conditions (see links above).