SampleProjectMVVM - Sample project using MVVM parsing data from Giphy.com

Overview

iOS Take Home

Create an iOS app with two views, MainViewController and DetailViewController. The MainViewController contains a list of GIFs from the Giphy API. Please do not use SwiftUI or Storyboard.

When there is no query, the view should display the featured (trending) gifs. When there is a query, it should display the search results from the API.

Tapping on a cell should push the DetailViewController. When the DetailViewController loads, it should request information from the API like title, source tld, and rating, and display it. This data must be requested from DetailViewController, not passed from the previous view controller (only pass the gif ID, then request data from the API again).

In summary, you will need to use three endpoints from the Giphy API: 1) trending, 2) search, and 3) get GIF by ID. (More info: https://developers.giphy.com/docs/api/endpoint) Also, when fetching trending gifs, please make sure to use the 'pg' rating as a request parameter.

You shouldn't need to use any additional dependencies.

And while not required, feel free to use your preferred architectural/design patterns or libraries/frameworks, and add additional flourishes or features! (e.g., using modern UIKit APIs, anything you'd like to improve)

Setup

Get an API key here and put it into Constants.swift 1c9equKb4xdMk5EdvzLv5RDWjNtPnzeo

Evaluation

What you will be evaluated on

  • Functionality (whether the app works as expected)
  • Following modern best practices
  • Use of architectural/design patterns
  • Use of SnapKit for laying out views

Bonus points

  • Testability of code
  • Appropirate access controls

What you will not be evaluated on

  • Testing (e.g., unit tests)
  • Error handling
  • Aesthetics

Submission Instructions

Create a public GitHub repository. Share this GitHub URL with your point of contact.

Screenshots

Main View

Detail View

Note: The data displayed here is for demonstration purposes. You should display any data possible from the Giphy API that you can on the detail view.

You might also like...
This to learn such as : Add Target , NSNotification Center Send/Get Data , Observer Override , resize Data By Byte , UIImagePicker Delegate , UIAlert Handle , Top ViewController , Get pickerController

Technicalisto How to Create UIButton Class to Pick Data Image Purpose Learn this topics With exact Task Add Target NSNotification Center Send/Get Data

This is an iOS Safari Extension Sample that adds a "Develop menu" to Safari on iOS to allow you to analyze websites.

Develop Menu for Mobile Safari This is an iOS Safari Extension that adds a "Develop menu" to Safari on iOS to allow you to analyze websites. This is a

Mini-application iOS native avec Xcode et Swift exploitant l'architecture MVVM et le framework Combine d'Apple pour la mise en place de la programmation réactive fonctionnelle, le tout avec UIKit.
Mini-application iOS native avec Xcode et Swift exploitant l'architecture MVVM et le framework Combine d'Apple pour la mise en place de la programmation réactive fonctionnelle, le tout avec UIKit.

iOS (Swift 5): Test MVVM avec Combine et UIKit L'architecture MVVM et la programmation réactive fonctionnelle sont très utlisées dans le développement

A demo demonstrates how to use combine and MVVM in the SwiftUI app
A demo demonstrates how to use combine and MVVM in the SwiftUI app

SwiftUI-MVVM-Combine A demo demonstrates how to use combine and MVVM in the Swif

Create a simple MVVM-C iOS architecture with Swift for starters

iOS-Architecture-MVVM MVVM+Coordinators IOS Architecture Tutorial By Bobby Pehtr

This a simple swiftui app where i used mvvm architecture, coredata swiftui and so on..
This a simple swiftui app where i used mvvm architecture, coredata swiftui and so on..

SwiftUI MVVM COREDATA NOTE APP This a simple swiftui app where i used mvvm architecture, coredata swiftui and so on... #FEATURES SWIFTUI MVVM COREDATA

WhaleFull - MVVM + RxSwift + CTMediator + MJRefresh + DZNEmptyDataSet

WhaleFull 👌 . MVVM + RxSwift + CTMediatror + MJRefresh + DZNEmptyDataSet Englis

NewsAppMVVM - A Swift iOS App created to practice MVVM Design Pattern
NewsAppMVVM - A Swift iOS App created to practice MVVM Design Pattern

NewsAppMVVM A Swift iOS App created to practice MVVM Design Pattern. This app re

Owner
HG HrachGarabedian
HG HrachGarabedian
MVVM-Clean with DI implementation sample project

MVVM-Clean with Dependency Provider Introduction This project contains MVVM-Clean architecture and Dependency injection Folder Structure Every module

Faraz Ahmed Khan 3 Oct 20, 2022
ProductListSwiftUI - SwiftUI Project to fetch product list using the fakestoreapi and the MVVM architectural pattern

ProductListSwiftUI SwiftUI Project to fetch product list using the fakestoreapi

Vitalii Shapovalov 4 Sep 16, 2022
Exemplify a LazyVGrid in SwiftUI in a MVVM pattern with Mock Data and images in assets.

SwiftUI-LazyVGrid Exemplify a LazyVGrid in SwiftUI in a MVVM pattern with Mock Data and images in assets. Screenshots Samples IP & Credits All those b

Ethan Halprin 3 Aug 9, 2022
HotCoffee is learning project with MVVM, Generic,Swift 5, TableView

HotCoffee A simple Coffee Ordering app built using TableView, MVVM design pattern and Swift5. Tools Xcode Version 13.2.1 Framework -UIKit Architecture

Ghullam Abbas 2 Aug 26, 2022
iOS native app demo with Xcode and Swift using MVVM architecture and Apple's Combine framework for functional reactive programming, all with UIKit

iOS (Swift 5): MVVM test with Combine and UIKit MVVM and functional reactive programming (FRP) are very used in iOS development inside companies. Here

Koussaïla BEN MAMAR 2 Dec 31, 2021
SpaceX rocket listing app using RxSwift and CLEAN Architecture with MVVM

Jibble SpaceX rocket listing app using RxSwift and CLEAN Architecture with MVVM Demo Features Reactive Bindings URL / JSON Parameter Encoding Filter Y

Ammad Akhtar 0 Dec 5, 2021
MVVM-RXSWIFT-COMBINE- - Demo application populating posts from network request using

MVVM => RXSWIFT + COMBINE Demo application populating posts from network request

Amr Al-khayat 0 Jan 2, 2022
MockChat TDD MVVM SwiftUI - Mockable, Test driven Development, clear Architecture example using SwiftUI

MockChat_TDD_MVVM_SwiftUI Mockable, Test driven Development, clear Architecture

Zahirul Islam 0 Feb 5, 2022
A travel guide app that implements MVVM design pattern, using mock API.

✈️ Travel Guide App ?? A travel guide app that implements MVVM design pattern, using mock API. ✨ Features ?? Project Features Written in Swift Impleme

Burak Ertaş 4 Nov 7, 2022
Braze is a Crypto Currency App created using SwiftUI with MVVM architecture.

Braze A Crypto Currency App created using SwiftUI with MVVM architecture. Braze tracks live prices of crypto coins and can create mock portfolio. Usin

Roy 5 Dec 7, 2022