arch10 / get-icons

GetIcons is an unofficial IconFinder app that contains different icons from different publishers around the globe.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GetIcons πŸ‘Œ

GetIcons is an unofficial IconFinder app that contains different icons from different publishers around the globe.

Features 🌟

  1. Browse through 100s of Icon sets and Icons
  2. Search for a particular icon
  3. Icon Set Details
  4. Icon Details
  5. Author Details
  6. Download free icons to mobile

Color System 🎨

Color System

GetIcons follow Google's material design for the UI. All the colors selected are based on the IconFinder Website.

Premium Badge

This badge denotes that the icon or the icon set is a premium icon. If an icon is a premium icon, then you cannot download the icon directly from the app.

Architecture πŸ—Ό

This app uses MVVM (Model View View-Model) architecture.

MVVM

Folder Sturucture πŸ“¦

com.gigaworks.tech.geticons     # Root Package
β”œβ”€β”€ di                          # Hilt DI Modules
β”œβ”€β”€ domain                      # Data Models for the project
β”œβ”€β”€ network                     # Retrofit
|   |── model                   # Retrofit Data transfer Object Models
|   |── response                # Response Object
|   └── service                 # Retrofit Service
|── repository                  # Repository to handle data operations
|── ui                          # Activity/Fragment View layer
└── util                        # All extension functions and utilities

Built With πŸ› 

  • Kotlin - First class and official programming language for Android development.
  • Coroutines - For asynchronous and more..
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • Jetpack Navigation - Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • Hilt - Dependency injection library for Android.
    • Paging 3 - The Paging library helps to load and display pages of data from a larger dataset from local storage or over network.
  • Retrofit - A type-safe HTTP client for Android.
  • OkHttp 3 - A modern HTTP client.
  • Glide - A fast and efficient open source media management and image loading framework for Android.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.
  • ViewPager 2 - Display Views or Fragments in a swipeable format.

Domain Objects πŸ“¦

data class Icon()           # Contains Icon object
data class IconSet()        # Contains IconSet object
data class Author()         # Contains Author object

Navigation Graph

IconSets

Backend

The Iconfinder API is an HTTP JSON API and allows you to programmatically access resources on the service, such as icons, icon sets, categories, styles, authors, etc. The API is accessible on the api.iconfinder.com domain and always used over HTTPS. It accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authorization, and verbs.

Limitations

  • Due to the time limitation, could not implement error handling, few optimizations, designs etc.
  • API is not clean and so, for some sets of data, fw entries are missing
  • Searching for Icons, gives the list of Icons. This Icon object doesnot contain author detail or id. Due to which searching for individual icons doesnot show author details.
  • Pagination of few pages are not implemented due to time constraint.
  • Author's Icon set doesnot give icon set for the latest data. So most of the author details page is empty.
  • Many more maybe that I dont remember now...

Screenshots

IconSets Icons
IconSets Icons
Search Icons Icon Details
IconSets Icons
Icon Details Icon Set Details
IconSets Icons
Icon Download
IconSets

Video

Watch Demo Video Here

Download APK

License πŸ”–

    Apache 2.0 License
    
    Copyright 2018-2021 Gigaworks Tech
    
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

About

GetIcons is an unofficial IconFinder app that contains different icons from different publishers around the globe.

License:Apache License 2.0


Languages

Language:Kotlin 100.0%