뉴스 경로에 Kotlin 배포
어제 보도는 @ysekky 선생의 자연 언어 처리×뉴스 연구 요약 ~ EMNLP 2017 Workshop입니다.
안녕하세요.뉴스경로개발부@kazuhiro23.
뉴스 경로는 안드로이드를 책임진다.
안드로이드 경력은 대략 2년이 되었다.
나는 후지 록, 캠핑, 스키, 맛있는 음식과 술을 좋아한다.
이 글에서 뉴스 경로에서 Kotlin을 가져오는 것을 소개하고 싶은데, 내용이 매우 부드럽다.
Kotlin
나는 이미 설명할 필요가 없다고 생각한다. 간단하게 설명해라.
Kotlin은 JVM에서 실행되는 프로그래밍 언어로 JetBrains를 중심으로 개발되었습니다.
2011년 발표, 2017년 구글 I/O는 Kotlin을 안드로이드 앱 개발 언어로 선정했다.
특징으로 삼다
뉴스 경로에 Kotlin을 배치하기 전의 상황
뉴스 경로는 2016년 6월에 발표되었는데 당시 Kotlin의 도입은 보류되었고 자바로 개발되었다.
제가 뉴스 경로에 연결된 것은 2016년 12월입니다. 그때부터 주변의 안드로이드 엔지니어들이 Kotlin을 사용하는 사람들도 증가했습니다.
저는 Kotlin에도 관심이 있지만 아직 실무 경험이 없습니다.
고노시에서 내가 회사에 들어왔을 때부터 Kotlin은 이미 도입되었다. "나는 뉴스 경로에 Kotlin을 가입하고 싶다."이런 말이 나왔습니다.
그러면 어떻게 가져왔을까요?
회사(2016/12/16)에 입사한 지 3개월 만에 익숙해진 단계에서 간단한 수정 홍보를 통해 갑자기 Kotlin을 도입했다.
이것이 바로 당시의 약속↓ 2017/3/16, 딱 3개월 후(이것은 우연한 것이다)
기존 Java 프로젝트에서 Kotlin을 사용하기 위해
app/build.gradle
및 build.gradle
에서 이러한 느낌을 추가하면 사용할 수 있습니다.app/build.gradle
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
dependencies {
kapt 'org.parceler:parceler:{latest_version}'
kapt 'com.android.databinding:compiler:{latest_version}'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
build.gradlebuildscript {
ext.kotlin_version = 'x.x.x'
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
구노시도 이미 Kotlin을 도입한 경우가 있습니다. 무슨 일이 있으면 자바로 돌아가면 됩니다. "Kotlin을 가입해 봤습니다! 댓글로 남겨주세요!"이런 느낌으로 홍보를 제안했습니다.물론 당시에는 Kotlin에 대한 지식이 많지 않았기 때문에 고노시 팀의 안드로이드 엔지니어에게 평론을 시켜 Kotlin식의 작법을 기억하게 했다.
현재 뉴스 경로의 Kotlin
22% 정도가 Kotlin입니다.
뉴스 경로 팀에서 Kotlin화된 규칙으로
하지만 기존의 반을 Kotlin으로 개작하고 기능의 추가를 하면 댓글이 어려워진다고 생각해서 Kotlin화를 생각할 때 먼저 Kotlin으로 전환하는 PR을 꺼내서 다른 부분을 수정하거나 새로운 기능을 추가한다.
Kotlin의 학습회에 참가하세요.
회사 내에 다른 안드로이드 엔지니어가 없거나 Kotlin을 쓸 사람이 없다면 Kotlin의 역량을 높이려면 인터넷이나 기술 서적에 의존할 수밖에 없다.
거기서 공부회예요.일본 Kotlin 사용자 그룹의 학습회와 CA.kt 등이 있기 때문에 그곳에서 유행과 지금까지 몰랐던 것을 알 수 있으니 적극적으로 참가하는 것이 좋다.
또한 Kotlin은 안드로이드뿐만 아니라 서버에서도 사용되기 때문에 Kotlin의 학습회에 가면 다양한 엔지니어들이 참가하는데 이것도 재미있는 커뮤니티라고 생각합니다.
Kotlin의 장점 도입
특징으로 드릴게요.
Hoge.java
if (hoge != null) {
hoge.getXX();
}
for (Foo foo: fooList) {
if (foo.flag) {
barList.add(foo);
}
}
Kotlin이라고 적혀있어요.Hoge.kt
hoge?.getXX()
fooList.filter { it.flag }.map { barList.add(it) }
이렇게 상큼해졌어요.뉴스 경로에 Kotlin으로 쓴 곳에는 for문이 사용되지 않았습니다.(대략)
그리고 저는 항상 Java로 개발하고 있습니다. 새로운 언어로 글을 쓰는 것이 신선하고 즐겁습니다.
Kotlin 배포의 단점
나쁜 점은 없지만 자바와 Kotlin이 섞여 있기 때문에 변수와 유형의 작법은 상반된다. "이렇게 말하면 Kotlin입니다...""그러고 보니 자바야..."이런 곳은 피곤해요.
이것을 좀 더 일찍 Kotlin으로 고쳐 쓰면 문제없지만, 사람이 부족해서 이 상황은 한동안 계속될 것이다.
Gunosy의 Kotlin
안드로이드 앱이 있는 고노시, 뉴스 경로, 루크라는 모두 Kotlin을 사용한다.
Lucra는 100% Kotlin이 개발한 것으로 향후 새로운 프로젝트는 Kotlin에서 진행될 예정이다.
또한 일부 서버 측의 Kotlin도 사용하기 시작했습니다. 이전에 본사의 GitHub 자료 라이브러리에서 Kotlin은 Top Languages에 들어갔습니다!
Gunosy에는 현재 12개의 Kotlin 저장소가 있습니다.
총결산
안드로이드의 각종 학습회에도 어떻게 도입되었는지 같은 소재가 많을 것 같지만 엘이 도입한 곳이 많다고 생각해요.
회사에 따라 다양한 과정을 거치지 않고 가져올 수 없는 곳도 있을 수 있지만, 그런 곳이 아니면 쿨하게 Kotlin을 도입하세요!
Kotlin 즐거웠어요!!
Reference
이 문제에 관하여(뉴스 경로에 Kotlin 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kazuhiro23/items/f6f6e9037846763be81a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)