Android Studio Tabnine 사용해 보기

AI Coding

  • 안드로이드 스튜디오에서 사용할 수 있는 안드로이드 코드를 AI 로 쉽게 작성할 수 있는 Plugin 에 대한 검토를 해보자

AI Coding Assistant Tools

GitHub Copilot

Amazon CodeWhisperer

  • https://mobikul.com/amazon-code-whisperer-android-studio/
  • 개인 무료, AWS 계정 필요
  • Amazon CodeWhisperer는 Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell 스크립팅, SQL, Scala 등 다양한 프로그래밍 언어를 위한 인공 지능(AI) 기반 코드 제안을 제공합니다. JetBrains IDE(IntelliJ IDEA, PyCharm, WebStorm, 및 Rider), Visual Studio(VS) Code, AWS Cloud9, AWS Lambda 콘솔, JupyterLab 및 Amazon SageMaker Studio를 포함하여 여러 IDE에서 서비스를 사용할 수 있습니다.
  • CodeWhisperer는 Amazon Elastic Compute Cloud(Amazon EC2), AWS Lambda 및 Amazon Simple Storage Service(Amazon S3)를 비롯한 AWS API에 최적화된 코드 제안을 제공하여 개발자가 AWS 서비스를 더 효율적으로 사용할 수 있도록 합니다. IDE에서 코드를 작성할 때 CodeWhisperer는 코드와 주석을 자동으로 분석합니다. 원하는 기능에 대해 관련 클라우드 서비스와 퍼블릭 소프트웨어 라이브러리를 사용하도록 제안한 다음 AWS 모범 사례를 충족하는 코드 조각을 추천합니다.
  • 뭔가 AWS API 에 최적화된 코드 제공하는것으로 보여짐.

Android Studio Bot
  • https://developer.android.com/studio/preview/studio-bot
  • Download the latest canary version of Android Studio Hedgehog.
  • Studio Bot is currently free for developers to try out, and is available in the US only.
  • 안드로이드 개발에 특화된 AI 코딩으로 보여진다.
  • 안드로이드 스튜디오를 최신 버젼 (개발 - Canary Build) 으로 추가 설치해야 하고, US 에서만 오직 사용가능하다는 문구 때문에 시도해보지 않음.

Tabnine

설치

0. Android Studio 설치 및 환경세팅

1. https://app.tabnine.com/signup 계정 회원 가입


2. File-Setting-Plugin-tabnine 검색-설치



3. 설치가 되면, Android Studio 하단에 "tabnine Stated" 가 생김


이것 저것 해볼려고 하면 계속해서 1달 결재 유도 한다.


사용

1. Symbol Search 시에 좀 느려진것 같다.

 IDE 의 가장 기본인 검색 기능인데, Symbol Search Command Input 패널이 생기는데 좀 딜레이가 생겼다.


2. 파일 존재 유무 코드

 파일 존재 유무를 조건문으로 걸기 위해서 file 치고 . 찍으면 Plugin 전에는 그냥 밑에 사용할수 잇는 함수 및 변수가 나타났는데, "endsWith(".zip") 이 나타남.

 근데, 나는 zip 으로 끝나는 파일을 찾은적도 없고, 찾고 싶지도 않음.


file 치고 . 찍고, ex 까지 치니까, exists 를 완성해 줌. 기본 Android Studio에서는 ex가 마지막이던 처음이든 포함된 함수를 쫙 나열 해줌.


Alt+] , Alt+[ 으로 다른 추천 사항을 고를 수 있는거 같은데, 다른 단축키랑 엉켯는지, 동작은 안함.


추천해줘서 file.exists 를 했더니, 빌드 에러가 발생함.


file 변수는 String 객체이며, String 객체에서의 exists 메서드는 원래 없음.

인터넷 검색해서 File의 유무를 검색하기 위해서 isRegularFile 을 사용해야 한다고 해서 이걸로 함.



3. 파일의 날짜를 얻어서 삭제하는 코드

 현재 날짜와 현재 파일의 날짜를 비교해서, 6개월 이후 이면 삭제 하는 코드인데, 파일에서 저장 날짜를 추출해오는 코드에서, 파일이름에 - 가 없는 파일이 있어서 Exception 이 발생해서 수정하고자 했는데, 현재 날짜와 파일 앞 8자리를 비교하는 코드를 알아서 작성해준다. 

아래의 if (file.name.substring(0, 8) == getCurrentDate()) { 가 자동으로 나타난다. 그리고, file.name.substring(0,8) 은 문자열이 8자리 이하이면, Array Exception 이 발생하는 코드여서 좋은 코드는 아니다. 

근데, 나는 현재 날짜와 파일 날짜를 동일한지 비교하고 싶지는 않다.



지우고 안썻더니, 아래 와 같은 코드를 작성해 준다. 



alt+] 으로 넘겨보니, 다른 코드도 제안해 준다.



4. 주석 자동 완성

  -2 값은 요청한 파일리스트가 존재 하지 않을 경우 return 하는 값이며, 이를 AIDL 주석코드에 작성하고자 한다.

  -2 : File 까지만 작성하면, File is not copied 라고 자동완성해준다.

  하지만 내가 원하는것은  "-2 : Filelist is not existing" 이다.



전반적인 사용 느낌

전반적으로 전체적인 코드를 분석하고, 사용자 패턴에 맞게끔 다음에 어떤 코드나 주석이 미리 올지 미리 작성해 준다.

미리 작성해 준 코드에서 ALT + ] , ALT +  [ 단축키를 이용하여 AI가 추천해주는 코드를 보고 그 코드를 사용할지 선택한다.


Tabnine Chat

 Beta 버젼의 Tabnine Chat 인데, 영어로 상세하게 코드를 작성해달라고 하면, 현재 코드를 분석해서 작성해주는거 같다. 

 아직 Beta 버젼이라, Waiting List 에 등록해야 되는 상황으로 사용해보지는 못하였다.




댓글

이 블로그의 인기 게시물

Intel® HAXM installation failed 해결하기

Kotlin Interface

Kotlin this, super