Coder Social home page Coder Social logo

app-ios's People

Contributors

allie0147 avatar moon-hj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

moon-hj allie0147

app-ios's Issues

[App] 마이페이지에 기능을 추가해요

설명

마이페이지의 아이템들을 눌렀을 때 적절한 화면으로 이동시켜요.

진행사항

  • 웹뷰(SFweb) 랜딩 작업
  • 회원정보 수정 화면
  • 개인정보처리방침 화면

[Network] 에러 코드 별 분기 처리

설명

에러 코드별로 프론트에서 보여질 문구를 분기 처리해요.

진행사항

  • 400, 401, 422 -> 커스텀 문구 에러 처리
  • 402...421 , 423...499, 500...599 -> 기획 문구로 에러 처리

참고사항

  1. 프론트 송출 서버에러 400/500대 메세지
  2. 백 송출 에러 메세지
    • 노션 내 코멘트(O): 노출 처리
    • 노션 내 코멘트(X): 비노출 처리

UI 화면: > 와이어프레임_#에러 메세지
문구: 노션_개발 아카이브

[APP] SignIn API를 연결해요

설명

SignInRIB에 API를 연결하고, 에러 관련 처리를 추가해요

진행사항

  • : 서버 주소 configuration 추가
  • : 에러 관련 처리
  • : auth/login연동
  • : UseCase 리팩토링

[App] 회원정보수정 API 결과값을 연결해요

설명

수정 성공, 실패 토스트를 연결해요

진행사항

  • : 회원정보수정 성공 시 정보 수정이 완료되었어요! 토스트
  • : 회원정보수정 실패 시 오류가 발생했어요ㅠㅠ 다시 눌러주세요! 토스트

기타 논의 사항

[iOS] Entity 레이어 작업

JsonPlaceHolder

/users 데이터 모델 작업을 해요.
ObjectMapperMappable 프로토콜을 채택해서 사용해요.

// json 데이터 예시

[
  {
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "[email protected]",
    "address": {
      "street": "Kulas Light",
      "suite": "Apt. 556",
      "city": "Gwenborough",
      "zipcode": "92998-3874",
      "geo": {
        "lat": "-37.3159",
        "lng": "81.1496"
      }
    },
    "phone": "1-770-736-8031 x56442",
    "website": "hildegard.org",
    "company": {
      "name": "Romaguera-Crona",
      "catchPhrase": "Multi-layered client-server neural-net",
      "bs": "harness real-time e-markets"
    }
  },
... , 
...
]

[iOS] RootRIB 작업

RootRIB 작업을 해요.
RootViewControllerNavigationViewControllable을 구현해요.

UINavigationVCrootRootVC로 적용해서 childVC들은 모두 Navigation위에서 작동하도록 했습니다.

‼️ 혹시나 튜토리얼이 생긴다면 windownavirootVC를 바꿔야 하기 때문에 바꾸는 메소드도 만들었어요.
-> NavigateViewControllablereplaceRootNavigationViewController

[Infra] 프로젝트 단위 모듈화를 적용해요

설명

프로젝트 단위에 모듈화를 비거너앱에 적용해요

진행사항

  • : 현 코드에서 의존성이 제일 낮은 Storage 모듈부터 App에서 분리할 계획이에요
  • : 앱 모듈 이름을 VegannerApp혹은 App으로 변경해요
  • : Tuist 내부 구조를 개선해요

[App] 마이페이지에 API를 연결해요

설명

마이페이지에 사용하는 API 연결

진행사항

  • 회원정보 : get /user/info
  • 회원챌린지정보 : get /challenge/stats
  • 로그아웃 : /auth/logout
  • 회원탈퇴 : /user/withdraw
  • 회원정보수정 : patch /user/info

기타 논의 사항

프로젝트 기본 세팅

추후 고려사항

  • 추후 앱 이름을 변경해야해요
  • 인증서 사이닝을 어떻게 해야할지 정해야해요
  • Tuist 세팅을 해야해요

[UI] 팝업을 만들어요

설명

공통으로 쓰일 팝업을 만들고 UICore 모듈을 만들어요

진행사항

  • 팝업 UI 작성
  • UICore 모듈에 팝업UI, 토스트UI 추가

스크린샷 2022-08-22 오후 10 12 32

[App] 홈 | 챌린지 리스트

설명

홈에서 사용되는 챌린지 리스트를 개발해요

진행사항

  • : 리스트 UI를 구성해요
    ( #84 )
  • : UseCase를 작성해요

[App] 온보드/로그인 구성

설명

온보드 로그인을 위한 RIB을 구성하고 화면을 구성해요

진행사항

  • : Account 모듈 내에 SignIn RIB 보일러플레이트 코드를 추가해요
  • : SplashRIB에서 SignInRIB을 추가해요
  • : SignIn 화면을 구성해요
  • : 애플 로그인을 붙혀요
  • : 애플 로그인 성공한 이후 인터렉션 처리

[APP] 챌린지 등록 DATE PICKER에 로직을 추가해요

설명

날짜를 선택하고 현재보다 이전 날짜가 된 경우, 선택 완료 터치 했을 때 에러 토스트 노출되며 챌린지 등록 불가 처리

진행사항

  • 날짜를 선택하고 현재보다 이전 날짜가 된 경우, 선택 완료 터치 했을 때 에러 토스트 노출되며 챌린지 등록 불가 처리

[APP] SignUp API를 연결해요

설명

회원가입 RIB에 닉네임 중복 API와 회원가입 API를 연결해요.

진행사항

  • 닉네임 중복 API 적용
  • 회원가입 API 적용

기타 논의 사항

[Repository] Repository 레이어 작업

Repository 레이어 작업을 해요

Repository는 NetworkServiceRx에 의존한 형태로 구현
구현은 RxMoya로 구현

최대한 RxMoya의 강결합을 끊어내는 방식으로 구현할 계획입니다

[iOS] UserRIB 작업

UserRIB 작업을 해요.
RxDataSources를 이용해서 테이블 뷰에 정보를 나타내요.

RootRIB에서 바로 UserRIB을 부르도록 했습니다.
RxDataSources에 사용할 ItemsSection을 구현하여 Entity와 분리 시켰습니다. : UserItemsSection

[APP] 챌린지 등록 화면을 수정해요

설명

챌린지 등록 화면 레이아웃이 변경됨에 따라 UI를 변경해요.
date picker가 추가되었어요.

진행사항

  • cell selected event 추가
  • date picker 화면 추가

[APP] ChallengeRegister API를 연결해요

설명

챌린지 목록 | 챌린지 등록 과정에 필요한 API를 연결해요.

진행사항

  • #98
  • 챌린지 카테고리 조회 : /category/list
  • 챌린지 가이드 조회 : /challenge/guide/{challengeId}
  • #102
  • 에러 핸들링

[Design] 디자인 변경에 따른 UI 적용

설명

피그마에서 UI 디자인이 변경이 되었어요.. !

진행사항

  • AppTextField 에 error message 추가
  • AppButton focus event, init 수정
  • AppLabel 추가
  • SelectButton focus event 수정

기타 논의 사항

[iOS] Persistence 모듈 작업

Persistence 모듈을 만들어요

앱 내에 데이터를 저장하기 위한 모듈
UserDefaults를 사용하여 앱 내에 데이터를 저장하고, 데이터 모델을 저장할 때는 JSON 형태로 저장

[APP] `ChallengeRegisterRIB`을 만들어요

설명

ChallengeRegister RIB을 만들어요.

진행사항

  • ChallengeRegister RIB 생성
  • Challenge모듈 생성
  • Mock 레이아웃 구성
  • ChallengeCalenderRIB과 연결

기타

ChallengeRegisterVC의 상단 탭은 ScrollView+StackView 또는 CollectionView로 구현할 수 있는데
두개 다 구현해본 바로,, Collection이 구현하기 쉽고 관리하기도 편했어서 Collection으로 만들겠습니다. 참고자료
그리고 탭 아래 뷰는 세로 스크롤이 필요하기 때문에 PageViewController+ScrollView 대신
TableView를 재활용하여 dataSource만 바꾸어 사용하겠습니다.

예시

Upload.from.GitHub.for.iOS.MOV

[App] 회원가입 구성

설명

회원가입 RIB을 구현해요.

진행사항

  • 회원가입 화면을 구현해요.
  • SignUpRIB 구현해요.
  • SignInRIB과 연결해요.
  • #47

기타 논의 사항

SignUpRIB에서 뒤로가기 했을때 SignInRIB으로 가야하는데 연결을 어떻게 해야할지 모르겠어요 ;;
SignInRIBSplashRIB과 연결되어 있어서 Splash에서 분리해야 할 것 같아요.

[Design] SignUp 화면을 수정해요

설명

회원가입 UI를 변경해요.

진행사항

  • 씨앗 아이콘 변경
  • 네비게이션 문구 수정
  • textfield 및 button들 radius 값 5 > 10
  • 선택된 버튼 텍스트 볼드로 변경 및 line width 1.5로 변경
  • 에러 토스트 처리
  • bottom button 문구 수정
  • 회원가입완료 로띠 추가

[App] 스플래시 구성

설명

스플레시를 위한 RIB을 구성하고 화면을 구성해요

진행사항

  • : 스플래시 RIB 보일러플레이트 코드를 추가해요
  • : RootRIB에서 스플래시RIB을 추가해요
  • : RootRIB 화면을 구성해요
  • : Lottie를 의존을 추가해요
  • : 스플래시를 모듈로 분리해요

[UI] CommonUI를 만들어요

설명

figma 에 있는 color, font asset을 추가해요.
공통 버튼을 만들어요.

진행사항

  • enum AppColor 만들기
  • enum AppFont 만들기 Pretendard
  • 공통 UIButton 만들기
  • 공통 UITextField 만들기
  • 공통 SelectButton만들기
  • VegannerApp 모듈에RxKeyboard 추가 : 버튼 layout 잡을때 유용

기타 논의 사항

  • Flex SPM 추가 : SPM에서 버그가 많은 것 같아서,, 보류

[APP] `ChallengeRecommendRIB` 화면을 구성해요

설명

챌린지 등록화면에서 넘어가는 챌린지 추천 리스트(?) 화면을 구성해요

진행사항

  • RIB 보일러 플레이트 구성
  • ChallengeRegisterRIB, HomeRIB routing 연결
  • 화면 구성

[App] `SignIn`에서 비즈니스 로직 구현

설명

SignIn에서 SignUp으로 이동할때 사용할 Payload 모델를 만들고, 로그인 후 엑세스 토큰을 저장하는 로직을 구현해요

진행사항

  • : SignIn에서 SignUp으로 이동하는 Payload를 작성해요
  • : 로그인 후 AccessToken을 저장하는 로직을 구현해요
  • : RefreshToken 처리를 구현해요

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.