TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Geo|Android Money

11 May 2022, 18:00

Открыть в Telegram Поделиться Пожаловаться

Переход с Java на Kotlin при создании мобильного приложения.

В данном материале я расскажу, почему нужна миграция с Java на Kotlin при создании мобильного приложения. При этом какие-то детали будут полезны не только разработчикам под Android, но и тем, кто занимается миграцией бэкенда.

Зачем нужен переход на Kotlin?

Kotlin сильно уменьшает количество кода, например, простой Java-объект (Plain Old Java Object), хранящий пять полей, займет примерно 96 строк кода. В то время как на Kotlin аналогичный Data-класс займёт всего одну строку, поскольку компилятор переопределит все нужные методы.

Кроме того, существует несколько серьёзных проблем, которые до сих пор есть в Java, но — внимание — уже решены в Kotlin! Вот некоторые из них:

• Nullability — в Java мы не знаем, возможен ли null в значении данного объекта (и нельзя запретить ему принимать null), из-за чего может случиться всем известная ошибка NullPointerException, поскольку имело место обращение к «нулевому» объекту.
• Raw types — это generic-типы в Java без указания типа-параметра, использование которых может привести к heap pollution — ситуации, когда переменная параметризованного типа хранит в себе объект, параметризованный другим типом.
• Полноценные функциональные типы отсутствуют в Java в отличие от Kotlin.


У Kotlin есть множество возможностей, самые примечательные из которых:

• Extension-функции или функции-расширения класса — делают код «чище», а в сочетании с автодополнением в IDE ускоряют разработку;
• Data-классы хранят данные в лаконичном виде;
• Лямбда-выражения и inline-функции — нужны для использования функций высшего порядка без потери производительности;
• Object-классы позволяют с лёгкостью реализовать полезный паттерн проектирования Singleton;
• Inline-функции с параметрами reified типа  позволяют во многих случаях избавиться от рефлексии, которая может влиять на производительность (на старых версиях компиляторов).

Необходимые шаги по переходу:

• Выделите основные участки кода, которые в первую очередь необходимо мигрировать. Выберите места, где максимально сократится код или значительно повысится читаемость и безопасность. Лучше начинать не с core-модулей, а с верхних слоев приложения: из-за того что Kotlin проектировался с учетом необходимости взаимодействия с языком Java, а не наоборот, лучше наследоваться от Java-классов, чем в Java наследоваться от Kotlin-классов.

• Для упрощения перехода используйте встроенные средства конвертации Java-кода в Kotlin-код в IDE Intellij Idea или Android Studio, но не забывайте проверять полученный код.

• Начинайте писать всю новую функциональность только на Kotlin и по возможности дорабатывайте старый код тоже на нём.

• Постепенно углубляйте миграцию — переписывайте внутренние, абстрактные слои до тех пор, пока Java-кода не останется в проекте.

472 0 1
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot