본문 바로가기

전체 글

(103)
다재다능 코틀린 프로그래밍 / 콜렉션 사용하기 kotlin.collections 패키지에 Java 콜렉션에 유용한 함수들이 많이 추가되었다. 코틀린에서는 Java의 콜렉션을 각자 편한 방법대로 사용할 수 있다. 동일한 콜렉션이면 코틀린이 추가한 메소드를 사용할 수 있다. JAVA에서 명령형 스타일의 for-each가 아닌 함수형 스타일의 forEach문을 사용한다면 인덱스는 사용 할 수 없다. 코틀린은 withIndex() 메소드를 제공해서 인덱스와 값 모두를 편하게 얻게 해준다. // JAVA for(int i = 0 ; i < names.size() ; i++){ System.out.println(names.get(i)); } for(String name : names) { System.out.println(name); } // Kotlin va..
Geocoder - getFromLocation() deprecated 해결 getFromLocation(double latitude, double longitude, int maxResults) 메소드가 API33에서 Deprecated되었다. getFromLocation(double latitude, double longitude, int maxResults, android.location.Geocoder.GeocodeListener) 를 대신 사용하면 된다. //Fetch address from location geocoder.getFromLocation(latitude,longitude,maxResult,object : Geocoder.GeocodeListener{ override fun onGeocode(addresses: MutableList) { // code } o..
안드로이드 / EditText text 위로 정렬 android:gravity 속성을 top으로 설정하면 multiLine인 EditText의 text를 위로 정렬할 수 있다.
다재다능 코틀린 프로그래밍 / 코틀린 시작하기 Chapter 1 코틀린 시작하기 코틀린은 객체지향 프로그래밍 + 비동기 프로그래밍 + 함수형 프로그래밍 + 스크립트 왜 코틀린을 선택해야 하는가? - 보일러 플레이트 코드를 덜 쓰도록 해준다. - 컴파일 시간 안정성 - 프로젝트에서 코틀린 코드와 JAVA 코드를 함께 사용할 수 있다. 프로젝트에 코틀린 점진적 도입 가능 Chapter2 JAVA개발자를 위한 코틀린 필수사항 1. 더 적은 타이핑 - 새미콜론 생략 가능 - 변수타입 지정 생략 가능 - 클래스와 함수 생략 가능 명령문이나 표현식이 메소드에 속할 필요가 없고, 메소드는 클래스에 속할 필요가 없다. 코드가 컴파일되거나, 스크립트로 실행될 때 코틀린은 JVM에서 실행하기 위해 필수적으로 필요한 랩퍼 클래스와 메소드를 생성한다. - try-catc..
안드로이드 스튜디오 / GPT-3 API를 이용한 모바일 챗봇 만들기 구현 기능 gpt-3 api 통신을 통한 채팅 temperature, frequency panalty 값 설정 채팅 화면 초기화 채팅 내용 공유 (시스템 공유하기 사용) 오프라인 환경에서도 채팅내용 불러오기 기술스택 & 라이브러리 IDE -> Android Studio Language -> Kotlin Network -> Retrofit,OkHttp Coroutine Dependency injection -> Dagger Hilt Android Jetpack (ViewModel, LiveData, viewBidning, RecyclerView, Room, Navigation) 1. 프로젝트 구성 안드로이드 클린아키텍처를 구성하고자, data, domain, app 모듈을 분리하고, hilt로 의존성 주입..
안드로이드 스튜디오 / SOFT_INPUT_ADJUST_RESIZE deprecated SOFT_INPUT_ADJUST_RESIZE를 맨 하단에 있는 editText를 클릭했을때 soft keybord가 올라오면서 editText가 안가려지게 하기 위해 사용하고 싶었으나, 안드로이드30이상부터 deprecated 되었다. 30 이상은 setDecorFitsSystemWindows 를 제공한다고 한다. 이렇게 분기처리를 해주면 된다. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { binding.root.setOnApplyWindowInsetsListener { _, windowInsets -> val imeHeight = windowInsets.getInsets(WindowInsets.Type.ime()).bottom binding.root...
안드로이드 스튜디오 / Appsflyer onelink 적용방법 앱내 게시물 링크를 공유해서 링크를 클릭하면 해당 게시물로 들어오게 하기 위해서는 deeplink를 사용해야한다. Appsflyer onelink를 사용하여 구현하였다. 1. Appsflyer sdk 설치 1-1. 모듈단위 gradle dependencies { // Get the latest version from https://mvnrepository.com/artifact/com.appsflyer/af-android-sdk implementation 'com.appsflyer:af-android-sdk:6.9.0' } 1-2. manifest Appsflyer 에서 링크가 생성되면, 2. Manifest에서 intent-filter를 추가해준다. 이때, onelink intent-filter와 Ap..
안드로이드 스튜디오 / targetSdk33 알림 권한 요청 기존 안드로이드12 이하는 알림 권한 기본값이 활성화였는데, 안드로이드13부터는 기본값이 비활성화라고 한다. 따라서 Notification 권한을 요청하거나, 사용자가 직접 알림 설정에 들어가서 활성화를 해야 한다. Notification권한은 targetSdk33이상에서만 권한 추가 요청이 가능하다. targetSdk31로 되어 있던 프로젝트를 targetSdk33으로 올리기로 하였다. (진작했어야했는데...) 그리고, 알림 설정 팝업을 띄워주는 코드를 추가하였다. 1. build.gradle 에서 targettSdk33, compileSdk33으로 변경 2. manifest 에서 POST_NOTIFICATION 퍼미션 추가 다행히 크게 변경할 코드가 없어서 sync만 맞춰주었다. 3. 알림권한이 설정..

반응형