전체 글38 Javascript Interface for WebView 온전히 네이티브 기반의 프로젝트가 진행이 된다면야 크게 고민할 필요가 없는 내용일 수 있겠지만, 기존 레거시 어플리케이션이 웹 베이스라던가, 개발 효용 측면에서 하이브리드 개발을 선택하기로 결심했다면 사용할 수 밖에 없는 WebView와 이에 쓰이는 Bridge 통신(Javascript interface)에 대해서 숙지해야 한다. 우선 가장 기본적으로 웹 뷰(Web View)에 대해서.... 안드로이드에서 웹 어플리케이션 또는 웹 페이지만 클라이언트 어플리케이션의 일부로 제공하려는 경우에는 WebView를 사용하면 된다. WebView 클래스는 Android의 View 클래스의 확장으로, 웹페이지를 활동 레이아웃의 일부로 표시할 수 있도록 한다. 그렇다면 기존에 사용하고 있던 자바 스크립트 기반의 웹 페.. 2023. 5. 19. [Item 05] 예외를 활용해 코드에 제한을 걸어라 확실하게 어떤 형태로 동작해야 하는 코드가 있다면, 예외를 활용해 제한을 걸어주는 것이 좋습니다. 코틀린에서는 코드의 동작에 제한을 걸 때 다음과 같은 방식을 선택하여 구현할 수 있다. require 블럭: 블럭 argument를 제한할 수 있다. check 블럭: state와 관련된 동작을 제한할 수 있다. assert 블럭: 어떤 것이 true인지 확인할 수 있습니다. assert 블럭은 테스트 모드에서만 동작한다. return 또는 throw와 함게 활용하는 Elvis 연산자 이러한 메커니즘을 사용하는 간단한 예는 다음과 같다. //Stack 의 일부 fun pop(num: Int = 1) : List { require(num =0 ) return if ( n=0 ) { "cannot calcula.. 2023. 5. 2. [Item 04] inferred 타입으로 리턴하지 말라 코틀린의 타입 추론(type inference)은 JVM 세계에서 가장 널리 알려진 코틀린의 특징입니다. 자바에서도 Java10부터는 코틀린을 따라 타입 추론을 도입했습니다. Type Inference in Kotlin (Inferred Type) 코틀린에서는 compile time에 어느 정도 생략이 되었더라도 컴파일러에 의해 형 추론이 가능한 타입 추론(Type inference)이라는 특징을 제공한다. 예를 들어서, fun main() { //val word : String = "" val word = "" } 위 코드와 같이, String 형이라는 타입을 명시적으로 지정해주지 않아도 코틀린은 프로퍼티 및 변수의 타입을 대입값에 근거해 추론하여 타입을 부여한다. 타입 추론을 사용할 때는 몇 가지 위.. 2023. 4. 30. [Item 03] 최대한 플랫폼 타입을 사용하지 말라 플랫폼 타입(Platform Type) 코틀린은 언어 특성 상 Null-Safety를 제공하는 특징을 갖고 있다. 그렇기에 다른 언어에서 쉽게 발생하는 NPE(Null Pointer Exception)이 발생할 가능성이 현저히 낮다. 최근 코틀린이 많은 언어들 중 우세를 갖는 이유이기도 하다. 코틀린의 또다른 특징으로는 다른 언어와 호환성 높게 코드를 작성할 수 있고 동작한다는 점이 있다. 그렇기에 안드로이드 개발 같은 경우에는 기존 언어였던 자바와 함께 코틀린으로 개발을 진행한다. 하지만 이러한 특징때문에 발생하는 문제가 존재한다. 코틀린은 널 안정성이라는 메커니즘을 갖는 반면, 그렇지 않은 자바, C등의 프로그래밍 언어는 그렇지 않기에 같이 사용하는 경우 예외가 발생할 수 있다. 예를 들어, 자바에서.. 2023. 4. 30. Build Variants '답답해서 쓰는 Android Developers - Configure build variants' Build Variants - Android Developers 들어가서 문서를 확인하는데 번역기st의 문서로 나와있어서...공부할겸 정리할겸 글을 씁니다... Configure build Variants 단일 프로젝트에서 다양한 버전을 build variants를 통해 생성하는 방법에 대해서 다룬다. 또한 dependencies와 configuration을 어떻게 관리하는지에 대해서도 다루어보겠닷. 각각의 build variant 는 build할 수 있는 앱의 다양한 버전을 나타낸다. 예를 들어 제한된 컨텐츠를 제공하는 무료 버전 앱을 제공할 때와, 유로 버전의 앱을 제공할 때 구분하여야 되는 경우..... 2023. 4. 28. Module이란? 안드로이드 모듈(Module)이란? 모듈 모듈은 소스 파일 및 빌드 설정으로 구성된 모음이며, 이를 통해 프로젝트를 별개의 기능 단위로 분할할 수 있습니다. 프로젝트에는 하나 이상의 모듈이 포함될 수 있으며, 하나의 모듈이 다른 모듈을 종속 항목으로 사용할 수 있습니다. 각 모듈을 독립적으로 빌드, 테스트, 디버그 할 수 있습니다. Android 스튜디오에서는 다음과 같이 몇 가지 서로 다른 모듈 유형을 제공한다. Android App Module 앱 소스 코드, 리소스 파일 앱 수준 설정을 포함하기 위한 컨테이너를 제공합니다. 새 프로젝트를 만들 때 기본 앱 모듈의 이름은 'app'입니다. 각 모듈(스마트폰 및 태블릿 모듈, Automotive 모듈, Wear OS 모듈 등)은 해당하는 앱 또는 기기 .. 2023. 4. 27. 이전 1 2 3 4 ··· 7 다음