Loading
2022. 9. 11. 22:38 - lazykuna

오래간만의 안드로이드 개발 + Kotlin 사용 후기

필요한 것이 생겼는데 앱 스토어에 없길래, 오래간만에 직접 안드로이드 앱 개발을 하면서 Kotlin을 처음 사용하게 되었습니다. 다행히 오래 걸리지 않고 추석 하루 뚝딱! 투자해서 만들 수 있었습니다.

예-전에, 12년도 쯤에 java로 개발한 적은 있는데 그 이후로 다시 앱개발에 손을 댄 건 처음이네요.

  • 언어 자체에서는 함수형 언어의 냄새가 물씬 풍겨오는데, 프로젝트의 구조에서는 java 향이 물씬 풍겨옵니다. 실제로 자바 파일이랑 호환도 되고 문법도 호환이 되어서 자동으로 변환까지 다 해줍니다 (!). 덕분에 적응하기 정말 쉽습니다. 언어 따로 공부 안하고 제 한 줌밖에 안되는 자바 기본지식으로 바로 kotlin을 쓸 수 있었습니다.
    • 전형적인 함수형 언어들 벤치마크 한 게 val , 일차 함수들 사용, select 대신 when 등이 있네요.
    • 자바의 불필요한 class 수십줄 쓸 거를 코틀린으로 개발하면 훨씬 깔끔합니다. 변수 선언, 타입 선언도 자동이라 go랑 은근 비슷한 맛도 있음. 아무튼 정말 코드 깔끔합니다. 다시 자바 쓰고 싶지 않음. 😅 코틀린 창시자님 고마워요 👍
  • jar 설치한다고 npm 똥꼬쇼했던 java와는 달리 gradle이 알아서 다 해주니까 좋습니다. 한 줄 추가하니 편하게 외부 패키지를 가져다 쓸 수 있는 요즈음의 세상이란. 요즘 언어는 패키지 관리자가 기본 소양인가…
  • 문법적으로 가장 인상깊었던 것은, 어떤 함수의 마지막 인자가 function call이면 func(args, ...) { params -> ... } 식으로 문법을 쓴다는 것이었습니다. 처음에 저 문법이 뭔가 했더니 저거였더라고요. 정말 별 거 아닌 괴상한 문법적 변화 같기도 한데, 막상 써보니까 상당히 편하고 눈에 확 잘 들어옵니다. 굉장히 과감하고 독특한 문법이라서 꽤 인상깊었는데, 저게 하루아침에 생겼을 것 같진 않고, 저거 유래가 뭘까…?
  • 이건 오래간만에 개발하면서, 그것도 맥으로, 느낀건데, M1 맥에서도 안드로이드 개발 잘 되네요? 여기까진 당연할지 모르겠는데, 요즘 안드로이드 디버깅 모드 무선으로 할 수 있더라고요? 라떼는,,, 계속 끊겨가는 usb 선 꽃아서,,, 힘겹게 앱 만들고 그랬는디,,,,!!!!
    • 아무튼, 개발 및 디버깅 상당히 편했습니다.
  • 안드로이드 파일 시스템 권한이 굉장히 많이 바뀌었더라고요. 예전의 리눅스식 파일 경로를 더 이상 알아낼 수 없고, Uri 식 (content://~~) 파일 경로를 받아서 접근해야 되더랍니다. (안드로이드 11 이상)
    • 변화 자체는 좋은 방향이라고 봅니다. 어쩐지 내장 파일 시스템 간만에 한번 열어서 보니 굉장히 깨끗해졌더라고요. 물론 개발자는 보다 더 괴롭습니다. 뭔가 점점 사과향이 나는 것 같긴 한데…
    • 절대 파일 경로를 알아내려면, termux 같은 터미널 어플리케이션 설치해서 termux-storage-setup 해주고 ls /mnt 후에 readlink /mnt/sdcard 같은걸로 경로 찾아줘야 합니다. 꽤 복잡함.

여튼 저 어플 만들어서 사진 3만장 정리하고 S21U로 갈아탔는데, 아무리 논란이 많은 AP라지만 역시 그래도 기존 쓰던 S10에 비할 바가 아니네요. 훨씬 쓸만합니다. 근데 너무 커 …