Прекратите спорить в Code Review — начните внедрять с правилами линтера
Правила линтинга выступают в качестве письменных соглашений об архитектуре кодовой базы и установленных лучших и необходимых практиках команды. Они помогают поддерживать последовательность кодовой базы, устраняя двусмысленности, защищают наши проекты от мелких ошибок и значительно ускоряют написание и рецензирование кода.
Благодаря Konsist мы на Android наконец-то получили долгожданный инструмент, который делает написание правил линтинга простым и доступным, не требующим сложного обучения. Инструмент, который, безусловно, является важной вехой в написании пользовательских правил, благодаря своей гениальной идее переосмыслить их как юнит-тесты.
Статья: https://apptractor.ru/info/articles/prekratite-sporit-v-code-review-nachnite-vnedryat-s-pravilami-lintera.html
Платформа: Android
Правила линтинга выступают в качестве письменных соглашений об архитектуре кодовой базы и установленных лучших и необходимых практиках команды. Они помогают поддерживать последовательность кодовой базы, устраняя двусмысленности, защищают наши проекты от мелких ошибок и значительно ускоряют написание и рецензирование кода.
Благодаря Konsist мы на Android наконец-то получили долгожданный инструмент, который делает написание правил линтинга простым и доступным, не требующим сложного обучения. Инструмент, который, безусловно, является важной вехой в написании пользовательских правил, благодаря своей гениальной идее переосмыслить их как юнит-тесты.
Статья: https://apptractor.ru/info/articles/prekratite-sporit-v-code-review-nachnite-vnedryat-s-pravilami-lintera.html
Платформа: Android
Kotest - это гибкий и элегантный мультиплатформенный фреймворк для тестирования Kotlin с широким спектром утверждений (assertion) и интегрированным тестированием свойств. Есть встроенная поддержка корутинов на каждом уровне, возможность использования функций в качестве обратных вызовов жизненного цикла теста, широкие возможности расширения, расширенная оценка условий, мощное тестирование на основе данных и многое другое. Библиотека утверждений Kotest - это первая мультиплатформенная библиотека утверждений для Kotlin с более чем 300 утверждениями. Она оснащена инспекторами коллекций, помощниками недетерминированных тестов, мягкими утверждениями, модулями для arrow, json, kotlinx-datetime. Ну а модуль тестирования свойств Kotest - это продвинутая мультиплатформенная библиотека тестов свойств с более чем 50 встроенными генераторами.
Kotest на GitHub: https://github.com/kotest/kotest
Платформа: Android/тестирование
⭐️: 4.2K
Kotest на GitHub: https://github.com/kotest/kotest
Платформа: Android/тестирование
⭐️: 4.2K
Кот в мешке: мастерство обработки ошибок внешних ключей SQLite
Сталкивались с загадочными ошибками
Статья: https://habr.com/ru/companies/kts/articles/798607/
Платформа: Android
Сталкивались с загадочными ошибками
Foreign Key
в SQLite для Android? Сегодня мы раскроем завесу тайны и расскажем как извлекать подробную информацию об ошибках этого типа.Статья: https://habr.com/ru/companies/kts/articles/798607/
Платформа: Android
Разработка, управляемая тестами (TDD), для исправления ошибок
Разработка, управляемая тестами — это отличная техника, позволяющая увеличить покрытие кода тестами и одновременно повысить качество кода. Поначалу писать неудачные тесты может быть утомительно, но в результате вы получите более полную реализацию функции, которая охватывает все ожидаемые результаты. Если использовать тесты в сочетании с исправлением ошибок, вы повысите свою уверенность и будете уверены, что ошибка не вернется в будущем.
Статья: https://apptractor.ru/info/articles/razrabotka-upravlyaemaya-testami-tdd-dlya-ispravleniya-oshibok.html
Платформа: потрындеть
Разработка, управляемая тестами — это отличная техника, позволяющая увеличить покрытие кода тестами и одновременно повысить качество кода. Поначалу писать неудачные тесты может быть утомительно, но в результате вы получите более полную реализацию функции, которая охватывает все ожидаемые результаты. Если использовать тесты в сочетании с исправлением ошибок, вы повысите свою уверенность и будете уверены, что ошибка не вернется в будущем.
Статья: https://apptractor.ru/info/articles/razrabotka-upravlyaemaya-testami-tdd-dlya-ispravleniya-oshibok.html
Платформа: потрындеть
This media is not supported in your browser
VIEW IN TELEGRAM
Swift Translate - это CLI-инструмент и плагин Swift Package, который упрощает локализацию вашего приложения. Он деконструирует ваши каталоги строк и отправляет их в модель GPT-3.5-Turbo от OpenAI для перевода. Переводит отдельные каталоги строк или все каталоги в папке, поддерживает два десятка языков, сложные каталоги строк с вариациями и заменами множественного числа и устройств, перевод совершенно новых каталогов или заполнение недостающих переводов для существующих каталогов.
Swift Translate на GItHub: https://github.com/hidden-spectrum/swift-translate
Платформа: iOS
⭐️: 13
Swift Translate на GItHub: https://github.com/hidden-spectrum/swift-translate
Платформа: iOS
⭐️: 13
Автоматизируем рутину в Android разработке: плагин для создания шаблонного кода на примере создания -api -impl модулей
Меня зовут Алексей, я ведущий разработчик платформенной команды и по совместительству лид архитектурной компетенции в проекте Альфа-Бизнес. Сегодня я расскажу, как можно автоматизировать повторяющуюся работу в андроид-разработке при помощи плагина для Android Studio.
Статья: https://habr.com/ru/companies/alfa/articles/799873/
Платформа: Android
Меня зовут Алексей, я ведущий разработчик платформенной команды и по совместительству лид архитектурной компетенции в проекте Альфа-Бизнес. Сегодня я расскажу, как можно автоматизировать повторяющуюся работу в андроид-разработке при помощи плагина для Android Studio.
Статья: https://habr.com/ru/companies/alfa/articles/799873/
Платформа: Android
Swift Playdate Examples - технические демки и руководства по разработке игр на Swift для приставки Playdate.
Playdate - это миниатюрная портативная игровая консоль с ручкой, разработанная компанией Panic, оснащенная процессором Cortex M7 и 1-битным дисплеем с разрешением 400х240. Panic предоставляет SDK для создания игр Playdate на языках C и Lua с соответствующим симулятором. Большинство игр Playdate традиционно пишутся на Lua для простоты разработки, но могут возникнуть проблемы с производительностью, которые требуют дополнительной сложности при использовании C.
Встраиваемый Swift решает эту проблему, сочетая высокоуровневую эргономику с низкоуровневой производительностью, а также обеспечивая гарантии безопасности памяти, что повышает производительность и устраняет распространенный источник ошибок.
Swift Playdate Examples на GitHub: https://github.com/apple/swift-playdate-examples
Платформа: разработка
⭐️: 192
Playdate - это миниатюрная портативная игровая консоль с ручкой, разработанная компанией Panic, оснащенная процессором Cortex M7 и 1-битным дисплеем с разрешением 400х240. Panic предоставляет SDK для создания игр Playdate на языках C и Lua с соответствующим симулятором. Большинство игр Playdate традиционно пишутся на Lua для простоты разработки, но могут возникнуть проблемы с производительностью, которые требуют дополнительной сложности при использовании C.
Встраиваемый Swift решает эту проблему, сочетая высокоуровневую эргономику с низкоуровневой производительностью, а также обеспечивая гарантии безопасности памяти, что повышает производительность и устраняет распространенный источник ошибок.
Swift Playdate Examples на GitHub: https://github.com/apple/swift-playdate-examples
Платформа: разработка
⭐️: 192
Appteka - это альтернативный магазин приложений для Android от Игоря Солкина, Lead of Mobile Design Platform в Авито. Фичи магазина: может извлекать APK, установленные на вашем Android-устройстве, и переносить их на SD-карту, быстрый и простой в использовании, извлекает практически все приложения, включая системные, не требует ROOT-доступа, загружает Apk в специальный Appteka.Store, предусмотрена опция поиска приложений, поддержка функций Android 9.0, возможность резервного копирования и установки Apk с SD-карты, чат в реальном времени для обсуждения приложений.
Appteka на GitHub: https://github.com/solkin/appteka-android
Платформа: Android
⭐️: 230
Appteka на GitHub: https://github.com/solkin/appteka-android
Платформа: Android
⭐️: 230
👍3🤮1
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Что вы интересного посмотрели/послушали про разработку на этой неделе? 🌐 @AppFiles
•
(iOS Ru)
Моменты неотзывчивости iOS-приложений: как найти и исправить•
(iOS Ru)
Swift-уроки: cоздание горизонтального меню с индикатором•
(iOS En)
From Slow to Fast: Profiling SwiftUI Applications for Peak Performance•
(iOS En)
SwiftUI Performance Optimisation: How to manage Data Flow and UI Updates in your iOS and macOS apps•
(iOS En)
MapKit with SwiftUI - Regions, Markers and Annotations and CameraPosition•
(iOS En)
MapKit with SwiftUI - Map Destination Persistence and MockData•
(iOS En)
How to get started with Swift Macros•
(iOS En)
Paginating SwiftData•
(And Ru)
Собеседование по Kotlin (все собеседования)•
(And Ru)
Ultron — фреймворк для тестирования Android UI и Compose•
(And Ru)
Собираем грабли при профилировании Android-приложений•
(And En)
Now in Android: 100 - Android 15 DP 1, Stable Studio Iguana, Cloud Photo Picker, and more•
(And En)
What’s new in Android Studio Iguana•
(And En)
Google for Games Developer Summit 2024•
(And En)
How to Create a Document Scanner App with MLKit•
(And En)
If You Think THIS Is a Best Practice, You're WRONG in 99% of the Cases•
(And En)
The Missing Library of the Compose Multiverse•
(And En)
Making Data Visualizations More Accessible•
(And En)
Imperative, declarative, object oriented, functional: four of a Kotlin kind •
(Crs Ru)
Коллекции во Flutter•
(Dev Ru)
Как принимать решения, строить команды и выбирать инструменты разработки — Павел Щедухин (Ozon Tech)•
(Dev Ru)
Публичное собеседование по System Design•
(Dev Ru)
Мобильная инфраструктура. Взгляд изнутри•
(Dev Ru)
BDUI – удовольствие или боль?•
(Dev Ru)
BDUI на 100%: управляем шиммерами с бэкенда•
(Dev En)
Back End Developer Roadmap 2024•
(Anl Ru)
Аналитика нового продукта «под ключ»Что вы интересного посмотрели/послушали про разработку на этой неделе? 🌐 @AppFiles
AppTractor
Моменты неотзывчивости iOS-приложений: как найти и исправить
В докладе Артём Чирцов, старший разработчик в команде мобильного Супераппа в Яндексе, рассказывает о способах обнаружения моментов неотзывчивости iOS-приложения.
Как и где практиковаться начинающему мобильному разработчику
Меня зовут Миша Вассер. Я руковожу мобильной разработкой в AGIMA, а ещё я наставник и автор на курсе «Android-разработчик» в Яндекс Практикуме. Помню то время, когда я начинал заниматься разработкой, — материалы были в основном на английском, а специализированных курсов было маловато, поэтому приходилось всё искать и практиковаться самостоятельно.
Сегодня постараюсь помочь начинающим мобильным разработчикам и расскажу, как можно прокачивать свои знания и применять их на практике.
Статья: https://habr.com/ru/companies/yandex_praktikum/articles/799923/
Платформа: обучение
Меня зовут Миша Вассер. Я руковожу мобильной разработкой в AGIMA, а ещё я наставник и автор на курсе «Android-разработчик» в Яндекс Практикуме. Помню то время, когда я начинал заниматься разработкой, — материалы были в основном на английском, а специализированных курсов было маловато, поэтому приходилось всё искать и практиковаться самостоятельно.
Сегодня постараюсь помочь начинающим мобильным разработчикам и расскажу, как можно прокачивать свои знания и применять их на практике.
Статья: https://habr.com/ru/companies/yandex_praktikum/articles/799923/
Платформа: обучение
Routine Tracker - это планировщик, который призван упростить управление деятельностью, которую вам необходимо выполнять постоянно. Он сочетает в себе функции приложения-календаря и трекера привычек, позволяя вам хранить все свои действия в одном месте.
Мотивация для этого проекта проста. Автор не смог найти ни одного планировщика или трекера привычек, который бы оценивал, сколько времени вам потребуется для достижения цели, основываясь на вашем прогрессе. Поэтому он решил создать его сам. Цель - создать универсальное решение для планирования и отслеживания проектов, а также планирования ежедневных задач и событий.
Routine Tracker на GitHub: https://github.com/DanielRendox/RoutineTracker
Платформа: Android
⭐️: 79
Мотивация для этого проекта проста. Автор не смог найти ни одного планировщика или трекера привычек, который бы оценивал, сколько времени вам потребуется для достижения цели, основываясь на вашем прогрессе. Поэтому он решил создать его сам. Цель - создать универсальное решение для планирования и отслеживания проектов, а также планирования ежедневных задач и событий.
Routine Tracker на GitHub: https://github.com/DanielRendox/RoutineTracker
Платформа: Android
⭐️: 79
Swiftfin - это современный видеоклиент для медиасервера Jellyfin (от этой же компании - альтернатива проприетарным Emby и Plex, позволяющая передавать медиа с выделенного сервера на устройства конечных пользователей через множество приложений). Плеер написан на Swift, что позволяет максимально использовать возможности VLC для прямого воспроизведения и выглядеть нативно на всех классах устройств Apple.
Swiftfin на GitHub: https://github.com/jellyfin/Swiftfin
Платформа: iOS
⭐️: 2.1K
Swiftfin на GitHub: https://github.com/jellyfin/Swiftfin
Платформа: iOS
⭐️: 2.1K
👍1
Разработка под Android в 2024 году
Эта статья отражает моё личное мнение и профессиональные взгляды, учитывающие различные точки зрения в сообществе Android-разработчиков. Кроме того, я регулярно просматриваю руководства от Google для Android.
Важно подчеркнуть: некоторые хорошие инструменты, паттерны и архитектуры я не упомянул в статье в явном виде, но это не отменяет их потенциал в качестве ценных альтернатив для разработки Android-приложений.
Перевод: https://habr.com/ru/companies/otus/articles/800979/
Платформа: Android
Эта статья отражает моё личное мнение и профессиональные взгляды, учитывающие различные точки зрения в сообществе Android-разработчиков. Кроме того, я регулярно просматриваю руководства от Google для Android.
Важно подчеркнуть: некоторые хорошие инструменты, паттерны и архитектуры я не упомянул в статье в явном виде, но это не отменяет их потенциал в качестве ценных альтернатив для разработки Android-приложений.
Перевод: https://habr.com/ru/companies/otus/articles/800979/
Платформа: Android
Тестирование производительности Swift-кода с помощью XCTest
XCTest — это фреймворк для модульного тестирования для Apple iOS и OS X, который позволяет разработчикам создавать и запускать автоматические тесты. Он предоставляет полный набор инструментов для написания, запуска и анализа модульных тестов и тестов производительности для Swift-приложений. В этой статье мы узнаем, как проводить тестирование производительности в Swift с помощью фреймворка XCTest.
Статья: https://apptractor.ru/info/articles/testirovanie-proizvoditelnosti-swift-koda-s-pomoschyu-xctest.html
Платформа: iOS
XCTest — это фреймворк для модульного тестирования для Apple iOS и OS X, который позволяет разработчикам создавать и запускать автоматические тесты. Он предоставляет полный набор инструментов для написания, запуска и анализа модульных тестов и тестов производительности для Swift-приложений. В этой статье мы узнаем, как проводить тестирование производительности в Swift с помощью фреймворка XCTest.
Статья: https://apptractor.ru/info/articles/testirovanie-proizvoditelnosti-swift-koda-s-pomoschyu-xctest.html
Платформа: iOS
👍1
Gramophone - вменяемый музыкальный плеер, построенный на media3 и библиотеке Material Design, который строго следует стандартам Android. Из фич - современный дизайн на основе Material 3, динамический UI, поиск, синхронизированные тексты песен, управление плейлистами.
Gramophone на GitHub: https://github.com/AkaneTan/Gramophone
Платформа: Android
⭐️: 543
Gramophone на GitHub: https://github.com/AkaneTan/Gramophone
Платформа: Android
⭐️: 543
Android TOML. Просто о каталогах зависимостей в Android Studio
Меня зовут Евгений и я Android-разработчик. Сегодня хотел бы поделиться своими знаниями и наблюдениями относительно нового способа добавления зависимостей в проекты, созданные на базе Android Studio.
Статья: https://habr.com/ru/articles/801287/
Платформа: Android
Меня зовут Евгений и я Android-разработчик. Сегодня хотел бы поделиться своими знаниями и наблюдениями относительно нового способа добавления зависимостей в проекты, созданные на базе Android Studio.
Статья: https://habr.com/ru/articles/801287/
Платформа: Android
🤔1
Интерактивные виджет-подборки в Иви (iOS)
В 2022 году у нас появились первые HomeScreen виджеты, это был первый опыт работы с библиотекой WidgetKit. Затем появились LockScreen виджеты и мы их тоже добавили. А выход iOS 17 и поддержка библиотеки AppIntents в виджетах, знаменовал новый этап в эволюции виджетов.
В этой статье поговорим о том, как мы зарелизили интерактивные виджеты и из чего они состоят: разделение логических слоёв на SPM пакеты, обеспечение качества (unit, snapshot тесты), accessibility и с каким нюансами столкнулись, о которых Apple не рассказывала на WWDC23.
Статья: https://habr.com/ru/companies/ivi/articles/796331/
Платформа: iOS
В 2022 году у нас появились первые HomeScreen виджеты, это был первый опыт работы с библиотекой WidgetKit. Затем появились LockScreen виджеты и мы их тоже добавили. А выход iOS 17 и поддержка библиотеки AppIntents в виджетах, знаменовал новый этап в эволюции виджетов.
В этой статье поговорим о том, как мы зарелизили интерактивные виджеты и из чего они состоят: разделение логических слоёв на SPM пакеты, обеспечение качества (unit, snapshot тесты), accessibility и с каким нюансами столкнулись, о которых Apple не рассказывала на WWDC23.
Статья: https://habr.com/ru/companies/ivi/articles/796331/
Платформа: iOS
🔥1
Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 1
В этом цикле статей мы рассмотрим лучшие практики использования ViewModel в Android, подчеркнем основные «можно» и «нельзя» для повышения качества кода. Мы рассмотрим роль ViewModel в управлении состоянием пользовательского интерфейса и бизнес-логикой, стратегии ленивого внедрения зависимостей и важность реактивного программирования. Кроме того, мы обсудим общие подводные камни, которых следует избегать, такие как неправильная инициализация состояния и раскрытие mutable состояний, предоставив разработчикам исчерпывающее руководство.
Это первая статья из серии и посвящена она инициализации состояния в блоке
Перевод: https://apptractor.ru/info/articles/osvaivaem-viewmodel-v-android-mozhno-i-nelzya-chast-1.html
Платформа: Android
В этом цикле статей мы рассмотрим лучшие практики использования ViewModel в Android, подчеркнем основные «можно» и «нельзя» для повышения качества кода. Мы рассмотрим роль ViewModel в управлении состоянием пользовательского интерфейса и бизнес-логикой, стратегии ленивого внедрения зависимостей и важность реактивного программирования. Кроме того, мы обсудим общие подводные камни, которых следует избегать, такие как неправильная инициализация состояния и раскрытие mutable состояний, предоставив разработчикам исчерпывающее руководство.
Это первая статья из серии и посвящена она инициализации состояния в блоке
init{}
. Всего планируется 15 (!) статей. Перевод: https://apptractor.ru/info/articles/osvaivaem-viewmodel-v-android-mozhno-i-nelzya-chast-1.html
Платформа: Android
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
JTAppleCalendar - календарь для iOS на Swift. Полностью настраиваемый, с настройками ячеек и общего вида, горизонтальным и вертикальным режимом, изменяемыми заголовками, выбором диапазонов и всем прочим.
JTAppleCalendar на GItHub: https://github.com/patchthecode/JTAppleCalendar
Платформа: iOS
⭐️: 7.5K
JTAppleCalendar на GItHub: https://github.com/patchthecode/JTAppleCalendar
Платформа: iOS
⭐️: 7.5K
Вы за это заплатите! Цена Чистой Архитектуры
Меня зовут Артемий, я работаю старшим Android-разработчиком в core-команде RuStore. Мой опыт в индустрии уже 8 лет. За это время я успел поработать в разных проектах и компаниях. У меня был опыт работы на проекте, в котором было свыше 300 модулей и больше 60 Android-разработчиков. Такие условия заставляют задуматься о масштабируемости на принципиально ином уровне.
Сегодня я расскажу о способах обеспечения масштабируемости проекта и как этому может навредить неправильное восприятие Чистой Архитектуры.
Статья: https://habr.com/ru/companies/vk/articles/801393/
Платформа: архитектура
Еще:
• Видео
• В защиту простых архитектур
• Отсутствие архитектуры лучше, чем плохая архитектура
Меня зовут Артемий, я работаю старшим Android-разработчиком в core-команде RuStore. Мой опыт в индустрии уже 8 лет. За это время я успел поработать в разных проектах и компаниях. У меня был опыт работы на проекте, в котором было свыше 300 модулей и больше 60 Android-разработчиков. Такие условия заставляют задуматься о масштабируемости на принципиально ином уровне.
Сегодня я расскажу о способах обеспечения масштабируемости проекта и как этому может навредить неправильное восприятие Чистой Архитектуры.
Статья: https://habr.com/ru/companies/vk/articles/801393/
Платформа: архитектура
Еще:
• Видео
• В защиту простых архитектур
• Отсутствие архитектуры лучше, чем плохая архитектура
✍2