浏览代码

Update Readme doc
remove library module

shivamlivelike 3 年之前
父节点
当前提交
b9f94ae2f9

+ 0 - 1
.idea/gradle.xml

@@ -11,7 +11,6 @@
           <set>
           <set>
             <option value="$PROJECT_DIR$" />
             <option value="$PROJECT_DIR$" />
             <option value="$PROJECT_DIR$/app" />
             <option value="$PROJECT_DIR$/app" />
-            <option value="$PROJECT_DIR$/flickersearchlibrary" />
           </set>
           </set>
         </option>
         </option>
         <option name="resolveModulePerSourceSet" value="false" />
         <option name="resolveModulePerSourceSet" value="false" />

+ 30 - 32
README.md

@@ -1,37 +1,35 @@
 # LiveLike Android Code Challenge
 # LiveLike Android Code Challenge
-Welcome to the LiveLike Android Code Challenge. 
-The goal of this challenge is to create a Flickr search library **(not application)** that allows you to search or explore images by tags and display it in a gridview using [Flickr API](https://www.flickr.com/services/api/flickr.photos.search.html)
 
 
-> Please follow instructions in the **Submission** section to correctly submit your project.
+The goal of this challenge is to create an *Giphy search app that allows you to search/explore image by tags and display it a grid view (basic simple UI) using Giphy API (https://developers.giphy.com/docs/api/#quick-start-guide)
+**Search API**: https://developers.giphy.com/docs/api/endpoint/#search
+You can use the API key: **8LtshfHp2uWb6CFpmzPtJmborDaVWu0Z** (In case the API key is not working you can create you own api key)
+**Note**: Make sure to use Giphy API and not Giphy SDK
+**Note**: If there is any issue with Giphy APi, you can use any api to show grid of images
 
 
-## Project
-The Flickr search library will be responsible for the following:
-1. Deliver results based on search query input
+### Project:-
+
+The Giphy search app will be responsible :-
+
+1. API To deliver results based on search query input
 2. When no query passed in, result set should be empty
 2. When no query passed in, result set should be empty
-3. Return the recently published images on Flickr
-4. A basic UI which will display a list of images from the result in a grid form
-5. Local storage / Cache mechanism should be handled. 
-   * ex. In the absence of connectivity/ network error, the result should be displayed from local storage
-6. If search query is updated, the old result set should be updated with the new one
-7. Should support options for pagination
-8. Errors should be handled with logs
-
-### Use-Case
-- This library will be used by end users in their application for searching purposes
-- An App can use this library to search Flickr and display the results using their own custom UI
-
-### Hard Requirements
-* The library can be used in a sample project without any compilation/build errors
-* The code should not crash under normal usage
-* The code must be written in Kotlin
-* Must have Pagination support
-
-### Extra Credit
-* Unit Tests
-
-## Submission
--   Create an account with **code.livelike.com**
--   Fork the repository into your local environment
--   Implement as much as you can, you have roughly 72 hours. There is no wrong or right answer.
--   To submit your project **you must submit it as a Pull Request**
+3. A basic default UI which will display list of images from the result in grid form
+4. If search query is updated, the old result set should reset with new one
+5. Should support options for pagination
+6. Errors should handled with logs and shown to users
+
+
+### Hard Requirements:-
+
+* *The code must be written in Kotlin*
+* Pagination support
+
+
+## Extra Credit:-
+* ### Unit Test
+* ### Use of Kotlin Coroutines for Thread Handling
+
+#### Submission Guidelines:-
 
 
+* Implement as much as you can in the time allotted. There is no wrong or right answer
+* Try not give default UI much importance (Just a very basic UI would be fine)
+* To submit your project you must submit it as a Pull Request

+ 0 - 1
flickersearchlibrary/.gitignore

@@ -1 +0,0 @@
-/build

+ 0 - 37
flickersearchlibrary/build.gradle

@@ -1,37 +0,0 @@
-plugins {
-    id 'com.android.library'
-}
-
-android {
-    compileSdk 30
-
-    defaultConfig {
-        minSdk 21
-        targetSdk 30
-        versionCode 1
-        versionName "1.0"
-
-        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
-        consumerProguardFiles "consumer-rules.pro"
-    }
-
-    buildTypes {
-        release {
-            minifyEnabled false
-            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-        }
-    }
-    compileOptions {
-        sourceCompatibility JavaVersion.VERSION_1_8
-        targetCompatibility JavaVersion.VERSION_1_8
-    }
-}
-
-dependencies {
-
-    implementation 'androidx.appcompat:appcompat:1.4.0'
-    implementation 'com.google.android.material:material:1.4.0'
-    testImplementation 'junit:junit:4.+'
-    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
-    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
-}

+ 0 - 0
flickersearchlibrary/consumer-rules.pro


+ 0 - 21
flickersearchlibrary/proguard-rules.pro

@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile

+ 0 - 26
flickersearchlibrary/src/androidTest/java/com/livelike/flickersearchlibrary/ExampleInstrumentedTest.java

@@ -1,26 +0,0 @@
-package com.livelike.flickersearchlibrary;
-
-import android.content.Context;
-
-import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
-    @Test
-    public void useAppContext() {
-        // Context of the app under test.
-        Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
-        assertEquals("com.livelike.flickersearchlibrary.test", appContext.getPackageName());
-    }
-}

+ 0 - 5
flickersearchlibrary/src/main/AndroidManifest.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.livelike.flickersearchlibrary">
-
-</manifest>

+ 0 - 17
flickersearchlibrary/src/test/java/com/livelike/flickersearchlibrary/ExampleUnitTest.java

@@ -1,17 +0,0 @@
-package com.livelike.flickersearchlibrary;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
- */
-public class ExampleUnitTest {
-    @Test
-    public void addition_isCorrect() {
-        assertEquals(4, 2 + 2);
-    }
-}

+ 0 - 1
settings.gradle

@@ -8,4 +8,3 @@ dependencyResolutionManagement {
 }
 }
 rootProject.name = "LiveLikeAndroidChallenge"
 rootProject.name = "LiveLikeAndroidChallenge"
 include ':app'
 include ':app'
-include ':flickersearchlibrary'