본문 바로가기

안드로이드앱 코딩_AndroidApp/안스_코틀린_쪼개기

파편21_Intent로 데이터 주고 받기 Intent (인텐트) intent는 '의지, 의향, 의도, 목적'이라는 뜻이다. 컨텍스트의 기능을 사용하기 위해 Context 클래스에 있는 함수를 호출할 때는 직접 연결하지 않고 Intent에 넣어서 이것을 사용할 것이라는 '의도'를 시스템에 전달한다. 예를 들어 Activity를 실행할려면 Intent( ) 함수에 어떤 Activity(TargetActivity)를 실행할 것인지 알려주고 startActivity()함수로 실행할 수 있다. val intent = Intent(this, TargetActivity::class.java) startActivity(intent) 참고로 MainActivity는 자동으로 Intent를 등록하므로 실행하기 위해 따로 적을 필요가 없다. Bundle (번들) .. 더보기
파편20_Context_컨텍스트 Context(컨텍스트)는 쉽게 말하면 '안드로이드 시스템과 앱에서 만든 컴퍼넌트를 연결해 주는 역할'을 하는 추상 클래스다. 그러므로 Context 라는 추상클래스는 컴퍼넌트에 대해 상위 클래스의 지위를 가지고 컴퍼넌트의 모든 기능과 Interface(상호작용)할 수 있는 함수를 가지고 있다. 다시 말해서 안드로이드 시스템은 컴퍼넌트의 기능을 Context라는 추상클래스를 통해 구현한다는 것이다. 예를 들어 컴퍼넌트 중 화면을 만드는 Activity(액티비티)에는 여러 구성요소(텍스트, 버튼 등)들이 있는데 이것은 XML코드로 작성된다. 이것을 View(뷰)객체로 만들면 화면에 보이게 된다. 이 과정을 안드로이드 시스템이 Context를 통해 구현하는 것이다. 왜 이것이 가능하냐면 Activity는 C.. 더보기
파편19_android studio_프로젝트 복사본 만드는 법 안드로이드 스튜디오로 프로젝트를 만들다가 샛길로 빠져 다른 방법으로 시도해 보고 싶은 상황이 생겼을 때는 프로젝트 복사본을 만든 후 열면 된다. 순서는 다음과 같다. 프로젝트가 실행된 상태에서 작업한다. 탐색기에서 해당 프로젝트 폴더를 찾는다.(예; SciQuiz) 프로젝트 폴더를 복사하고 붙여넣기 한다. 폴더 이름을 바꾼다. (예; SciQuizCopy) 안드로이드 스튜디오에서 File > Open을 클릭한다. 폴더(SciQuizCopy)를 선택하고 OK를 클릭한다. 새 창(New Window) 버튼을 클릭하면 프로젝트가 2개(SciQuiz와 SciQuizCopy)가 열려 있는 상태가 된다. 작업할 때는 원본인지 카피본인지 주의하면서 작업해야 한다. Wraven... 더보기
파편18_Gradle 앱을 테스트하고 배포하기 위해서는 build(빌드)라는 작업을 거친다. 테스트 하라는 명령을 내리면 안드로이드 스튜디오는 작성한 코드를 컴파일(compile)해서 ART(Android Run Time)로 실행한다. 또한 배포용 파일인 APK파일을 만들라는 명령을 내리면 리소스와 자바코드를 컴파일(compile) 하는 과정을 거쳐 실행파일을 만든다. 그 다음 개발자가 key로 서명하면 만들수 있다. 이 빌드 작업을 위한 도구가 gradle이다. build.gradle파일은 2종류가 있다. Project Module 1. Project 프로젝트 전체를 위한 설정, 모든 모듈을 위한 최상위 설정을 기록한다. 라이브러리를 추가할 경우 dependencies에 기록한다. dependency(디펜던시)는 '의존, .. 더보기
파편17_Object and companion object class(클래스)는 객체 지향 프로그래밍(Object Oriented Programming)의 개념에서 나온 것이다. class(클래스)는 독립적으로 실행하는 틀을 제공한다. 참고: class(클래스)와 object(오브젝트) : https://fiftiesstudy.tistory.com/62 class(클래스)는 변수와 함수를 가지고 있다. 그 변수와 함수로 object(객체)를 만들 수 있다. 이렇게 만든 객체를 instance(인스턴스)라고 한다. Object (오브젝트) 클래스에 객체를 여러 개 만들 수 있도록 허용하지만 만약 singleton(싱글톤)이 필요하다면 class 대신 키워드 object를 사용하여 선언할 수 있다. singleton은 instance를 한 개만 가지는 클래스이다. .. 더보기
파편16_들여쓰기 탭 수정하는 법 안드로이드 스튜디오는 처음 설치할 때 테마(Theme)를 Dracula(드라큘라)로 설정했었다. 나이가 들어 눈도 침침하고 해서 짙은색 배경에 흰 글자가 더 잘 보이는 것 같다. 그리고 나머지 환경설정은 Default(디폴트; 기본)값으로 사용했다. 하다가 불편하거나 수정하고 싶은 부분이 생기면 메뉴의 Settings(셋팅) 부분에서 수정하곤 한다. 이번에는 들여쓰기를 수정해 보기로 한다. 최근에 들어 작성하는 코드 길이가 길어지고 복잡해지기 시작하니까 정신없는 경우도 가끔 생겨서 탭 간격을 줄이기로 했다. 안스의 환경설정을 위해 File > Settings로 이동한다. Editor(에디터; 편집기) > Code Style(코드 스타일) > Kotlin을 클릭하면 기본 설정을 볼 수 있다. 설정을 바꿔보.. 더보기
파편15_component_컴퍼넌트 안드로이드 앱 개뱔은 component(컴퍼넌트 ; 요소, 부품)를 기반으로 한다. component는 앱을 구성하는 단위를 나타내는 개념이다. 그러므로 앱은 개별 component의 조합이라고 할 수 있다. 코딩을 작성하는 체계 중 하나인 '객체 지향 프로그래밍'과 비슷하다. component 개념이 코드로 구현된 것이 Class(클래스)다. 하지만 모든 클래스가 컴퍼넌트는 아니다. 왜냐하면 클래스는 컴퍼넌트클래스와 일반 클래스로 나누어지기 때문이다. 컴퍼넌트는 안드로이드 시스템이 주도하여 생명주기(lifecycle)를 관리하고 소멸시킨다. 컴퍼넌트도 클래스 이므로 다른 클래스와 조합할 수 있다. 특별히 컴퍼넌트 클래스는 독립적인 수행 단위로 동작한다. 컴퍼넌트클래스를 실행하려면 직접 결합(호출)하지 .. 더보기
파편14_ConstraintLayout_Chaining Chaining(체인 연결)은 View(뷰)들을 체인으로 연결하는 방법이다. 이렇게 하면 View(뷰)들의 크기와 위치를 상대적으로 결정되어 비율을 유지해 주는 장점이 있다. 실습해보자. 새 프로젝트를 만든다. Empty Activity를 선택하고 프로젝트명을 ExerciseChaning으로 만든다. Activity_main.xml파일을 열고 ConstraintLayout에 기본으로 만들어져 있는 TextView를 삭제한다. 팔레트에서 버튼 4개를 아래와 같이 추가한다. 위쪽의 버튼 2개를 선택한다. 마우스로 끌거나 Ctrl키를 누른 상태로 버튼을 선택하면 된다. 마우스를 버튼 위에 두고 마우스 오른쪽을 클릭한 후 Chains > Create Horizontal Chain(수평 체인 만들기)를 클릭한다... 더보기