전체 글

Developer Blog 📜 Lots of rules and no mercy ✨
Event Android에는 사용자와 애플리케이션의 상호작용에서 이벤트를 가로채는 방법이 여러 가지 있다. Input Events 특정 View 인스턴스에서 이벤트를 캡처 사용자의 이벤트를 가로채는 방법 이벤트 리스너 단일 콜백 메소드를 포함하는 인터페이스 item과 사용자 상호작용에 의해 트리거 예: onClickListener(), onLongClickListener(), onFocusChangeListener(), onKeyListener(), onTouchListener(), nonCreateContextMenuListener() 이벤트 핸들러 이벤트를 처리하는 단일 콜백 메서드 예: onClick(), onLongClick(), onFocusChange(), onKey(), onTouch(), ..
Drawable public abstract class Drawable extends Object "그릴 수 있는 것"에 대한 일반 추상화 다양한 형태를 취할 수 있는 기본 시각적 리소스를 처리하기 위한 일반 API를 제공 예: 비트맵, 나인 패치, 레이어 등. BitmapDrawable 비트맵 그래픽 파일(PNG, WEBP, JPG, GIF) NinePatchDrawable 콘텐츠에 따라 이미지 크기를 확장 가능한 영역 존재, PNG 파일(.9.png) LayerDrawable 배열 순서로 그려진 다른 드로어블 배열을 관리하는 드로어블 StateListDrawable 다양한 상태(예: 버튼 탭)에 대해 다양한 비트맵 그래픽 참조, XML 파일 LevelListDrawable 최대 숫자 값을 갖는 대체 ..
기본 위젯 TextView EditText Button ImageView ImageButton TextView public class TextView extends View implements ViewTreeObserver.OnPreDrawListener 사용자에게 텍스트를 표시하는 유저 인터페이스 요소 가장 일반적으로 사용 View에서 상속된다. View의 모든 속성을 사용 가능 text 텍스트 textColor 텍스트 색상, "#AARRGGBB" 형식, 알파 : 투명도(불투명 "FF", 투명 "00", 반투명 "88") textSize 텍스트 크기("dp", "sp", "px") textStyle 텍스트 스타일("normal", "bold", "italic.") typeFace 글꼴( "normal"..
Layout 어떻게 배치할 것인가 activity 같은 앱의 유저 인터페이스 구조를 정의 레이아웃의 모든 요소는 View 및 ViewGroup 개체의 계층 구조를 사용하여 구축된다. Layout 5가지 Constraint(제약 레이아웃) 제약조건 설정, 설정 안하면 디폴트 값 Linear(리니어 레이아웃) 방향을 지정하고 차례대로 뷰를 추가 Relative(상대 레이아웃) 규칙을 지정하여 다른 뷰 대비 상대적인 위치 Frame(프레임 레이아웃) 하나에 여러 뷰를 놓고 우선순위를 지정하여 중첩된 뷰를 전환하며 보여줌 Table(테이블 레이아웃) 격자 형태 Constraint Layout(제약 레이아웃) 크기나 위치에 제약을 설정 최소한 하나 이상의 제약조건을 걸어둔다. 부모 레이아웃에 제약, 주변의 다른 ..
View 유저 인터페이스를 구성하는 구성요소 버튼, 텍스트, 위젯 등... public class View extends Object implments Drawable.Callback, KeyEvent.Callback, AccessibilityEventSource View Group : 여러 뷰들로 구성되어 있는 컨테이너 Layout : 뷰를 정렬하는 뷰 그룹 뷰를 어떻게 분배시킬 것인지, 뷰를 상속받아서 구성된다. Widget : 제어 역할을 하는 뷰 뷰를 기능적인 부분으로 바라봄 View Group 여러 뷰(자식)를 가지고있는 특별한 뷰 뷰를 상속받아서 구현된다. java.lang.Object > android.view.View > android.view.ViewGroup 뷰를 묶어서 뷰 그룹이라고 ..
이전 포스터에서 안드로이드 스튜디오와 애뮬레이터 설치 및 실행을 완료했다. 이어서 누르면 동작하는 버튼 기능을 추가해보자 (1) activity_main.xml의 Design 화면에서 Button을 화면으로 드래그 혹은 클릭된 상태로 Enter를 누른다. (2) Split 혹은 Code 화면으로 전환하여 Button의 text를 수정한다. android:text="Go to NAVER" (3) MainActivity.java에 버튼 액션을 추가한다. 버튼을 클릭하면 네이버로 이동한다. // 버튼 위젯 import 추가 import android.widget.Button; ... // id로 버튼 지정 Button urlButton = findViewById(R.id.button); // 버튼 액션 추가 ..
객체(Object) 객체 : 데이터, 작업을 모두 캡슐화하는 컨테이너 ADT 변수 : 해당 데이터만 나타낸다. 변수 자체를 사용하여 작업을 호출 void increment(Counter c) 객체의 데이터 항목 : 인스턴스 변수(instance variables) 작업 : 메서드(method) 메소드 호출(Method Invocation) 객체에 대한 작업 실행은 객체에 메시지를 전송하여 수행 object.method(params) 객체에 대한 메소드 호출 객체에게 메소드를 호출하도록 지시 객체 자체는 메소드의 암시적 매개변수로 간주될 수 있다. 클래스(Class) 클래스 : 객체 집합의 모델 클래스가 있는 언어에서는 모든 객체가 클래스에 속한다. 객체는 클래스의 인스턴스로 간주될 수 있다. 객체는 해당..
데이터 추상화(Data Abstraction) 물리적 시스템은 한 가지 타입만 처리 : 비트 문자열(bit strings) 고급 언어는 다양한 값에 대한 "래핑(wrapping)"을 제공 타입 : 값 + 작업 데이터 추상화 : 값은 하나로 결합될 수 있으며 적절한 작업을 통해 새롭고 더욱 추상적인 유형을 형성 가능 이 새로운 유형을 사용하여 현실 세계에서 더욱 복잡한 객체를 표현 가능 예) 레고 작품을 만들 때 아래 구조부터 쌓아서 올려서 합친다. 장점 복잡한 데이터 구조를 쉽게 처리한다. 세부 사항에 신경 쓸 필요가 없다. 인터페이스(Interface)와 구현(implementation)의 분리 구현(implementation)을 몰라도 인터페이스와 함께 사용 가능 정보 숨기기(Information H..
스크립팅 언어 컴퓨터를 실제로 사용하려면 여러 프로그램을 결합해야 하는 경우가 많다. 예) 디렉토리의 모든 로그 파일에서 특정 유형의 오류 메시지를 인쇄 A : 디렉터리의 모든 로그 파일을 나열 B : 목록에서 각 로그 파일을 읽기 C : 해당 유형의 오류 메시지를 찾기 D : 발견된 메시지를 특정 형식으로 인쇄 Glue 언어 스크립팅 언어는 Glue 언어라고 불린다. 목표를 달성하기 위해 여러 프로그램을 함께 연결(Glue) 두 조상 : 쉘/터미널(sh, bash) + 텍스트 처리(sed, awk). 범용 스크립팅 언어 Perl, Python, Ruby, PowerShell, AppleScript 등 웹용 PHP, JSP, Ruby on Rails, JavaScript, TypeScript 등 공통적인..
프로그래밍 언어 패러다임(PL Paradigm) 프로그래밍 언어가 따르는 원칙과 전략 예) 절차적, 명령적, OOP, 기능적, 논리 등 하나의 프로그래밍 언어는 여러 패러다임을 따를 수 있다. Java - 명령형 및 객체 지향 언어 패러다임(Language Paradigms) 프로그래밍 언어를 그룹화하거나 분류하는 방법은 매우 다양하다. 명령형(Imperative) 절차적(procedural) - Fortran, Pascal, Basic, C 객체 지향(object-oriented) - Smalltalk, C++, Java 스크립팅 언어(scripting languages) - Perl, Python, JavaScript 선언형(Declarative) 함수형(functional) 프로그래밍 - Schem..
파스텔코랄
슬기로운 개발일지