Производительность 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 разработкой, в рамках одного из заданий необходимо провести исследование. Выбрал тему, которая давно разжигает мое любопытство, а именно...
🔥4
WhosNext
Мультиплатформенный таймер Kotlin.
Простое приложение, которое позволит вам узнать, когда пора менять вратаря в футбольной игре с друзьями.
https://github.com/GuilhE/WhosNext
✍️ @kotlin_lib
Мультиплатформенный таймер Kotlin.
Простое приложение, которое позволит вам узнать, когда пора менять вратаря в футбольной игре с друзьями.
https://github.com/GuilhE/WhosNext
✍️ @kotlin_lib
👍5
Осознанная оптимизация Compose
Compose — относительно молодая технология написания декларативного UI. Множество разработчиков даже не предполагают, что пишут неоптимальный код в такой критически важной части, и впоследствии это приводит к неожиданной низкой производительности и проседании метрик.
Наша команда Ozon Seller также столкнулась с этой проблемой. Мы решили собрать воедино все советы и наработки по написанию оптимизированного Compose-кода. Активное применение этих советов при оптимизации существующих экранов и написании новых существенно улучшило наши метрики: длительность лага по отношению к длительности скролла (hitch rate; чем меньше, тем лучше) экранов со списками упала в среднем с 15-19 % до 5-7 % (на 90-м перцентиле). Все эти советы и наработки мы описали в этой статье. Она будет полезна и начинающим, и опытным разработчикам, в ней подробно описаны оптимизации и механизмы Compose, а также рассказано про слабо задокументированные особенности и исправления ошибок, которые есть в других статьях. Давайте же начнём.
https://habr.com/ru/companies/ozontech/articles/742854/
✍️ @kotlin_lib
Compose — относительно молодая технология написания декларативного UI. Множество разработчиков даже не предполагают, что пишут неоптимальный код в такой критически важной части, и впоследствии это приводит к неожиданной низкой производительности и проседании метрик.
Наша команда Ozon Seller также столкнулась с этой проблемой. Мы решили собрать воедино все советы и наработки по написанию оптимизированного Compose-кода. Активное применение этих советов при оптимизации существующих экранов и написании новых существенно улучшило наши метрики: длительность лага по отношению к длительности скролла (hitch rate; чем меньше, тем лучше) экранов со списками упала в среднем с 15-19 % до 5-7 % (на 90-м перцентиле). Все эти советы и наработки мы описали в этой статье. Она будет полезна и начинающим, и опытным разработчикам, в ней подробно описаны оптимизации и механизмы Compose, а также рассказано про слабо задокументированные особенности и исправления ошибок, которые есть в других статьях. Давайте же начнём.
https://habr.com/ru/companies/ozontech/articles/742854/
✍️ @kotlin_lib
👍4
Осознанная оптимизация Compose 2: В борьбе с композицией
Jetpack Compose постоянно развивается, открывая перед разработчиками новые горизонты для оптимизации. С момента нашего последнего обзора, мы добились значительного прогресса, сократив задержки при скролле с 5-7% до нуля. В этом материале мы поделимся свежими находками и передовыми практиками в оптимизации Compose. Чтобы максимально углубиться в тему, рекомендуем ознакомиться с первой частью.
https://habr.com/ru/articles/796437/
✍️ @kotlin_lib
Jetpack Compose постоянно развивается, открывая перед разработчиками новые горизонты для оптимизации. С момента нашего последнего обзора, мы добились значительного прогресса, сократив задержки при скролле с 5-7% до нуля. В этом материале мы поделимся свежими находками и передовыми практиками в оптимизации Compose. Чтобы максимально углубиться в тему, рекомендуем ознакомиться с первой частью.
https://habr.com/ru/articles/796437/
✍️ @kotlin_lib
🔥2
ViewModel + Kotlin Multiplatform. Пробуем нативное решение
Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. Компания Google объявили о своем интересе к Koltin Multiplatform на прошлом Google I/O 2023. Следом был обозначен вектор развития имеющихся решений архитектурных библиотек Jetpack для поддержки KMP. Буквально считанные часы назад компания Google опубликовали ожидаемую многими новинку, а именно ViewModels из библиотеки Lifecycle с поддержкой API Kotlin Multiplatform. И сейчас мы с вами проверим, насколько это удобно, что уже готово, а что нужно доработать.
https://habr.com/ru/companies/usetech/articles/802111/
✍️ @kotlin_lib
Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. Компания Google объявили о своем интересе к Koltin Multiplatform на прошлом Google I/O 2023. Следом был обозначен вектор развития имеющихся решений архитектурных библиотек Jetpack для поддержки KMP. Буквально считанные часы назад компания Google опубликовали ожидаемую многими новинку, а именно ViewModels из библиотеки Lifecycle с поддержкой API Kotlin Multiplatform. И сейчас мы с вами проверим, насколько это удобно, что уже готово, а что нужно доработать.
https://habr.com/ru/companies/usetech/articles/802111/
✍️ @kotlin_lib
👍2
Kotlin под капотом: как избавиться от рекурсии
Недавно я прочитал статью об оптимизации хвостовой рекурсии в kotlin через ключевое слово tailrec. Мне стало интересно, как это реализовано под капотом и я решил провести небольшой эксперимент.
https://habr.com/ru/articles/780232/
✍️ @kotlin_lib
Недавно я прочитал статью об оптимизации хвостовой рекурсии в kotlin через ключевое слово tailrec. Мне стало интересно, как это реализовано под капотом и я решил провести небольшой эксперимент.
https://habr.com/ru/articles/780232/
✍️ @kotlin_lib
👍3
Unit testing Kotlin Flow emissions
https://medium.com/@sedakundakitchen/unit-testing-kotlin-flow-emissions-86ae7cc32333
✍️ @kotlin_lib
https://medium.com/@sedakundakitchen/unit-testing-kotlin-flow-emissions-86ae7cc32333
✍️ @kotlin_lib
👍3
Kotlin Mutex: A Comprehensive Guide
https://medium.com/@dugguRK/kotlin-mutex-a-comprehensive-guide-5771a3f59713
✍️ @kotlin_lib
https://medium.com/@dugguRK/kotlin-mutex-a-comprehensive-guide-5771a3f59713
✍️ @kotlin_lib
👍2
Исключения для control flow в Kotlin
Использование исключений для управления потоком управления является плохой практикой во многих языках программирования и считается анти-паттерном. Такой подход часто сравнивают с операторами go-to в языках более низкого уровня. В частности, в Kotlin нет концепции проверяемых исключений, что делает ситуацию еще более сложной и непредсказуемой.
Исключения лучше всего использовать для проверки ошибок программиста во время выполнения, таких как недопустимые аргументы, а также для завершения работы приложения со значимым сообщением об ошибке и указанием места, когда достигается неожиданное состояние. Kotlin элегантно справляется с потоком управления с помощью запечатанных типов, операторов when и умных приведений.
https://ralf-wondratschek.com/blog/exceptions-for-control-flow
✍️ @kotlin_lib
Использование исключений для управления потоком управления является плохой практикой во многих языках программирования и считается анти-паттерном. Такой подход часто сравнивают с операторами go-to в языках более низкого уровня. В частности, в Kotlin нет концепции проверяемых исключений, что делает ситуацию еще более сложной и непредсказуемой.
Исключения лучше всего использовать для проверки ошибок программиста во время выполнения, таких как недопустимые аргументы, а также для завершения работы приложения со значимым сообщением об ошибке и указанием места, когда достигается неожиданное состояние. Kotlin элегантно справляется с потоком управления с помощью запечатанных типов, операторов when и умных приведений.
https://ralf-wondratschek.com/blog/exceptions-for-control-flow
✍️ @kotlin_lib
Ralf-Wondratschek
Ralf Wondratschek
Personal website from Ralf Wondratschek to collect and share presentations, blog-posts and other interesting bits.
👍2
Построение графиков финансовых данных в Kotlin с помощью Kandy
Я хочу показать простой рабочий процесс с финансовыми данными - загрузка, анализ и визуализация - с использованием инструментов Kotlin для анализа данных.
https://medium.com/@andrejkingsley/plotting-financial-data-in-kotlin-with-kandy-66757aef05ef
✍️ @kotlin_lib
Я хочу показать простой рабочий процесс с финансовыми данными - загрузка, анализ и визуализация - с использованием инструментов Kotlin для анализа данных.
https://medium.com/@andrejkingsley/plotting-financial-data-in-kotlin-with-kandy-66757aef05ef
✍️ @kotlin_lib
👍6
Kotlin Faker — генератор фейковых данных
Порт популярного гема ruby faker, написанного на kotlin. Генерирует реалистично выглядящие поддельные данные, такие как имена, адреса, банковские реквизиты и многое другое, которые могут быть использованы для тестирования и анонимизации данных.
https://github.com/serpro69/kotlin-faker
✍️ @kotlin_lib
Порт популярного гема ruby faker, написанного на kotlin. Генерирует реалистично выглядящие поддельные данные, такие как имена, адреса, банковские реквизиты и многое другое, которые могут быть использованы для тестирования и анонимизации данных.
https://github.com/serpro69/kotlin-faker
✍️ @kotlin_lib
👍6
Navigating the Waters of Kotlin Multiplatform: Exploring Navigation Solutions
Эта запись в блоге не ставит целью сравнение различных навигационных библиотек; вместо этого она предлагает взглянуть на мой личный путь к навигационному решению. Цель не в том, чтобы дать сравнительный анализ различных библиотек, а в том, чтобы поделиться своим процессом принятия решений.
https://proandroiddev.com/navigating-the-waters-of-kotlin-multiplatform-exploring-navigation-solutions-eef81aaa1a61
✍️ @kotlin_lib
Эта запись в блоге не ставит целью сравнение различных навигационных библиотек; вместо этого она предлагает взглянуть на мой личный путь к навигационному решению. Цель не в том, чтобы дать сравнительный анализ различных библиотек, а в том, чтобы поделиться своим процессом принятия решений.
https://proandroiddev.com/navigating-the-waters-of-kotlin-multiplatform-exploring-navigation-solutions-eef81aaa1a61
✍️ @kotlin_lib
👍2
Media is too big
VIEW IN TELEGRAM
Обсуждение от Okko — Зачем мне Kotlin в iOS-разработке? Я только Swift выучил!
Пора ли iOS-разработчикам учить Kotlin?
JetBrains активно продвигает KMM. Но спросил ли кто-то iOS-разработчиков, что они об этом думают? Давайте мы и спросим.
Собрали вместе iOS-экспертов и знатоков KMM и с ними обсудили:
— Cможет ли Kotlin Multiplatform «ухватить свой кусок пирога» в мобильной разработке или даже заменить Swift в нативе подчистую?
— А может, это еще одна страшилка из серии «Flutter заменит всё»?
— Или всё-таки начинать учить Kotlin прямо сейчас, чтобы не терять свою актуальность на рынке?
источник
✍️ @kotlin_lib
Пора ли iOS-разработчикам учить Kotlin?
JetBrains активно продвигает KMM. Но спросил ли кто-то iOS-разработчиков, что они об этом думают? Давайте мы и спросим.
Собрали вместе iOS-экспертов и знатоков KMM и с ними обсудили:
— Cможет ли Kotlin Multiplatform «ухватить свой кусок пирога» в мобильной разработке или даже заменить Swift в нативе подчистую?
— А может, это еще одна страшилка из серии «Flutter заменит всё»?
— Или всё-таки начинать учить Kotlin прямо сейчас, чтобы не терять свою актуальность на рынке?
источник
✍️ @kotlin_lib
👍3
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
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
Курс Kotlin Coroutines
Бесплатный курс по корутинам от Android Broadcast
#1 Что такое корутина. Важные особенности
#2 CoroutineContext. Настраиваем корутины
#3 Жизненный цикл корутины. CoroutineScope. Structured Concurrency
#4 Обработка ошибок в корутинах
#5 Каналы. Зачем если есть Flow?
#6 Синхронизация между корутинами
#7 Kotlin Coroutines Flow. StateFlow. SharedFlow
#8 Корутины в Android. Специальные API
Android Broadcast. Все об Андроид разработке
источник
✍️ @kotlin_lib
Бесплатный курс по корутинам от Android Broadcast
#1 Что такое корутина. Важные особенности
#2 CoroutineContext. Настраиваем корутины
#3 Жизненный цикл корутины. CoroutineScope. Structured Concurrency
#4 Обработка ошибок в корутинах
#5 Каналы. Зачем если есть Flow?
#6 Синхронизация между корутинами
#7 Kotlin Coroutines Flow. StateFlow. SharedFlow
#8 Корутины в Android. Специальные API
Android Broadcast. Все об Андроид разработке
источник
✍️ @kotlin_lib
👍9🤮1👀1