OpenAI API client for Kotlin - клиент для API OpenAI с возможностями мультиплатформенной работы и корутинами. Может работать со множеством режимов - дополнение, чатом, редактирование, генерацией изображений и т.п. В исходниках есть пример готового приложения.
OpenAI API client for Kotlin на GitHub: https://github.com/aallam/openai-kotlin
Платформа: Android (напомню, что есть такое и для Swift - вот, например)
⭐️: 714
OpenAI API client for Kotlin на GitHub: https://github.com/aallam/openai-kotlin
Платформа: Android (напомню, что есть такое и для Swift - вот, например)
⭐️: 714
GitHub
GitHub - aallam/openai-kotlin: OpenAI API client for Kotlin with multiplatform and coroutines capabilities.
OpenAI API client for Kotlin with multiplatform and coroutines capabilities. - aallam/openai-kotlin
👍3
Самоучитель программирования Dart для абсолютных новичков
В этом 8-часовом курсе мы погрузимся в язык программирования Dart. Этот курс разработан таким образом, чтобы его могли пройти начинающие программисты, программисты с опытом кодирования на каком-либо другом языке и вообще не программисты. Flutter использует Dart и позволяет создавать приложения для iOS, Android, Web и Desktop с единой кодовой базой. Таким образом, важно освоить Dart, прежде чем переходить к Flutter.
Видео: https://www.youtube.com/watch?v=Fqcsow_7go4
Платформа: программирование
В этом 8-часовом курсе мы погрузимся в язык программирования Dart. Этот курс разработан таким образом, чтобы его могли пройти начинающие программисты, программисты с опытом кодирования на каком-либо другом языке и вообще не программисты. Flutter использует Dart и позволяет создавать приложения для iOS, Android, Web и Desktop с единой кодовой базой. Таким образом, важно освоить Dart, прежде чем переходить к Flutter.
Видео: https://www.youtube.com/watch?v=Fqcsow_7go4
Платформа: программирование
YouTube
Dart Programming Tutorial For Absolute Beginners | Master Dart In 8 Hours | Flutter Tutorial Pt 1
In this 8 hour course, we are going to dive into the Dart programming language. This course is designed such that beginners, programmers with coding experience in some other language and non programmers are able to follow along. Flutter uses Dart and allows…
❤1
Как протестировать компонент навигации в Jetpack Compose?
Тестирование важно для гарантии того, что ваш код ведет себя так, как ожидается, и для повышения качества вашего проекта путем выявления ошибок на ранних стадиях процесса разработки. В этой статье мы узнаем, как протестировать компонент Navigation в Jetpack Compose.
Статья: https://medium.com/huawei-developers/how-to-test-the-navigation-component-in-jetpack-compose-1ab4ccaba761
Платформа: Android
Тестирование важно для гарантии того, что ваш код ведет себя так, как ожидается, и для повышения качества вашего проекта путем выявления ошибок на ранних стадиях процесса разработки. В этой статье мы узнаем, как протестировать компонент Navigation в Jetpack Compose.
Статья: https://medium.com/huawei-developers/how-to-test-the-navigation-component-in-jetpack-compose-1ab4ccaba761
Платформа: Android
Medium
How to Test the Navigation Component in Jetpack Compose?
In this article, we will learn how to test the Jetpack Navigation component.
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
•
(iOS Ru)
Музыка в iOS приложениях: подводные камни при разработке•
(iOS En)
CocoaHeadsNL Meetup: 25 May 2023•
(iOS En)
Result Builders in Action: Simplifying HTML Generation in Swift•
(iOS En)
SwiftUI PreferenceKeys•
(iOS En)
Basic Physics in RealityKit: Roll-A-Ball game•
(iOS En)
3 tips to write BETTER Swift code•
(And Ru)
Ускоряем написание кода•
(And En)
Studio Bot - Android Developers Backstage•
(And En)
New Jetpack Compose BasicTextField2•
(And En)
Full Guide to Nested Navigation Graphs in Jetpack Compose•
(And En)
How to Build a Home Screen Widget in Jetpack Compose with Glance•
(Mlt En)
Create a game with libGDX•
(Mlt En)
Multiplatform Secrets with Philipp Lackner•
(Mlt En)
Самоучитель программирования Dart для абсолютных новичков•
(Dev Ru)
Состояние дел в Fuchsia•
(Dev Ru)
Доступность для всех•
(Dev Ru)
It is fine или как эффективно выгореть•
(Dev Ru)
Podlodka #321: SQLПосмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
AppTractor
Музыка в iOS приложениях: подводные камни при разработке
Разработка функциональности, связанной с аудио, таит в себе много неожиданных кейсов, которые либо отнимут приличное количество вашего времени, либо обернутся большим негативом от пользователей. Екатерина Батеева (Одноклассники) расскажет, как в ее команде…
This media is not supported in your browser
VIEW IN TELEGRAM
Highlightr - это библиотека подсветка синтаксиса для iOS и macOS, созданная на Swift. Она использует highlight.js в качестве ядра, поддерживает 185 языков и поставляется с 89 стилями. Принимает вашу строку с кодом и возвращает NSAttributtedString с правильной подсветкой синтаксиса.
Highlightr на GitHub: https://github.com/raspu/Highlightr
Платформа: iOS
⭐️: 1.5K
Highlightr на GitHub: https://github.com/raspu/Highlightr
Платформа: iOS
⭐️: 1.5K
Async/await против GCD
Всем привет, меня зовут Маринин Алексей и я работаю в компании Озон на позиции ведущего разработчика мобильных приложений. Сегодня я хотел бы немного поговорить о том, как async/await могут улучшить нашу жизнь, заменив привычные инструменты.
Статья: https://apptractor.ru/info/articles/async-await-protiv-gcd.html
Платформа: iOS
Всем привет, меня зовут Маринин Алексей и я работаю в компании Озон на позиции ведущего разработчика мобильных приложений. Сегодня я хотел бы немного поговорить о том, как async/await могут улучшить нашу жизнь, заменив привычные инструменты.
Статья: https://apptractor.ru/info/articles/async-await-protiv-gcd.html
Платформа: iOS
Как не писать сетевой слой в Android-приложениях с помощью автоматической генерации OpenAPI
Разрабатываемые приложения со временем имеют свойство увеличиваться и обрастать новой функциональностью. Как правило, сетевой слой при этом также разрастается, порой до немыслимых размеров. Поддерживать все это руками в какой-то момент становится довольно сложно. Мы отлично прочувствовали на себе все «прелести» такого подхода и в определенный момент решили обратить взор на возможности автоматической генерации. Поиски увенчались успехом, и теперь при разработке мы не пишем ни строчки сетевого кода сами.
Статья: https://habr.com/ru/articles/737010/
Платформа: Android
Разрабатываемые приложения со временем имеют свойство увеличиваться и обрастать новой функциональностью. Как правило, сетевой слой при этом также разрастается, порой до немыслимых размеров. Поддерживать все это руками в какой-то момент становится довольно сложно. Мы отлично прочувствовали на себе все «прелести» такого подхода и в определенный момент решили обратить взор на возможности автоматической генерации. Поиски увенчались успехом, и теперь при разработке мы не пишем ни строчки сетевого кода сами.
Статья: https://habr.com/ru/articles/737010/
Платформа: Android
Хабр
Как не писать сетевой слой в Android-приложениях с помощью автоматической генерации OpenAPI
Разрабатываемые приложения со временем имеют свойство увеличиваться и обрастать новой функциональностью. Как правило, сетевой слой при этом также разрастается, порой до немыслимых размеров....
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Mina Box - библиотека “ленивой загрузки” для Jetpack Compose. Mina box позволяет отображать постепенно загружаемые элементы на 2D-плоскости. Она построена на основе LazyLayout и предоставляет методы для регистрации элементов и обработки прокрутки на плоскости. Поверх нее уже сделано несколько проектов, например, для ленивой загрузки таблиц.
Mina Box на GitHub: https://github.com/oleksandrbalan/minabox
Платформа: Android
⭐️: 54
Mina Box на GitHub: https://github.com/oleksandrbalan/minabox
Платформа: Android
⭐️: 54
Начинаем работу с Detekt, статическим анализатором кода для Android
Как вы знаете, процесс code review занимает все больше времени по мере роста команды разработчиков. В этой статье я расскажу об инструменте, который облегчает этот процесс.
С помощью инструмента под названием Detekt вы можете выполнить любые проверки классов, написанных на Kotlin, запустить процесс ревью кода в любое время (например, перед коммитом) и сэкономить время.
Статья: https://apptractor.ru/info/articles/nachinaem-rabotu-s-detekt-staticheskim-analizatorom-koda-dlya-android.html
Платформа: Android
Как вы знаете, процесс code review занимает все больше времени по мере роста команды разработчиков. В этой статье я расскажу об инструменте, который облегчает этот процесс.
С помощью инструмента под названием Detekt вы можете выполнить любые проверки классов, написанных на Kotlin, запустить процесс ревью кода в любое время (например, перед коммитом) и сэкономить время.
Статья: https://apptractor.ru/info/articles/nachinaem-rabotu-s-detekt-staticheskim-analizatorom-koda-dlya-android.html
Платформа: Android
👍2
Лучший способ структурировать iOS-проект
Важно поддерживать структуру проекта в чистоте и порядке. Когда вы работаете над большим проектом с сотнями файлов в большой команде, вы хотите, чтобы вы и ваши товарищи могли найти все, что вам нужно, в течение нескольких секунд. Проект должен быть организован с самого начала, и все члены команды должны следовать той структуре, которая у вас есть, потому что некоторые разработчики могут уйти, а новые могут присоединиться.
Статья: https://apptractor.ru/info/articles/luchshiy-sposob-strukturirovat-ios-proekt.html
Платформа: iOS
Важно поддерживать структуру проекта в чистоте и порядке. Когда вы работаете над большим проектом с сотнями файлов в большой команде, вы хотите, чтобы вы и ваши товарищи могли найти все, что вам нужно, в течение нескольких секунд. Проект должен быть организован с самого начала, и все члены команды должны следовать той структуре, которая у вас есть, потому что некоторые разработчики могут уйти, а новые могут присоединиться.
Статья: https://apptractor.ru/info/articles/luchshiy-sposob-strukturirovat-ios-proekt.html
Платформа: iOS
This media is not supported in your browser
VIEW IN TELEGRAM
Офер в Яндекс за два дня
Приходите на Weekend Offer Mobile 17–18 июня. Всего за 2 дня можно пройти все технические секции, пообщаться с нанимающими командами и получить офер.
Ищем мобильных разработчиков на iOS, Android и Flutter с опытом от 3 лет. Приглашаем в один из наших офисов в России и Беларуси, также нанимаем в международные хабы в Армении, Казахстане и Сербии.
Регистрация заканчивается 12 июня.
Подробности ищите здесь
Приходите на Weekend Offer Mobile 17–18 июня. Всего за 2 дня можно пройти все технические секции, пообщаться с нанимающими командами и получить офер.
Ищем мобильных разработчиков на iOS, Android и Flutter с опытом от 3 лет. Приглашаем в один из наших офисов в России и Беларуси, также нанимаем в международные хабы в Армении, Казахстане и Сербии.
Регистрация заканчивается 12 июня.
Подробности ищите здесь
💩5👍2
Dot Globe - глобус из точек на SceneKit и Metal. Применим в UIKit и SwiftUI, можно менять цвета, мерцание, размеры, включать и выключать частицы.
Dot Globe на GitHub: https://github.com/inventhq/dot-globe
Платформа: iOS
⭐️: 54
Dot Globe на GitHub: https://github.com/inventhq/dot-globe
Платформа: iOS
⭐️: 54
«Этот маленький остров меняет все» — опыт проектирования Live Activity в Lyft
Для нас Live Activities — это не просто новый виджет, мы рассматриваем его как совершенно новый способ получить удовольствие от поездки с Lyft на iOS.
Статья: https://apptractor.ru/info/articles/etot-malenkiy-ostrov-menyaet-vse-opyt-proektirovaniya-live-activity-v-lyft.html
Платформа: iOS/дизайн
Для нас Live Activities — это не просто новый виджет, мы рассматриваем его как совершенно новый способ получить удовольствие от поездки с Lyft на iOS.
Статья: https://apptractor.ru/info/articles/etot-malenkiy-ostrov-menyaet-vse-opyt-proektirovaniya-live-activity-v-lyft.html
Платформа: iOS/дизайн
This media is not supported in your browser
VIEW IN TELEGRAM
Jetpack Compose: HorizontalPager с PagerIndicator и бесконечной прокруткой
Пример реализации бесконечной листалки с индикатором на Jetpack Compose.
Статья: https://medium.com/@k.ibrushi/jetpack-compose-horizontalpager-with-pagerindicator-infinity-scroll-32f6e9357974
Платформа: Android
Пример реализации бесконечной листалки с индикатором на Jetpack Compose.
Статья: https://medium.com/@k.ibrushi/jetpack-compose-horizontalpager-with-pagerindicator-infinity-scroll-32f6e9357974
Платформа: Android
Forwarded from inDrive.Tech
🔍 Предложите идеи по улучшению безопасности и инклюзивности ride-hailing-сервисов на хакатоне inCode
inDrive организует международное соревнование для инженеров, у которых есть идеи, как сделать поездки ещё безопаснее и доступнее для пользователей.
Приглашаем технических специалистов со всего мира поучаствовать в хакатоне inCode. Соберите команду от 1 до 6 человек, бросьте вызов несправедливости и разделите призовой фонд в размере €16,000.
Выберите одно из трёх направлений:
• Улучшение безопасности поездок для пассажиров и водителей;
• Повышение доступности для людей с ограниченными возможностями;
• Создание своего идеального ride-hailing-сервиса.
➡️ Зарегистрируйтесь на inCode 2023
inDrive организует международное соревнование для инженеров, у которых есть идеи, как сделать поездки ещё безопаснее и доступнее для пользователей.
Приглашаем технических специалистов со всего мира поучаствовать в хакатоне inCode. Соберите команду от 1 до 6 человек, бросьте вызов несправедливости и разделите призовой фонд в размере €16,000.
Выберите одно из трёх направлений:
• Улучшение безопасности поездок для пассажиров и водителей;
• Повышение доступности для людей с ограниченными возможностями;
• Создание своего идеального ride-hailing-сервиса.
➡️ Зарегистрируйтесь на inCode 2023
Kamel - это библиотека асинхронной загрузки мультимедиа для Compose Multiplatform. Она предоставляет простой, настраиваемый и эффективный способ загрузки, кэширования, декодирования и отображения изображений в вашем приложении. По умолчанию для загрузки ресурсов используется клиент Ktor.
Kamel на GitHub: https://github.com/Kamel-Media/Kamel
Платформа: Android/кроссплатформа
⭐️: 220
Kamel на GitHub: https://github.com/Kamel-Media/Kamel
Платформа: Android/кроссплатформа
⭐️: 220
GitHub
GitHub - Kamel-Media/Kamel: Kotlin asynchronous media loading and caching library for Compose.
Kotlin asynchronous media loading and caching library for Compose. - GitHub - Kamel-Media/Kamel: Kotlin asynchronous media loading and caching library for Compose.
Исследуем выделения кучи в Android в jemalloc 'new'
Jemalloc 'new' - это распределитель кучи libc, представленный в Android 10. Несмотря на общее название с jemalloc и некоторые функции, его бэкенд сильно отличается. Публичных исследований на эту тему не так много. Более того, несмотря на появление распределителя scudo в Android 11, многие устройства все еще используют "новый" jemalloc, в том числе и Samsung Galaxy S23. По всем этим причинам статья на эту тему кажется актуальной.
Статья: https://www.synacktiv.com/publications/exploring-android-heap-allocations-in-jemalloc-new
Платформа: Android
Jemalloc 'new' - это распределитель кучи libc, представленный в Android 10. Несмотря на общее название с jemalloc и некоторые функции, его бэкенд сильно отличается. Публичных исследований на эту тему не так много. Более того, несмотря на появление распределителя scudo в Android 11, многие устройства все еще используют "новый" jemalloc, в том числе и Samsung Galaxy S23. По всем этим причинам статья на эту тему кажется актуальной.
Статья: https://www.synacktiv.com/publications/exploring-android-heap-allocations-in-jemalloc-new
Платформа: Android
Почему Swift так медленно компилирует этот код?
Я написал простую функцию быстрой сортировки из 6 строк для бенчмарка Rust (1.65), Swift 5.7 и Python3.11.
• Длина массива составляет 999,999.
• Rust скомпилировался примерно за минуту, а время выполнения составило 2 секунды
• Время работы Python3.11 составило 5 секунд
• А Swift... он компилируется уже больше часа
Когда я пробовал для 99,999 чисел, компиляция заняла 4:30 минуты, а время выполнения составило 0,51 мс (по сравнению с 0,29 мс у Python и 0,12 мс у Rust с компиляцией за 2 секунды)
Обсуждение на форуме Swift: https://forums.swift.org/t/why-is-swift-so-slow-timeout-in-compiling-this-code/61382/11
Платформа: iOS/Swift
Я написал простую функцию быстрой сортировки из 6 строк для бенчмарка Rust (1.65), Swift 5.7 и Python3.11.
• Длина массива составляет 999,999.
• Rust скомпилировался примерно за минуту, а время выполнения составило 2 секунды
• Время работы Python3.11 составило 5 секунд
• А Swift... он компилируется уже больше часа
Когда я пробовал для 99,999 чисел, компиляция заняла 4:30 минуты, а время выполнения составило 0,51 мс (по сравнению с 0,29 мс у Python и 0,12 мс у Rust с компиляцией за 2 секунды)
Обсуждение на форуме Swift: https://forums.swift.org/t/why-is-swift-so-slow-timeout-in-compiling-this-code/61382/11
Платформа: iOS/Swift
Swift Forums
Why is Swift so slow (timeout) in compiling this code?
I wrote a simple 6 lines quick sort function for benchmarking Rust (1.65), Swift 5.7 and Python3.11. The array length is 999,999. Rust compiled in about a minute and the runtime was 2 secs💨. Python3.11's runtime was 5 secs👀. And Swift... it's been compiling…
Food App SwiftUI - готовое приложение для доставки еды на SwiftUI, MVVM, Combine. Есть онбординг, категории, популярные блюда, рекомендации, просмотр конкретных карточек.
Food App на GitHub: https://github.com/YogeshPateliOS/FoodAppSwiftUI
Платформа: iOS
⭐️: 24
Food App на GitHub: https://github.com/YogeshPateliOS/FoodAppSwiftUI
Платформа: iOS
⭐️: 24
👍2
Как мы на 20% повысили скорость запуска приложения с помощью Baseline Profiles
В этой статье расскажу, как внедрить инструмент, оценить его работу на production приложении, немного погружу в историю компиляторов в целом и рассмотрю более продвинутые сценарии для генерации Profile.
Демонстрировать это я буду на нашем приложении Дринкит. Поехали!
Статья: https://habr.com/ru/companies/dododev/articles/739064/
Платформа: Android
В этой статье расскажу, как внедрить инструмент, оценить его работу на production приложении, немного погружу в историю компиляторов в целом и рассмотрю более продвинутые сценарии для генерации Profile.
Демонстрировать это я буду на нашем приложении Дринкит. Поехали!
Статья: https://habr.com/ru/companies/dododev/articles/739064/
Платформа: Android