[Android] Kotlin 도입을 위한 일 (설득편)

7688 단어 AndroidKotlin
이 제품에서 Kotlin을 가져오기 위한 설명입니다.(LT용 자료도 겸용)
주로 경영진(기술 리더와 PM 등)에게 설명할 때 준비한 자료의 일부+α하계.

입문


팀, 제품의 규모와 문화 등에 따라 방법이 달라지기 때문에 이 내용을 한다고 순조롭게 진행되는 것은 아니다.

배포 프로세스

  • PJ 멤버의 정도를 묻는다

  • 설명
  • 배경 설명
  • 기술 설명
  • 질의응답
  • 규약정비등
  • PR
  • Kotlin이란 무엇입니까?


    Kotlin은 IntelliJ를 제작하는 JetBrains가 개발한 대상을 위한 프로그래밍 언어입니다.
    package hello
    
    fun main(args: Array<String>) {
       println("Hello World!")
    }
    
    (Java)
    package hello;
    
    public class Foo {
        public static void main(String[] args){
            System.out.println("Hello, world.");
        }
    }
    

    배경 설명


    Google I/O 2017에서 Kotlin을 Android 개발 언어로 발표(First Class Language)

    Keynote에서 언급한 내용 발췌
    - 개발자의 생산성 향상
    - 기존 코드와 호환되는 안드로이드 실행
    -IDE 지원
    - 언어가 성숙하고 제품 버전으로 출시 가능
    Keynote의 Kotlin 발표 감정이 고조되다

    기술 설명 (어떤 이점이 있습니까)

  • 의 장점 중 하나
  • Kotlin이 Android 개발 언어로 채택된 표준
  • 공식 개발 환경(IDE)인 AndroidStudio도 Kotlin
  • 을 지원합니다.
  • 기존 Java 프로젝트와 공존 가능(일부 Kotlin 배포)
  • Android Studio에서 Kotlin 개발 응용 프로그램을 사용하는 것은 매우 생산적입니다
  • 장점 2 (언어 특징)
  • 스트리밍 목록 작업 용이
  • Optional 사용 가능
  • 코드가 Java보다 간결함
  • Null Safety
  • 단점
  • 학습 비용
  • 구축 시간이 약간 증가(유형 추리 코드가 증가하면 구축 시간도 증가)
  • APK 크기 약간 증가(0.5MB 정도)
  • 가설 문답(학습 비용)


    Q. 학습 비용은 어떻게 하나요?
    A. 개인 어플리케이션 개발로 덮어씁니다.
    Q. 새 멤버 올 때 공부는 어떻게 하나요?
    A.https://try.kotlinlang.org/등을해주세요.
    공식 참조 상세하고 무료로 공개되는 일본어 문서도 있습니다Kotlin 입문 전 도움말 노트.

    가설 문답(마이그레이션)


    Q. 구체적으로 어떻게 옮겼나요?
    A. 기존 코드를 마이그레이션하지 않고 우선 Kotlin으로만 테스트 코드를 작성합니다.나중에 익숙해지면 적용 범위 확대 여부를 논의한다.
    (현재 새로운 부분도 Kotlin으로 쓰고 있습니다.)
    Kotlin으로의 이전 방법과 장단점에 대해서는 Kotlin 입문 전 도움말 노트의 p.60의 "2.3 자바에서 Kotlin으로의 이전"항목에 상세하게 기재되어 있다.

  • 혼합 모드(새 코드를 Kotlin으로 설정)

  • 경계 모드(테스트에서 도입, Kotlin으로 작성 및 라이브러리 도입)

  • 교체 모드(전체 항목을 Kotlin으로 교체)
  • 다음, Kotlin 입문 전 도움말 노트에서 일부 인용 & 성형
  • 새 코드를 Kotlin 모드로 설정
  • 이점
  • 추가와 변경의 대부분이 Kotlin에서 이루어지기 때문에 팀은 항상 Kotlin과 지속적으로 접촉한다.
  • Kotlin에서 어떻게 글을 쓰는지 생각하고 토론하기 쉽기 때문에 학습의 효율이 매우 좋다.
  • 또한 생산 코드에서 바로 Kotlin의 가치를 누릴 수 있다. 변경할수록 Kotlin화가 추진될수록 이전의 부담이 떨어진다.
  • 단점
  • 변경 대상인 Kotlin화로 인해 영향을 받는 여러 곳이 존재하는 상황에서 충돌의 위험이 높아지고 병행 작업에 영향을 미치기 쉽다.
  • 또한 자바와의 협업 부분도 의식해야 하기 때문에 유지보수 비용이 증가하여 손상을 방지한다.
  • 논평에서 Kotlin과 Java를 동시에 읽기 때문에 평론가의 부담이 증가한다.
  • 또한 Kotlin화를 추진하는 과정에서 너무 복잡하고 Kotlin화가 불가능한 구역이 생겨 완전한 Kotlin화가 어려울 가능성이 높다.
  • 테스트에서 가져온 모드
  • 이점
  • 생산 코드에 Kotlin이 포함되지 않아 고장나도 안전하다.
  • 과감하게 도입할 수 있고 학습 효율이 좋다.
  • 테스트 코드에서 Kotlin의 가치를 즉시 누릴 수 있습니다.
  • 단점
  • 전체 항목을 보면 자바와 Kotlin이 섞여 변화가 없고 평론의 부담이 증가한다.
  • 또한 테스트와 생산 코드에서 Kotlin과 Java를 전환해야 하기 때문에 부담이 높기 때문에 테스트를 점점 쓰지 않을 위험을 고려할 수 있다.
  • 갑자기 섞는 것보다 쓰는 방법이 더 진지하다.
  • 테스트 외에 Kotlin으로 분할된 모듈도 고려할 수 있다.
  • 어쨌든 학습은 주요한 목적이고 교체는 다른 방법을 연구하는 것이다.
  • Kotlin으로 도서관을 쓰고 가져오는 모드
  • 이점
  • 은 독립적으로 개발된 것이기 때문에 테스트에서 가져온 상황에 비해 자유도가 더욱 증가한다.
  • 전체 프로젝트가 Kotlin이기 때문에 개발 과정에서 Kotlin에 전념할 수 있다.
  • 단점
  • 문고화할 주제를 적당히 찾는 것은 쉽지 않다.
  • 라이브러리를 이용한 생산 코드 측면이 자바이기 때문에 자바에서 Kotlin을 이용할 때의 주의점이 필요하다.
  • 문고가 완성되는 데 시간이 걸리기 때문에 생산 분야에서 이익을 얻는 거리가 멀다.
  • 일부 사람들이 문고를 쓴 상태에 있을 때 학습에 편차가 발생한다.
  • 전체 프로젝트를 단숨에 Kotlin의 모델로 바꾸다
  • 이점
  • 다른 방법에 비해 가장 짧은 시간 내에 Kotlin으로 옮길 수 있다.
  • 자바와 혼합된 경우처럼 자바에서 Kotlin을 호출하는 상황을 고려할 필요가 없기 때문에 해당하는 유지보수 비용이 없다.
  • 단점
  • 공부할 생각이 없기 때문에 Kotlin을 능숙하게 사용하거나 압도적으로 앞서는 팀이 필요하다.
  • 현실에서 테스트와 도서관에서 Kotlin을 도입하여 학습한 후에 생산 코드를 한꺼번에 교체하는 전략 원가가 가장 낮다.
  • 가설 퀴즈 (인코딩)


    Q. 인코딩 규칙은 어떻게 하나요?
    A.FRESH 인코딩 규약를 참조하겠습니다.
    또 각양각색의 작법Idiomatic Kotlin. Best Practices.을 참고로 할 수 있기 때문에 매번 상의하여 결정한다.

    총결산


    개발자로서 최종 목적 중 하나는 고품질의 제품을 조속히 발표하는 것이기 때문에 이를 실현하기 위해 Kotlin 도입 효과를 전달할 수 있다면 이해하기 쉽다.

    참고 자료


    Kotlin Programming Language
    https://kotlinlang.org/
    Google I/O Keynote (Google I/O '17) - YouTube
    https://www.youtube.com/watch?v=Y2VF8tmLFHw
    Developer Keynote (Google I/O '17) - YouTube
    https://www.youtube.com/watch?v=EtQ8Le8-zyo
    Kotlin and Android | Android Developers
    https://developer.android.com/kotlin/index.html
    Kotlin on Android. Now official | Kotlin Blog
    https://blog.jetbrains.com/kotlin/2017/05/kotlin-on-android-now-official/
    openfresh/android-kotlin-style-guide: Kotlin style guide of FRESH! since April, 2015.
    https://github.com/openfresh/android-kotlin-style-guide

    좋은 웹페이지 즐겨찾기