Coder Social home page Coder Social logo

orange-stock-ios's Introduction

OrangeStock

국내 주식 정보 제공 서비스

화면설계

orange-stock-ios (2)

orange-stock-ios's People

Contributors

hogang1223 avatar f-lab-bot avatar

Stargazers

KIDI'S-TECH avatar  avatar 김태우 avatar

Watchers

 avatar

orange-stock-ios's Issues

AccessToken LifeCycle 로직 수정

현재 구조에서 앱이 백그라운드로 들어갈 때 AccessToken을 폐기하고, 다시 포그라운드로 나올 때 AccessToken을 받아오는 방식인데 JWT 내부에 정의된 expired_at 필드를 이용하면 서버 통신 없이도 만료 여부를 체크할 수 있습니다. 상태가 전환될 때마다 토큰을 재발급하면 네트워크 리소스도 많이 소비할거고요.

API를 호출할 때마다 혹은 주기적으로 토큰 만료 여부를 체크하여 만료에 가까워질 때에만 엑세스 토큰을 재발행하는 방식이 어떨까요?

Originally posted by @sqlpro in #18 (review)

패키지 구조 변경

패키지 구조 변경. 폴더명 복수형으로 변경

  • LifeCycles
  • Controllers
  • Views
  • Utilities
    L Utils
    L Extension

Network Error Code 정리

          오류 코드는 API 스펙에 의해서 바뀔 수 있는 만큼, 상수로 따로 빼놔주시는 게 좋을 듯 합니다. 

TOKEN_ERROR_CODE 같은 걸로요

Originally posted by @sqlpro in #18 (comment)

PR #18 - 3차 review 수정

  • OAuth Service class final 키워드 추가
  • UserDefaultsManager 주석 오타 수정
  • OAuthAPI 변수 접근제어자 private으로 변경

다크모드 기능 구현

  • 메인화면 상단 설정 버튼 추가
  • 설정 > 화면 설정 > 밝은모드 / 어두운모드 / 시스템 설정과 같이 3개 중 선택 가능
  • default = 시스템 설정값

로그인 여부 판별 리팩토링

AS-IS

  • SceneDelegate에서 Keychain에 로그인 정보가 있는지 판별 후 rootViewController를 설정
  • 현 방법의 문제점이라고 생각한 이유
    • SceneDelegate가 LoginViewModel을 호출해서 판별할 필요가 있는가?
    • 로그인 여부 판별 관련 테스트 코드를 작성할 수 없음

TO-BE

  • 로그인 여부 판별 로직을 SceneDelegate -> FavoriteStockListViewController로 변경
  • 테스트 코드가 작성될 수 있도록 비즈니스 로직 리팩토링

종목 리스트 레이아웃 구현

스크린샷 2023-12-04 오후 1 25 58

종목검색의 하단부 종목 리스트 선행 구현

  • collectionView로 구현
  • 네비게이션 - 뒤로가기버튼, searchBar
  • 종목 cell - 종목명, 종목코드, 시장(코스피/코스닥), 관심주식등록/해제 버튼

네트워크 모델 구축

관심 주식으로 등록된 종목들의 정보 (현재가, 등락, 등락률등)등을 가져오기 위한
네트워크 모델 구축

  • 이베스트 OPEN API 사용
  • appkey, appsecretkey를 보관할 config 파일 생성
  • Moya Library 설치 (cocoaPod)

종목 검색 레이아웃 구현하기

  • 네비게이션바에 서치바 - 텍스트필드 입력시 옆에 취소 버튼
  • collectionView로 구현
  • section0: 최근 검색어 chips 구현
  • section1: 종목 cell - 종목명, 종목코드, 시장(코스피/코스닥), 관심주식등록/해제 버튼

애플 로그인 구현

스크린샷 2023-12-22 오후 12 34 44

  • 개발자 계정 생성
  • �Developer App ID 추가 및 기능 구현을 위한 설정
  • 레이아웃 구현
  • 테스트코드 작성
  • 로그인 뷰모델 생성
  • 키체인 관리 클래스 생성

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.