Code Monkey home page Code Monkey logo

foursquareplaces's Introduction

Introduction

This is a simple location-based app that uses foursquare's places API.
I chose Redux as a design pattern for this project because of its testablity and maintainability. although I didn't have enough time to write unit tests but I wrote a very simple one to showcase this matter :)
I chose SwiftUI instead of UIKit because redux is a reactive architecture and SwiftUI is way more reactive-friendly and I think it's cool to try some new frameworks specially when developing non-production apps.
I chose Realm for data caching over core data because realm's engine is faster and simpler than ORM-based enignes like core data.

Reference links

https://github.com/kitasuke/SwiftUI-Flux
What i used to implement Redux. This library leverages Apple's Combine framework.

https://github.com/SDWebImage/SDWebImageSwiftUI
What i used to handle image-caching.

https://github.com/arturdev/Unrealm
Realm is great and all, but it doesn't support structs. Oh Well :). This is what i used to make realm struct-friendly and get rid of all the hassle that is required to convert structs to classes so that realm can make an understaning of them.

Screenshots

Dark home

Dark detail


Light home

Light detail

foursquareplaces's People

Contributors

rfarbod avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.