LoremPicsum - Simple UIKit based app for displaying grid of pictures

Related tags

Image LoremPicsum
Overview

Lorem Picsum

Simple UIKit based app for displaying grid of pictures from https://picsum.photos.

Available from iOS 13+.

Instalation

Install Sourcery (https://github.com/krzysztofzablocki/Sourcery)

Open LoremPicsum.xcodeproj and:

  • cmd+r to run project
  • cmd+u to run unit tests

Architecture overview

Architecture design is variation over Clean Architecure / Layered Archictecture with UIKit.
Code is splited into Shared and Features folders. Goal is to have all of features decoupled of each other and have an app that is easy to modularize.

Data flow:

View (Display) <-> ViewModel (Business logic, Navigation) <- Repository (Loading data from providers) <- Data provider (APIClient, CoreData etc.)

View is decoupled from ViewModel so we can easily switch between View frameworks, for example UIKit and SwiftUI

Steps to improve

  • Add Snapshot testing (https://github.com/pointfreeco/swift-snapshot-testing)
  • Add UI tests
  • Add dependency injection system (https://github.com/hmlongco/Resolver)
  • Improve UI -> animations on interaction, support dark mode
  • Improve details view -> Add scroll view to support zooming
  • Add better navigation handling -> for such small project pure navigation controller is fine but adding more features will make it hard to maintain. Prefferable approaches Coordinator + Router
  • Setup Fastlane
  • Improve LaunchScreen
  • Improve caching
You might also like...
IBrain - Displaying a Point Cloud Using Scene Depth
IBrain - Displaying a Point Cloud Using Scene Depth

Displaying a Point Cloud Using Scene Depth Present a visualization of the physic

SwiftUI view that download and display image from URL and displaying Activity Indicator while loading .

ViewWithActivityIndicator ViewWithActivityIndicator is a SwiftUI view that download and display image from URL and displaying Activity Indicator while

ImageView - Component for loading and displaying different images aka SVG/PNG/JPG/JPEG

ImageView Component that loads and displays images(.svg/.png/.jpg/.jpeg) form as

A Swift/SwiftUI utility for caching and displaying images in SwiftUI Views

A Swift/SwiftUI utility for caching and displaying images asynchronously. Built with Swift 5.5 and works with async/await.

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

Fun GridScrollView written in SwiftUI + Combine, bridging between UIKit
Fun GridScrollView written in SwiftUI + Combine, bridging between UIKit

BSZoomGridScrollView BSZoomGridScrollView is a powerful, pure swift iOS UI framework that provides the awesome grid scrollview containing your image a

NavigationCoordinator acts as a coordinator for NavigationView in SwiftUI. You can use pushView, popView, popToView, popToRootView as you can in traditional UIKit

NavigationCoordinator NavigationCoordinator acts as a coordinator for NavigationView. You can use pushView, popView, popToView, popToRootView in Swift

PrivateImage - DRM image view for UIKit and SwiftUI
PrivateImage - DRM image view for UIKit and SwiftUI

SecretImage Image view with DRM protection for SwiftUI and UIKit. What? This vie

A simple mesh viewer for MacOS based on Swift and Metal and using Assimp for loading meshes

Metal Mesh Viewer A simple triangle mesh viewer for MacOS This application is a simple (triangle) mesh viewer that should be capable of rendering even

Owner
Paweł Dziennik
Paweł Dziennik
Simple camera application for iOS that uploads pictures to WebDAV server or Dropbox quickly. Available on the AppStore.

Upupu Simple camera application for iOS that uploads pictures to WebDAV server or Dropbox quickly. Also available on the AppStore. Features Easy and f

Xcoo 65 Nov 15, 2022
NASAPictureOfTheDay - An app that displays pictures from the NASA APOD API

NASA Picture of the day This is an app that displays pictures from the NASA APOD

Dhaval Rajani 0 Jan 29, 2022
A simple iOS photo and video browser with grid view, captions and selections.

MWPhotoBrowser A simple iOS photo and video browser with optional grid view, captions and selections. MWPhotoBrowser can display one or more images or

Michael Waterfall 8.8k Dec 27, 2022
Full aspect ratio grid layout for iOS

Greedo Layout for iOS A library that computes what size the UICollectionView cells should be to display images in a variable height fixed aspect ratio

500px 831 Dec 17, 2022
APNGKit is a high performance framework for loading and displaying APNG images in iOS and macOS.

APNGKit is a high performance framework for loading and displaying APNG images in iOS and macOS. It's built on top of a modified version of libpng wit

Wei Wang 2.1k Dec 30, 2022
A UIActivityViewController to share images while displaying them as a nice preview.

PSActivityImageViewController Overview This view controller allows you to share an image the same way as a normal UIActivityViewController would, with

Peter Salz 11 Oct 19, 2022
Space! – an iOS widget displaying NASA's Astronomy Picture of the Day

Space! NASA's Astronomy Picture of the Day – now on your Home Screen with widgets! Space! displays the latest APOD photo curated by NASA every day. Se

Jacob Bandes-Storch 72 Dec 17, 2022
A SwiftUI view for displaying image histograms

HistogramView A SwiftUI view for displaying image histograms. How do I use it? It's as simple as: HistogramView(image: myImage) Note: Both UIImage & N

Vasilis Akoinoglou 11 Dec 14, 2022
Advanced framework for loading, caching, processing, displaying and preheating images.

Advanced framework for loading, caching, processing, displaying and preheating images. This framework is no longer maintained. Programming in Swift? C

Alexander Grebenyuk 1.2k Dec 23, 2022
iOS library for quickly displaying images while scrolling

Fast Image Cache is an efficient, persistent, and—above all—fast way to store and retrieve images in your iOS application. Part of any good iOS applic

Path Mobile Inc Pte. Ltd. 8.2k Jan 9, 2023