PhotoCatalog - PhotoCatalog Project Using Swift

Related tags

Layout PhotoCatalog
Overview

PhotoCatalog

Project Setup

  1. Clone the project from this link [email protected]:islamovic/PhotoCatalog.git
  2. Open PhotoCatalog.xcodeproj then Build and Run the project.

Project Architecture

I'm Using VIP Clean Code, you can read more about it from Here

Project Component

Scenes

  • Is a Set of Scene, And Every Scene is a stand alone ViewController.
  • Every Scene Has it's own Interactor Here is you can write all the business Logic.
  • Every Scene Has it's own Presenter Here is you can write all the view Logic.

Core

  • It has only two main components:

KeychainService: It's a manager used for save and get data in and into KeyChain.

DataEncryption: It's a manager for encrypt and decrypt the data.

Utils

  • Has some functionalities not related to any logic on the application but can be used more than omce. for example here we have 3 extensions for String converting strings to float values, and UIImageView for downloading images, and UICollectionView for handling the dequeuing and cell registeration.

Networking

  • Has all the network layer for the app to use.
  • I just created a simple network layer based on use cases techniques that every web service should handle it own routers and use casee.

Portrait Screenshots

Catalog List Create a new catalog Item Item Details

Landscape Screenshots

Catalog List Create a new catalog Item Item Details

Test Cases

In Unit test case I diveded them to 4 folders.

  • View Controller To test the view controller connection with the interactors

    • CreateCatalogSceneViewControllerTests
    • CatalogListSceneViewControllerTests
  • Interactors To test the interactor connection with presenataion view

    • CatalogListSceneInteractorTest
    • CreateCatalogSceneInteractorTests
  • Resources To add some Mock data to use them in unit test cases

  • Netwok To Test all the api's imnplmented inside the app

    • PhotosCatalogListWebServiceTests
    • CreatePhotoCatalogWebServiceTests
    • DownloadingImageWebServiceTests

These covared about 65% of the code. Screen Shot 2022-02-04 at 7 21 31 PM

You might also like...
SuperLayout is a Swift library that makes using Auto Layout a breeze.
SuperLayout is a Swift library that makes using Auto Layout a breeze.

SuperLayout is a library that adds a few custom operators to Swift that makes using the amazing NSLayoutAnchor API for Auto Layout a breeze. SuperLayo

BrowserID for iOS Using Swift

browserid-ios Almost a clone of https://github.com/amedia/browserid For generating and providing a browser id and a browser visit id to a WebView. Use

AppStoreClone - Understanding the complex layout of app store using UICompositional layout in swift
AppStoreClone - Understanding the complex layout of app store using UICompositional layout in swift

AppStoreClone Understanding the complex layout of app store using UICompositiona

This is a simple chat application made in Swift using send and receive interface.

Flash Chat 💁🏽‍♂️ Overview This is a simple chat application made in Swift using send and receive interface. ⚙️ How it works The user needs to first

Using Kiva's free API, the demo app retrieves its most recent fundraising loans
Using Kiva's free API, the demo app retrieves its most recent fundraising loans

KivaLoan Kiva is a non-profit organization with a mission to connect people through lending to alleviate poverty. Using Kiva's free API, the demo app

Content Hugging Priority settings using Auto Layout

AutoLayoutContentHugging Swift 5 and Xcode 12. Content Hugging Priority settings using Auto Layout. Content Hugging Priority give you granular control

This app presents few examples for common patterns using purer SwiftUI code

VIPERtoSwiftUI GOAL This app presents few examples for common patterns using purer (from authors experience) SwiftUI code. LITERATURE https://www.appy

An experiment creating a particle emitter using the new TimelineView and Canvas views in SwiftUI
An experiment creating a particle emitter using the new TimelineView and Canvas views in SwiftUI

Particle Emitter An experiment creating a particle emitter using the new Timelin

A simple checklist app using UIKit
A simple checklist app using UIKit

UIKit Checklist App Data Persistence Icon Selector Notification Scheduling Multi

Owner
Islam Ibrahim
iOS Developer for 10+ years, With high Technical, debugging skills, and problem solver. Always looking for fast growing, flat hierarchy, friendly environment.
Islam Ibrahim
iOS simple project to create half-screen modal view controller with pan

Simple Half-screen view controller, draggable and less code (learning purpose)

Mohd Hafiz 123 Dec 17, 2022
sample project for `UICollectionViewLayout` implementation

collection-view-layout-pattern-sample UICollectionViewLayout implementation pattern. About This project is introduced in iOSDC Japan 2021. sample code

Toshiki Takezawa 13 Nov 3, 2021
An example project showing how to use `overrideUserInterfaceStyle` to build an in-app light/dark mode switch

OverrideDarkMode A sample project to show how using overrideUserInterfaceStyle enables having a dark / light mode switch directly in the app, while st

Zouhair Mahieddine 1 Jan 19, 2022
Demo project that searches repositories on GitHub and displays details

LookGitUp A test project that queries GitHub and lists the repositories with their name, stars, creation date, user details and user's avatar. Technic

Rashmikant Makwana 0 Nov 30, 2021
The sample project how to use MobileStyleGAN in iOS.

CoreML-StyleGAN The Sample project how to use CoreML model of MobileStyleGAN in the Xcode project. You can generate person images and save it in photo

MLBoy 8 Oct 18, 2022
A project for studying of UICollectionViewCompositionalLayout

UICollectionViewCompositionalLayout A project for studying of UICollectionViewCo

donggyu 7 Jul 3, 2022
UIKit Practice Project – Simple app to store names along with photos of people you've met

People UIKit Practice Project #10 – Simple app to store names along with photos of people you've met Cool Features Light & dark mode support Responsiv

foxster.mp4 2 Nov 28, 2022
Little project made in swiftUI for an app.

Jou: It's all about jou. A mental wellness app. The project is made in Swift (with the help of SwiftUI) by a team of five members. Main views Mood tra

null 4 Dec 2, 2022
An awesome Swift CSS DSL library using result builders.

An awesome Swift CSS DSL library using result builders.

Binary Birds 57 Nov 21, 2022
Flexbox in Swift, using Facebook's css-layout.

SwiftBox A Swift wrapper around Facebook's implementation of CSS's flexbox. Example let parent = Node(size: CGSize(width: 300, height: 300),

Josh Abernathy 811 Jun 23, 2022