Корутины против потоков: тест потребления памяти
Корутины Kotlin часто называют облегченными потоками. Причина в том, что теоретически корутина может потреблять меньше памяти, чем поток. К сожалению, официальных цифр в этом контексте я не встречал, поэтому решил создать бенчмарк для количественной оценки разницы в потреблении памяти потоками и корутинами в приложениях для Android. В этой заметке я расскажу об основных идеях и проблемах, лежащих в основе этого бенчмарка, а также поделюсь его результатами.
Статья: https://apptractor.ru/info/articles/kotlin-coroutines-vs-threads-memory-benchmark.html
Платформа: Android
Корутины Kotlin часто называют облегченными потоками. Причина в том, что теоретически корутина может потреблять меньше памяти, чем поток. К сожалению, официальных цифр в этом контексте я не встречал, поэтому решил создать бенчмарк для количественной оценки разницы в потреблении памяти потоками и корутинами в приложениях для Android. В этой заметке я расскажу об основных идеях и проблемах, лежащих в основе этого бенчмарка, а также поделюсь его результатами.
Статья: https://apptractor.ru/info/articles/kotlin-coroutines-vs-threads-memory-benchmark.html
Платформа: Android
👍2
BeepBeep - это платформа для доставки еды и заказа такси, призванная продемонстрировать возможности Kotlin. В ней есть мобильные приложение для пользователей, приложения для управления рестораном, приложения для водителей, для доставщиков - все это для iOS и Android на Compose Multiplatform. Есть приложение с дашбордами на нем же для Mac, Linux и Windows, приложение для поддержки. Есть несколько микросервисов на Kotlin с Ktor для поддержки всего этого.
BeepBeep на GitHub: https://github.com/TheChance101/beep-beep
Платформа: Android/кроссплатформа
⭐️: 413
BeepBeep на GitHub: https://github.com/TheChance101/beep-beep
Платформа: Android/кроссплатформа
⭐️: 413
👍1🔥1
Делаем первый App Shortcut
Одна из моих любимых особенностей создания действий приложения с помощью AppIntents - простота создания прототипов. Я могу пройти путь от идеи до работающего действия менее чем за час. В этом руководстве я расскажу вам о том, как создать первое действие для приложения Shortcuts.
Статья: https://apptractor.ru/info/articles/delaem-pervyy-app-shortcut.html
Платформа: iOS
Одна из моих любимых особенностей создания действий приложения с помощью AppIntents - простота создания прототипов. Я могу пройти путь от идеи до работающего действия менее чем за час. В этом руководстве я расскажу вам о том, как создать первое действие для приложения Shortcuts.
Статья: https://apptractor.ru/info/articles/delaem-pervyy-app-shortcut.html
Платформа: iOS
This media is not supported in your browser
VIEW IN TELEGRAM
inshellisense предоставляет автозаполнение в стиле IDE для терминала. Это нативный рантайм с автодополнением, поддерживающий 600+ операторов командной строки. Поддерживает Windows, Linux и MacOS.
inshellisense на GitHub: https://github.com/microsoft/inshellisense
Платформа: разработка
⭐️: 1.7K
inshellisense на GitHub: https://github.com/microsoft/inshellisense
Платформа: разработка
⭐️: 1.7K
Chat - UI-фреймворк для чата с полностью настраиваемыми ячейками сообщений и встроенным медиа-пикером. Отображает сообщения с прокруткой, позволяет создавать и "отправлять" новые сообщения (под отправкой понимается вызов замыкания), позволяет передавать кастомный конструктор представлений для сообщений и ввода, имеет встроенную библиотеку выбора фотографий и видео, есть отображение полноэкранного меню при длительном нажатии на ячейку сообщения, есть поддержка функции "ответить на сообщение" через меню, поддержка записи голоса, видео/фото и текста.
Chat на GitHub: https://github.com/exyte/Chat
Платформа: iOS
⭐️: 334
Chat на GitHub: https://github.com/exyte/Chat
Платформа: iOS
⭐️: 334
👍3
BabaBASIC - интерпретатор QuickBASIC 4.5 для платформы Android.
BabaBASIC на GitHub: https://github.com/ianatha/bababasic/
Платформа: Android
⭐️: 55
BabaBASIC на GitHub: https://github.com/ianatha/bababasic/
Платформа: Android
⭐️: 55
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Поставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
•
(iOS Ru)
Паттерн Координатор для навигация в iOS-приложении•
(iOS En)
Swift Macros 101: Your Step-by-Step Guide To Crafting Your First Macro!•
(iOS En)
SwiftData Containers and Preview Data•
(iOS En)
Using SwiftUI and ReplayKit: Build an iOS Screen-Sharing App•
(iOS En)
Building Scrollable Tab View With New iOS 17 APIs•
(iOS En)
Building Complex Scroll Animations With New iOS 17 APIs•
(iOS En)
NSSpain XI Videos•
(And Ru)
Ошибки при проектировании публичного API наших библиотек, и как мы их решали•
(And En)
Practical magic with animations in Jetpack Compose•
(And En)
Compression Streams support on all browsers, Android’s New Credential Manager, and more dev news!•
(And En)
Are One-Time Events an Anti-Pattern? - Why Almost Every Android Dev Does It Wrong!•
(And En)
The Ultimate Guide to Android Splash Screen Animations – Splash API•
(Crs En)
KMPizza with Lena Stepanova•
(Dev Ru)
Podlodka #342: пишем язык внутри языка•
(Dev En)
Arduino Course for Everybody•
(Mrk Ru)
Как определить топ USP при запуске нового продуктаПоставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
AppTractor
Паттерн Координатор для навигация в iOS-приложении
В тестовых заданиях на позицию iOS Junior все чаще можно увидеть требование реализации навигации при помощью паттерна Координатор. О реализация и предотвращение возможных проблем рассказал в спринте «Координатор».
👍2
GitHub
GitHub - apple/swift-protobuf: Plugin and runtime library for using protobuf with Swift
Plugin and runtime library for using protobuf with Swift - apple/swift-protobuf
Язык программирования Swift компании Apple прекрасно дополняется технологией сериализации Protocol Buffer ("protobuf") компании Google. Они оба ориентированы на высокую производительность и безопасность программирования. В данном проекте Swift Protobuf представлена как утилита командной строки, добавляющая генерацию Swift-кода к Google protoc, так и рантайм библиотека, необходимая для использования сгенерированного кода.
Swift Protobuf на GitHub: https://github.com/apple/swift-protobuf
Платформа: iOS
⭐️: 4.3K
Swift Protobuf на GitHub: https://github.com/apple/swift-protobuf
Платформа: iOS
⭐️: 4.3K
👍1
10 быстрых советов по повышению качества iOS-кода: часть 1
1. Используйте паттерн расширения для группировки фрагментов кода
2. Определите максимальное количество строк в файле
3. Создавайте переменные и функции с описательными именами
4. Используйте преимуществ typealias
5. Позаботьтесь о «неправильном пути».
6. Опишите принудительное разворачивание и индексы
7. Правильно работайте с конфиденциальной информацией
8. Избегайте дублирования кода
10. Используйте преимущества встроенных функций
Статья: https://apptractor.ru/develop/coding/10-bystryh-sovetov-po-povysheniyu-kachestva-ios-koda-chast-1.html
Платформа: iOS
1. Используйте паттерн расширения для группировки фрагментов кода
2. Определите максимальное количество строк в файле
3. Создавайте переменные и функции с описательными именами
4. Используйте преимуществ typealias
5. Позаботьтесь о «неправильном пути».
6. Опишите принудительное разворачивание и индексы
7. Правильно работайте с конфиденциальной информацией
8. Избегайте дублирования кода
10. Используйте преимущества встроенных функций
Статья: https://apptractor.ru/develop/coding/10-bystryh-sovetov-po-povysheniyu-kachestva-ios-koda-chast-1.html
Платформа: iOS
AppTractor
10 быстрых советов по повышению качества iOS-кода: часть 1
Если вы хотите постоянно улучшать качество кода, вот несколько небольших советов, которые помогут вам на этом пути.
Вопросы с собеседований: зачем нужен класс nothing в Kotlin
Использование
Сниппет: https://apptractor.ru/info/techhype/voprosy-s-sobesedovaniy-zachem-nuzhen-klass-nothing-v-kotlin.html
Платформа: Android
Использование
Nothing
помогает улучшить безопасность типов в Kotlin, так как компилятор может обнаружить, если вы пытаетесь использовать значение из функции, которая должна завершиться исключением или бесконечным циклом.Сниппет: https://apptractor.ru/info/techhype/voprosy-s-sobesedovaniy-zachem-nuzhen-klass-nothing-v-kotlin.html
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Orbital - библиотека анимации Jetpack Compose, позволяющая реализовать Движение, Трансформацию и Переход между общими элементами. Эта библиотека поддерживает и Kotlin Multiplatform (Android, iOS, Desktop, macOS и js).
Orbital на GitHub: https://github.com/skydoves/Orbital
Платформа: Android
⭐️: 791
Orbital на GitHub: https://github.com/skydoves/Orbital
Платформа: Android
⭐️: 791
Что не так с «Авророй» — российской мобильной OC
1. Сомнительная репутация. Для «Авроры» разрабатывают гаджеты из китайских компонентов, которые позже называют отечественными. В результате получаются дорогие копии дешевых китайских планшетов и смартфонов.
2. Некорректная трансляция целей. Многочисленные заявления участников процесса создают впечатление, что «Аврора» постоянно что-то обещает и получает финансирование, но не приближается к заявленным целям. Это подрывает доверие аудитории. При этом заявлений от самих создателей «Авроры» за все годы было немного — буквально несколько штук.
3. Неправильный подход к популяризации. У «Авроры» нет экосистемы, которая нужна потенциальному пользователю — чиновнику, сотруднику корпорации, учителю или врачу. Тем не менее, в правительстве витает идея импортозамещения и есть риск, что ведомствам и компаниям придется переходить на «Аврору» в принудительном порядке. Насильственная популяризация вызывает отторжение.
Статья: https://habr.com/ru/articles/773522/
Платформа: разработка
1. Сомнительная репутация. Для «Авроры» разрабатывают гаджеты из китайских компонентов, которые позже называют отечественными. В результате получаются дорогие копии дешевых китайских планшетов и смартфонов.
2. Некорректная трансляция целей. Многочисленные заявления участников процесса создают впечатление, что «Аврора» постоянно что-то обещает и получает финансирование, но не приближается к заявленным целям. Это подрывает доверие аудитории. При этом заявлений от самих создателей «Авроры» за все годы было немного — буквально несколько штук.
3. Неправильный подход к популяризации. У «Авроры» нет экосистемы, которая нужна потенциальному пользователю — чиновнику, сотруднику корпорации, учителю или врачу. Тем не менее, в правительстве витает идея импортозамещения и есть риск, что ведомствам и компаниям придется переходить на «Аврору» в принудительном порядке. Насильственная популяризация вызывает отторжение.
Статья: https://habr.com/ru/articles/773522/
Платформа: разработка
🤮5
Используем Ktlint в вашем Android-проекте
Кровоточат ли ваши глаза, когда вы в чужом (или своем) коде натыкаетесь на лишние чересстрочные интервалы или, например, неиспользуемые импорты? Ktlint поможет вам предотвратить такие явления, предоставляя стандартные правила стилизации и форматирования, которые вы можете легко применить к своему проекту.
Статья: https://apptractor.ru/info/articles/ispolzuem-ktlint-v-vashem-android-proekte.html
Платформа: Android
Кровоточат ли ваши глаза, когда вы в чужом (или своем) коде натыкаетесь на лишние чересстрочные интервалы или, например, неиспользуемые импорты? Ktlint поможет вам предотвратить такие явления, предоставляя стандартные правила стилизации и форматирования, которые вы можете легко применить к своему проекту.
Статья: https://apptractor.ru/info/articles/ispolzuem-ktlint-v-vashem-android-proekte.html
Платформа: Android
👍1
LocalSend - это бесплатное приложение с открытым исходным кодом, позволяющее безопасно обмениваться файлами и сообщениями с близлежащими устройствами по локальной сети без необходимости подключения к Интернету. LocalSend использует защищенный протокол связи, который позволяет устройствам взаимодействовать друг с другом с помощью REST API. Все данные передаются по протоколу HTTPS, а сертификат TLS/SSL генерируется "на лету" на каждом устройстве, что обеспечивает максимальную безопасность. Приложения сделаны на Flutter и поддерживают Windows, macOS, Linux, Android, iOS и FireOS.
LocalSend на GitHub: https://github.com/localsend/localsend
Платформа: Flutter/кроссплатформа
⭐️: 23K
LocalSend на GitHub: https://github.com/localsend/localsend
Платформа: Flutter/кроссплатформа
⭐️: 23K
❤1
Сравнение производительности Compose и View
Jetpack Compose ускоряет разработку пользовательского интерфейса и в целом улучшает разработку под Android. Однако прежде чем добавлять новый инструмент в проект, обратите внимание на приводимые данные, поскольку фреймворк может повлиять на производительность сборки, размер APK и скорость работы приложения.
Статья: https://apptractor.ru/info/articles/sravnenie-proizvoditelnosti-compose-i-view.html
Платформа: Android
Jetpack Compose ускоряет разработку пользовательского интерфейса и в целом улучшает разработку под Android. Однако прежде чем добавлять новый инструмент в проект, обратите внимание на приводимые данные, поскольку фреймворк может повлиять на производительность сборки, размер APK и скорость работы приложения.
Статья: https://apptractor.ru/info/articles/sravnenie-proizvoditelnosti-compose-i-view.html
Платформа: Android
👍1
Отображение панели выбора фотографий в SwiftUI
Знаете ли вы, что Apple создала способ для SwiftUI получить доступ к фотографиям пользователя, не запрашивая разрешения и при этом сохраняя конфиденциальность? Мы расскажем о том, как это работает и как это можно использовать в собственных проектах.
Статья: https://apptractor.ru/info/articles/otobrazhenie-paneli-vybora-fotografiy-v-swiftui.html
Платформа: iOS
Знаете ли вы, что Apple создала способ для SwiftUI получить доступ к фотографиям пользователя, не запрашивая разрешения и при этом сохраняя конфиденциальность? Мы расскажем о том, как это работает и как это можно использовать в собственных проектах.
Статья: https://apptractor.ru/info/articles/otobrazhenie-paneli-vybora-fotografiy-v-swiftui.html
Платформа: iOS
MaterialTabBar - настраиваемая плавающая панель вкладок с материальным фоном, написанная полностью на SwiftUI.
• TabBarContainer привязывает представления вашего приложения к вкладкам, используя @ViewBuilder.
• TabBarItemPreferenceKey используется для передачи данных от дочерних представлений к родительским.
• matchedGeometryEffect добавляет выборочное выделение элементов в плавающей капсуле.
• symbolEffect добавляет анимацию к значкам при переключении пользователем вкладок.
MaterialTabBar на GitHub: https://github.com/bodhichristian/MaterialTabBar
Платформа: iOS
⭐️: 31
• TabBarContainer привязывает представления вашего приложения к вкладкам, используя @ViewBuilder.
• TabBarItemPreferenceKey используется для передачи данных от дочерних представлений к родительским.
• matchedGeometryEffect добавляет выборочное выделение элементов в плавающей капсуле.
• symbolEffect добавляет анимацию к значкам при переключении пользователем вкладок.
MaterialTabBar на GitHub: https://github.com/bodhichristian/MaterialTabBar
Платформа: iOS
⭐️: 31
10 быстрых советов по повышению качества iOS-кода: часть 2
1. Составляйте интерфейсы из компонентов
2. Переиспользуйте стилизацию с помощью модификаторов представления
3. Включите модульные тесты
4. Обрабатывайте ошибки
5. Документируйте код
6. Перечисления
7. Core Data + SwiftUI
8. Руководство по стилю
9. Инъекция зависимостей
10. Дизайн-система
Статья: https://apptractor.ru/info/articles/10-bystryh-sovetov-po-povysheniyu-kachestva-ios-koda-chast-2.html
Платформа: iOS
1. Составляйте интерфейсы из компонентов
2. Переиспользуйте стилизацию с помощью модификаторов представления
3. Включите модульные тесты
4. Обрабатывайте ошибки
5. Документируйте код
6. Перечисления
7. Core Data + SwiftUI
8. Руководство по стилю
9. Инъекция зависимостей
10. Дизайн-система
Статья: https://apptractor.ru/info/articles/10-bystryh-sovetov-po-povysheniyu-kachestva-ios-koda-chast-2.html
Платформа: iOS
Kaspresso для самых маленьких
Меня зовут Элчин, я занимаюсь автоматизацией тестирования мобильных приложений в hh.ru и расскажу вам о том, как написать первый тест на Android. В разработке автотестов мы используем Kotlin и нативный фреймворк Kaspresso, о котором я напишу подробней в этой статье. Эта статья рассчитана на начинающих тестировщиков, но, возможно, и более опытные коллеги найдут для себя что-то полезное.
Статья: https://habr.com/ru/companies/hh/articles/773910/
Платформа: Android/тестирование
Меня зовут Элчин, я занимаюсь автоматизацией тестирования мобильных приложений в hh.ru и расскажу вам о том, как написать первый тест на Android. В разработке автотестов мы используем Kotlin и нативный фреймворк Kaspresso, о котором я напишу подробней в этой статье. Эта статья рассчитана на начинающих тестировщиков, но, возможно, и более опытные коллеги найдут для себя что-то полезное.
Статья: https://habr.com/ru/companies/hh/articles/773910/
Платформа: Android/тестирование
👍2
Media is too big
VIEW IN TELEGRAM
Twitter UI Clone - клон пользовательского интерфейса Twitter, полностью построенный с помощью Jetpack Compose, вдохновленный недавним внедрением этой технологии в приложение Twitter для Android. Задача состояла в том, чтобы воссоздать пользовательский интерфейс Twitter до мельчайших деталей, и этот проект был выполнен без использования сторонних библиотек. Внутри Jetpack Compose с эффектами, MVVM, Compose Navigation, Material 3.
Twitter UI Clone на GitHub: https://github.com/Mahfoudh-Aggoun/Twitter-UI-clone-jetpack-compose-
Платформа: Android
⭐️: 8
Twitter UI Clone на GitHub: https://github.com/Mahfoudh-Aggoun/Twitter-UI-clone-jetpack-compose-
Платформа: Android
⭐️: 8
👍2