안드로이드 개발자가 되는 법

안드로이드 개발자가 되는 법 많은 분들이 앱개발을 취업을 하기위해 혹은 취미로 배우는데 무엇부터 시작해야하는지 묻습니다. 정답은 없지만 제 나름대로의 기준을 가지고 선행학습해야 할 내용들을 정리해봤습니다. 시간나는대로 차곡차곡 내용을 덧 붙여나갈 생각입니다. 개발자가 갖춰야할 기본 적인 지식 자료구조(Data Structure) 데이터 통신(Data Communication) 알고리즘(Algorithm) 소프트웨어 공학(Software Engineering) 안드로이드 앱 개발자가 되기 위한 더보기…

Android Studio 3.2 출시와 새로운 기능

Android Stuido 3.2 Released! Android Studio3.2가 드디어 정식 출시 되어 다운로드가 가능해졌습니다. 안드로이드 스튜디오 3.2는 Android 9 Pie와 App Bundle을 이용할 수 있습니다. 모든 개발자는 안드로이드 스튜디오 3.2 버전을 사용하여 애플리케이션 배포 방식을 App Bundle 방식으로 바꾸는 것을 추천합니다. App Bundle은 Google Play에 앱을 업로드할 때 작은 용량과 최적화된 환경으로 더보기…

안드로이드로 배우는 자바의 인터페이스 (콜백, 리스너, 옵저버)

Before diving into interface 초보 자바 개발자 분들의 단골로 하는 질문이 있습니다. “리스너(콜백)가 뭐에요?” 또는 “인터페이스가 뭔지 모르겠어요!!” 자바의 인터페이스에 대한 개념없이 리스너를 이해하려 하는것은 헤어나올 수 없는 늪에 빠진것과 같습니다. 초보자 분들을 위해 인터페이스의 개념도 알아보고 실제 용례도 알아보고자 이 포스팅을 작성합니다. What is Interface? 포스팅을 작성하기 위해 인터페이스에 더보기…

안드로이드에서 Dynamic Proxy 사용하기

Proxy란? 일반적으로 대리자/대리인을 의미하며, 자바에서는 타겟을 감싸서 타겟을 요청을 대신 받아주는 Wrapping Object를 뜻합니다. Proxy 패턴은 디자인 패턴의 일종으로 자바의 Reflect 패키지에 있는 Proxy를 이용하여 원래 객체의 변경 없이 기능을 특정 방식으로 제어 하는 구조를 제안합니다. Reflection(리플렉션)에 대해서 알아보려면 이전 포스트를 참고하시기 바랍니다. 프록시 패턴의 장점 목표 기능 수행 전/후에 더보기…

안드로이드와 Java의 Reflection

Reflection이란? Reflection은 자바 언어의 기능중 하나로 프로그램 내부 속성을 조작 할 수 있게 합니다. 예를 들어 Java클래스가 가지고 있는 모든 멤버의 이름을 가져와서 표시 할 수 있습니다. 다른 언어에서는 이러한 기능이 보통 존재하지 않습니다. 예를 들어 파스칼, C,C++ 등의 언어에서 정의 된 함수에 대한 정보를 얻는 방법은 없습니다. 간단한 리플렉션 더보기…

.gitignore 간단하게 만들기

.gitignore 간단하게 만들기 개발자분들은 Version Control System(버전 관리 시스템)으로 git을 많이 선택해서 쓰실겁니다. 개인적으로 버전관리를 하기 위해 쓸수도 있고, 협업을 하기 위해 쓰기도 합니다. 협업을 하실 때 소스파일을 제외한 프로젝트 설정파일이나 빌드되어 나온 산출물을 업로드 하게 되면 협업하고 있는 다른 개발자와 충돌이 나기 마련인데요. 이 때 이러한 충돌을 막기 위해 더보기…

[OpenGL] 1. Android OpenGL ES의 개요

OpenGL ES란? Android는 높은 퍼포먼스를 필요로 하는 2D,3D 그래픽스를 위해 OpenGL ES(Open Graphics Library for Embeded System)를 지원합니다. OpenGL은 3D 그래픽 처리 하드웨어에 대한 표준 소프트웨어 인터페이스를 지정하는 크로스 플랫폼 그래픽 API이며, OpenGL ES는 안드로이드와 같은 임베디드 장치를 위한 가볍고 쉬운 API를 제공합니다. 또한 Android는 여러 버전의 OpenGL ES API를 더보기…

안드로이드 버전별 백그라운드 정책

안드로이드의 백그라운드 정책(Service) 개발자 입장에서 안드로이드를 아이폰과 비교했을 때 큰 강점은 자유로운 백그라운드 작업이였습니다. 안드로이드 버전이 진화하고 시장의 흐름에 변화에 따라 안드로이드의 백그라운드 정책도 변화하고 있습니다.  편의성 vs 보안 백그라운드 작업을 통해 사용자 편의를 위한 많은 작업들을 자연스럽게 처리 할 수 있었고, 소켓 연결 등 푸시서비스와 비슷한 기능도 구현할 수 더보기…

글쓴이 Charlezz,

Koin과 함께 하는 안드로이드 의존성 주입

Introduction Koin은 코틀린 개발자를 위한 실용적인 API제공을 하는 경량화된 의존성 주입 프레임워크입니다. (자바 개발자 또는 의존성 주입에 대해서 알고 싶다면 Dagger 포스트를 참조해주세요)  순수 코틀린으로만 작성되어있으며 프록시, 애노테이션 프로세싱을 통한 코드 생성, 리플렉션을 사용하지 않기 때문에 가볍습니다. Android Gradle설정(https://github.com/InsertKoinIO/koin) def koin_version=”0.9.3″ // 최신버전은 위의 github링크 참조 implementation “org.koin:koin-android:$koin_version” 왜 DSL을 더보기…

MotionLayout으로 만드는 안드로이드 애니메이션

MotionLayout으로 만드는 애니메이션 ConstraintLayout 2.0이 출시 되면서 MotionLayout이라는 새로운 레이아웃이 등장했습니다. MotionLayout은 ConstrainLayout을 상속한 레이아웃으로 새로운 방식으로 동적인 화면을 구성합니다. 기존에 애니메이션을 구현하기위해서는 다음과 같은 기술들을 적용했었습니다. AnimatedVectorDrawable( 모핑 애니메이션 버튼 만들기 ) Property Animation LayoutTransition, (Animate layout changes using a transition) CoordinatorLayout(디자인 서포트 라이브러리) MotionLayout은 기존의 방식과는 다르게 레이아웃 더보기…