Storm: iOS home task project

Overview

iOS home task project

About this repository

This repository contains brand new iOS project with Storyboards removed and ready to write the UI programatically with UIKit so you don't waste time to set it up. You can fork this repository and work on forked one and once you are ready you can create a pull request to this repository

Instructions

  1. Create your own private github repository
  2. Push your solution to that repository
  3. Invite github user piotrdebosz when you are ready.

Description

The main idea is to build an app that shows list of places where each place has its own set of photos.

Places screen

A place has name and thumbnail image and it's up to you how to display it however they should be sorted in alphabetical order.

To retrieve the places you can use the following API:

When a place is tapped the app should go to the photos screen

Photos screen

Photos screen will have all photos of the place presented ordered by createdAt parameter showing the newest as the first one.

To retrieve the list of photos you can use the following API (replace [PLACE_ID] with the id you get from /places API call):

It is required to present photos in the UICollectionView in such a way that each cell contains single photo and the cell is filling all possible space (so showing one cell at the time). Think of it like a fullscreen photos gallery where user can see one photo at the time.

User should be able to switch between next / previous photo by swiping left and right

Additional requirements

  • There should be some kind of caching mechanism to download photo only if it's not available in cache. There is no need for persistence so cache can reset every app launch. Cache should be limited to 10 last downloaded images. Please do not use NSCache.
  • UI should be written programmatically using UIKit therefore no using Storyboards / XIBs
  • The solution should not use Combine / RxSwift
  • You can use any 3rd party library you wish however in our current projects we try to keep the number of dependencies to minimum so it'd be good to justify it.
  • You can use any version of Swift / XCode / iOS

Thank you for your time and we are looking forward to see your solution

If you have any additional questions please feel free to ask our team member who sent you information about this task.

You might also like...
An Xcode12 project for iOS that asynchronously downloads and displays xkcd comics
An Xcode12 project for iOS that asynchronously downloads and displays xkcd comics

AsyncXKCD An Xcode12 project for iOS that asynchronously downloads and displays xkcd comics images and captions. It fills a UITableView as needed to k

Codepath-intro-prework - Hello World iOS App | Prework Project for CodePath Intro to Mobile App Development
Codepath-intro-prework - Hello World iOS App | Prework Project for CodePath Intro to Mobile App Development

Hello World iOS App App Description Prework Project for CodePath Intro to Mobile

CodePath-iOS-Prework - Prework project for Intro to Mobile App Development course on CodePath
CodePath-iOS-Prework - Prework project for Intro to Mobile App Development course on CodePath

CodePath iOS Prework App Description This app has an input field, text, and seve

A project to practice the Platzi course, Curso de Desarrollo de Aplicaciones iOS con SwiftUI
A project to practice the Platzi course, Curso de Desarrollo de Aplicaciones iOS con SwiftUI

A project to practice the Platzi course, Curso de Desarrollo de Aplicaciones iOS con SwiftUI

Project Based IOS/Swift study_fast campus lecture
Project Based IOS/Swift study_fast campus lecture

Project Based IOS/Swift study_fast campus lecture

PlayCover - a project that allows you to sideload iOS apps on macOS
PlayCover - a project that allows you to sideload iOS apps on macOS

PlayCover - a project that allows you to sideload iOS apps on macOS

Demo project to sync color changes to an Raspberry Pi Mood Light via iOS/Android
Demo project to sync color changes to an Raspberry Pi Mood Light via iOS/Android

Raspberry Pi Mood Light Demo project to remotely control an Raspberry Pi Mood Light over Bluetooth via iOS and Android. 📺 Watch the video Overview In

A Swift command line tool for generating your Xcode project
A Swift command line tool for generating your Xcode project

XcodeGen XcodeGen is a command line tool written in Swift that generates your Xcode project using your folder structure and a project spec. The projec

This project is a minimalistic Pomodoro timer for OS X written in Swift
This project is a minimalistic Pomodoro timer for OS X written in Swift

Minimalistic Pomodoro for OSX This project is a minimalistic Pomodoro timer for OS X written in Swift started by @bengsfort, and substantially enhance

Owner
Storm Ideas
From strategy to execution to content, we deliver answers for media companies in a digital age.
Storm Ideas
Take home assignment for an iOS developer role interview process.

Cocktails My solution to a take home assignment I was given as a step of an interview process for an iOS developer role. The task I was asked to write

Johan Forsell 14 Dec 31, 2022
Home Assistant for Apple Platforms

Home Assistant for Apple Platforms Getting Started Home Assistant uses Bundler, Homebrew and Cocoapods to manage build dependencies. You'll need Xcode

null 0 Nov 23, 2021
C-41 is an application to help people develop film at home by providing a series of "recipes" for photographers to use

C-41 C-41 is an application to help people develop film at home by providing a series of "recipes" for photographers to use. The app demonstrates how

Ash Furrow 2.1k Jan 5, 2023
Yumemi Co., Ltd. iOS engineer code check task

株式会社ゆめみ iOS エンジニアコードチェック課題 概要 本プロジェクトは株式会社ゆめみ(以下弊社)が、弊社に iOS エンジニアを希望する方に出す課題のベースプロジェクトです。本課題が与えられた方は、下記の概要を詳しく読んだ上で課題を取り組んでください。 アプリ仕様 本アプリは GitHub の

akidon 0 Oct 31, 2021
Task for Tempo company

TempoTask Task for Tempo company This small project contains 2 screens: News list: This screen contains list of articles that relates to the text that

Hesham Donia 0 Oct 31, 2021
A starter project for Sample Project in Objective C.

A starter project for Sample Project in Objective C.

Zeeshan Haider 31 Jul 31, 2021
Project 03 I created for "iOS & Swift - The Complete iOS App Development Bootcamp"

Dicee This is the third project I created for "iOS & Swift - The Complete iOS App Development Bootcamp" Our Goal The objective of this tutorial is to

Lukas Goodfellow 0 Dec 23, 2021
Turbo-iOS base project that's entirely driven from your backend Rails app.

Turbo-iOS base project that's entirely driven from your backend Rails app.

Dale Zak 109 Dec 11, 2022
PlayCover is a project that allows you to sideload iOS apps on macOS( currently arm, Intel support will be tested.

PlayCover is a project that allows you to sideload iOS apps on macOS( currently arm, Intel support will be tested.

Alexandr 4k Jul 8, 2022
Sample iOS integration project

Sample integration of SweeprMobile SDK To quickly build the app: Fill-in the URLs and passwords inside env-default file Generate BuildConfig.swift bas

null 0 Jan 7, 2022