[내배캠 Android 4기] TIL 0618

오리너구리·2024년 6월 18일
0

TIL

목록 보기
34/48
post-thumbnail

오늘 할일

  • 코드카타 41번
  • 안드로이드 앱 개발 입문 강의 1, 2 ,3 듣기
  • .filter 공부

코드카타

⏲️ 공부시간 09 : 10 ~ 09 : 55

오늘은 풀다가 10시에 발제 들으러가야해서 그냥 구글링으로 참고해서 풀다가 맘..ㅜ

찝찝한데 다시 보고싶지않음 ㅋ 나중에 다시 봐야징~

https://velog.io/@orinugoori_art/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-CODEKATA-41-3%EC%A7%84%EB%B2%95-%EB%92%A4%EC%A7%91%EA%B8%B0-gn5q6wkb


안드로이드 앱 개발 입문 강의

⏲️ 공부시간

12 : 00 ~ 13 : 00

14 : 20 ~ 17 : 00

17 : 05 ~ 18 : 40

왕 드디어 에디쌤 강의다

1주차 강의

안드로이드 개요

안드로이드 란?

휴대전화를 비롯한 휴대용 장치를 위한 운영체제, 미들웨어, 사용자 인터페이스, 표준 응용프로그램을 포함하고있는 모바일 운영체제이자 모바일 플랫폼

장점 :

무료임

포팅이 쉽다.

UI 개발이 편함

모바일 운영체제 (Operating System)

시스템 하드웨어를 관리하고 응용 소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어

모바일 플랫폼

특정 장치나 시스템 등에서 일을 구성하는 기초가되는 틀, 골격

모바일 운영체제 + 애플리케이션 프레임워크 = 모바일 플랫폼

안드로이드 OS의 특징

  1. 오픈 소스
  2. 자바, 코틀린을 사용해서 개발함
  3. 스마트폰을 위한 완벽한 컴포넌트 제공
  4. 앱 연동이 쉽다.
  5. 다양한 기능 지원

에코시스템 : 이통사, 단말기제조사, 앱개발자가 같이 이득볼수있당

2주차 강의

안드로이드 스튜디오 탐험

툴바

Resource Manager : 프로젝트에서 사용하는 모든 리소스를 한번에 확인할 수 있는 탭

Project : 현재 파일 구조를 확인 할 수 있는 탭

Bookmark : F3 버튼 눌러서 북마크 표시할 수있고 Ctrl + F3 눌러서 북마크 선택해서 이동가능

Build Variants : 앱을 빌드할때의 타입을 지정할 수 있는 탭

structure : 코틀린파일의 함수, 변수명들을 한눈에 볼 수 있음

Version Control : Git 연결해놓으면

Run : 실행시 메세지

Profiler : 앱을 분석하기 위한 용도 (CPU, 메모리 사용량 등)

LogCat: 로그 확인하면서 디버깅하기 위한 용도

Build : 빌드 에러나면 확인하면 된다.

TODO : 개발 하다가 할일 리스트

Problems : 에러 난 부분 표시

Terminal : 터미널

App Inspection : 데이터 베이스를 열어볼 때 사용

DeviceFileExplorer : 에뮬레이터의 파일 탐색기

Gradle : gradle 관련..

Notification :알림

단축키

Ctrl + D :한줄 복사

Ctrl + / : 주석처리

Ctrl + p : 바로 이전에 보던 코드 줄로 이동

프로젝트 구조

앱 구성 파일 분석

build.gradle : 빌드를 하기위한 설정 파일

프로젝트 단위 , 앱 단위 그래들 설정하는 파일이 있당.

AndroidManifest : 앱의 기본 특징을 설명하고, 앱의 구성요소인 컴포넌트를 정의하는 파일

앱의 아이콘, 앱 이름, 액티비티 컴포넌트 이름 등을 여기에서 설정해줌~

res : drawable, layout, minmap, values 등

axtivity_main.xml

MainActivity

build.gradle(module)

compileSdkVersion → 컴파일 시에 사용할 SDK 버전

minSdkVersion → 앱이 지원하는 최소 API버전

targetSdkVersion → 앱을 테스트하기 위해 사용할 API 버전

versionCode → 앱 버전

dependencies → 다른 라이브러리 쓸때 추가해주는 부분

3주차 강의

안드로이드 UI 기본

UI란?

User Interface

UI를 구성하는 기본 단위는 View고

View 에는 위젯(widget)과 레이아웃(Layout)이 있다.

Layout Editor 구성 요소

  1. Palette : 드래그앤드랍으로 배치할 수 있는 다양한 뷰와 뷰 그룹이 있는 부분
  2. Component Tree : 레이아웃 구성요소의 계층 구조를 표시하는 부분
  3. Tool bar : 편집기에서 레이아웃 모양을 구성하고, 레이아웃의 속성을 변경하는 도구들이 있다
  4. 화면 : 디자인뷰, 블루프린트 뷰 등이 나오는 부분
  5. Attributes : 속성 제어하는 부분
  6. View Mode : 코드모드 스플릿모드 디자인 모드 고르는 부분
  7. 확대 축소, 화면 컨트롤 : 말그대로 화면 확대축소, 화면컨트롤 등 하는 부분

View

View 클래스는 모든 UI 컴포넌트들의 부모 클래스이다.

View 클래스의 속성은 모든 UI 컴포넌트들에서 공통적으로 사용할 수 있다.

widget

View 중에서 화면에 보이는 것들

크기 단위

dp(density-independent pixels) :

1dp == 밀도가 160dpi 의 화면일 때 1px

스크린의 실제단위는 px 이고 px은 절대적인 단위지만,

dp는 밀도, 독립화소를 말한다.

해상도 대응해서 버튼 디자인하는 방법

폰마다 화면크기, 해상도가 다르기 때문에 해상도 처리를 위해

dpi(hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi) 별로 5개씩 이미지를 준비해서 제작함

9-patch 이미지라는 방식? 으로 버튼을 제작해서 해상도에따라 늘어날 때 이미지가 유지될 부분과 늘어나도 되는 부분을 따로 지정해서 만들기도 함

Drawable 리소스

이미지 파일명 주의할 점

  1. 한글 x
  2. 대문자 x
  3. 숫자2로 시작 x
  4. _시작 가능

ImageView 의 크기와 Image 파일의 크기가 안맞을때

ScaleType 속성을 설정해서 조절!

실습 진행하면서 어려웠던거?

    fun doAction(v: View) {
        Toast.makeText(applicationContext, "Submitted Successfully", Toast.LENGTH_SHORT).show()
    }

버튼 클릭 이벤트 처리하는 부분에서

맨날 setOnClickListener만 써보다가 이렇게 처음 써봤는데

예시에는

이렇게 getApplicationContext() 이렇게 나와있었는데 저렇게 하니까 오류남..ㅜ

근데 오류메세지 보고 저렇게 고쳐봤더니 갑자기 됐음!

다 만든 화면

Layout

레이아웃이란?

뷰를 정렬하는 기능을 가진 ViewGruop의 파생 클래스

레이아웃의 종류

  1. Linear Layout
  2. Relative Layout
  3. Table Layout
  4. Frame Layout
  5. Constraint Layout

스타일 및 테마

스타일 : View의 모양, 형식 등을 지정하는 속성의 모음

높이, 패딩, 글꼴색상, 배경색 등의 속성을 지정할 수 있다.

별개의 xml 파일로 정의함

res/values/styles.xml 에 추가

테마 : 개별 뷰 말고 전체 Activity나 애플리케이션에 적용하는 스타일

실습

버튼이 근데 나는 둥글어버림~ ㅎㅋ

아근데 색깔을 안 넣었당

배경 색 넣어줌!

이렇게 3주차 강의까지 다 들었당~~

실습이 껴있어서 생각보다 오래걸린듯!?

그래도 레이아웃은 내가 따로 공부하고있기도 했어서 거의? 아는 내용들이라서 쉽게 했당~

가장 어려운건 강의 보면서 딴생각 안하기였음

4주차 강의

Activity

화면을 구성하는 가장 기본적인 UI

모든 Activity는 Android Manifest 파일에 등록되어야함

Intent

일종의 메시지 객체로 다른앱 구성요소로 작업을 요청 할 수있다.

명시적 인텐트(Explicit Intent)

  • 특정한 애를 인텐트 객체에 설정해서 startActivity() 혹은 startService()에 넘기는거

암시적 인텐트(Implicit Intent)

  • 일반적인 작업(전화걸기, 지도보기) 을 인텐트 객체에 설정해서 startActivity()에 넘기면 안드로이드 시스템이 인텐트 필터를 사용해서 해당 인텐트와 일치하는 앱을 시작히시키는거

Intent 객체

  1. 컴포넌트 이름(ComponentName) (명시적 인텐트일때)

    인텐트를 처리하는 타겟 컴포넌트 이름

  2. 작업 (Action)

    수행되어야할 작업을 나타내는 문자열

  3. 데이터 (Data)

    작업에 필요한 데이터(URI형식)

  4. 카테고리(Category)

    작업에 대한 추가적인 정보 제공

  5. 엑스트라(Exctra)

    요청한 작업을 수행하기 위해 필요한 추가 정보를 담고있는 키-값 쌍의 데이터

profile
오리너구리입니다

0개의 댓글