Cat Gif App

Related tags

Games Octopus
Overview

Octopus iOS Technical Challenge

A lite search app that allows users to search for an cats gifs and images.


Implementation & Architecture

This task was implemented using Swift and UIKit. The app follows an MVVM-C architecture leveraging protocols and extensions to adhere to the SOLID principles. The app also makes use of other design patterns such as the view factory pattern to properly intiate view controllers as well as coordinators that manage navigation within the app.

The app's networking layer communicates with the The Cat API (https://docs.thecatapi.com), to cats images and gifs.


Unit Tests

This task does not contain any unit tests as there isn't much business or navigation logic. Potentially there are small things that can be tested such as the cats' category filtering. This filtering along with the catImageViews() could be moved to a separate helper file to allow for testing as they are currently private and inaccessible for testing.

The architecture allows us to easily mock objects such as the networking service layer (thanks to protocols and dependency injection) for testing. With a more complex app that can contain navigation logic, unit tests can be written for the coordinators to check if the correct screens are being presented.

You might also like...
App created in UIKit in order to control users' games library
App created in UIKit in order to control users' games library

App created in UIKit in order to control users' games library. It's developed in Swift 5 with Storyboard, and relies in a ASP.Net API backend.

Async GIF image decoder and Image viewer supporting play GIF images. It just use very less memory.
Async GIF image decoder and Image viewer supporting play GIF images. It just use very less memory.

YLGIFImage Asynchronized GIF image class and Image viewer supporting play/stop GIF images. It just use very less memory. Following GIF usually will co

A SwiftUI app that fetch images from The Dog API and The Cat API
A SwiftUI app that fetch images from The Dog API and The Cat API

Cat-Or-Dog-App A SwiftUI app that fetch images from The Dog API and The Cat API, then classify the species of dogs or cats with confidence level. The

LotsOfCats - An iOS app that lets you swipe through random cat pictures
LotsOfCats - An iOS app that lets you swipe through random cat pictures

LotsOfCats This is an iOS app that lets you swipe through random cat pictures! I

SwiftUI:Using Shape & Path to Draw Taiwan Meme Cat

SwiftUI:Using Shape & Path to Draw Taiwan Meme Cat Using SwiftUI's Shape & Path to draw sticker「Taiwan Meme Cat」from Instagram:@taiwanmemecat! SwiftUI

This mobile application built in SwiftUI is designed to help you medicate your cat faster.
This mobile application built in SwiftUI is designed to help you medicate your cat faster.

MediKitty This mobile application built in SwiftUI is designed to help you medicate your cat faster. If you medicate your kitty it will be happy Add w

A keychain wrapper that is so easy to use that your cat could use it.

A keychain wrapper that is so easy to use that your cat could use it.

An app show your Live Photo and export as GIF.
An app show your Live Photo and export as GIF.

LivelyGIFs Show your Live Photo and export as GIF. Demo HighLights Do not use Pod or Cathage to install 3rd party library Simple logic, new learner fr

Gifu adds protocol-based, performance-aware animated GIF support to UIKit.
Gifu adds protocol-based, performance-aware animated GIF support to UIKit.

Gifu adds protocol-based, performance-aware animated GIF support to UIKit. (It's also a prefecture in Japan). Install Swift Package Manager Add the fo

A Swift implementation of fastimage. Supports PNG, GIF, and JPEG.
A Swift implementation of fastimage. Supports PNG, GIF, and JPEG.

ImageScout ImageScout is a Swift implementation of fastimage. It allows you to find the size and type of a remote image by downloading as little as po

 SwiftGif - A small UIImage extension with gif support.
SwiftGif - A small UIImage extension with gif support.

SwiftGif - A small UIImage extension with gif support.

High performance GIF engine
High performance GIF engine

SwiftyGif High performance & easy to use Gif engine Features UIImage and UIImageView extension based Remote GIFs with customizable loader Great CPU/Me

High-performance animated GIF support for iOS in Swift
High-performance animated GIF support for iOS in Swift

Gifu adds protocol-based, performance-aware animated GIF support to UIKit. (It's also a prefecture in Japan). Install Swift Package Manager Add the fo

XAnimatedImage is a performant animated GIF engine for iOS written in Swift based on FLAnimatedImage
XAnimatedImage is a performant animated GIF engine for iOS written in Swift based on FLAnimatedImage

XAnimatedImage is a performant animated GIF engine for iOS written in Swift based on FLAnimatedImage. An illustration is shown below: Features Plays m

Add PullToRefresh using animated GIF to any scrollView with just simple code
Add PullToRefresh using animated GIF to any scrollView with just simple code

UzysAnimatedGifPullToRefresh Add PullToRefresh using animated GIF to any scrollView with just simple code UzysAnimatedGifPullToRefresh features: simpl

GIFRefreshControl is a pull to refresh that supports GIF images as track animations.
GIFRefreshControl is a pull to refresh that supports GIF images as track animations.

GIFRefreshControl GIFRefreshControl is a pull to refresh that supports GIF images as track animations. Installation You have multiple choices here: Co

Drop in GIF Collection View. Uses Tenor as default GIFs provider.
Drop in GIF Collection View. Uses Tenor as default GIFs provider.

Drop in GIF Collection View. Uses Tenor as default GIFs provider. This will allow you to easily integrate GIF image search into your app or you can use this as a GIF keyboard for your messaging needs.

Performant animated GIF engine for iOS
Performant animated GIF engine for iOS

FLAnimatedImage is a performant animated GIF engine for iOS: Plays multiple GIFs simultaneously with a playback speed comparable to desktop browsers H

High-performance animated GIF support for iOS in Swift
High-performance animated GIF support for iOS in Swift

Gifu adds protocol-based, performance-aware animated GIF support to UIKit. (It's also a prefecture in Japan). Install Swift Package Manager Add the fo

Owner
null
Mobile IOS Game App Developed by Haemi Lee, Dominika Popov, and Dylan Walsh

VroombaWars Mobile IOS Game App Developed by Haemi Lee, Dominika Popov, and Dylan Walsh Why clean your room in real life when you can have a virtual v

Haemi Lee 1 Oct 16, 2021
A Simple iOS Game App - Designed in SwiftUI 🚀

A Simple iOS Game App - Designed in SwiftUI ?? The game's aim is to make a cap to fill the color among them. On tapping any shapes, it will rotate 90

Mohammad Yasir 2 Jan 18, 2022
A Component Piece (a game) for a larger app (KoyaQuest) using SpriteKit

NyonindoChallenge This is a game that is intended for inclusion in a larger app (called KoyaQuest). I have created a separate version because of probl

null 0 Oct 25, 2021
QuizButton is a simple buzzer app that is extremely useful when you play quiz games.

QuizButton is a simple buzzer app that is extremely useful when you play quiz games.

yuken 1 Dec 2, 2021
An iOS app build with SpriteKit

Gravity Zen This is an iOS app build with SpriteKit. It shows a gravitationals f

Dominik Hauser 11 Apr 22, 2022
Gamer-s-Collection - An app for searching and saving favorite games using rawg.io api and Core Data

Gamer-s-Collection - An app for searching and saving favorite games using rawg.io api and Core Data

Rıdvan İmren 1 Aug 19, 2022
ShooterGame - An iOS App that is a shooter game. Made with SpriteKit and Swift

Shooter Game This project was created based on the challenge of Day 66 of the 10

António Pedro da Silva Rocha 0 Feb 1, 2022
This is a clone project of Wordle. The app is made using SwiftUI

Wordle This is a clone project of Wordle. The app is made using SwiftUI. You can

HZ.Liu 5 Nov 25, 2022
App for the Swift Alps Game Jam! 🕹

Welcome to the Swift Alps Game Jam repo - which houses an app that will contain all of the games made at the game jam. To participate, do the followin

The Swift Alps 91 Jan 3, 2023
Wordle Clone iOS app using Swift and SwiftUI 😎

Wordle Clone Wordle clone using Swift and SwiftUI for educational purposes. Video Preview Screenshots Features Hard Mode Help Screen Sync Stats across

Shameem Reza 8 Jan 1, 2023