/sniff

A Fast Kotlin JVM Image Loader and Cacher

Primary LanguageKotlin

Sniff (Under Active Development)

A Fast Kotlin JVM Image Loader/Cacher

N|Kotlin

Sniff is a simple network image loader and cacher for Kotlin JVM, it supports the new jetpack compose ui for desktop 🔥.It is inspired from Picasso for android and built on the top of Ktor Client as a default client.

TO DO

  • Create Image Disk Loader
  • Create factories for each service.
  • Add fade option upon rendering.
  • Enhance fallbacks and retries of network calls, apply them in the correct way.
  • Project modularization.
  • Option to apply image color filters in an easy way
  • Option to add place holder when loading
  • improve the jetpack compose ui component
  • Remove the dependency on jetpack compose ui, so this library can be used on all platforms
  • Change caching strategies on runtime
  • Change Loader types on runtime
  • Change HttpClient on runtime
  • Add GIF support

DOING

  • Create Disk caching.

Project Structure

  • -> cache: All caching strategies with a single access point
  • -> component: Jetpack ui image view component
  • -> loader: All types of loaders Online,Offline and both
  • -> service: contains HTTPClients to dowload the image (currently KTOR)
  • -> sniff: will be the public access point for library users.

How To use

NetworkImage(url = URL,scope = coroutineScope)

The project depends on

Sniff is currently extended with the following plugins.

Plugin VERSION
KTOR 1.5.1

Development

Want to contribute? Great!

Fork and submit a pull request, you can start with one of the

TO DO

License

MIT

Free Software, Hell Yeah!