안드로이드 BMI 앱 공부 (화면구현, 로직 구현)
안드로이드 개발 환경 구축(안드로이드 스튜디오 설치) OT
안드로이드 MBTI 앱 공부 (화면구현, 로직 구현)
안드로이드 MBTI 앱 공부, Git 공부, 코드카타 풀이
깃과 깃허브 강의 복습, TIL작성 세션 복습, 코드카타 문제풀이
kotlin 문법 0, 1주차 강의 수강
kotlin 문법 2, 3주차 강의 수강 / 과제 풀이 시도
계산기 과제를 하느라 하루를 다보냈다.레벨 1부터 어떻게 해야할지 감이 잡히지 않아서 시작하는데 시간을 너무 많이 썼다. 그래도 스스로 어떻게든 해보니 뿌듯하긴 하지만, 아직은 갈길이 멀다라고 느껴졌다.그래도 덕분에 이론으로 배웠던 추상클래스, 인터페이스, 클래스 분리
어찌저찌 계산기 과제를 끝내고 심화과제인 호텔 예약 과제를 햇다.심화과제라 초반부터 요구사항이 많았다. 1, 2단계까지는 구현을 하였지만 3단계부터는 시간이 없어서 하질 못했다.과제를 하는 과정에서 추상클래스와 추상 메소드를 통한 오버라이딩에 대한 개념이 제대로 자리
4주차 강의 완료 -> 잊지말고 꼭 기억!!접근제한자publicprivate : 같은 클래스내에서만 접근protected : private + 상속받은 타 모듈 접근 가능프로젝트 > 모듈 > 패키지 순서예외 처리try ~ catch ~ finally : 비정상접근 일때
팀 프로젝트에 관한 회의클래스 분석 및 분배를 하였지만 아직 구체적인 구상은 할 수가 없었다.5장 강의 마저 듣고 깃허브도 복습 필요마인드 셋 관련 독려도 필요할 것 같다.아직까지 팀프로젝트 감을 못잡겠다.
비동기 프로그래밍에 대한 이해를 완벽히 하진 못하였다 ㅠㅠ쓰레드와 코루틴이 코틀린의 꽃이라고 얘길 들었는데 아직 멀었다 나는키오스크 주문받는 알고리즘에 대한 이해를 아직은 완벽하게는 하지 못하였다.더 열심히 공부해야 한다. 프로그래머의 길은 멀고도 험하다.
문법 마지막 주 기념 총 1장 부터 5장까지 지금까지 정리한 내용 보기 편하게 정리강의 소개 : 코틀린 문법 활용, 코틀린 특징, 코틀린 프로그래밍 / 이론 + 예시 + 개인과제프로그래밍 : 프로그램 제작 + 컴퓨터 소통 / 명령어 - 각 프로그램 마다 적합한 언어가
모든 토글을 열고 닫는 단축키Windows : Ctrl + alt + t Mac : ⌘ + ⌥ + t 운영체제 (Operating System)은 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하
메소드 : fun 메소드이름(매개변수) : 반환형 { 본문 } -> 코드의 재사용클래스 설계 : 객체 지향, 데이터 추상화, 유지보수 / 5대 키워드 - 클래스, 추상화, 캡슐화, 상속, 다형성 / 프로퍼티와 메소드 작성 / 데이터 클래스 : 정보만 포함실드 클래스 :
2주차 정리내용프로젝트 구조Gradle은 안드로이드 앱의 빌드 도구입니다Gradle의 설정 파일이 바로 build.gradle앱의 기본 특징을 설명하고, 앱의 구성요소인 컴포넌트 (예: 액티비티, 서비스등)를 정의한 XML파일이 앱의 고유한 식별자 역할을 하는 패키지
뷰(View)란 무엇일까?안드로이드 앱의 UI를 구성하는 기본 단위는 뷰(View)이다.뷰(View)의 구성위젯(Widget)View의 서브 클래스로서, 앱 화면을 구성하는 시각적인 모양을 지닌 UI요소예) 버튼,메뉴,리스트 등레이아웃(Layout)ViewGroup의
안드로이드 4대 컴포넌트액티비티 - 사용자 인터페이스(UI)를 담당하며, 사용자의 입력에 반응하는 이벤트 기반 프로그래밍을 가능하게 합니다.서비스 - 사용자가 직접적으로 인지하지 못하는, 애플리케이션의 '백스테이지'에서 일어나는 작업을 담당합니다.브로드캐스트 리시버 -
문법 공부문자열 공백제거 - .trim()배열 원소들의 합 - 배열.sum() / 배열 원소들의 곱 - 배열.reduce { x, y -> x \* y }정수 변환 - .toInt()배열 안 포함 여부 if (원소 in 배열)문자열 k번 반복 : repeat(k) {
문자열 포함 여부 : 문자열.contains()문자열 배열 중 특정 문자열 삭제 : 특정 문자열에 포함 안된 것만 return -> if (I !in delete_list) { answer += I }소문자 바꾸기 : string.toLowerCase()특정 문자열 바
배열 원소 거꾸로 뒤집기 : list.reversedArray()/ : 나눗셈 연산자 -> 정수일 때 소수점 버린다각 배열의 원소 길이 : 각 원소 길이를 숫자 배열로 선언후 for문으로 돌림 / map형식으로 length로 묶고 toIntArray()Filter :
문자열 정수의 합미입력시 빨간색 글씨가 아래에 뜨면서 칸에 입력하는 순간 사라지는 메소드
특정 문자 제거: 문자열.replace(제거하고싶은 문자, “”)반복 출력: repeat(횟수) { println(글자) } / 대소문자 바꿔서 toLowerCase(), toUpperCase()\\출력: \\ / “출력: \\”
문자열 교체: 0~s, s~최종길이 : 원래 문자 + 바꿀길이 : 바꿀 문자코드 리팩토링 : 반복 되는 코드를 따로 모아서 코드의 양을 최소한으로 줄이는 작업스타일 가이드XML 가이드Activity, Fragment LifeCycle
SNS 프로젝트 회의구현 화면 목록로그인회원가입프로필디테일Activity(좋아요, 팔로우, 최신소식)화면 작성중Figma 처음 써봄... 아직 익숙치 않아서 어려움 ㅠㅠ내일 아침까지 화면 그려야함
로그인 화면, 회원가입 화면, 프로필 화면, 좋아요 누른 사람 목록 화면, 나를 좋아요 해준 사람들 화면 레이아웃 구현, 기능 작성중번외깃허브 / 깃 너무 해맸음 ㅠㅠ 어떻게 보면 간단한 거지만 너무 어렵게 생각해서 머리가 좀 꼬인듯 뇌정지 온줄 알았음
처음에 브랜치 딸때 잘못땄다...그래서 내 푸시가 바로 dev로 가는 불상사가 일어났다.그래도 금방 복구해서 다행어댑터를 못써서 액티비티에서 리스트를 뽑아내는 고난길을 걸었다.이제 다 합쳐서 아이디랑 이름 불러오기하고 수정한 후 반영만 되면 된다.깃허브 빡세게 공부하자
기능 구현 어느정도 끝남깃에서 문제가 크게 터졌는데 결국은 팀장이 총대메고 해결함브랜치 반드시 잘따자git clone -> git switch -c choo -> git pull깃허브 코파일럿 없음 난 어찌됐을까 ㅠㅠ
영어버전 -> strings.xml에 영어버전을 새로 등록하고 거기에 string 입력가로화면 -> 새로 Layout 만들어야함동그란 이미지 -> scaleType + clipToOutlinescrollView => 스크롤 기능더보기 기능 => maxLines + Vi
ListView - 목록을 세로로 쭉 보여주는 방식GridView - 목록을 가로 세로 배열로 보여주는 방식RecyclerView - ListView와 비슷하지만, View를 재사용 하는 방식이라 메모리 용량이 많이 줄어듬Fragment - Activity안에 부분 화
ViewBindingListViewGridViewRecyclerViewFragmentFragmentDataDialogNotification공부량 엄청 많다... 이미 알고 있는 것들도 있지만 확실히 내 것으로 만들기 위해서는 노력이 많이 필요하다
뷰 바인딩 : 빌드 그래들 설정 -> 액티비티 설정리스트 뷰 : 복수 개의 항목을 수직으로 표시그리드 뷰 : 복수 개의 항목을 격자 형식으로 표시리사이클러 뷰 : 항목을 스크롤 할때 위에 있던 뷰가 아래에서 재사용 되서 데이터를 절약함뷰홀더 : 화면에 표시될 데이터나
.isEmpty() : 내용이 비어있는지 확인.last() : 마지막 원소.dropLast() : 마지막 원소()개를 제거// 해야할 일콤마처리모서리라운드처리이름 두줄이후 … 처리Back버튼 클릭시 다이얼로그 처리종모양 누르면 notification처리가격 , 처리아이
툴바제거 - 필요없음모서리 라운드 처리 - 작업중최대 두줄 ... - 작업중백버튼 다이얼로그 - 작업중종모양 - Notification1000단위 ,처리 - 작업중회색라인 추가 - 작업중
layout_width가 0dp의 의미가 폭이 0으로 줄어드는게 아니었다!!!!match_constraint -> 폭이 제약조건에 최대 폭으로 맞춰지는 것이다!!!추가 공부해야할 내용Notification 조금더Parcelize툴바제거특정 레이아웃 제외하고 전체화면 스
.indices : 배열/문자열의 인텍스 총 갯수.substring(a, b) : a부터 b - 1까지 문자열/배열 자르기//itemView : item.xml 전체notifyDataSetChanged() : 전체 데이터 갱신notifyItemChanged(positi
.endsWith : 뒤의 문자열이 .앞에 나오는 문자열의 끝에 있는지 확인하는 함수.substring(a, b) : a부터 b-1까지 자르기.startsWith : 뒤의 문자열이 .앞에 나오는 문자열의 시작에 있는지 확인하는 함수.replaceRange(a, b, c
Color 값 6자리 : 그 앞에 2자리는 투명도를 나타낸다setonClickListener : 리턴값 없음 / setOnLongClickListener : 리턴값 boolean!!를 무조건 쓰지 말것 => null일 수가 있기 때문에intent로 데이터를 보낼때는 복
오늘 구현한 기능알람 매니저로 앱이 꺼져도 notification 오는 기능 구현!!!!툴바와 옵션 메뉴를 이용해서 뷰타입에 따라 배치를 다르게 하였다새로로 목록을 나열하는 리스트 뷰 타입과 1칸당 1항목을 나열시켜서 1줄에 4열로 목록을 나열시킨 그리드 뷰 타입을 구
내가 한 기능들롱클릭 리스너로 다이얼로그 띄우고 리스트에서 삭제하는 기능뷰 타입이 리스트뷰랑 그리드뷰로 되어있는데 옵션 메뉴를 통해서 뷰 전환 기능전화번호부 목록을 이름순으로 정렬하는 간단한 코드 추가도전과제!!!!!!!!!!!!!!!!!!!!!!!!!!1리스트 뷰로
아이템 데코레이션으로 스티키 헤더 꼭 구현하기지난 강의 복습하기앞으로 배워야할 것들 예습하기
SharedPreferences1\. preference란?2\. 공유 환경설정의 핸들 가져오기Room1\. Room개요2\. Room주요 3요소3\. gradle 파일 설정4\. Entity 생성5\. DAO 생성6\. Database 생성7\. Migration8\
봐야할 문서 목록프래그먼트인텐트액티비티 소개머터리얼 디자인코틀린 스타일 가이드lateinit/lazyscope functionviewmodelLiveData앱 아키텍쳐 가이드MVVM패턴 따라하기파사드패턴ListAdapter
레트로핏 통신과정 자세한 이해 필요뷰페이저는 안배웠는데 따로 공부해야할듯?근데 어차피 바텀 네비게이션 하면 뷰페이저도 필요 없을수도??RoomDatabase 사용법Database class 만들기Dao만들기EntityTable 만들기메인에서 Database instan
기존에 하고있던 프로젝트 코드들 다 갈아 엎고새로 코드를 배운거 토대로 작성중일단 기존틀은 다 짰고,데이터 불러오기 시도중오늘 내지는 내일 성공하는 게 목표
마침내 Retrofit 통신 완료데이터 클래스 설정에 문제가 있었음헤더 바디를 같이 담은 클래스를 따로 선언했더니 오류가 발생그 클래스를 없애고 직접 넣었더니 해결이 됨. 이유는 모르겠음 다른 방법으로 다시 시도중필수과제 마지막으로 sharedPreferences로 앱
A타입 과제 완료Retrofit 구현 순서1\. 응답값 확인하기 -> 응답값을 토대로 data class 만들기(Model)2\. Interface 만들기 -> data class를 extends해서 Query로 Interface만들기3\. NetworkClient 오
MVVM을 독학으로 하려다보니 어려움이 많음그냥 검색으로 MVVM을 직접 구현하려니 시행착오가 많아지는중다른 튜터님이 강의 듣고하면 도움 된다고 해서 내일 실천 예정
MVVM을 독학으로 하려다보니 어려움이 많음그냥 검색으로 MVVM을 직접 구현하려니 시행착오가 많아지는중다른 튜터님이 강의 듣고하면 도움 된다고 해서 내일 실천 예정
MVVM 적용은 하였지만, 지금 보관함 저장이 안되는 상태빠른 해결 필요 ㅠㅠ
프로젝트 초기 세팅 완료.gitignore 실수 한번해서 그거 오류 잡는데 애먹었음본인 폴더면 오류 실수 -> 폴더명 바로 잡고 해결!!내일부터 프로젝트 구현 시작오늘 피그마 UI 구현 완료!!
스피너를 처음 써봐서 시행 착오 발생리사이클러 뷰 구현하였지만 연동 제대로 되는지 확인 필요UI 대략적인 구성 완료
스피너 UI 구성 완료리사이클러 뷰 아이템 목록 더미 데이터로 제대로 작동 확인이제 진짜 문제인 API가 남음유튜브 API를 활용해 최신 인기 비디오 목록, 비디오 카테고리별 목록, 채널 목록 조회스피너의 어댑터에서 채널 목록으로 나누는 것도 관건!!지금부터가 진짜 시
일단 가장 많이 본 영상 목록은 출력 완료!!카테고리별 영상은 전체영상은 출력 됐고, 이제 카테고리별 영상 출력하는 로직만 짜면됨!!거기에 카테고리별 채널 목록까지 완료하는 게 목표!!
.copyOf() : 배열의 복사본.contentEquals() : 배열의 크기와 요소가 같은지 비교하는 함수Model : DataView : UIViewModel : 로직 함수부분을 따로 빼내서 모아놓은 것핵심 요소 : 코드 분리 / 선택적 기술 요소 : 1. Dat
마침내 채널 목록 출력 완료!!알고보니 데이터 클래스가 문제였음 (내 잘못 아님)데이터 클래스 수정하고 실행했는데 채널 목록이 하나 밖에 출력이 안됐음이유를 검색해보니 채널 목록 검색이 끝나기 전에 카테고리 별 채널 호출 함수가 먼저 끝나버려서 채널이 하나 밖에 안떴었
튜터님 피드백마이페이지 리사이클러뷰 영역이 너무 작아서이부분을 어떻게 할것인지 고민했어야 한다.어댑터에서 완전히 다 불러진 API 데이터를 바인딩해야하지어댑터에서 데이터를 가공하는것은 옳지 않다컨셉과 관련된 서비스가 없다.기획의도와 실제가 너무 달라서 아쉽다 (이종범
📢 팀 프로젝트 회의📢 팀 프로젝트 컨셉어떤 앱을 만들까? ⇒ 서울시 공공장소(체육시설, 회의공간 등등) 예약 정보 제공하는 서비스 앱어떤 기능을 넣을까? ⇒ API를 이용하여 시설 대관하는 기능 구현 예정어떤 디자인으로 만들까? ⇒ 앱 UI 디자인을 구현하였다팀
API 어떻게 구현할 지 생각, 전 팀 프로젝트에서 했던 MVVM 구조 복습, 배웠지만 쓰지 않았던 Room Database 복습Model : DataView : UIViewModel : 로직 함수부분을 따로 빼내서 모아놓은 것핵심 요소 : 코드 분리 / 선택적 기술
WBS 처음 써봄어느 기능을 언제부터 언제까지 할 지 정해야 하는 작업인데,처음 써보니 어느 작업을 언제까지 할 수 있을지 감이 잡히지 않아서 기간을 정하는 데 고민이 많았다. 코드만 짜고 기능만 수행이 되게 하면 되는줄 알았지만, 계획을 하고 구성을 하는 데에는 아직
WBS 마저 구성, UI 제작 시작, MainFragment 작업중, 역할 분배화면 수정 예정 ㅠㅠ코드 다시 짜야함
레이아웃 대폭 수정너무 복잡한 화면구성 대략적으로 정리일단 메인 페이지 레이아웃 만드는중뷰페이저 + 탭 레이아웃 처음 써보는 거라 적응 필요
TabLayout +ViewPager의 각 Fragment 화면 구현 ⇒ RecyclerView + GridLayout 4열로 항목 정렬 + 정리 + 이미지 벡터로 뽑고, xml형태로 일일이 저장, 어린이 병원 추가 예정시간이 너무 오래걸렸다앞으로 해야할 일클릭시 배경
오늘 한 일아이템 클릭시 배경이랑 이미지 색 변하게 하는 거 구현앞으로 할 일 (시도 중 포함)알림 버튼 누르면 공지사항 Activity로 이동지역 선택 누르면 지역 선택하는 화면으로 이동시키고 선택된 선호지역을 pref로 가져오기
스피너 구현중항목은 제대로 다 뜨는데, 레이아웃이 뒤틀리는 문제가 생김튜터님에게 여쭤볼 예정
아이템 항목을 눌렀을 때, 선택된 카테고리와 지역의 데이터를 같이 넘길 수 있게 수정, 검색어 기능 구현했는데 잘 안되서 좀더 매달리는 중
검색어 저장, 불러오기 기능까지는 동작함. 대신 검색창 아래에 뷰로 보여주는 로직을 만들었는데 아직 작동안해서 원인 파악중홈 화면 지역 불러오기 로직 문제는 내일 황성희 튜터님에게 가서 조언을 구할 예정내가 뭔게 하는 게 없는 거 같은 느낌...빨리 DB랑 파베 다 됐
검색어 저장시키고 저장시킨 검색어 누르면 검색기능 동작하는 기능 구현, 검색어로 검색시 검색어에 관한 시실 목록 리스트를 보여주는 기능 구현레이아웃 같은 위치에 있는 다른 두 컴포넌트 구현할 때레이아웃 동작 방법 : 겹치게 구현해 놓고 하나를 visibility = V
지역선택에서 지역선택 3개를 하면 초기값이 계속 null로 뜨는 문제를 해결이 안되서 계속 매달렸음 될듯 말듯 하면서 잘 안됨
희수님이 도와주신 지역 선택 가져오는 코드 분석. 메인 페이지 레이아웃 수정
최근 검색 쪽 로직 일부 수정, 메인페이지 레이아웃은 수정됨, 검색어 저장된 창 밖으로 클릭하면 검색은 사라지는데, 포커스는 여전히 남아있는 문제 해결하기
홈 화면 로직들 함수 별로 분리. 코드 리팩토링, 뷰모델 적용 시도중, 추후에 더할 예정, 저장된 검색어 레이아웃 수정중
검색어 저장, 호출, 삭제 기능 구현 + HomeFragment 코드 리팩토링 구조화리팩토링 처음 해봤는데 상당히 까다롭고 어렵다조금 더 익숙해질 필요가 있을 듯
기존에 완성된 코드에서 뷰모델 구현 시도(어려움이 많음), 지역을 선택하면 시설이 없는 카테고리 영역은 버튼 색을 바꾸고 클릭이 안되게 하는 로직 구현중(많이 어려움)
검색창 제외 화면 터치시 검색창 포커스 없애고, 저장된 검색어 창 닫게 하기뷰페이저, 탭 레이아웃, 검색결과 화면은 자식뷰이기 때문에 rootTouchListener가 적용되지 않았음결국 각 뷰마다 일일이 터치리스너를 걸어줘 포커스 풀리게 하고, 저장된 검색어 창 닫게
코드 리팩토링(내가 보기 편하게), onDestroyView하면 메모리 누수 줄인대서 코드추가, 안쓰는 import문 정리, MVVM (ViewModel) 복습 요망
추가 작업으로 날씨 API를 불러와서 홈 화면에 적용시키기로 함. 일단 API키를 local.properties에 넣어서 build.gradle에서 활용하는 방식으로 보안처리를 하였음
날씨 데이터 불러오는 중, 데이터를 불러오기까지는 성공하였으나, 현재 날짜를 임의로 String으로 넣어서 현재 시간에 맞춰서 조정하는 작업이 필요함
tmFc 변수를 현재시각 기준으로 맞추게 하는 법 성공(6시 이전, 6시 ~ 18시, 18시 이후)
앱 오류 수정(Indicator 추가), 날씨 작업 시도(미완성)
날씨 API 예외 처리 작업, 용제님의 도움을 받아 완료(단기예보 API와 중기예보 API가 달라서 고생함)
지금까지 만든 코드들을 보면서 어떤 코드가 어떤 기능을 하는지 올바르게 이해하고, 설명할 수 있도록 생각을 정리
앱이 제대로 실행되나 테스트, QA 과정을 거쳐서 앱 안에서 발생하는 문제들 인지 및 제공
발표 마무리, 배웠던 것 추가 복습 및 혼자 구현하면서 익힐 예정