Kotlin был запущен, чтобы сделать разработку Android намного проще и быстрее. После того, как он был назван официальным языком для Android, он постепенно вытеснил Java и стал первым выбором для разработчиков Android в текущем сценарии.

Учитывая их сходство, адаптация не могла быть проще для разработчиков Java, перешедших на Kotlin. Однако в то же время очень легко заметить непохожесть или, скорее, разговорные аспекты Kotlin. Это может помочь писать код так же, как Java.

Savvy Apps начала использовать Kotlin для своих новых Android-проектов в конце 2016 года, когда был запущен Kotlin 1.0.4. Сначала Kotlin опробовали на небольшом проекте. Было опробовано и замечено, чтобы облегчить использование этого языка программирования. Он показал возможность легко отделить компоненты от бизнес-логики с помощью различных расширений. Как правило, время, затраченное на разработку, было сэкономлено для нас. И, в конце концов, разработчики решили, что в дальнейшем этот язык будет предпочтительным. После этого разработчики использовали Kotlin для разработки нескольких приложений для Android. Они также создали ряд внутренних библиотек Kotlin.

Чтобы закрепить свой опыт работы с Kotlin, они решили собрать свои самые полезные и заслуживающие внимания советы. Прежде чем мы углубимся в эти советы, вы должны знать, что они специально сосредоточены на использовании Kotlin в контексте разработки для Android. Вы также можете иметь опыт работы с Android SDK. Вы также должны быть знакомы с концепцией плагина Kotlin. Использование Kotlin с Android Studio обеспечивается Jet Brains, то есть создателями Kotlin.

Начальные советы по Kotlin для Android

ЛЕНИВАЯ ЗАГРУЗКА

Ленивая загрузка дает различные преимущества. Ленивая загрузка может привести к быстрому запуску. Поскольку загрузка задерживается при извлечении переменной, это особенно полезно при использовании Kotlin для приложения Android. Для приложений Android разработчики хотят уменьшить время запуска приложения, чтобы пользователь быстрее видел содержимое приложения, а не сидел на начальном экране загрузки.

Ленивая загрузка, подобная этой, также более структурирована в памяти, поскольку разработчики загружают ресурс в память только в том случае, если к нему обращаются. Использование памяти очень хорошо спланировано на мобильных платформах, таких как Android, поскольку телефоны имеют ограниченные общие ресурсы.

СПЕЦИАЛЬНЫЕ ГЕТТЕРЫ/СЕТТЕРЫ

Пользовательские геттеры и сеттеры Kotlin реализуют структуру модели. Однако вам нужно будет указать пользовательское поведение, чтобы получить и установить домен. Допустим, вы используете пользовательские модели для определенных платформ, как и Parse SDK. При этом вы привлекаете значения, которые на самом деле не являются локальными переменными в классе. Однако они хранятся и извлекаются каким-то особым образом, например, из JSON.

ЛАМБДА

Лямбда-выражения уменьшают количество строк кода в исходном файле в целом. Это также позволяет вам с целью функционального программирования. Хотя лямбда-выражения в настоящее время возможны в Android, Kotlin продвигает их на шаг впереди, гарантируя, что вам не придется иметь дело с ретро-лямбдой или изменять способ формирования вашей сборки.

Android SDK включает в себя огромное количество случаев, когда вы устанавливаете прослушиватель или выполняете один метод. Таким образом, лямбды работают эффективно в таких условиях.

КЛАССЫ ДАННЫХ

Классы данных разделяют классы, инстинктивно добавляя формулы equals(), hashCode(), copy() и toString(). Они также вносят определенное уточнение в намерение модели и то, что в ней должно быть, путем отделения чистых данных от бизнес-логики.

Если вы тренируете классы данных с помощью чего-то вроде Gson или другой библиотеки синтаксического анализа JSON, вы можете создать конструктор по умолчанию, используя значения по умолчанию.

СБОР ФИЛЬТРАЦИЯ

Коллекции обрабатываются неоднократно при работе с API. В очень общем случае вы хотели бы отфильтровать или внести изменения в содержимое этой коллекции. Таким образом, используя фильтрацию коллекций Kotlin, вы успешно сможете добавить к ней определенную ясность. Также вы также можете сделать свой код более точным. Легче сказать, из чего должен состоять ваш результирующий список, используя фильтрацию коллекции.

Наполнение коллекции с помощью встроенной техники Kotlin очень похоже на другие языки функционального программирования, такие как потоки Java 8 или типы коллекций Swift. Унифицированное просачивание коллекций помогает. Это очень помогает при разговоре с членами команды о том, какие операции необходимо выполнить, чтобы получить список нужных функций для представления.

ВЫРАЖЕНИЯ ОБЪЕКТА

Выражения объекта допускают строгое одноэлементное определение, поэтому его нельзя неправильно понять для класса, который может быть включен. Они также гарантируют, что вам не нужно упаковывать эти синглетоны где-нибудь, например, в классе Application или в виде статической переменной класса.

СОПУТСТВУЮЩИЙ ОБЪЕКТ

Если бросить взгляд, в Kotlin, похоже, не хватает статических переменных и методов. В каком-то смысле у него нет этих понятий, но есть идея сопутствующих объектов. Эти сопутствующие объекты являются одноэлементными объектами внутри класса. Они включают методы и переменные, к которым вы, возможно, захотите получить доступ статически. Сопутствующий объект дает вам право определять константы и методы, аналогичные статическим в Java. С его помощью вы можете следовать шаблону сопряжения newInstance.

ГЛОБАЛЬНЫЕ КОНСТАНТЫ

Kotlin позволяет вам определять константы, которые охватывают все приложение в одном месте, если это применимо. Обычно константы должны быть максимально уменьшены. Однако, когда область действия должна быть глобальной, это эффективный способ сделать это без необходимости проходить класс констант.

ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ

Альтернативные параметры делают вызовы методов более гибкими без необходимости передавать null или значение по умолчанию. Это особенно важно при определении анимации.

Например, если вы хотите определить метод уменьшения количества просмотров вокруг вашего приложения. Однако только в этих особых случаях вам необходимо указать продолжительность.

Промежуточные советы Kotlin для Android

РАСШИРЕНИЯ

Расширения необходимы, поскольку они позволяют вам добавлять элементы класса, не перенимая их. С помощью расширений вы можете легко отказаться от служебных классов или методов. Это также может помочь вам улучшить читаемость вашего кода.

ЛАТЕИНИТ

Основным компонентом Kotlin является его приверженность нулевой безопасности. Lateinit предлагает простой способ как обеспечить нулевую безопасность, так и разделить переменную так, как это нужно Android. Это отличная языковая особенность. Тем не менее, требуется некоторое время, чтобы привыкнуть к этому после обширной разработки Java.

Эти компоненты языка могут разочаровать при работе с макетами Android. Это связано с тем, что мы знаем, что представления будут существовать в действии или фрагменте, но мы не можем заявить о них сразу, поскольку это должно быть сделано в onCreate/onCreateView после расширения макета. Вы также можете справиться с этим, поддерживая проверки в каждом месте, где вы касаетесь представления на протяжении всего действия. Тем не менее, это было бы неприятно для обработки и можно было бы избежать с точки зрения нулевой проверки. Вместо этого вы можете использовать редактор Laterinit.

БЕЗОПАСНОЕ ТИПИРОВАНИЕ

Некоторым соглашениям Android требуется безопасное приведение типов из-за их обычного приведения типов, которое может вызвать исключение. Например, обычный метод формирования фрагмента в действии заключается в том, чтобы сначала проверить и посмотреть, существует ли он уже, с помощью FragmentManager.

ИСПОЛЬЗОВАНИЕ ПОЗВОЛЬТЕ

Использование let позволяет реализовать блок, если значение объекта не равно нулю. Кроме того, это позволяет избежать проверок на null и делает код более читабельным.

ПУСТОЙ | ИСНУЛЛОРБЛАНК

Нам нужно несколько раз пройти сертификацию в процессе разработки приложения для Android. Если вы сталкивались с этим, не используя Kotlin, возможно, вы нашли класс TextUtils в Android.

Дополнительные советы по Kotlin для Android

ИЗБЕГАНИЕ ОДИНОЧНЫХ АБСТРАКТНЫХ МЕТОДОВ ДЛЯ КЛАССОВ KOTLIN

Этот совет позволяет использовать лямбда-выражения, что позволяет создавать более чистый и компактный код. Например, при работе на Java вполне нормально иметь простой класс слушателя. Одной из замечательных особенностей Kotlin является то, что он выполняет преобразования SAM (Single Abstract Method) для классов Java.

КОРУТИНЫ ВМЕСТО ASYNCTASK

Потому что AsyncTask громоздкий и приводит к утечкам. Разработчики предпочитают использовать сопрограммы, поскольку они улучшают читаемость и не допускают утечки памяти. Важно отметить, что поскольку сопрограммы являются экспериментальными в Kotlin 1.1, разработчики по-прежнему рекомендуют RxJava для большинства асинхронных целей.

Вывод

Таким образом, мы собрали эти советы из того, что считается наиболее эффективными методами и техниками, которые следует изучить, прежде чем приступить к разработке на Kotlin. Эти советы наверняка помогут вам понять его ключевые особенности. Это также даст вам преимущество в использовании Kotlin для ваших проектов Android.

Первоначально опубликовано на https://codecarbon.com 5 января 2021 г.