Собеседование на Junior Android Dev у Анны Жарковой
Собеседование проходило в формате вопрос-ответ, при необходимости писали пример ответов на вопрос.
Интервьюер: Анна Жаркова, руководитель группы разработки в Usetech.
https://www.youtube.com/watch?v=ka30zdgOAYg
✍️ @kotlin_lib
Собеседование проходило в формате вопрос-ответ, при необходимости писали пример ответов на вопрос.
Интервьюер: Анна Жаркова, руководитель группы разработки в Usetech.
https://www.youtube.com/watch?v=ka30zdgOAYg
✍️ @kotlin_lib
YouTube
Собеседование на Junior Android Dev у Анны Жарковой
Собеседование проходило в формате вопрос-ответ, при необходимости писали пример ответом на вопрос.
Интервьюер: Анна Жаркова, руководитель группы разработки в Usetech
🔗 Ген партнер Android Broadcast - AvitoTech https://cutt.ly/Dwq5wiTY
🔗 Каналы "Android…
Интервьюер: Анна Жаркова, руководитель группы разработки в Usetech
🔗 Ген партнер Android Broadcast - AvitoTech https://cutt.ly/Dwq5wiTY
🔗 Каналы "Android…
👍6
10 полезных Kotlin Extension Functions для Android-разработчиков
https://medium.com/@akshay.kalola28/10-useful-kotlin-extension-functions-for-android-developers-2-c063d0b1464e
✍️ @kotlin_lib
https://medium.com/@akshay.kalola28/10-useful-kotlin-extension-functions-for-android-developers-2-c063d0b1464e
✍️ @kotlin_lib
👍1👎1
Kotlin под капотом: inline функции
Я провожу довольно много технических интервью и вижу, что многие разработчики не до конца понимают суть inline функций. Не понимают в чем профит от использования inline функций. Зачем нужен crossinline и как работает reified. Отчасти, источник популярных заблуждений про inline функции в том, что раньше на сайте kotlinlang.org было дано не совсем верное описание. Мне захотелось это исправить и наглядно показать как работают inline функции и какой профит мы получаем от их использования.
https://habr.com/ru/articles/775120/
✍️ @kotlin_lib
Я провожу довольно много технических интервью и вижу, что многие разработчики не до конца понимают суть inline функций. Не понимают в чем профит от использования inline функций. Зачем нужен crossinline и как работает reified. Отчасти, источник популярных заблуждений про inline функции в том, что раньше на сайте kotlinlang.org было дано не совсем верное описание. Мне захотелось это исправить и наглядно показать как работают inline функции и какой профит мы получаем от их использования.
https://habr.com/ru/articles/775120/
✍️ @kotlin_lib
👍8
The State of Kotlin Multiplatform
JetBrains Kotlin Multiplatform (KMP) - это технология с открытым исходным кодом, предназначенная для гибкой кроссплатформенной разработки. Она позволяет разрабатывать приложения для Android, iOS, настольных компьютеров, веб-приложений и серверной части и эффективно использовать код для разных платформ, сохраняя при этом преимущества нативного программирования. После 8 лет разработки KMP была доработана до уровня технологии, готовой к продакшену, и перешла в статус Stable, а это значит, что сейчас самое время начать использовать ее в своем проекте.
На этом вебинаре мы обсудим, как работает KMP, как применить ее гибкость в ваших разнообразных проектах и как получить максимальную отдачу от нее. Мы расскажем об инструментах и экосистеме KMP и о том, как их можно использовать для оптимизации работы разработчиков. Наконец, мы представим дорожную карту KMP и расскажем о стремлении JetBrains постоянно совершенствовать KMP, включая обновления для Compose Multiplatform и инструментария KMP.
Докладчик: Светлана Исакова, Мартон Браун
https://www.youtube.com/watch?v=bz4cQeaXmsI
✍️ @kotlin_lib
JetBrains Kotlin Multiplatform (KMP) - это технология с открытым исходным кодом, предназначенная для гибкой кроссплатформенной разработки. Она позволяет разрабатывать приложения для Android, iOS, настольных компьютеров, веб-приложений и серверной части и эффективно использовать код для разных платформ, сохраняя при этом преимущества нативного программирования. После 8 лет разработки KMP была доработана до уровня технологии, готовой к продакшену, и перешла в статус Stable, а это значит, что сейчас самое время начать использовать ее в своем проекте.
На этом вебинаре мы обсудим, как работает KMP, как применить ее гибкость в ваших разнообразных проектах и как получить максимальную отдачу от нее. Мы расскажем об инструментах и экосистеме KMP и о том, как их можно использовать для оптимизации работы разработчиков. Наконец, мы представим дорожную карту KMP и расскажем о стремлении JetBrains постоянно совершенствовать KMP, включая обновления для Compose Multiplatform и инструментария KMP.
Докладчик: Светлана Исакова, Мартон Браун
https://www.youtube.com/watch?v=bz4cQeaXmsI
✍️ @kotlin_lib
YouTube
The State of Kotlin Multiplatform
JetBrains Kotlin Multiplatform (KMP) is an open-source technology designed for flexible cross-platform development. It allows you to develop apps for Android, iOS, desktop, web, and server-side and efficiently reuse code across them, all while retaining the…
👍3
Kotlin Flow: простая, но мощная реализация
С тех пор как Flow был впервые представлен в Kotlin версии 1.3.0, он стал важной и обсуждаемой темой в сообществе Kotlin. Но почему?
Flow - это простая, но мощная реализация асинхронного программирования в Kotlin.
Flow - это не что иное, как корутин, который возвращает несколько результатов. Она позволяет разработчикам писать структурно параллельный, асинхронный и неблокирующий код в последовательном стиле. Но что означают все эти технические термины, начинающим разработчикам сложно понять сразу. Мне потребовалось некоторое время, чтобы понять это.
https://proandroiddev.com/kotlin-flow-simple-yet-powerful-implementation-c585f337161a
✍️ @kotlin_lib
С тех пор как Flow был впервые представлен в Kotlin версии 1.3.0, он стал важной и обсуждаемой темой в сообществе Kotlin. Но почему?
Flow - это простая, но мощная реализация асинхронного программирования в Kotlin.
Flow - это не что иное, как корутин, который возвращает несколько результатов. Она позволяет разработчикам писать структурно параллельный, асинхронный и неблокирующий код в последовательном стиле. Но что означают все эти технические термины, начинающим разработчикам сложно понять сразу. Мне потребовалось некоторое время, чтобы понять это.
https://proandroiddev.com/kotlin-flow-simple-yet-powerful-implementation-c585f337161a
✍️ @kotlin_lib
👍3❤1
Kotlin-Swift interopedia
Kotlin/Native обеспечивает двунаправленное взаимодействие с Objective-C. На момент написания статьи Kotlin не взаимодействует со Swift напрямую, а скорее опосредованно, через мост Objective-C. Экспорт Swift - это то, что команда Kotlin/Native намерена решить в будущем. Тем не менее, выбор в пользу Objective-C вполне обоснован: старые проекты, содержащие код Objective-C, могут вызывать общий код Kotlin, а также проекты, содержащие код Swift.
https://github.com/kotlin-hands-on/kotlin-swift-interopedia
✍️ @kotlin_lib
Kotlin/Native обеспечивает двунаправленное взаимодействие с Objective-C. На момент написания статьи Kotlin не взаимодействует со Swift напрямую, а скорее опосредованно, через мост Objective-C. Экспорт Swift - это то, что команда Kotlin/Native намерена решить в будущем. Тем не менее, выбор в пользу Objective-C вполне обоснован: старые проекты, содержащие код Objective-C, могут вызывать общий код Kotlin, а также проекты, содержащие код Swift.
https://github.com/kotlin-hands-on/kotlin-swift-interopedia
✍️ @kotlin_lib
GitHub
GitHub - kotlin-hands-on/kotlin-swift-interopedia: Kotlin Swift Interopedia
Kotlin Swift Interopedia. Contribute to kotlin-hands-on/kotlin-swift-interopedia development by creating an account on GitHub.
👍2
Создание паттернов креативного дизайна в Kotlin
Этот блог предназначен для тех, кто только начинает изучать паттерны проектирования в Kotlin. Здесь я попытался создать креативные паттерны проектирования с нуля, а не просто предоставить их синтаксис и теорию.
https://proandroiddev.com/creating-the-creational-design-patterns-in-kotlin-319d08fdf9b6
✍️ @kotlin_lib
Этот блог предназначен для тех, кто только начинает изучать паттерны проектирования в Kotlin. Здесь я попытался создать креативные паттерны проектирования с нуля, а не просто предоставить их синтаксис и теорию.
https://proandroiddev.com/creating-the-creational-design-patterns-in-kotlin-319d08fdf9b6
✍️ @kotlin_lib
👍4
Совет
Пример
1- Обычный способ
2- С помощью ifEmpty
3- Максимальное
✍️ @kotlin_lib
ifEmpty
позволяет нам выполнить второе действие, если содержимое нашего значения пусто. Это отличный способ избавиться от if-else
с isEmpty
.Пример
1- Обычный способ
2- С помощью ifEmpty
3- Максимальное
✍️ @kotlin_lib
👍17
Работаем с enum в kotlin/jvm правильно
А вы знали, что HashMap для enum уступает по эффективности EnumMap? Или что EnumSet под капотом это обычный long? Под катом несколько рецептов удобного применения этих структур.
https://habr.com/ru/articles/781730/
✍️ @kotlin_lib
А вы знали, что HashMap для enum уступает по эффективности EnumMap? Или что EnumSet под капотом это обычный long? Под катом несколько рецептов удобного применения этих структур.
https://habr.com/ru/articles/781730/
✍️ @kotlin_lib
Хабр
Работаем с enum в kotlin/jvm правильно
А вы знали, что HashMap для enum уступает по эффективности EnumMap? Или что EnumSet под капотом это обычный long? Под катом несколько рецептов удобного применения этих структур. Классы над которыми...
👍5
Тюнинг производительности Kotlin: 20 советов
Производительность — это критический показатель, который может привести к успеху или сломать ваше приложение. Хотя Kotlin предлагает множество функций, облегчающих разработку, знание того, как использовать их для повышения производительности, может стать решающим фактором. В этой статье приведены 20 советов, которые помогут вам писать высокопроизводительный код на Kotlin.
https://medium.com/@android-world/kotlin-performance-tuning-20-best-practices-you-should-know-354011076664
✍️ @kotlin_lib
Производительность — это критический показатель, который может привести к успеху или сломать ваше приложение. Хотя Kotlin предлагает множество функций, облегчающих разработку, знание того, как использовать их для повышения производительности, может стать решающим фактором. В этой статье приведены 20 советов, которые помогут вам писать высокопроизводительный код на Kotlin.
https://medium.com/@android-world/kotlin-performance-tuning-20-best-practices-you-should-know-354011076664
✍️ @kotlin_lib
👍5👎1
Media is too big
VIEW IN TELEGRAM
Андрей Данилов — Gradle Kotlin DSL: о чем умолчали в документации
Gradle.kts уже давно не новая технология, но далеко не все на нее перешли. Причины разные: кто-то слышал о плохом перформансе, кто-то пытался мигрировать, но с ходу не вышло. Даже спустя 5 лет после релиза скуповатая на детали документация не проясняет многие кейсы. Андрей постарается исправить эту ситуацию в своем докладе.
Вы узнаете, есть ли вообще причины переходить на kts в 2023 году и насколько все плохо (или хорошо) с перформансом, учитывая что во многих release notes сообщают об ускорениях. Спикер также разберет все проблемы, возникающие как при миграции крупного проекта, так и при интеропе Kotlin/Groovy.
источник
✍️ @kotlin_lib
Gradle.kts уже давно не новая технология, но далеко не все на нее перешли. Причины разные: кто-то слышал о плохом перформансе, кто-то пытался мигрировать, но с ходу не вышло. Даже спустя 5 лет после релиза скуповатая на детали документация не проясняет многие кейсы. Андрей постарается исправить эту ситуацию в своем докладе.
Вы узнаете, есть ли вообще причины переходить на kts в 2023 году и насколько все плохо (или хорошо) с перформансом, учитывая что во многих release notes сообщают об ускорениях. Спикер также разберет все проблемы, возникающие как при миграции крупного проекта, так и при интеропе Kotlin/Groovy.
источник
✍️ @kotlin_lib
👍4
Media is too big
VIEW IN TELEGRAM
IntelliJ IDEA Tips and Tricks
Антон Архипов - специалист по работе с разработчиками в команде Kotlin в компании JetBrains. В сферу его профессиональных интересов входят языки программирования и инструментарий для разработчиков. С 2014 года он является чемпионом по Java.
источник
✍️ @kotlin_lib
Антон Архипов - специалист по работе с разработчиками в команде Kotlin в компании JetBrains. В сферу его профессиональных интересов входят языки программирования и инструментарий для разработчиков. С 2014 года он является чемпионом по Java.
источник
✍️ @kotlin_lib
👍3
Kotlin-реализация RecyclerView на Android
У вас есть большой список данных для показа пользователям вашего приложения? Ищете гибкий, удобный для разработчиков и пользователей способ отображения данных?
Тогда RecyclerView — именно то, что вам нужно.
RecyclerView — это расширенная версия ListView, только более мощная и гибкая.
RecyclerView относится к семейству ViewGroup, которое является оптимизированным преемником ListView и GridView.
Как следует из названия, RecyclerView перезапускает верхние элементы списка, которые, уходя за пределы с экрана, становятся невидимыми для пользователя. Например, если пользователь прокрутит список вниз до пункта 6 или 7, то элементы в позиции 1, 2 или 3 будут удалены из памяти. В результате сокращается расход памяти.
https://medium.com/@hrithik481/implement-recyclerview-in-android-with-kotlin-42408c6bf6
✍️ @kotlin_lib
У вас есть большой список данных для показа пользователям вашего приложения? Ищете гибкий, удобный для разработчиков и пользователей способ отображения данных?
Тогда RecyclerView — именно то, что вам нужно.
RecyclerView — это расширенная версия ListView, только более мощная и гибкая.
RecyclerView относится к семейству ViewGroup, которое является оптимизированным преемником ListView и GridView.
Как следует из названия, RecyclerView перезапускает верхние элементы списка, которые, уходя за пределы с экрана, становятся невидимыми для пользователя. Например, если пользователь прокрутит список вниз до пункта 6 или 7, то элементы в позиции 1, 2 или 3 будут удалены из памяти. В результате сокращается расход памяти.
https://medium.com/@hrithik481/implement-recyclerview-in-android-with-kotlin-42408c6bf6
✍️ @kotlin_lib
👍8😐1
KMP Library Wizard
Теперь можно в два клика создать KMP проект
https://terrakok.github.io/kmp-web-wizard/
✍️ @kotlin_lib
Теперь можно в два клика создать KMP проект
https://terrakok.github.io/kmp-web-wizard/
✍️ @kotlin_lib
👍6🔥3
Защита архитектуры проекта Kotlin с помощью Konsist
Konsist - это совершенно новый инструмент, который помогает стандартизировать кодовую базу. Он совместим с различными Kotlin-проектами, включая Android-проекты, Spring-проекты и Kotlin Multiplatform-проекты.
Прежде чем погрузиться в Konsist, давайте вкратце обсудим многоуровневую архитектуру. Компоненты в рамках паттерна многоуровневой архитектуры организованы в слои, каждый из которых выполняет определенную роль в приложении. Каждый слой также определяет границы - классы и интерфейсы могут быть доступны только другим классам и интерфейсам из нужных слоев.
Konsist может быть использован для автоматизации проверки этих слоев, что повышает качество кодовой базы приложения и делает ее более управляемой. Давайте рассмотрим несколько архитектур и посмотрим, как мы можем защитить их границы.
https://proandroiddev.com/protect-kotlin-project-architecture-using-konsist-3bfbe1ad0eea
✍️ @kotlin_lib
Konsist - это совершенно новый инструмент, который помогает стандартизировать кодовую базу. Он совместим с различными Kotlin-проектами, включая Android-проекты, Spring-проекты и Kotlin Multiplatform-проекты.
Прежде чем погрузиться в Konsist, давайте вкратце обсудим многоуровневую архитектуру. Компоненты в рамках паттерна многоуровневой архитектуры организованы в слои, каждый из которых выполняет определенную роль в приложении. Каждый слой также определяет границы - классы и интерфейсы могут быть доступны только другим классам и интерфейсам из нужных слоев.
Konsist может быть использован для автоматизации проверки этих слоев, что повышает качество кодовой базы приложения и делает ее более управляемой. Давайте рассмотрим несколько архитектур и посмотрим, как мы можем защитить их границы.
https://proandroiddev.com/protect-kotlin-project-architecture-using-konsist-3bfbe1ad0eea
✍️ @kotlin_lib
👍3
Apress_Pro_Spring_6_with_Kotlin.pdf
24.1 MB
Pro Spring 6 with Kotlin: An In-depth Guide to Using Kotlin APIs in Spring Framework 6
Автор: Chris Schaefer (2023)
Освойте основы Spring Framework 6, опираясь на реальный опыт экспертов по Spring. Из этой книги вы узнаете, как использовать Spring 6 в тандеме с языком программирования Kotlin для создания сложных корпоративных приложений сверху донизу. От монолитов до облачных нативных приложений для потоковых микросервисов - вы получите представление о каждом аспекте процесса, включая транзакции, доступ к данным, персистентность, веб-уровни и уровни представления.
✍️ @kotlin_lib
Автор: Chris Schaefer (2023)
Освойте основы Spring Framework 6, опираясь на реальный опыт экспертов по Spring. Из этой книги вы узнаете, как использовать Spring 6 в тандеме с языком программирования Kotlin для создания сложных корпоративных приложений сверху донизу. От монолитов до облачных нативных приложений для потоковых микросервисов - вы получите представление о каждом аспекте процесса, включая транзакции, доступ к данным, персистентность, веб-уровни и уровни представления.
✍️ @kotlin_lib
👍6
Прослушивание событий элементов с использованием Compose for Web
В декларативном мире события являются основным способом взаимодействия с элементами, и у большинства компонентов есть способ их прослушивания.
События играют ключевую роль во взаимодействии между вашим приложением и браузером. В декларативном мире события - это основной способ получения обновлений от элементов. В этом отношении HTML-документ действительно очень силен.
Как вы можете видеть в документации W3C, существует почти 100 типов событий, которые вы можете использовать. В этой статье мы узнаем, как использовать их в Compose for Web.
https://touchlab.co/compose-html-events
✍️ @kotlin_lib
В декларативном мире события являются основным способом взаимодействия с элементами, и у большинства компонентов есть способ их прослушивания.
События играют ключевую роль во взаимодействии между вашим приложением и браузером. В декларативном мире события - это основной способ получения обновлений от элементов. В этом отношении HTML-документ действительно очень силен.
Как вы можете видеть в документации W3C, существует почти 100 типов событий, которые вы можете использовать. В этой статье мы узнаем, как использовать их в Compose for Web.
https://touchlab.co/compose-html-events
✍️ @kotlin_lib
👍2✍1
DataMaps. Рассказ о нашей ORM на Kotlin
Меня зовут Александр, я ведущий программист в БФТ-Холдинге. Уже несколько лет мы с командой трудимся над платформой, которая официально называется БФТ.Платформа, а менее официально – Ice. В основном наша платформа используется в органах власти и государственных учреждениях.
Сегодня хотелось бы рассказать не обо всей платформе, а только об одном из ее компонентов – ORM (object-relational mapping) – фреймворке DataMaps.
Данная статья не инструкция или справка. Это достаточно поверхностный обзор, цель которого получить первичную обратную связь: интересен ли наш фреймворк сообществу?
Внутри БФТ-Холдинга Datamaps зарекомендовали с одной стороны, как легкий, наглядный и понятный для разработчиков фреймворк, с другой стороны, мощный по своим возможностям.
https://habr.com/ru/companies/bft/articles/787280/
✍️ @kotlin_lib
Меня зовут Александр, я ведущий программист в БФТ-Холдинге. Уже несколько лет мы с командой трудимся над платформой, которая официально называется БФТ.Платформа, а менее официально – Ice. В основном наша платформа используется в органах власти и государственных учреждениях.
Сегодня хотелось бы рассказать не обо всей платформе, а только об одном из ее компонентов – ORM (object-relational mapping) – фреймворке DataMaps.
Данная статья не инструкция или справка. Это достаточно поверхностный обзор, цель которого получить первичную обратную связь: интересен ли наш фреймворк сообществу?
Внутри БФТ-Холдинга Datamaps зарекомендовали с одной стороны, как легкий, наглядный и понятный для разработчиков фреймворк, с другой стороны, мощный по своим возможностям.
https://habr.com/ru/companies/bft/articles/787280/
✍️ @kotlin_lib
👍3
Как использовать ресурсы в Compose Multiplatform
Ресурсы являются важной частью любого мобильного приложения, они включают в себя отрисовки, шрифты, текстовые файлы и многое другое. С появлением Compose Multiplatform у нас появился компонент ресурсов Compose, но он был экспериментальным и претерпел несколько изменений в разных версиях. Теперь, когда вышла следующая основная версия Compose, а именно 1.6.0-beta01, в разделе ресурсов появились некоторые важные изменения. Давайте рассмотрим их, а также то, как перенести и использовать новый способ доступа к ресурсам.
https://proandroiddev.com/how-to-use-resources-in-compose-multiplatform-77a6552b505d
✍️ @kotlin_lib
Ресурсы являются важной частью любого мобильного приложения, они включают в себя отрисовки, шрифты, текстовые файлы и многое другое. С появлением Compose Multiplatform у нас появился компонент ресурсов Compose, но он был экспериментальным и претерпел несколько изменений в разных версиях. Теперь, когда вышла следующая основная версия Compose, а именно 1.6.0-beta01, в разделе ресурсов появились некоторые важные изменения. Давайте рассмотрим их, а также то, как перенести и использовать новый способ доступа к ресурсам.
https://proandroiddev.com/how-to-use-resources-in-compose-multiplatform-77a6552b505d
✍️ @kotlin_lib
👍3