TIL : 2023-09-18

이슬비·2023년 9월 18일
0

TIL

목록 보기
49/88

TIL : 스파르타코딩 Android 과정 7기

주의점

  • 매일 : TIL : today I learned 작성하기
  • github에 issue 꼼꼼히 쓰기
  • 주석 잘 적어 넣기

학습 목적 :

  1. Android 입문 학습에 이어 드디어 숙련주차가 시작됩니다. 2주동안 Android 앱개발 입문 학습을 바탕으로 개인과제와 팀 프로젝트를 완료함으로써 우리는 이제 막 숙련 학습을 위한 첫 허들을 넘었습니다. 든든한 기초 체력을 이용해서 앱개발 숙련주차도 섭렵해보도록 합시다!
  2. 앱개발 과정은 총 3가지(입문/숙련/심화)로 구성되어 있습니다. 그 중 우리는 이제 절반 왔습니다. 숙련 주차를 시작하게 되는 것이에요!
  3. 앱개발 숙련 과정을 통해서는 Android의 뷰바인딩과 어댑터뷰, 프래그먼트 등에 대해 배우게 됩니다.
  4. 숙련 과정에서 프래그먼트와 액티비티의 차이와 생명주기를 이해하고 다뤄보며 지식과 경험을 쌓습니다.

학습 목표 :

  • 뷰바인딩에 대해 이해하고 findViewById와의 차이점을 설명할 수 있습니다.
  • 어댑터 뷰의 기본 개념 및 종류를 이해하고 리스트 뷰와 그리드 뷰의 설정 방법을 이해한다.
  • 커스텀 항목 뷰를 정의하는 방법을 이해하고 RecyclerView를 사용하는 방법을 이해한다.
  • 프래그먼트의 기본개념 및 프래그먼트 생명주기를 이해한다.
  • 태블릿용 및 스마트폰용 디바이스에서 프래그먼트를 재 사용할 수 있는 방법을 실습한다.
  • 다이얼로그가 무엇인지 알고 구조에 대해 이해했습니다.
  • 알림을 생성하고 중요도 순서를 이해했습니다

오늘 계획 :

  • 오전
    • 09:00 ~ 10:10 : 팀 회의 & 오늘 계획 세우기
      • 오늘 계획 (Task)
        • 10시 : 팀 회의
        • 후발대 과제 하기
        • 14시 30분 : IT 직군 확장 세션
        • 심화과정 : 강의 듣기
        • 19시 : 마무리 회고 진행
        • 알고리즘 문제 1개 풀기
        • TIL 작성하기
    • 10:10 ~ 12:00 : 후발대 과제
      • 액티비티의 라이프사이클
  • 집중 코딩
    • 13:00 ~ 14:30 : 후발대 과제
      • 프레그먼트의 라이프사이클
      • 확장함수
    • 14:30 ~ 15:30 : IT 직군 확장 세션
    • 15:30 ~ 18:00 : 강의 듣기
      • 1-6 앱 개발 프로세스
      • 1-7 디버깅
  • 저녁
    • 19:00 ~ 19:30 : 마무리 회고 진행
      • 팀 회의 : 마무리 회고 진행
    • 19:30 ~ 21:00 : TIL 작성하기 & 알고리즘 문제 풀기
      • 알고리즘 문제 풀기 : 겹치는 선분의 길이
      • TIL 작성하기

요점 정리 :

1-7 디버깅

디버깅이 필요한 코딩 오류

  1. 구문 오류
  2. 의미론적 오류
  3. 논리 오류
  4. 런타임 오류

일반적인 디버깅 전략

  1. 점진적 프로그램 개발
  2. 역추적
  3. 원격 디버깅
  4. 로깅
  5. 클라우드 디버깅

알고리즘 :

//다른 사람의 풀이
class Solution {
    fun solution(lines: Array<IntArray>): Int {
        val array = IntArray(201)
        for (line in lines) {
            line.sort()
            for (i in line[0] until line[1])
                array[i + 100]++
        }
        return array.count { num -> num >= 2 }
    }
}

팀(or 개인) 프로젝트 :

후발대 과제 :

Activity Life cycle

  1. MainActivity에는 Activity 라이프사이클의 각 단계에 해당하는 메소드 (onCreate, onStart, onResume, onPause, onStop, onDestroy)를 오버라이드하고 각 메소드가 호출될 때 로그 메시지를 출력합니다.
  2. 메인 액티비티에는 두 번째 액티비티를 시작하는 버튼이 있어야 합니다.
  3. 두 번째 액티비티도 메인 액티비티와 동일한 라이프사이클 메소드를 오버라이드하고 로그 메시지를 출력합니다.

Fragment Life cycle

  1. Activity에는 Fragment를 추가하거나 제거하는 버튼들이 있어야 합니다.
  2. Fragment의 각 라이프사이클 메소드가 호출될 때마다 로그 메시지를 출력합니다.

**onCreate**

**onCreateView**

**onViewCreated**

**onViewRestored**

**onStart**

**onResume**

**onPause**

**onStop**

**onSaveInstanceState**

**onDestroyView**

**onDestroy**

모든 단계의 로그가 출력되는지 확인되면 완성입니다.

확장 함수

  1. Context 클래스를 확장하여 showToast라는 메소드를 작성합니다.

  2. 이 함수는 메시지(String)와 지속 시간(Int, 기본값은 Toast.LENGTH_SHORT) 두 가지 파라미터를 받습니다.

  3. 함수를 호출하면 해당 메시지의 Toast가 지정된 지속 시간 동안 화면에 나타나야 합니다.

    1. 지속시간을 변경할수도 있습니다
  4. MainActivity에서 이 확장 함수를 사용하여 토스트 메시지를 출력해봅니다.

    Ex : Hello World

심화과정 개인 과제 :

  1. 과제 설명
  • 이미지를 검색해서 보관함에 수집하는 안드로이드 앱.

  • 검색은 키워드를 입력하고 검색을 누르면 이미지 검색 결과 리스트를 보여줍니다.

  • 이미지 검색 API ( https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide#search-image ) 의 thumbnail_url 필드

  • UI는 fragment 2개를 사용합니다. (버튼이나 탭 선택 시 전환)

  • 첫 번째 fragment : 검색 결과

  • 검색어를 입력할 수 있습니다.

  • 검색된 이미지 리스트가 나타납니다. 각 아이템에는 이미지와 함께 날짜와 시간을 표시합니다.

     - 검색 결과는 최대 80개까지만 표시합니다.
    
     - 리스트에서 특정 이미지를 선택하여 '내 보관함'으로 저장할 수 있습니다.
     - 이미 보관된 이미지는 특별한 표시를 보여줍니다. (좋아요/별표/하트 등)
     - 보관된 이미지를 다시 선택하여 보관함에서 제거 가능합니다.
  • 두 번째 fragment: 내 보관함

  • 검색 결과에서 보관했던 이미지들 보입니다.

  • 마지막 검색어는 저장되며, 앱 재시작시 마지막 검색어가 입력 필드에 자동으로 입력됩니다.

  1. 개발 요건

아쉬운 점 or 앞으로의 계획 :

  • Android 앱개발 숙련 : 복습하기
  • Android 앱개발 심화 : 개인과제 작성하기
profile
개발꿈나무

0개의 댓글