ݺߣ

ݺߣShare a Scribd company logo
Почему Kotlin?
Кирилл Розов
Android Developer
Почему Kotlin?
Почему Kotlin?
Почему Kotlin?
Почему Kotlin?
Почему Kotlin?
Упрощение разработки
Data класс Java
public class Device {
private String id;
private String name;
private String cpu;
private long ramSize;
public Device(@NotNull String id, @NotNull String name, @NotNull String cpu, long ramSize) {
this.id = id;
this.name = name;
this.cpu = cpu;
this.ramSize = ramSize;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCpu() {
return cpu;
}
public void setCpu(String cpu) {
this.cpu = cpu;
}
public long getRamSize() {
return ramSize;
}
public void setRamSize(long ramSize) {
this.ramSize = ramSize;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Device device = (Device) o;
return ramSize == device.ramSize && id.equals(device.id) && name.equals(device.name) && cpu.equals(device.cpu);
}
@Override
public int hashCode() {
return id.hashCode() + name.hashCode() + cpu.hashCode() + (int) (ramSize ^ (ramSize >>> 32));
}
@Override
public String toString() {
return "Device{" + "id='" + id + ''' + ", name='" + name + ''' + ", cpu='" + cpu + ''' + ", ramSize=" + ramSize + ‘}';
}
}
Data класс Kotlin
data class Device(var id: String, var name: String, var cpu: String, var ramSize: Long)
Операции с коллекциями
List<Device> qualcommCpuDevices = new ArrayList<>();
for (Device device : devices)
if (device.getCpu().equals("Qualcomm"))
qualcommCpuDevices.add(device);
List<Device> largeRamQualcommDevices = new ArrayList<>();
for (Device device : qualcommCpuDevices)
if (isLargeRamDevice(device))
largeRamQualcommDevices.add(device);
List<String> deviceNames = new ArrayList<>();
for (Device device : largeRamQualcommDevices)
deviceNames.add(device.getName());
Операции с коллекциями
devices.stream()
.filter(device -> device.getCpu().equals("Qualcomm"))
.filter(Device::isLargeRamDevice)
.map(Device::getName)
.collect(Collectors.toList());
List<Device> qualcommCpuDevices = new ArrayList<>();
for (Device device : devices)
if (device.getCpu().equals("Qualcomm"))
qualcommCpuDevices.add(device);
List<Device> largeRamQualcommDevices = new ArrayList<>();
for (Device device : qualcommCpuDevices)
if (isLargeRamDevice(device))
largeRamQualcommDevices.add(device);
List<String> deviceNames = new ArrayList<>();
for (Device device : largeRamQualcommDevices)
deviceNames.add(device.getName());
Операции с коллекциями
devices.stream()
.filter(device -> device.getCpu().equals("Qualcomm"))
.filter(Device::isLargeRamDevice)
.map(Device::getName)
.collect(Collectors.toList());
devices.filter { it.cpu == "Qualcomm" }
.filter(Device::isLargeRamDevice)
.map { it.name }
.toList()
Операции с коллекциями
Количествосимволов
0
100
200
300
400
500
Java Java 8 Kotlin
97
153
447
Упрощение разработки
• Уменьшение объема кода
• Интеграция с современными средствами разработки
• Встроенные средства для повышения стабильности
программ
Почему Kotlin?
Совместимость
Совместимость
• Полная совместимость с Java
• Конвертация Java кода в Kotlin
• Обратная совместимость
• Поддержка современными IDE и др. системами
Поддержка
Поддержка
• Разрабатывается JetBrains
• Официальная поддержка от Google на Android
• Open Source
• Активная работа с сообществом
• Частые обновления
Почему Kotlin?
Кол-во репозиториев на GitHub
0
6000
12000
18000
24000
2015 2016 2017 Сейчас
Почему Kotlin?
Почему Kotlin?
Почему Kotlin?
Проекты
• Kotlin Native
• Kotlin Scripts
• Coroutines
• Мультиплатформенные проекты
Изучение
Изучение
• kotlinlang.org

На русском kotlinlang.ru
• Kotlin Koans

онлайн или оффлайн
• Множество примеров
• Хорошая документация
• Книги от создателей языка и др. авторов
BKUG.BY
Почему Kotlin?
Так зачем???
Почему Kotlin?
Будет большим плюсом

• Знание языка Kotlin
Ваш ход!
krl.rozov@gmail.com
krlrozov
Кирилл Розов
Android Developer
СПАСИБО

More Related Content

Почему Kotlin?