Skip to content

[Architecture] 에 대한 설명 #23

@insub4067

Description

@insub4067

들어가며

본 Project 는 AsyncSwift Korea 가 User 들을 위해 행사용으로 제작한 App 입니다.
Architecture 를 선택함에 있어 추후에 유지보수가 쉬운 방향으로 고민하였습니다.

Framework

사용된 기술 : SwiftUI

이유 :

  1. 유지보수의 편의성을 생각했을 때 비교적 많은 사람들이 접근 할 수 있을꺼라 생각했습니다.
  2. 추후에 디자인이나 프로젝트를 크게 엎을 경우 스프린트로 빠르게 개발할 수 있기 때문입니다.
  3. min target : ios ver 15 로 설정 하였으며 AsycImage 등 최신 component 가 사용되었습니다.

Design Pattern

사용된 기술 : MVO ( Model, View, Observed) Pattern

이유 :

  1. SwiftUI에서 사용 가능한 보다 간결한 Pattern 을 고민 하였습니다.
  2. MVVM 이라는 네이밍 보다 보다 직관적으로 기능을 표현한다 생각했습니다.

JSON Storage

사용된 기술 : GitHub Pages

요구 조건 :

  1. json 의 내용이 수정되어도 항상 고정된 주소값을 갖는다.
  2. API 혹은 Backend Deploy 없이 손쉽게 사용할 수 있을 것.

이유 :

  1. json을 수정하고 동일한 파일명으로 다시 올려도 url은 변하지 않습니다.
  2. Github Gists 를 사용하지 않은 이유는 내용이 수정될 경우 URL이 바뀌기 때문입니다

url : https://async-swift.github.io/jsonstorage/asyncswift.json

Image Storage

사용된 기술 : Firebase Storage

이유 :

  1. Project 에 다양한 사람을 초대해서 접근 권한을 줄 수 있기 때문입니다.
  2. 비교적 손쉽게 다양한 사람들에게 익숙한 플랫폼이기 때문입니다.
  3. Firebase Cloud Messaging 이 Project 에 implement 되어있으며 한 플랫폼에서 모두 관리가 가능하기 때문입니다

Notification

사용된 기술 : Firebase Cloud Messaging

이유 :

  1. Image Storage 와 더불어 하나의 프로젝트에 여러 구글 계정을 초대해 프로젝트와 관련된 정보를 한 플랫폼에서 관리할 수 있기 때문입니다.
  2. 이미 다른 프로젝트에 적용해보며 사용법과 장단점을 파악하고 있기 때문입니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions