Вопросы и ответы для собеседования по 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
Часть 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
Автор: 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
https://doordash.engineering/2022/03/22/how-to-leverage-functional-programming-in-kotlin-to-write-better-cleaner-code/
✍️ @kotlin_lib
Typed Error Handling in Kotlin
https://betterprogramming.pub/typed-error-handling-in-kotlin-11ff25882880
✍️ @kotlin_lib
https://betterprogramming.pub/typed-error-handling-in-kotlin-11ff25882880
✍️ @kotlin_lib
👍1
Производительность Android приложений Kotlin в сравнении с С++ или цена управления памятью
В процессе учебы заинтересовался Android разработкой, в рамках одного из заданий необходимо провести исследование. Выбрал тему, которая давно разжигает мое любопытство, а именно производительность кода на Kotlin в сравнении с С++.
Поиск в русскоязычном интернете не дал почти ничего, всё, так или иначе сводится к перемешиванию, примитивных типов в цикле – пузырьковая сортировка и другие классические алгоритмы. В целом такие эксперименты приводят к выводу о том, что использование JNI имеет слишком высокую стоимость и Java работает быстрее.
https://habr.com/ru/articles/732746/
✍️ @kotlin_lib
В процессе учебы заинтересовался Android разработкой, в рамках одного из заданий необходимо провести исследование. Выбрал тему, которая давно разжигает мое любопытство, а именно производительность кода на Kotlin в сравнении с С++.
Поиск в русскоязычном интернете не дал почти ничего, всё, так или иначе сводится к перемешиванию, примитивных типов в цикле – пузырьковая сортировка и другие классические алгоритмы. В целом такие эксперименты приводят к выводу о том, что использование JNI имеет слишком высокую стоимость и Java работает быстрее.
https://habr.com/ru/articles/732746/
✍️ @kotlin_lib
Хабр
Производительность Android приложений Kotlin в сравнении с С++ или цена управления памятью
Всем привет! В процессе учебы заинтересовался Android разработкой, в рамках одного из заданий необходимо провести исследование. Выбрал тему, которая давно разжигает мое любопытство, а именно...
👍6❤1
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
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
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
Dispatchers in Kotlin Coroutines
https://blog.devgenius.io/dispatchers-in-kotlin-coroutines-7a74dcec3bc2
✍️ @kotlin_lib
https://blog.devgenius.io/dispatchers-in-kotlin-coroutines-7a74dcec3bc2
✍️ @kotlin_lib
👍3
Как мы случайно подвергли себя 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
Эта история иллюстрирует, как все может пойти не так, даже если вы следуете лучшим практикам.
В 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
Автор: 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
Kotlin Multiplatform — технология, позволяющая объединять бизнес-логику для приложений разных платформ. В ней доступен полный контроль над тем, какие нативные инструменты использовать, а какие вынести в общий модуль (shared). Это позволяет применять данную технологию в уже существующих проектах, что существенно отличает Kotlin Multiplatform от других кроссплатформенных фреймворков таких, как Cordova или Flutter.
Использование приложениями общего модуля Kotlin Multiplatform позволяет:
Дополнить привычный для платформы функционал.
Стандартизировать подходы.
Упорядочить конфигурационные файлы.
Упростить написание приложений.
https://habr.com/ru/articles/753570/
✍️ @kotlin_lib
👍5💩2
Achieving Platform-Specific Implementations with Koin in KMM
https://proandroiddev.com/achieving-platform-specific-implementations-with-koin-in-kmm-5cb029ba4f3b
✍️ @kotlin_lib
https://proandroiddev.com/achieving-platform-specific-implementations-with-koin-in-kmm-5cb029ba4f3b
✍️ @kotlin_lib
👍1
Functional Error Handling in Kotlin, Part 1: Absent values, Nullables, Options
https://blog.rockthejvm.com/functional-error-handling-in-kotlin/
✍️ @kotlin_lib
https://blog.rockthejvm.com/functional-error-handling-in-kotlin/
✍️ @kotlin_lib
Rock the JVM
Functional Error Handling in Kotlin: Part 1 - Absent Values
Master error handling in Kotlin with ease: discover how nullable types and Arrow Option types tackle errors efficiently, whether you're using object-oriented or functional approaches
👍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
В настоящее время 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
Я Дмитрий Воронов из 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
Этот легковесный фреймворк предоставляет возможности для внедрения зависимостей через DSL, что является нетривиальной задачей в случае Java-ориентированного Guice.
https://www.baeldung.com/kotlin/koin-di
✍️ @kotlin_lib
Baeldung on Kotlin
Koin: Lightweight Dependency Injection Framework | Baeldung on Kotlin
A practical introduction to Koin - lightweight dependency injection framework for Kotlin.
❤2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
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
Урок 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