A project that uses the Flickr image search API and shows the results in a 3-column scrollable collection view

Overview

FlickrImagesDemo

FlickrImagesDemo is a project that uses the Flickr image search API and shows the results in a 3-column scrollable collection view. 


Description:

  • Enter queries such as "kittens" in search bar to search images from Flickr.
  • Use infinite scrolling to automatically requesting and displaying more images when the user scrolls to the bottom of the view. 

  • Use Model-View-ViewModel (MVVM) Architecture.
  • Use Image caching for the photos displayed in the app to save network and time.
  • Use Storyboard Auto-layout.

About Flickr API

To search images, API endpoint used is:

https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key={yourKey}&%20format=json&nojsoncallback=1&safe_search=1&text={yourSearchQuery}

Replace {yourSearchQuery} with search keyword.

Generate your api_key here

More documentation about the search endpoint can be found [here](https:// www.flickr.com/services/api/explore/flickr.photos.search)

It returns a JSON object with a list of Flickr photo models. Each Flickr photo model is defined as below:

{
  "id": "23451156376",
  "owner": "28017113@N08",
  "secret": "8983a8ebc7",
  "server": "578",
  "farm": 1,
  "title": "Merry Christmas!",
  "ispublic": 1,
  "isfriend": 0,
  "isfamily": 0
}

To load the photo, you can build the full URL following this pattern: http://farm{farm}.static.flickr.com/{server}/{id}_{secret}.jpg

Thus, using our Flickr photo model example above, the full URL would be: https://farm1.static.flickr.com/578/23451156376_8983a8ebc7.jpg

You might also like...
Developed with use Swift language. As a third party library used SDWebImage. JSON parsing using URLSession with TMDB API. This app provide by the Core Data structure.

Capstone Project 🎯 About Developed with use Swift language. As a third party library used SDWebImage. JSON parsing using URLSession with TMDB API. Ad

The only Connect API library you'd ever need

ConnectKit A Swift client for Infinite Flight's Connect APIs, built using the Network framework. Supported APIs IF Session Discovery Connect API V2 Op

This project brings FlatBuffers (an efficient cross platform serialization library) to Swift.

FlatBuffersSwift Motivation This project brings FlatBuffers (an efficient cross platform serialization library) to Swift. One minute introduction Ther

A prctice project by DevProjects...

NewsApp A prctice project by DevProjects... A mobile app to consume the News API and display a list of news articles. Clicking one of the news article

Command line tool written in Swift dedicated to perform Mutation Testing of your Swift project

Mutanus Command line tool written in Swift dedicated to perform Mutation Testing of your Swift project. Inspired by Muter Usage mutanus -c path-to-co

To view plurk on Apple Watch
To view plurk on Apple Watch

PlurkOnWatch To view plurk on Apple Watch. Device that you need iPhone Apple Watch How to use Install APP on your iPhone & Apple Watch Login from iPho

Reflection based (Dictionary, CKRecord, NSManagedObject, Realm, JSON and XML) object mapping with extensions for Alamofire and Moya with RxSwift or ReactiveSwift

EVReflection General information At this moment the master branch is tested with Swift 4.2 and 5.0 beta If you want to continue using EVReflection in

A fast, convenient and nonintrusive conversion framework between JSON and model. Your model class doesn't need to extend any base class. You don't need to modify any model file.

MJExtension A fast, convenient and nonintrusive conversion framework between JSON and model. 转换速度快、使用简单方便的字典转模型框架 📜 ✍🏻Release Notes: more details Co

A protocol to serialize Swift structs and classes for encoding and decoding.
A protocol to serialize Swift structs and classes for encoding and decoding.

Serpent (previously known as Serializable) is a framework made for creating model objects or structs that can be easily serialized and deserialized fr

Owner
प्रणय पवार
प्रणय पवार
App uses API to display information about City and State user using expandable table cell

Expandable Table Cell iOS App App uses API to display information about City and State user using expandable table cell Implemented Using MVVM with Cl

null 2 Nov 30, 2021
An advanced Swift (IOS Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads & images using best practices.

dog-playground-ios An advanced Swift (IOS Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads & im

Amose Suwali 1 Jan 10, 2022
Tourist App enable users to search about touristic places in saudi arabia

TouristApp Project Name: Tourist Project Description : Tourist it's App enable users to search about touristic places in saudi arabia . Features List:

tasneemJafsher 0 Jan 6, 2022
Quickly search the built-in iOS dictionary to see definitions of words. Collect words you want to remember.

Kotoba Quickly search the built-in iOS dictionary to see definitions of words. Collect words you want to remember. Installation (iPhone or iPad) Note:

Will Hains 452 Dec 26, 2022
WPArticleView - SwiftUI View for Wordpress JSON API

WPArticleView Installation ... dependencies: [ .package(url: "https://github

Aleksei Ilin 2 Oct 20, 2022
CryptoWatch is an application to fetch the currency datas from an api and show their updated values to user. User is able to get the coin datas without an extra effort.

CryptoTracker In order to combine my work and studies, I made a small project that keeps the user's registration datas in memory, checks them when nee

Ömer Faruk Kılıçaslan 2 Jun 27, 2022
📱 A comprehensive test task for creating an autolayout interface, requesting an API and JSON parsing from Effective Mobile.

ECOMMERCE A comprehensive test task for creating an autolayout interface, requesting an API and JSON parsing from Effective Mobile. ??‍?? Design ✨ Fea

Daniel Tvorun 4 Nov 21, 2022
Nikolai Saganenko 1 Jan 9, 2022
SwiftIB is a pure Swift implementation of the Interactive Brokers TWS API library on Mac OS X

SwiftIB is a pure Swift implementation of the Interactive Brokers TWS API library on Mac OS X, with Core Foundation of crouse. All the API interfaces are implemented. Request Market Data and Request History Data interface are thoroughly tested.

Harry Li 24 Sep 14, 2022
A JSON parser with concise API written in Swift.

A JSON parser with concise API written in Swift Maps JSON attributes to different Swift types with just two methods: map and mapArrayOfObjects. The li

Evgenii Neumerzhitckii 14 Aug 13, 2018