티스토리 뷰
앱 소개
- 아! 그때 샀으면... 라고 말할 때 샀으면...
- 주식을 대상으로 과거 시점과 현 시점을 비교하는 과거 주가 확인 어플리케이션
- 국내외 시장지표(환율, 코스피, 코스닥, 다우존스, snp500, 나스닥 정보 제공)
- 증시 뉴스 제공
최초 기획
메인 기능
- 주가지수, 종목, 가격 검색
- Push Notification
- e-나라지표 API 사용 (소비자 물가지수 정보 반영)
- Naver API (경제 정보 전달)
- 주식 외 ETF, 비트코인 정보 추가
서브기능
- 결과 공유 기능
- 종목 가격 세부 탐색(MDD, MDU, CAGR)
- 종목 가격에 따른 다른 설명 전달(MDD 시점에 따른 경제 위기 안내 등)
- Webkit 사용한 경제 단어 검색 정보 전달(MDD, 소비자 물가 지수 등)
- 네트워크 확인 기능(Network)
- Skeleton
- loading spinner
- pull to refresh
사용 라이브러리 & 프레임워크 & 기타
- Snapkit
- SwiftLint
- Then
- Realm
- Alamofire
- IQKeyboardManger
- SwiftDate
- SkeletonView
- Instructions
- HeroTransition
- Floaty
- panmodal
- Toast
- Charts
사용 API
- OPEN DART
- 공공데이터포털 지수시세정보
- 공공데이터포털 KRX 상장종목정보
- 한국투자증권
회고
- 개발만 중요한 것이 아니라 설계와 기획이 중요했다
무엇이 가능하고 불가능한지, 만들 수 있는 지 없는지를 기획 단계에서 제대로 체크하지 않고 일단 만들기 시작했고,
만들기 전에 했던 API 테스트도 충분히 하지 않아서 기능을 다 만든 다음에 쓰지 못한 기능들이 있었다(공공데이터 가격 검색 API, 기능)
- 이후 해당 기능을 제공하기 위해서 SwiftSoup을 이용한 크롤링도 시도해보고 다른 API를 사용해보기도 하고 결국 온전하지는 않지만 yfinance 라이브러리를 사용해서 서비스 제공이 가능해졌다
- 핵심 기능 또한 겨우 돌아가게만 만들어 놓은 상황이라 완전한 조건이 아니면 제대로 검색이 되지 않을 수 있다
- 기능을 만들고 버리고 만들고 버리고 했던 작업이 많아서 굉장히 비효율적이었다
- 기획 당시 계획했던 핵심기능을 제대로 구현하는데 어려움이 많아 너무 많은 시간이 걸렸고 그에 따라 구현하지 못한 기능들이 많이 생기게 되었다
- 그래도 무언가를 만들어서 출시까지 했다는 것에서 신기하고 어떨떨하기도 한데, 제대로 낸 것이 아니라 답답할 뿐이다
- 일단은 만들고 그 다음 업데이트로 부족한 부분을 채워나가야 하는데, 만들때 해결못한 부분들이라 지금도 쉽지 않다
- 하나의 기능개발을 위해(과거 검색) 여러가지 시도를 했던 경험은 기억에 남을 것 같다, API와 크롤링, 라이브러리까지 다양하게 사용해보면서 원하는 기능을 만들었다
- 제대로 인지하지 못하고 있던 지식에 대해서 다시 이해할 수 있게 되었다(sync, async, serial, concurrent) 백그라운드 쓰레드에서 레이아웃 작업이 실행되어서 런타임 에러로 앱이 꺼지는 문제가 마지막까지 발생했는데, 온전히 이해해서 해결할 수 있도록 강의자료, 다른 동영상강의, 블로그 글들 까지 여러 방법으로 이해할 수 있도록 시도했다
- 배우기만 하고 제대로 이해하지 못해서 잊어버린 것들을 깨닫게 되었다, do try catch, 백업 복원, codable 등 분명 배우고 과제까지 했던 것들인데 내것으로 온전히 만들어놓지 않아서 막상 사용하려고 하니 처음부터 다시 공부해야하는 수준이 되어있었다
- 디자이너와 협업은 생각보다 어려울 것 같다
- 지인 디자이너에게 앱아이콘과 시작 후 2개의 scene만 디자인을 부탁했고, figma로 디자인이 돌아왔다 figma에서는 ios 코드도 지원해주어서 별거 아니겠지 싶었지만 생각보다 똑같이 만드는 작업은 쉽지 않았고, 개발자처럼 제약조건을 걸어서 만들어진 디자인이 아니다보니 figma에서 지원해주는 코드는 거의 무용지물이었다
- 디바이스들의 크기 차이까지는 제대로 고려되지 않아서 디자인 1개는 잠시 보류해놓고 최종적으로는 1개의 디자인만 사용하게 되었다
- 너무 많은 API의 사용
- sync, async, serial, concurrent
- uiactivitiyindicator
현재 상태
메인 기능
- 주가지수, 종목, 가격 검색
- Push Notification
- e-나라지표 API 사용 (소비자 물가지수 정보 반영)
- Naver API (경제 정보 전달)
- 주식 외 ETF, 비트코인 정보 추가
서브기능
- 결과 공유 기능
- 종목 가격 세부 탐색(MDD, MDU, CAGR)
- 종목 가격에 따른 다른 설명 전달(MDD 시점에 따른 경제 위기 안내 등)
- Webkit 사용한 경제 단어 검색 정보 전달(MDD, 소비자 물가 지수 등) -> SFSafariViewController 사용
- 네트워크 확인 기능(Network)
- Skeleton
- loading spinner -> UIActivityIndicator
- pull to refresh
사용 라이브러리 & 프레임워크 & 기타
- Snapkit
- SwiftLint
- SwiftGen
- Then
- Realm
- Alamofire
- IQKeyboardManger
- SwiftDate
- SkeletonView
- Instructions
- HeroTransition
- Floaty
- panmodal
- Toast
- Charts
'programming > Swift' 카테고리의 다른 글
[Swift/iOS] 컴파일러 제어 구문 (0) | 2022.10.08 |
---|---|
[Swift/iOS] 열거형(1) (1) | 2022.10.08 |
[Swift/iOS] 타입캐스팅(2) - 다운캐스팅, as! 와 as?, Any 타입캐스팅, AnyObject 타입캐스팅 (0) | 2022.09.09 |
[Swift/iOS] 오류처리(1) - 오류처리, do-catch (0) | 2022.08.27 |
[Swift/iOS] 타입캐스팅(1) - 타입 변환, 타입캐스팅, 데이터 타입 확인, 메타 타입, 메타 타입 타입 (0) | 2022.08.26 |
- Total
- Today
- Yesterday
- 캡쳐리스트
- Entity
- 클로저 축약
- Core Data Stack
- 디자인패턴
- object
- inout 파라미터 메모리 충돌
- 메모리 안정성
- SWIFT
- 회원가입
- core data
- escaping closrue
- 클로저표현
- Persistent Container
- 토큰저장
- 자동클로저
- unowned
- 클로저
- Delegate 패턴
- 클로저 강한 참조
- CoreData
- authorizationCode
- autoclosure
- ios
- identity Token
- 강한 참조 순환
- context
- 강한참조순환
- ASAuthorizationAppleIDCredential
- weak
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |