728x90
반응형

전체 글 70

7. 레이아웃 (LinearLayout, RelativeLayout, ConstraintLayout) 구조와 사용법

LinearLayoutLinearLayout은 자식 뷰들을 수평(horizontal) 또는 수직(vertical)으로 일렬로 배치하는 레이아웃orientation 속성을 통해 방향을 설정할 수 있다.주요 속성속성설명android:orientation vertical 또는 horizontal 설정android:layout_weight 비율 기반으로 공간 분배android:gravity 자식 뷰의 정렬 위치 설정android:baselineAligned 텍스트의 기준선 정렬 여부 설정 예시  TextView, EditText, Button이 수직으로 정렬된 LinearLayoutRelativeLayoutRelativeLayout은 자식 뷰를 서로의 위치를 기준으로 배치할 수 있는 레이아웃..

6. Android Theme (테마)

Theme앱의 전체적인 UI 스타일을 일관되게 정의하는 요소버튼, 텍스트, 배경색, 폰트 등 앱 전반에 걸쳐 일관된 디자인을 적용할 수 있다.앱의 사용자 경험(UX)를 개선하고 유지보수성을 높이기 위해 중요하다.Theme와 Style의 차이항목ThemeStyle정의앱 전체 또는 Activity, View의 전반적인 디자인을 정의개별 View(버튼, 텍스트 등)에 적용되는 디자인 속성적용 범위앱 전체, Activity 단위View 단위적용 방법AndroidManifest.xml 또는 코드로 적용XML 레이아웃 파일에서 직접 적용예시다크 모드버튼 색상, 폰트 크기Theme의 주요 속성속성설명 colorPrimary 앱의 기본 색상 (툴바, 액션바 배경) colorPrimaryVariant 기본 색상의 변형 ..

5. Android Permission (권한)

Permission이 필요한 이유Android는 사용자의 민감한 정보(카메라, 위치, 연락처 등)에 접근하기 전에 사용자의 명시적인 동의를 요구한다.보안: 악성 앱이 중요한 데이터에 접근하지 못하도록 보호프라이버시: 사용자가 자신의 데이터에 대한 제어권을 가질 수 있도록 보장권한의 종류권한 종류설명예시Normal Permissions위험성이 낮아 자동으로 허용됨인터넷 사용, 진동 제어Dangerous Permissions민감한 데이터 접근 시 사용자 동의 필요카메라, 위치, 연락처Signature Permissions같은 서명으로 서명된 앱끼리만 허용시스템 API 호출Special Permissions시스템 설정 변경과 같은 특별한 권한다른 앱 위에 그리기 (Overlay), 배터리 최적화 예외Norma..

4. Android Activity LifeCycle과 Activity 전환

Activity LifeCycle의 기본 개념Activity는 Android 시스템에 의해 관리되는 여러 생명주기 상태를 거치며 작동한다.각 상태마다 호출되는 콜백 메서드가 있으며, 이 메서드들을 오버라이드하여 필요한 처리를 할 수 있다.주요 콜백 메서드메서드설명onCreate()Activity가 처음 생성될 때 호출 (UI 초기화, 리소스 로드)onStart()Activity가 사용자에게 보여지기 직전 호출onResume()Activity가 Foreground에 있고 사용자와 상호작용 가능할 때 호출onPause()다른 Activity가 Foreground로 올 때 호출 (일시정지)onStop()Activity가 더 이상 사용자에게 보이지 않을 때 호출onRestart()onStop() 상태에서 다시 ..

3. Android 4대 컴포넌트 (Activity, Service, BroadcastReceiver, ContentProvider)의 이해

Andoird의 4대 컴포넌트는 앱의 구조와 실행 흐름을 결정하는 핵심 요소다.각 컴포넌트는 독립적으로 동작하면서도 서로 상호작용하며 앱의 기능을 구성한다.Activity (화면 구성 컴포넌트)UI를 포함한 단위 화면을 제공사용자와의 상호작용을 담당생명주기를 가진다.Activity Stack (Task) 개념을 기반으로 동작Intent를 사용해 다른 Activity 또는 앱과 상호작용Activity의 생명주기 (Lifecycle)메서드설명onCreate()Activity가 생성될 때 호출됨onStart() 화면에 보이기 시작할 때 호출됨onResume() 사용자와의 상호작용이 가능한 상태onPause() 다른 Activity가 실행될 때 호출됨onStop() 완전히 가려졌을 때 호출됨onDestroy()..

2. Gradle 빌드 시스템의 이해

Gradle에 대한 이해Gradle은 Android 프로젝트의 빌드, 의존성 관리, 컴파일을 담당하는 빌드 시스템이다.이 빌드 시스템은 Android 스튜디오 메뉴에서는 통합 도구로 실행되고, 명령줄에서는 독립적으로 실행된다.빌드 프로세스 맞춤설정, 구성 및 확장동일한 프로젝트 및 모듈을 사용하여 다양한 기능을 갖춘 앱을 위한 여러 APK 생성전체 소스 세트에 걸쳐 코드 및 리소스 재사용build.gradle (Project)프로젝트 전체의 Gradle 버전 및 기본 설정을 정의한다.모든 모듈에서 공통으로 사용할 설정을 추가할 수 있다.buildscript { ext.kotlin_version = "1.7.20" repositories { google() mavenCe..

1. Android 스튜디오와 프로젝트 구조

Andoid 스튜디오는?Android 앱 개발을 위한 공식 통합 개발환경(IDE : integrated development environment)이다.Android 앱을 빌드할 때 생산성을 높여주는 다음과 같은 기능을 제공한다.유연한 Gradle 기반 빌드 시스템빠르고 기능이 풍부한 에뮬레이터모든 Android 기기용으로 개발할 수 있는 통합 환경에뮬레이터와 실제 기기에서 구성 가능한 함수를 실시간으로 업데이트할 수 있는 실시간 편집일반적인 앱 기능을 빌드하고 샘플 코드를 가져오는 데 도움이 되는 코드 템플릿과 GitHub 통합광범위한 테스트 도구 및 프레임워크성능, 사용성, 버전 호환성 및 기타 문제를 파악하는 린트 도구C++ 및 NDK 지원Google 클라우드 메시징과 App Engine을 간편하게..

AICommand (ChatGPT API를 이용한 Unity Project)

요즘 업무할 때 코드분석이나 내가 잘 모르는 언어에 대해 틀을 잡을 때 ChatGPT를 유용하게 활용하고 있다.그러던 중 Chat GPT를 사용해 유니티 프로젝트에 접목시킨 API가 있다고 해서 간단히 테스트해 보았다. 사전 작업 https://github.com/keijiro/AICommand GitHub - keijiro/AICommand: ChatGPT integration with Unity EditorChatGPT integration with Unity Editor. Contribute to keijiro/AICommand development by creating an account on GitHub.github.com위의 링크를 통해 프로젝트를 받아서 실행시켜 준다. https://plat..

ChatGPT 2023.04.18

OpenGL NanoVG를 이용한 간단한 눈 내리는 효과

NanoVG를 사용한 효과를 선정할 일 있어서 고민하다가 IPTV 컨텐츠에 적용시켜 보기 위해 눈 내리는 효과는 생각했다. 참고 예제가 있어서 수월하게 개발했다. 우선 별 그리기와 달리 코드를 nanovg.c에 작성했다. 눈송이에 대한 코드 작성 #define MAX_SNOWFLAKES 50 //눈송이의 최대 개수 //눈송이 typedef struct { int init; //초기화 여부 float x; //x좌표 float y; //y좌표 } Snowflake; Snowflake snowflakes[MAX_SNOWFLAKES]; 눈 내리는 효과에 대한 코드 작성 void nvgFallingSnow(NVGcontext* ctx, float SCREEN_WIDTH, float SCREEN_HEIGHT) {..

OpenGL NanoVG 2023.04.18
728x90
반응형