Kotlin
2.17K subscribers
273 photos
123 videos
18 files
396 links
Подборки полезного материала по Kotlin. По всем вопросам @evgenycarter
Download Telegram
Вопросы и ответы для собеседования по Kotlin

Часть 1 и Часть 2 https://t.iss.one/kotlin_lib/178

Часть 3 https://habr.com/ru/articles/728742/
Часть 4 https://habr.com/ru/articles/736392/

✍️ @kotlin_lib
👍6
Programming Android ... by Laurence Pierre-Oli...pdf
7.5 MB
Programming Android with Kotlin: Achieving Structured Concurrency with Coroutines
Автор: Pierre-Olivier Laurence (2022)

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

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

✍️ @kotlin_lib
👍4
Как использовать функциональное программирование в Kotlin для написания более качественного и чистого кода

https://doordash.engineering/2022/03/22/how-to-leverage-functional-programming-in-kotlin-to-write-better-cleaner-code/

✍️ @kotlin_lib
Производительность Android приложений Kotlin в сравнении с С++ или цена управления памятью

В процессе учебы заинтересовался Android разработкой, в рамках одного из заданий необходимо провести исследование. Выбрал тему, которая давно разжигает мое любопытство, а именно производительность кода на Kotlin в сравнении с С++.

Поиск в русскоязычном интернете не дал почти ничего, всё, так или иначе сводится к перемешиванию, примитивных типов в цикле – пузырьковая сортировка и другие классические алгоритмы. В целом такие эксперименты приводят к выводу о том, что использование JNI имеет слишком высокую стоимость и Java работает быстрее.

https://habr.com/ru/articles/732746/

✍️ @kotlin_lib
👍61
Kotlin Inline, Noinline, Crossinline, Reified

In Kotlin, inline functions are used to improve performance by avoiding the overhead of creating objects for lambdas or function objects. The inline keyword is used to mark a function as inline, and the function is then copied into the call site instead of being executed as a separate function call.

https://medium.com/@manuchekhrdev/kotlin-inline-noinline-crossinline-reified-f70dd33f94a2

✍️ @kotlin_lib
👍3
Mocking is not rocket science: Basics

https://blog.kotlin-academy.com/mocking-is-not-rocket-science-basics-ae55d0aadf2b


Mockk - это новая библиотека с открытым исходным кодом, нацеленная на то, чтобы сделать mocking в Kotlin великолепным.

https://github.com/mockk/mockk
https://mockk.io/

✍️ @kotlin_lib
👍2
Как мы случайно подвергли себя DoS-атаке с помощью корутинов Kotlin

Эта история иллюстрирует, как все может пойти не так, даже если вы следуете лучшим практикам.

В GoodData мы используем Kotlin для создания наших микросервисов уже почти 4 года. Для большинства наших разработчиков изучение Kotlin было довольно простым, поскольку до этого они использовали Java, и концептуально эти языки очень похожи. Кроме того, некоторые фреймворки и библиотеки (прежде всего Spring) используются как в Java, так и в Kotlin, поэтому, по крайней мере в простых случаях, менялся только синтаксис.

https://medium.com/gooddata-developers/how-we-accidentally-dos-ed-ourselves-with-kotlin-coroutines-22cc4be60370

✍️ @kotlin_lib
👍2
Apress.Beginning.Kotlin.pdf
9.2 MB
Beginning Kotlin: Build Applications with Better Code, Productivity, and Performance
Автор: Ted Hagos (2022)

Эта книга знакомит с навыками и приемами программирования на языке Kotlin, необходимыми для создания приложений. Вы узнаете, как перенести свои навыки программирования на Java в Kotlin.

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

✍️ @kotlin_lib
👍3
Kotlin Multiplatform в ОС Аврора

Kotlin Multiplatform — технология, позволяющая объединять бизнес-логику для приложений разных платформ. В ней доступен полный контроль над тем, какие нативные инструменты использовать, а какие вынести в общий модуль (shared). Это позволяет применять данную технологию в уже существующих проектах, что существенно отличает Kotlin Multiplatform от других кроссплатформенных фреймворков таких, как Cordova или Flutter.

Использование приложениями общего модуля Kotlin Multiplatform позволяет:
Дополнить привычный для платформы функционал.
Стандартизировать подходы.
Упорядочить конфигурационные файлы.
Упростить написание приложений.

https://habr.com/ru/articles/753570/

✍️ @kotlin_lib
👍5💩2
👍1
Media is too big
VIEW IN TELEGRAM
Создание приложений для iOS и Android на 100% Kotlin с помощью Compose Multiplatform

В настоящее время Compose Multiplatform для iOS находится в стадии Alpha, поэтому сейчас самое время познакомиться с этой технологией: Давайте создадим простое приложение от начала до конца на языке Kotlin. В процессе вы увидите, как Compose Multiplatform и Kotlin Multiplatform позволяют совместно использовать все - от сетевого уровня, бизнес-логики до пользовательского интерфейса. Конечным результатом будет небольшое приложение, способное загружать и отображать различные изображения птиц из API, которое будет работать как на Android, так и на iOS!

источник

GitHub https://github.com/SebastianAigner/my-bird-app

✍️ @kotlin_lib
👍3
«Внешняя» навигация в многомодульном проекте на Kotlin

Я Дмитрий Воронов из Doubletapp, в этой статье расскажу, как мы делали навигацию в Яндекс Путешествиях. С навигацией в Android, кажется, давно все ясно: бери Jetpack Navigation, читай официальную документацию и следуй ей — и все получится. Если рекомендованная библиотека не подходит — берешь Fragment Manager, прописываешь собственную реализацию и идешь хвастаться коллегам. Если писать свою реализацию нет желания, а официальная библиотека не соответствует модным веяниям — дополняешь свое резюме умением работать с Cicerone. Если твои вкусы специфичны — почему бы не удивить людей неожиданным добавлением в проект Alligator?

https://habr.com/ru/companies/doubletapp/articles/732816/

✍️ @kotlin_lib
👍4
Koin: Простой и легковесный фреймворк для внедрения зависимостей

Этот легковесный фреймворк предоставляет возможности для внедрения зависимостей через DSL, что является нетривиальной задачей в случае Java-ориентированного Guice.

https://www.baeldung.com/kotlin/koin-di

✍️ @kotlin_lib
2👍1
Kotlin с нуля

Урок 0: Ставим среду разработки и запускаем проект
Урок 1: Что такое переменные и их типы, val и var
Урок 2: Арифметические операции, остаток от деления
Урок 3: Интерполяция (шаблонные строки). Конкатенация
Урок 4: Операторы сравнения (отношения), логические операторы
Урок 5: Условные операторы if else when. Операции ветвления
Урок 6: Циклы while, do-while. Обратный отсчет с Thread.sleep()
Урок 7: Цикл for, диапазоны (интервалы). break, continue, return
Урок 8: Массивы. Типы, размер, индекс массива. Перебор через for
Урок 9: Коллекции: списки (List). Функции для работы с коллекциями
Урок 10: Функции (методы), тип возвращаемого значения, return
Урок 11: ООП. Классы и свойства. Создание объектов (экземпляров класса).
Урок 12: Конструкторы (primary, secondary). Блоки инициализации init.
Урок 13: Null Safety – операторы ?. !!, NullPointerException (NPE)
Урок 14: ООП. Наследование. open class. Переопределение (override)
Урок 15: Интерфейсы, абстрактные классы. Имплементация.
Урок 16: ООП. Инкапсуляция. Модификаторы доступа
Урок 17: Сеттеры и Геттеры, field, как их кастомизировать
Урок 18: ООП. Полиморфизм, 3 типа (Ad hoc, Subtyping, Parametric)
Урок 19: ENUM (классы перечислений), TODO() и тип Nothing
Урок 20: Лямбда-функции (лямбды), анонимные функции
Урок 21: Extensions (функции-расширения, экстеншены)
Урок 22: Data class (дата классы) copy, toString, equals, hashCode
Теория разработки программ. Создание телеграм бота // Практика KotlinSprint

Все видео доступны на youtube

✍️ @kotlin_lib
👍7