본문 바로가기

전체 글74

[Kotlin] 운동 일지 App 개발일지#02 운동 추가하기 화면을 만들었다. 기존에 등록해놓은 운동을 선택할 수도 있고, 운동 이름을 직접 입력하여 운동을 추가할수도 있다. Spinner로 보이는 항목들은 TextView인데, Spinner처럼 xml에서 style을 지정해준것이다. "운동을 선택하세요"라는 스피너를 누르면 나타나는 BottomSheet이다. 운동 이름을 입력하면 ListView에 등록한 Adpater의 filter로 운동을 검색할 수 있다. BottomSheet에 EditText를 넣으니, 키보드가 LIstView를 가리게 되어서 이 방법은 좋지 않은 방법 인 것같다. 스피너 밑에 화면을 띄우는 방식으로 변경하던지, keyborad의 크기만큼 위로 올려주는 방식을 택해야 할 것 같다. 세트 개수를 선택하세요 스피너를 누르면 나타나.. 2022. 1. 27.
제우스랩 39.6cm FHD 리얼터치 휴대용 모니터 구매후기 집에서 공부를 못하는 성격이라, 카페에서 공부를 하거나 개발을 하는데 항상 노트북 화면 하나로만 하려다보니 답답해 죽을 것 같아서 휴대용 모니터를 하나 샀다. 쿠팡에서 구매해서 하루만에 받아볼 수 있었다. 구매하면 거치대 케이스도 하나 줘서 바로 세워서 사용할 수 있고, C타입, HDMI 잭도 준다. 노트북에 C타입 연결 잭을 연결해 사용했다. 근데 노트북이랑 밝기가 좀 다르긴 한데 그냥저냥 싼맛으로 쓸만할 것 같다. 구매링크 2022. 1. 27.
[Kotlin]운동 일지 App 개발일지#01 Kotlin으로 android App을 개발해본 경험이 없어, 개인 프로젝트로 오늘 운동에 대한 일기를 쓸 수 있는 App을 개발하려 한다. MVVM 패턴을 사용하여 개발할 것이고, Room을 이용해 일기, 운동 루틴을 저장할 것이다. android Jetpack Navigation을 이용, 화면 전환을 제어할 것이다. 처음 App을 키면 볼 수 있는 화면이다. 달력을 누르면 해당 일자의 운동 일기를 확인할 수 있게 할 것이고, 일기 쓰기 버튼을 만들어 해당 일자의 운동을 기록할 수 있게 할 것이다. Bottom Navigation의 루틴 버튼을 클릭했을 때 나타나는 화면이다. 루틴 목록을 확인할 수 있게 할 것이고, 루틴 수정 및 삭제를 CardView에 추가할 예정이다. 루틴 추가하기 버튼을 눌렀을 .. 2022. 1. 26.
UI 상태 저장 Activity가 시작 될 때, 종료될 때 Activity의 UI 상태를 보존하고 복원하는 것은 사용자 경험의 중요한 부분이다. 사용자는 UI 상태가 유지되길 기대하지만, 시스템은 Activity 및 UI 상태를 폐기한다. 사용자의 기대치와 시스템 동작 간극을 메우려면, ViewModel 객체, onSaveInstanceState() 메서드, 로컬 저장소를 조합하여 UI 상태를 유지해야 한다. 사용자가 UI 상태(Activity)를 종료하는 5가지 경우 1. 뒤로 버튼 누르기 2. 최근 사용 화면에서 활동 스와이프 3. Acitivty에서 상위 항목으로 이동 4. 설정 화면에서 앱 종료 5. App 작업 완료( Activity.finish() ) 이 5가지 경우, Activity 인스턴스 내부에 저장된 .. 2021. 12. 27.
Activity Lifecycle (생명주기) Activity Lifecycle은 Activity가 생성되고 종료되기 까지의 상태(State)이다. 6개의 주요 Callback method를 제공해준다. Activity의 상태가 변경될 때마다 각각의 Callback method를 호출한다. 아래는 Activity Lifecyecle을 시각적으로 나타낸 것이다. 6개의 Callback method는 다음과 같다. 1. onCreate() Activity의 상태가 Created(생성)될 때 호출 2. onStart() Activity의 상태가 Started될 때 호출, 화면에 보이기 시작할 때를 의미 3. onResume() Activity의 상태가 Resumed될 때 호출, 유저와 interation 할 수 있는 상태 4. onPause() Activ.. 2021. 12. 27.
Intent and IntentFilter Intent는 메시징 객체로, 다른 앱 구성 요소로부터 작업을 요청하는 데 사용할 수 있다. - 앱 구성 요소 : Activity, Service, Broadcast receiver, ContentProvider Intent가 구성 요소 간 작업을 요청하는 데는 여러 가지 방식이 있지만, 크게 세 가지로 나눌 수 있다. 1. Activity Start Activity는 앱 안의 단일 화면을 나타낸다. Activity를 시작하려면, Intent를 startActivity()로 전달하면 된다. Intent는 시작할 액티비티를 설명하고, 모든 필수 데이터를 담는다. 2. Service Start Service는 사용자 인터페이스 없이, 백그라운드에서 작업을 수행하는 구성 요소이다. Android 5.0(API.. 2021. 12. 23.
github push 오류 (github set personal access token windows) github에서 비밀번호를 이용한 remote가 8월 13일 부터 삭제되었으며, 앞으로는 personal access token을 이용해 remote를 해야한다. 비밀번호를 입력해 push하려고 하면 다음과 같은 오류가 발생한다. 해결법 1. github 홈페이지 위쪽 상단의 자신의 깃허브 아이콘을 클릭하고 settings 버튼을 누른다. 2. 다음과 같은 화면에서 Developer settings 버튼을 누른다. 3. Personal access tokens 버튼을 누르고, Generate new token 버튼을 누른다. 4. 토큰의 이름을 정하고, 토큰의 유효기간을 정한다. 따로 신경쓰고 싶지 않다면 No expiration 체크란은 토큰의 Access 권한을 정하는 것이다. 5. 이름, 유효기간,.. 2021. 10. 6.
android (Image)Button Icon으로 사용하기 기본 안드로이드 버튼 말고, 버튼을 인터넷에서 쉽게 찾을 수 있는 아이콘으로 사용해보자. 구글에서 제공하는 아이콘을 사용할 것이다. https://fonts.google.com/icons Google Fonts Making the web more beautiful, fast, and open through great typography fonts.google.com 필요한 아이콘을 검색한다. 나는 "다음(forward)" 아이콘을 이용할 것이다. 아이콘을 클릭하면, 이런 화면이 나온다. 우리는 android 환경에서 아이콘을 사용할 것이므로, 안드로이드를 선택하고 다운로드를 해준다. 다운받은 파일을 압축해제하면, res 폴더 밑에 이런 폴더들이 있다. drawble옆에 hdpi, mdpi, xhdpi 이.. 2021. 6. 26.
React 공부 - Hooks의 LifeCycle ( useEffect) React Hooks Component에는 LifeCycle이 존재하지는 않지만, 흉내 낼수 있다. 그것이 useEffect이다. useEffect(()=>{ // componentDidMount, componentDidUpdate 역할 (1대1 대응은 아님) interval.current = setInterval(changeHand,100); // 반복할 함수 interval은 Ref return () => { clearInterval(interval.current)} // componentWillUnmount 역할 }, [변경될 state]); // 두번째 인수가 클로저 문제 해결해주는 역할 만약, 변경될 state에 아무것도 넣지 않는다면 처음 실행되고 다시 실행되지 않는다. 두번째 인자에 아무것도.. 2021. 3. 5.