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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions