Coder Social home page Coder Social logo

new-open-market's Introduction

🥕 스유 마켓

이커머스 스타일의 토이 프로젝트


✨ 핵심 키워드

  • SwiftUI (iOS 15.0)
  • MVVM 패턴 with Combine
  • 프로토콜 지향 네트워크 레이어
  • async-await 적용한 비동기 메서드 & 유닛 테스트
  • PHPickerViewController (iOS 14.0+)
  • 무한 스크롤
  • SwiftLint (via Homebrew)

🏗 화면 구조

스유마켓 App 화면 구조


📡 네트워크 레이어 구조 (클래스 다이어그램)

스유마켓 Network Layer Class Diagram


📂 디렉토리 구조

NewOpenMarket
├── Source
│   ├── App
│   ├── Network
│   │   └── API
│   ├── Presentation
│   │   ├── MainView
│   │   ├── ItemsListView
│   │   ├── ItemDetailView
│   │   ├── ItemFormView
│   │   ├── SettingsView
│   │   └── Shared
│   ├── Model
│   ├── Utility
│   ├── Extension
│   └── Resource
└── UnitTests

📱 시연 영상

무한 스크롤과 리프레시 Image 컨트롤러
버벅임 없이 무한 스크롤이 가능합니다.
리프레시 버튼은 1.5초의 대기시간을 걸었습니다.
사진을 선택하거나 취소할 수 있습니다.
최대 개수에 도달하면 Alert 를 보여줍니다.
키보드 애드온 상품 등록
textField 사이를 이동할 수 있는
버튼을 키보드 위에 구현했습니다.
우측엔 키보드 dismiss 버튼을 뒀습니다.
데이터를 검증한 뒤, 서버에 상품을 등록합니다.
Alert 를 확인하면 ListView 로 돌아가서
자동으로 리프레시합니다.
Page Style 이미지 뷰어 상품 수정
정방형의 이미지들을 Page 처럼 넘길 수 있습니다.
NavigationBar 에 달라붙은
Sticky Image 효과를 구현했습니다.
상품 데이터를 변경 후, 서버에 수정을 요청합니다.
DetailView 는 즉시 변경되며
ListView 로 돌아가면 자동으로 리프레시합니다.
다크 모드 토글 상품 삭제
설정의 다크 모드 토글을 통해
앱 전체에 다크 테마를 적용할 수 있습니다.
앱을 다시 실행해도 변경 상태가 저장됩니다.
상품 삭제를 서버에 요청합니다.
Alert 를 확인하면 ListView 로 돌아가서
자동으로 리프레시합니다.

new-open-market's People

Contributors

jager-yoo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

cyberhippie

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.