timertiti / titi_ios Goto Github PK
View Code? Open in Web Editor NEW공부를 위한 타이머 TimerTiTi 티티
Home Page: https://apps.apple.com/us/app/timertiti-티티-공부를-위한-타이머/id1519159240
공부를 위한 타이머 TimerTiTi 티티
Home Page: https://apps.apple.com/us/app/timertiti-티티-공부를-위한-타이머/id1519159240
로그인 프로세스 중 일반회원가입의 이메일 입력창을 구현한다
Given(조건, 상황) | When(행동) | Then(결과)
기존 iOS 언어에 따른 Localization 방식에서 TiTi 앱 내 Setting을 통해 언어를 선택할 수 있는 새로운 구조로 Localization을 구현
Given(조건, 상황) | When(행동) | Then(결과)
현재 Setting 창에 새로운 기능이 추가되기에 앞서 추가 Depth를 통해 Setting창의 정리가 필요한 시점에 도달했다고 느껴졌다.
또한 Log 창과 관련된 테마 컬러, 목표 시간 설정기능들을 Log 창 내로 이동하는 개선이 필요하다고 느껴졌다.
로그인 프로세스 중 닉네임 입력 화면을 개발한다. 이메일 입력 화면, 또는 비밀번호 입력 화면에서 전환되도록 구현한다.
Given(조건, 상황) | When(행동) | Then(결과)
비밀번호 재설정 기능을 제공하기 위한 닉네임 입력 화면, 이메일 입력 화면, 비밀번호 재설정 화면을 구현한다.
개발이 진행되기에 앞서 TLR 작업이 먼저 필요하다.
Given(조건, 상황) | When(행동) | Then(결과)
서버이전에 따라 Mac에서 새로운 서버를 통한 기록동기화 기능을 사용하기 위하여 7.15.6 버전으로 업데이트한다
Given(조건, 상황) | When(행동) | Then(결과)
서버 url 변경 및 서버 이용불가시 안전하게 데이터가 저장되기 위하여 로직을 수정한다.
Given(조건, 상황) | When(행동) | Then(결과)
새로운 Admob 계정을 연결하여 광고수입을 받을 수 있도록 구현한다.
Given(조건, 상황) | When(행동) | Then(결과)
회원 관리 기능을 제공하기 위하여 이메일로 로그인, 또는 회원가입을 할 수 있는 일반로그인 화면을 구현한다.
Given(조건, 상황) | When(행동) | Then(결과)
TestServer를 통해 기록동기화를 사용하시는 분들이 존재하며 오래전부터 지원했기 때문에 키보드가 가려지는 문제를 해결하고자 한다.
UI를 개선하며 디바이스별로 키보드 가림문제를 해결하고자 UI조정 분기처리 로직을 구현한다.
Given(조건, 상황) | When(행동) | Then(결과)
회원가입 프로세스 중 Apple 로그인을 통한 회원가입 프로세스를 개발한다.
Given(조건, 상황) | When(행동) | Then(결과)
iOS17로 올라가면서 Network 또는 KeyChain 문제가 발생하여 로그인이 안되는 문제로 유추되는 상황이 발생하였다.
시뮬레이터, 또는 다른 디바이스에서 앱을 제거시 정상적으로 KeyChain이 초기화될 수 있도록 개선한다.
Given(조건, 상황) | When(행동) | Then(결과)
기존 NSLocalizedString 기반 현지화를 Localized.string 기반으로 지원되도록 추가 반영하며, 중국어를 정식 지원할 수 있도록 한다.
Given(조건, 상황) | When(행동) | Then(결과)
이메일 입력창과 같이 비슷한 UI로 표시되는 특징을 분석하여 커스텀뷰 및 Modifier를 생성한다
또한 @StateObject를 사용하여 Model로 데이터를 다루도록 개선한다.
Given(조건, 상황) | When(행동) | Then(결과)
회원 관리 기능을 개발하기 위하여 로그인 화면으로 이동하는 것이 필요하다. 따라서 Setting 내 로그인하기 버튼을 추가하여 LoginSelectView로 이동하는 것을 확인한다.
Given | When | Then
Login 화면에서 키보드 높이에 따라 TextField가 가려지는 문제를 해결하고자 한다.
Given(조건, 상황) | When(행동) | Then(결과)
서버 ip변경 및 기타 주요업데이트를 진행하기에 앞서 api를 통해 수신받은 앱 최신버전 정보 및 강제성 필요 여부에 따라 업데이트를 해야만 사용 가능한 경우와 업데이트를 하지 않아도 사용 가능한 경우를 분기처리하고자 함.
Given(조건, 상황) | When(행동) | Then(결과)
GetLastestVersionUseCase
-> LastestVersionRepository
-> FireStoreAPI
-> Network
를 통해 정보를 수신받는다.Manager, Controller, ViewModel 명칭들을 일관되도록 작성하고, 불필요한 코드가 제거되어야 Android 개발자에게 관련 코드를 보여주기에 용이하고, 이해하시기 더욱 좋을 것으로 예상되어 진행합니다.
현재 Setting 창에 새로운 기능이 추가되기에 앞서 추가 Depth를 통해 Setting창의 정리가 필요한 시점에 도달했다고 느껴졌다.
또한 Log 창과 관련된 테마 컬러, 목표 시간 설정기능들을 Log 창 내로 이동하는 개선이 필요하다고 느껴졌다.
설문조사를 받아야 하는 시점이 발행하였고, 현재 외국인 사용자들이 많은 상태이나, 현재코드상으로는 한글용 설문조사만 뜨게 되어있는 상태.
선택된 언어에 따라 한글용, 영문용 설문조사를 띄우도록 개선하는 상황이 필요해졌다.
Given | When | Then |
---|---|---|
Survey를 fetch하는 getSurveys 함수를 부를시 |
NetworkURL.Firestore.surveys url 값을 사용시 |
NetworkURL 내에서 Language.currentLanguage 값에 따라 한글용 url, 영문용 url를 반환해요 |
한글의 경우 한글용 TiTi가, 그 외의 언어의 경우 영어용 TiTi가 정상적으로 표시되어야 했으나,
Locale.current.languageCode 값을 통해 디바이스의 설정된 언어를 가지고 오는 과정에서 잘못된 값을 반환하는 문제를 확인하였다.
따라서 해당 문제를 고친 후 정상적으로 디바이스의 설정된 언어에 따라 한글용, 영어용이 표시되도록 개선이 필요하다.
강제 업데이트 로직을 반영하기 위한 업데이트를 하기에 앞서 최신버전 수신 로직 변경에 따라 최신버전이 표시되도록 수정한다.
Given(조건, 상황) | When(행동) | Then(결과)
회원 관리 기능을 개발하기 위하여 로그인 및 회원가입을 선택할 수 있는 화면을 개발한다.
Given | When | Then
로그인 프로세스 중 일반회원가입의 비밀번호 입력창을 구현한다
Given(조건, 상황) | When(행동) | Then(결과)
새로운 iOS17이 배포되면서 기존에 동작되던 위젯이 정상적으로 표시되지 않는 문제를 발견, 신속한 대응이 필요하다.
오류문구는 다음과 같다.
Please adopt containerBackground API
Given(조건, 상황) | When(행동) | Then(결과)
SwiftUI로 만들어지는 LoginSelectView에서 화면크기 변화를 인지하여 width를 조정한다.
Given(조건, 상황) | When(행동) | Then(결과)
TestServer를 통해 로그인, 회원가입을 하는 기능을 네트워크 결과값을 optional 값으로 전달하는 식으로 구현된 상태이다.
따라서 success, fail에 따라 Result가 전달되도록 개선하고자 한다.
Given(조건, 상황) | When(행동) | Then(결과)
NetworkStatus
는 | 네트워킹 성공 및 실패에 따라서 | statusCode값을 지닌 형태
또는 FAIL
, TIMEOUT
값을 반환한다.NetworkResult
는 | 네트워킹으로 수신받은 data 존재여부에 따라 | Data?
값과 NetworkStatus
값을 반환한다.NetworkError
는 | statusCode 값과 수신받은 error message 내용에 따라 | error
를 반환하는 역할을 담당한다.Network 요청
을 하면 | 네트워킹 성공, 또는 에러 경우에 따라 | Result<반환타입, NetworkError>
를 반환하도록 한다.회원가입 프로세스 중 Google 로그인을 통한 회원가입 프로세스를 개발한다.
Given(조건, 상황) | When(행동) | Then(결과)
비밀번호를 잊어버리는 사용자들을 대처하기 위해 하단에 닉네임 찾기, 비밀번호 찾기, 문의하기 버튼들을 추가한다
Given(조건, 상황) | When(행동) | Then(결과)
Calendar Widget의 컬러, Daily 목표시간 설정등과 더불어 위젯이 어떤걸 나타내는지, 어떻게 추가하는지에 대해 사용자에게 알리는 내용이 추가적으로 필요하겠다는 생각이 들었다.
우상단에 info 버튼을 추가하여 사용자가 추가로 확인가능한 정보를 제공하고자 한다.
서버 이전과 같이 중대 공지사항을 팝업으로 표시하기 위한 기능을 개발한다.
Given(조건, 상황) | When(행동) | Then(결과)
Github Flow로 개발하는 과정에서 개발중인 기능과 중간에 출시되는 기능간의 분리를 통해 원활한 개발이 될 수 있도록 한다.
| Given | When | Then |
새롭게 추가되는 Calendar Widget의 설명과 컬러, Daily 목표시간 설정 등 위젯 설정창이 앱 내부에 필요하겠다는 생각이 들었다.
Calendar Widget의 설정창을 추가로 새롭게 제작한다.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.