Почему паттерн Синглтон небезопасен в iOS-разработке
Паттерн Синглтон - это шаблон проектирования, который гарантирует, что класс имеет только один экземпляр и обеспечивает глобальную точку доступа к нему. Хотя в некоторых ситуациях он может быть полезен, паттерн может создать несколько проблем при разработке. Ниже мы рассмотрим, почему синглтоны могут быть проблематичными, и приведем пять примеров с фрагментами кода, чтобы проиллюстрировать эти проблемы.
1. Глобальное состояние и тесная связь
2. Отсутствие четкого управления жизненным циклом
3. Проблемы с параллелизмом
4. Трудности тестирования
5. Скрытые зависимости
Статья: https://apptractor.ru/info/articles/pochemu-pattern-singlton-nebezopasen-v-ios-razrabotke.html
Платформа: iOS
Паттерн Синглтон - это шаблон проектирования, который гарантирует, что класс имеет только один экземпляр и обеспечивает глобальную точку доступа к нему. Хотя в некоторых ситуациях он может быть полезен, паттерн может создать несколько проблем при разработке. Ниже мы рассмотрим, почему синглтоны могут быть проблематичными, и приведем пять примеров с фрагментами кода, чтобы проиллюстрировать эти проблемы.
1. Глобальное состояние и тесная связь
2. Отсутствие четкого управления жизненным циклом
3. Проблемы с параллелизмом
4. Трудности тестирования
5. Скрытые зависимости
Статья: https://apptractor.ru/info/articles/pochemu-pattern-singlton-nebezopasen-v-ios-razrabotke.html
Платформа: iOS
Aptabase - аналитика для приложений. Это альтернатива Firebase/Google Analytics с открытым исходным кодом, специально созданная для мобильных, десктопных и веб-приложений.
Что в ней есть:
📱 Большое количество SDK: Неважно, какой фреймворк или язык вы используете, для вас есть SDK. Swift, React Native, Flutter, Electron, Kotlin и многие другие.
😇 Конфиденциальность на первом месте: Aptabase уделяет первостепенное внимание конфиденциальности пользователей и собирает минимальное количество данных об использовании. Аналитика фокусируется на мониторинге сессий, полностью соблюдая требования GDPR, CCPA и PECR.
🚀 Простота: Встроенный удобный дашборд для всех основных показателей, позволяющий без труда получать информацию и понимать динамику развития ваших приложений.
💯 Открытый исходный код: Исходный код на 100% открыт. В нем нет ничего скрытого. Весь серверный код и SDK доступны вам для ознакомления и внесения своего вклада.
Aptabase на GitHub: https://github.com/aptabase/aptabase
Платформа: аналитика
⭐️: 751
Что в ней есть:
📱 Большое количество SDK: Неважно, какой фреймворк или язык вы используете, для вас есть SDK. Swift, React Native, Flutter, Electron, Kotlin и многие другие.
😇 Конфиденциальность на первом месте: Aptabase уделяет первостепенное внимание конфиденциальности пользователей и собирает минимальное количество данных об использовании. Аналитика фокусируется на мониторинге сессий, полностью соблюдая требования GDPR, CCPA и PECR.
🚀 Простота: Встроенный удобный дашборд для всех основных показателей, позволяющий без труда получать информацию и понимать динамику развития ваших приложений.
💯 Открытый исходный код: Исходный код на 100% открыт. В нем нет ничего скрытого. Весь серверный код и SDK доступны вам для ознакомления и внесения своего вклада.
Aptabase на GitHub: https://github.com/aptabase/aptabase
Платформа: аналитика
⭐️: 751
Видео и подкасты за неделю @AppFiles
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке?
#ios #android #mobile #video
•
(iOS Ru) А так ли нужны акторы в Swift Concurrency?•
(iOS Ru) Swift 5.9: разбираем интероп и «женим» с С++•
(iOS Ru) Реактивный Swift Concurrency•
(iOS En) SwiftUI Custom Time Picker Like Apple Timer App•
(iOS En) iOS 18 TextField Selection API - SwiftUI•
(iOS En) Xcode 16 Navigation Shortcuts in 12 Minutes•
(And Ru) Как запускать задачи в фоне на Android. РАЗБОР•
(And Ru) Эволюция Android тестов с Marathon Test Runner•
(And En) Now in Android: 108 - Android 15 Beta 3, Google AI Studio, Gemini in Android Studio, and more•
(And En) Compose UI for... a Light Switch•
(And En) Write your own Kotlin lint checks•
(And En) Tap it! Shake it! Fling it! Sheep it! - The Compose Gesture Animations Dance•
(And En) Animations with Jetpack Compose•
(And En) 7 Features in Kotlin's Standard Library that You Might Have Overlooked•
(Crs En) How to Share Resources in Compose Multiplatform•
(Crs En) Expect/Actual in Kotlin Multiplatform•
(Crs En) Kotlin Multiplatform Alchemy: Making Gold out of Your Swift Interop•
(Dev Ru) Все софт скиллы — про преодоление страха и силу воли•
(Dev Ru) Что дальше после разработчика в Google•
(Dsg Ru) Роль дизайнера в проектеПосоветуйте в комментариях интересные каналы по мобильной или не очень разработке?
#ios #android #mobile #video
❤1
XCStrings Tool - плагин для генерации констант Swift для каталогов строк и других локализованных строковых ресурсов.
Жесткое кодирование локализованных строк в коде и автоматическое извлечение их компилятором в каталог строк (или старые файлы .strings) отлично работает в небольших проектах, но со временем вы часто обнаруживаете, что такой подход не очень хорошо масштабируется.
Как правило, вы оказываетесь в проигрыше либо по качеству кода, либо по комментариям переводчика, либо по избыточному шаблонному коду, поскольку приходится определять собственные константы, но так быть не должно!
Инструмент XCStrings Tool призван расширить возможности локализации так, чтобы вам не пришлось ничем жертвовать. Для этого он использует ваш каталог строк в качестве источника для генерации элегантного Swift-кода, на который вы можете ссылаться непосредственно во всем вашем проекте.
XCStrings Tool на GitHub: https://github.com/liamnichols/xcstrings-tool
Платформа: iOS
⭐️: 143
Жесткое кодирование локализованных строк в коде и автоматическое извлечение их компилятором в каталог строк (или старые файлы .strings) отлично работает в небольших проектах, но со временем вы часто обнаруживаете, что такой подход не очень хорошо масштабируется.
Как правило, вы оказываетесь в проигрыше либо по качеству кода, либо по комментариям переводчика, либо по избыточному шаблонному коду, поскольку приходится определять собственные константы, но так быть не должно!
Инструмент XCStrings Tool призван расширить возможности локализации так, чтобы вам не пришлось ничем жертвовать. Для этого он использует ваш каталог строк в качестве источника для генерации элегантного Swift-кода, на который вы можете ссылаться непосредственно во всем вашем проекте.
XCStrings Tool на GitHub: https://github.com/liamnichols/xcstrings-tool
Платформа: iOS
⭐️: 143
Мне кажется, или SwiftUI еще не готов к проду? - обсуждение на Reddit
У меня есть приложение, написанное исключительно на SwiftUI, которое продается в App Store уже 2.5 года. По мере того как мои пользователи хранят в приложении все больше данных, а приложение становится все сложнее и требовательнее, я чувствую, что SwiftUI по-прежнему сильно не хватает в различных областях.
Я не говорю о старых версиях SwiftUI. Я имею ввиду современные версии SwiftUI от iOS 16+, хотя на данный момент SwiftUI уже 5 лет.
Вот некоторые недостатки, которые я заметил за эти годы.
Статья: https://apptractor.ru/info/articles/mne-kazhetsya-ili-swiftui-esche-ne-gotov-k-produ-obsuzhdenie-na-reddit.html
Платформа: iOS
У меня есть приложение, написанное исключительно на SwiftUI, которое продается в App Store уже 2.5 года. По мере того как мои пользователи хранят в приложении все больше данных, а приложение становится все сложнее и требовательнее, я чувствую, что SwiftUI по-прежнему сильно не хватает в различных областях.
Я не говорю о старых версиях SwiftUI. Я имею ввиду современные версии SwiftUI от iOS 16+, хотя на данный момент SwiftUI уже 5 лет.
Вот некоторые недостатки, которые я заметил за эти годы.
Статья: https://apptractor.ru/info/articles/mne-kazhetsya-ili-swiftui-esche-ne-gotov-k-produ-obsuzhdenie-na-reddit.html
Платформа: iOS
Как мы создали свой инструмент для доставки сборок Android-приложений
Меня зовут Данил Киселев, я Android-разработчик в AGIMA. В этой статье расскажу, как мы реализовали собственный инструмент для доставки сборок Android-приложений. Цель статьи — сэкономить время команд, которые занимаются разработкой Android-проектов и у которых пока нет подобного решения. Также к статье я прикрепил репозиторий с кодом проекта. Вы можете использовать его как стартовую версию и дорабатывать под свои нужды.
Статья: https://habr.com/ru/companies/agima/articles/824446/
Платформа: Android
Меня зовут Данил Киселев, я Android-разработчик в AGIMA. В этой статье расскажу, как мы реализовали собственный инструмент для доставки сборок Android-приложений. Цель статьи — сэкономить время команд, которые занимаются разработкой Android-проектов и у которых пока нет подобного решения. Также к статье я прикрепил репозиторий с кодом проекта. Вы можете использовать его как стартовую версию и дорабатывать под свои нужды.
Статья: https://habr.com/ru/companies/agima/articles/824446/
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Dropdown - мощное и настраиваемое выпадающее меню на Compose Multiplatform с многими уровнями и анимацией.
Dropdown на GitHub: https://github.com/AndroidPoet/Dropdown
Платформа: Android/кроссплатформа
⭐️: 326
Dropdown на GitHub: https://github.com/AndroidPoet/Dropdown
Платформа: Android/кроссплатформа
⭐️: 326
Настраиваем интерфейс Android-приложения с помощью тем
Поддерживать свежесть и привлекательность приложения очень важно, чтобы обеспечить пользователям приятный опыт. Одним из эффективных методов является придание индивидуальности приложению с помощью поддержки различных тем.
В этой статье мы рассмотрим различные возможности, которые есть у разработчиков для улучшения пользовательского опыта с помощью тем. Мы также поделимся опытом нашей компании в создании тем и расскажем о технических трудностях, с которыми мы столкнулись при их реализации для Android.
Статья: https://apptractor.ru/info/articles/nastraivaem-interfeys-android-prilozheniya-s-pomoschyu-tem.html
Платформа: Android
Поддерживать свежесть и привлекательность приложения очень важно, чтобы обеспечить пользователям приятный опыт. Одним из эффективных методов является придание индивидуальности приложению с помощью поддержки различных тем.
В этой статье мы рассмотрим различные возможности, которые есть у разработчиков для улучшения пользовательского опыта с помощью тем. Мы также поделимся опытом нашей компании в создании тем и расскажем о технических трудностях, с которыми мы столкнулись при их реализации для Android.
Статья: https://apptractor.ru/info/articles/nastraivaem-interfeys-android-prilozheniya-s-pomoschyu-tem.html
Платформа: Android
Маппинг данных в Kotlin
В каждом проекте наступает момент, когда вам нужно отобразить данные из одного класса в другой. Особенно при работе в чистой архитектуре с отдельными моделями для слоев app и data. Давайте рассмотрим несколько способов отображения моделей в Kotlin и их отличия.
Статья: https://apptractor.ru/info/articles/mapping-dannyh-v-kotlin.html
Платформа: Android
В каждом проекте наступает момент, когда вам нужно отобразить данные из одного класса в другой. Особенно при работе в чистой архитектуре с отдельными моделями для слоев app и data. Давайте рассмотрим несколько способов отображения моделей в Kotlin и их отличия.
Статья: https://apptractor.ru/info/articles/mapping-dannyh-v-kotlin.html
Платформа: Android
В дополнение ко вчерашней статье про маппинг данных, вот библиотекам нашего читателя. Entity It - процессор KSP, который генерирует Entity классы и и мапперы для доменных классов.
Entity It на GitHub: https://github.com/yushman/EntityIt
Платформа: Android
⭐️: 4
Если у вас есть свои библиотеки или открытые проекты, немедля присылайте. Будем публиковать!
Entity It на GitHub: https://github.com/yushman/EntityIt
Платформа: Android
⭐️: 4
Если у вас есть свои библиотеки или открытые проекты, немедля присылайте. Будем публиковать!
Типизированные ошибки (typed throws) в Swift с примерами
Типизированные ошибки (typed throws) появились в Xcode 16 и позволяют определять тип ошибки, которую выбрасывает метод. Вместо того чтобы обрабатывать любую ошибку, вы можете обрабатывать конкретные случаи и получать преимущество от проверки во время компиляции для вновь добавленных экземпляров.
Статья: https://apptractor.ru/info/articles/tipizirovannye-oshibki-typed-throws-v-swift-s-primerami.html
Платформа: iOS
Типизированные ошибки (typed throws) появились в Xcode 16 и позволяют определять тип ошибки, которую выбрасывает метод. Вместо того чтобы обрабатывать любую ошибку, вы можете обрабатывать конкретные случаи и получать преимущество от проверки во время компиляции для вновь добавленных экземпляров.
Статья: https://apptractor.ru/info/articles/tipizirovannye-oshibki-typed-throws-v-swift-s-primerami.html
Платформа: iOS
ZLPhotoBrowser - это пикер изображений, подобный Wechat. Поддерживает выбор обычных фотографий, видео, gif и livePhoto. Поддерживает портретный и ландшафтный режимы, редактирования изображений и обрезку видео, темный и светлый режим, настройку шрифтов.
ZLPhotoBrowser на GitHub: https://github.com/longitachi/ZLPhotoBrowser
Платформа: iOS
⭐️: 4.7K
ZLPhotoBrowser на GitHub: https://github.com/longitachi/ZLPhotoBrowser
Платформа: iOS
⭐️: 4.7K
Макросы — напишут код за вас, но есть нюанс…
Макросы — это интересный способ избавиться от шаблонного кода. Могу ли я посоветовать срочно бежать и писать макросы всем? Точно нет. Особенно если никто из команды не знаком с SwiftSyntax.
Если в вашем проекте есть пара мест с шаблонным кодом и планов добавлять много такого же шаблонного кода в будущем нет, тоигра не стоит свеч написание и использование макроса по времени себя не окупит. Но если проблема шаблонного кода стоит остро, то как минимум подумать на эту тему стоит.
Если писать макросы точно не ваш вариант, то можно посмотреть уже написанные другими разработчиками — что-то может пригодиться.
Применять макросы просто и удобно. Это не как с библиотеками, когда нужно смотреть код либы, чтобы понять, что произойдет при ее использовании. Применил макрос и сразу развернул, чтобы увидеть его содержимое.
В общем, при принятии решения стоит ли использовать в проекте макросы (а тем более писать самим) нужно взвешивать все плюсы и минусы относительно потребностей конкретного проекта.
Статья: https://habr.com/ru/companies/kts/articles/826418/
Платформа: iOS
Макросы — это интересный способ избавиться от шаблонного кода. Могу ли я посоветовать срочно бежать и писать макросы всем? Точно нет. Особенно если никто из команды не знаком с SwiftSyntax.
Если в вашем проекте есть пара мест с шаблонным кодом и планов добавлять много такого же шаблонного кода в будущем нет, то
Если писать макросы точно не ваш вариант, то можно посмотреть уже написанные другими разработчиками — что-то может пригодиться.
Применять макросы просто и удобно. Это не как с библиотеками, когда нужно смотреть код либы, чтобы понять, что произойдет при ее использовании. Применил макрос и сразу развернул, чтобы увидеть его содержимое.
В общем, при принятии решения стоит ли использовать в проекте макросы (а тем более писать самим) нужно взвешивать все плюсы и минусы относительно потребностей конкретного проекта.
Статья: https://habr.com/ru/companies/kts/articles/826418/
Платформа: iOS
Android-разработчики в 2024 году: какие нужны скилы и как проходит процесс найма
• Компании реже хотят нанимать джуниоров, им нужны мидлы или синьоры. Сотрудников с небольшим опытом чаще берут в студии и небольшие компании, а в крупные можно попасть через внутренние школы и стажировки.
• Нехватку коммерческого опыта могут компенсировать пет-проекты — иногда достаточно даже одной работы, которая максимально полно раскроет знания и опыт кандидата. Важно, чтобы этот проект был особенным и нетипичным.
• Задачи на первом месте работы могут сильно отличаться в зависимости от компании и проекта. В больших компаниях джуниор может долгое время делать одно и то же, а в стартапе или студии — скорее всего, будет заниматься разнообразными задачами.
• Софтскилы для джуниора могут быть важнее хардов. Работодатели ценят в кандидатах самостоятельность, заинтересованность, умение рассуждать и аккуратность в работе. А самым негативным фактором называют агрессивность и раздражительность.
Статья: https://habr.com/ru/companies/yandex_praktikum/articles/824672/
Платформа: Android
• Компании реже хотят нанимать джуниоров, им нужны мидлы или синьоры. Сотрудников с небольшим опытом чаще берут в студии и небольшие компании, а в крупные можно попасть через внутренние школы и стажировки.
• Нехватку коммерческого опыта могут компенсировать пет-проекты — иногда достаточно даже одной работы, которая максимально полно раскроет знания и опыт кандидата. Важно, чтобы этот проект был особенным и нетипичным.
• Задачи на первом месте работы могут сильно отличаться в зависимости от компании и проекта. В больших компаниях джуниор может долгое время делать одно и то же, а в стартапе или студии — скорее всего, будет заниматься разнообразными задачами.
• Софтскилы для джуниора могут быть важнее хардов. Работодатели ценят в кандидатах самостоятельность, заинтересованность, умение рассуждать и аккуратность в работе. А самым негативным фактором называют агрессивность и раздражительность.
Статья: https://habr.com/ru/companies/yandex_praktikum/articles/824672/
Платформа: Android
Хабр
Android-разработчики в 2024 году: какие нужны скилы и как проходит процесс найма
Команда Яндекс Практикума провела исследование и готова рассказать, как обстоят дела в найме начинающих Android-разработчиков : какие навыки требуются джуниорам для трудоустройства, о чём их...
Интеграция форматирования кода в Android-проекты
Внедрение таких инструментов форматирования кода, как ktfmt, оказалось важным для поддержания качественной кодовой базы. Внедрение ktfmt улучшило читаемость кода, сократило количество человеческих ошибок и способствовало лучшей совместной работе членов команды. Хотя на начальном этапе могут возникнуть некоторые сложности с выбором инструмента форматирования, установкой и настройкой плагина и хука, который форматирует код перед коммитом, долгосрочные преимущества значительно перевешивают их.
Статья: https://apptractor.ru/info/articles/integratsiya-formatirovaniya-koda-v-android-proekty.html
Платформа: Android
Внедрение таких инструментов форматирования кода, как ktfmt, оказалось важным для поддержания качественной кодовой базы. Внедрение ktfmt улучшило читаемость кода, сократило количество человеческих ошибок и способствовало лучшей совместной работе членов команды. Хотя на начальном этапе могут возникнуть некоторые сложности с выбором инструмента форматирования, установкой и настройкой плагина и хука, который форматирует код перед коммитом, долгосрочные преимущества значительно перевешивают их.
Статья: https://apptractor.ru/info/articles/integratsiya-formatirovaniya-koda-v-android-proekty.html
Платформа: Android
Android Crypto Samples - коллекция с примерами кода, дополняющими официальную документацию и объясняющими, как правильно реализовать общие криптографические операции на Android. Это различные алгоритмы симметричного и асимметричного шифрования, хеширования, подписи и верификации, проверка подлинности и т.п.
Android Crypto Samples на GitHub: https://github.com/securevale/android-crypto-samples
Платформа: Android
⭐️: 14
Android Crypto Samples на GitHub: https://github.com/securevale/android-crypto-samples
Платформа: Android
⭐️: 14
Видео и подкасты за неделю @AppFiles
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Делитесь тем, что вы смотрели!
#ios #android #mobile #video
•
(iOS Ru) Как побеждать в конкурсах от Telegram•
(iOS En) SwiftUI Draggable Tab Bar•
(iOS En) SwiftUI Re-Orderable Tab bar•
(iOS En) SwiftUI Swipe to Hide Header•
(iOS En) Mastering Swift Testing: Run Serialized Tests with One Line of Code•
(iOS En) Explicit ViewBuilder•
(iOS En) My Favorite SwiftUI Updates in iOS 18•
(iOS En) Exploring Predictive Code Completion in Xcode 16•
(iOS En) Pomodoro Timer App - SwiftUI•
(And Ru) Переходишь на Compose? Не спеши!•
(And Ru) Как работает ТВ в Android TV?•
(And Ru) Нужны ли Android-разработчики на заводе?•
(And Ru) Gradle DSL изнутри•
(And Ru) Kotlin DSL как единый источник правды для решения многих задач•
(And En) Lifecycles, Coroutines and Scopes•
(And En) Developer first Gradle builds•
(And En) DataFrame: Kotlin's Innovative Approach to Data Structures•
(And En) Texts, dates, numbers, currencies, plurals, etc. App internationalization guide•
(Crs Ru) Multiplatform UI с Compose•
(Crs En) Unit & UI Testing With Compose Multiplatform•
(Crs En) Full Guide to Dependency Injection With Koin for Compose Multiplatform•
(Crs En) Kotlin Multiplatform Libraries Evolution•
(Crs En) React Native & Expo Router Course – Build a Meditation App•
(Dev Ru) Чистый код – не значит правильный: clean code, паттерны, лучшие практики•
(Dev Ru) Менеджмент — ловушка или лучший карьерный путь для разработчика?•
(Dev Ru) Разработка библиотек с использованием подхода Request for Comments•
(Dev Ru) Пишем приложение на Ktor•
(Dev Ru) Kotlin Script: для кого, зачем и как•
(Dev En) AI and Kotlin: A Perfect Mix•
(Dev En) Go for Absolute Beginners – TutorialДелитесь тем, что вы смотрели!
#ios #android #mobile #video
Адаптируем VoiceOver для людей
Меня зовут Женя Тютюев, я iOS-разработчик в компании 2ГИС. Хочу поделиться, как адаптировал наше приложение под VoiceOver:
• делюсь историей про сдвиг парадигмы и как перешёл из стадии «делать, потому что так Эпл советует» в совершенно новую — «делать для людей».
• как разработал новый вид snapshot-тестирования, чтобы ничего не ломалось при добавлении новых неадаптированных элементов.
• описал несколько нюансов, которые важно учесть в работе: escape, динамический расчёт accessibility, укрупнение элементов.
Надеюсь, мой опыт вдохновит принести неоценимую пользу и сделать собственные приложения доступными для большего числа пользователей.
Статья: https://habr.com/ru/companies/2gis/articles/826360/
Платформа: iOS
Меня зовут Женя Тютюев, я iOS-разработчик в компании 2ГИС. Хочу поделиться, как адаптировал наше приложение под VoiceOver:
• делюсь историей про сдвиг парадигмы и как перешёл из стадии «делать, потому что так Эпл советует» в совершенно новую — «делать для людей».
• как разработал новый вид snapshot-тестирования, чтобы ничего не ломалось при добавлении новых неадаптированных элементов.
• описал несколько нюансов, которые важно учесть в работе: escape, динамический расчёт accessibility, укрупнение элементов.
Надеюсь, мой опыт вдохновит принести неоценимую пользу и сделать собственные приложения доступными для большего числа пользователей.
Статья: https://habr.com/ru/companies/2gis/articles/826360/
Платформа: iOS
👍1
DSFDropFilesView - простой класс представления NSView, через которое можно загружать файлы. Поддерживаются Swift, SwiftUI и Objective-C.
DSFDropFilesView на GitHub: https://github.com/dagronf/DSFDropFilesView
Платформа: iOS
⭐️: 24
DSFDropFilesView на GitHub: https://github.com/dagronf/DSFDropFilesView
Платформа: iOS
⭐️: 24
Принципы SOLID на примере iOS-разработки
Привет, меня зовут Антон, я iOS-разработчик в компании Surf. Все программисты хотят писать красивый, масштабируемый и сопровождаемый код, и мобильщики – не исключение. Как в этом помогут принципы SOLID, и зачем они нужны?
Расскажем и покажем на примерах (куда без этого). Кейсы в статье относятся к iOS-разработке, но они будут полезны для всех разработчиков, независимо от стека.
Статья: https://habr.com/ru/companies/surfstudio/articles/826686/
Платформа: iOS
Привет, меня зовут Антон, я iOS-разработчик в компании Surf. Все программисты хотят писать красивый, масштабируемый и сопровождаемый код, и мобильщики – не исключение. Как в этом помогут принципы SOLID, и зачем они нужны?
Расскажем и покажем на примерах (куда без этого). Кейсы в статье относятся к iOS-разработке, но они будут полезны для всех разработчиков, независимо от стека.
Статья: https://habr.com/ru/companies/surfstudio/articles/826686/
Платформа: iOS
👍1
Unit-тесты в Android для начинающего разработчика
Меня зовут Александр Чекунков, я — Android‑разработчик в СБЕРе. Занимаюсь разработкой CSI‑опросов в мобильном приложении «Сбер». Я несу ответственность за функционал, который используют бизнес‑команды для оценки удовлетворённости клиентов.
Часто бывает так, что новый сотрудник, приходя на большой проект, совершенно не знаком с таким понятием как unit‑тестирование. Что это? Как это работает? С чего начать? Такие вопросы часто появляются у начинающих разработчиков.
Этой статьей я бы хотел ответить на эти вопросы, обсудить основы unit-тестирования, рассмотреть основные библиотеки, которые используются на нашем проекте, и привести практические примеры.
Статья: https://habr.com/ru/companies/sberbank/articles/825820/
Платформа: Android
Меня зовут Александр Чекунков, я — Android‑разработчик в СБЕРе. Занимаюсь разработкой CSI‑опросов в мобильном приложении «Сбер». Я несу ответственность за функционал, который используют бизнес‑команды для оценки удовлетворённости клиентов.
Часто бывает так, что новый сотрудник, приходя на большой проект, совершенно не знаком с таким понятием как unit‑тестирование. Что это? Как это работает? С чего начать? Такие вопросы часто появляются у начинающих разработчиков.
Этой статьей я бы хотел ответить на эти вопросы, обсудить основы unit-тестирования, рассмотреть основные библиотеки, которые используются на нашем проекте, и привести практические примеры.
Статья: https://habr.com/ru/companies/sberbank/articles/825820/
Платформа: Android