SOLID в Swift. Простое объяснение с примерами для начинающих
Принципы SOLID — это набор пяти основных принципов, которые помогают разработчикам создавать более понятный, гибкий и поддерживаемый код. Так же знание этих принципов довольно часто спрашивают на собеседованиях. Давайте рассмотрим каждый из этих принципов с примерами нарушения и соблюдения на языке Swift.
Статья: https://habr.com/ru/articles/746410/
Платформа: iOS
Принципы SOLID — это набор пяти основных принципов, которые помогают разработчикам создавать более понятный, гибкий и поддерживаемый код. Так же знание этих принципов довольно часто спрашивают на собеседованиях. Давайте рассмотрим каждый из этих принципов с примерами нарушения и соблюдения на языке Swift.
Статья: https://habr.com/ru/articles/746410/
Платформа: iOS
Разбор тестового задания на позицию Android Developer
В данной статье я хотел бы разобрать тестовое задание на позицию Android developer и продемонстрировать свой способ решения.
Статья: https://habr.com/ru/articles/746146/
Платформа: Android
В данной статье я хотел бы разобрать тестовое задание на позицию Android developer и продемонстрировать свой способ решения.
Статья: https://habr.com/ru/articles/746146/
Платформа: Android
👍1
InnerTune - открытый клиент для проигрывания музыки с YouTube. Сделан в Material 3, умеет проигрывать музыку без рекламы, воспроизводить в фоне, искать, управлять библиотеками, кешировать и играть в офлайне, нормализовать громкость и прочее.
InnerTune на GitHub: https://github.com/z-huang/InnerTune
Платформа: Android
⭐️: 1.5K
InnerTune на GitHub: https://github.com/z-huang/InnerTune
Платформа: Android
⭐️: 1.5K
👍2
Анализ приложений Threads
1. Android-приложение Threads
2. Сходство с приложением Instagram
3. iOS-приложение Threads
4. Время запуска Threads
5. Итог
Статья: https://apptractor.ru/develop/analiz-prilozheniy-threads.html
Платформа: iOS/Android
1. Android-приложение Threads
2. Сходство с приложением Instagram
3. iOS-приложение Threads
4. Время запуска Threads
5. Итог
Статья: https://apptractor.ru/develop/analiz-prilozheniy-threads.html
Платформа: iOS/Android
🔥1
Queryable - открытое приложения для iOS, которое использует модель CLIP (Contrastive Language-Image Pre-Training) для автономного поиска в альбоме Фотографий.
В отличие от функции поиска с распознаванием объектов, встроенной в галерею iOS, Queryable позволяет использовать для поиска в галерее фразы на естественном языке, например "коричневая собака сидит на скамейке". Приложение работает в автономном режиме, гарантируя, что конфиденциальность вашего альбома не будет передана никому, включая Apple/Google.
Queryable на GitHub: https://github.com/mazzzystar/Queryable
Платформа: iOS
⭐️: 989
В отличие от функции поиска с распознаванием объектов, встроенной в галерею iOS, Queryable позволяет использовать для поиска в галерее фразы на естественном языке, например "коричневая собака сидит на скамейке". Приложение работает в автономном режиме, гарантируя, что конфиденциальность вашего альбома не будет передана никому, включая Apple/Google.
Queryable на GitHub: https://github.com/mazzzystar/Queryable
Платформа: iOS
⭐️: 989
Как я перестал волноваться и полюбил ошибки в Kotlin корутинах: Мифы обработки ошибок в корутинах
Обработка ошибок является важной частью изучения корутин, т.к. при недостаточном понимании можно легко упустить важные моменты и добавить ошибок в код. В рамках этого материала планируется предоставить объяснения и правила которые помогут проще разобраться как работает механизм обработки ошибок в корутинах.
Статья: https://habr.com/ru/articles/747146/
Платформа: Android
Обработка ошибок является важной частью изучения корутин, т.к. при недостаточном понимании можно легко упустить важные моменты и добавить ошибок в код. В рамках этого материала планируется предоставить объяснения и правила которые помогут проще разобраться как работает механизм обработки ошибок в корутинах.
Статья: https://habr.com/ru/articles/747146/
Платформа: Android
👍1
Модуляризация мобильных приложений в масштабе
Преобразование монолитного приложения в модульную архитектуру - это путь к масштабируемости, и очень важно установить набор правил для построения масштабируемого проекта. Эти правила стали нашим фонарем, позволяющим видеть и решать возникающие проблемы.
Статья: https://engineering.teknasyon.com/modularization-of-mobile-applications-at-scale-df57815ff19a
Платформа: разработка
Преобразование монолитного приложения в модульную архитектуру - это путь к масштабируемости, и очень важно установить набор правил для построения масштабируемого проекта. Эти правила стали нашим фонарем, позволяющим видеть и решать возникающие проблемы.
Статья: https://engineering.teknasyon.com/modularization-of-mobile-applications-at-scale-df57815ff19a
Платформа: разработка
Поставьте
👍, если хотите эту статью на русском.
Medium
Modularization of mobile applications at scale
Here are the best practices of modularization at scale, that we applied in the Getcontact application, by powering feature modularization…
👍6❤1
Используем атрибут @backDeployed для расширения доступности функций
TLDR: для приложений практически бесполезно, может пригодиться тем, кто делает SDK.
В SE 376 Function Back Deployment атрибут был представлен в качестве предложения, после чего он был впервые реализован в Swift 5.8. Многие разработчики ожидали, что эта новая возможность позволит Apple осуществлять обратное развертывание многих функций SwiftUI, однако она оказалась недостаточно гибкой. Давайте погрузимся в эту тему!
Статья: https://apptractor.ru/info/articles/backdeployed.html
Платформа: iOS
TLDR: для приложений практически бесполезно, может пригодиться тем, кто делает SDK.
В SE 376 Function Back Deployment атрибут был представлен в качестве предложения, после чего он был впервые реализован в Swift 5.8. Многие разработчики ожидали, что эта новая возможность позволит Apple осуществлять обратное развертывание многих функций SwiftUI, однако она оказалась недостаточно гибкой. Давайте погрузимся в эту тему!
Статья: https://apptractor.ru/info/articles/backdeployed.html
Платформа: iOS
AppFiles - Mobile Development
Reader - мультиплатформенный (iOS и Android) RSS-ридер, сделанный на Kotlin Mutliplatform и Compose Multiplatform. Кроме них из большого есть Ktor, SQLDelight, Decompose и Kotlin-inject. Reader на GitHub: https://github.com/msasikanth/reader Платформа: кроссплатформа…
Redwood - это библиотека для создания реактивных пользовательских интерфейсов для Android, iOS и веб на языке Kotlin. Redwood объединяет в себе компилятор Compose, дизайн систему и набор экранов, специфичных для конкретной платформы. Redwood - это библиотека, а не фреймворк. Она предназначена для постепенного внедрения в существующий Android-проект с минимальным риском. Использование Redwood в iOS или веб-приложениях более рискованно. В целом авторы говоря, что в настоящее время Redwood находится в стадии разработки и не готов к использованию. Однако вы уже можете протестировать сам подход.
Redwood на GitHub: https://github.com/cashapp/redwood
Платформа: кроссплатформа
⭐️: 1.1K
Redwood на GitHub: https://github.com/cashapp/redwood
Платформа: кроссплатформа
⭐️: 1.1K
GitHub
GitHub - cashapp/redwood: Multiplatform reactive UI for Android, iOS, and web using Kotlin and Jetpack Compose
Multiplatform reactive UI for Android, iOS, and web using Kotlin and Jetpack Compose - cashapp/redwood
❤1
Храним краску с умом: как организовать ресурсы в многомодульном проекте
Привет, меня зовут Никита Чернобрисов, и я делаю Android-приложения в Doubletapp. Полтора года назад мы начали работать над приложением «Яндекс Путешествий» — само приложение доступно в Play Store, а про кейс подробно можно прочитать тут. При старте у нас возникло много архитектурных холиваров, в частности о том, как хранить ресурсы и пользоваться ими. И, как это и заведено, первые решения оказались неудачными. Я расскажу вам, дорогие читатели, удары каких граблей оставили больше следов и к чему мы пришли.
Статья: https://habr.com/ru/companies/doubletapp/articles/745606/
Платформа: Android
Привет, меня зовут Никита Чернобрисов, и я делаю Android-приложения в Doubletapp. Полтора года назад мы начали работать над приложением «Яндекс Путешествий» — само приложение доступно в Play Store, а про кейс подробно можно прочитать тут. При старте у нас возникло много архитектурных холиваров, в частности о том, как хранить ресурсы и пользоваться ими. И, как это и заведено, первые решения оказались неудачными. Я расскажу вам, дорогие читатели, удары каких граблей оставили больше следов и к чему мы пришли.
Статья: https://habr.com/ru/companies/doubletapp/articles/745606/
Платформа: Android
Хабр
Храним краску с умом: как организовать ресурсы в многомодульном проекте
Привет, меня зовут Никита Чернобрисов, и я делаю Android-приложения в Doubletapp . Полтора года назад мы начали работать над приложением «Яндекс Путешествий» — само приложение доступно в Play Store, а...
AppFiles - Mobile Development
Модуляризация мобильных приложений в масштабе Преобразование монолитного приложения в модульную архитектуру - это путь к масштабируемости, и очень важно установить набор правил для построения масштабируемого проекта. Эти правила стали нашим фонарем, позволяющим…
Модуляризация мобильных приложений в масштабе
Преобразование монолитного приложения в модульную архитектуру — это путь к масштабируемости, и очень важно установить набор правил для построения проекта. Это предполагает создание различных типов модулей, каждый из которых служит определенным целям, и выработки правил для них.
• Модули функций
• Модули координаторов
• Модули плагинов
• Модули библиотек
• Модули запуска (лаунчеры)
Перевод: https://apptractor.ru/info/articles/modulyarizatsiya-mobilnyh-prilozheniy-v-masshtabe.html
Платформа: вообще Android, но в целом разработка
Преобразование монолитного приложения в модульную архитектуру — это путь к масштабируемости, и очень важно установить набор правил для построения проекта. Это предполагает создание различных типов модулей, каждый из которых служит определенным целям, и выработки правил для них.
• Модули функций
• Модули координаторов
• Модули плагинов
• Модули библиотек
• Модули запуска (лаунчеры)
Перевод: https://apptractor.ru/info/articles/modulyarizatsiya-mobilnyh-prilozheniy-v-masshtabe.html
Платформа: вообще Android, но в целом разработка
Плавающая кнопка действия в SwiftUI
Floating Action Button (FAB) - это элемент пользовательского интерфейса, используемый в Android и Material Design. Он обозначает кнопку, которая запускает основное действие на конкретном экране.
Несмотря на то что этот элемент пришел из Android, его можно увидеть и в некоторых приложениях для iOS.
Статья: https://sarunw.com/posts/floating-action-button-in-swiftui/
Платформа: iOS
Floating Action Button (FAB) - это элемент пользовательского интерфейса, используемый в Android и Material Design. Он обозначает кнопку, которая запускает основное действие на конкретном экране.
Несмотря на то что этот элемент пришел из Android, его можно увидеть и в некоторых приложениях для iOS.
Статья: https://sarunw.com/posts/floating-action-button-in-swiftui/
Платформа: iOS
Sarunw
Floating Action Button in SwiftUI | Sarunw
iOS doesn't have a Floating Action Button, but we can easily recreate it using what we have in SwiftUI.
❤1
Swift HTTP Types - это библиотеки работы с HTTP-запросами от Apple, предназначенные как для клиентов, так и для серверов. Они обеспечивают общий набор представлений для HTTP-запросов и ответов, ориентируясь на современные возможности HTTP. В ней реализованы основные форматы - HTTPRequest, HTTPResponse и HTTPFields, а также заложены основы для работы со всеми новыми возможностями.
Swift HTTP Types на GitHub: https://github.com/apple/swift-http-types
Платформа: iOS
⭐️: 452
Swift HTTP Types на GitHub: https://github.com/apple/swift-http-types
Платформа: iOS
⭐️: 452
Видео и подкасты за неделю
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
•
(iOS Ru)
Что делать iOS-разработчикам в России?•
(iOS En)
SwiftUI Repeatable Button•
(iOS En)
SwiftUI 5: What’s New In ScrollView•
(iOS En)
Build A To Do List App using SwiftData (Swift Data Tutorials)•
(iOS En)
Becoming an “iOS-lite” developer•
(iOS En)
Build a Live Activity Realtime Polls App with Firebase & APNS Push Token•
(iOS En)
SwiftUI Data Flow with the new Observation•
(iOS En)
SwiftUI Search Bar - How to work with searchable in your iOS and macOS apps•
(And Ru)
Как избежать хаоса: навигация как отдельный логический уровень•
(And En)
Now in Android: 86 - Google Play at I/O, Pixel Fold and Tablet, Google Developer Expert•
(And En)
WorkManager - Android Basics 2023•
(Crs Ru)
Как собрать iOS-фреймворк из исходных файлов на Kotlin•
(Crs En)
Kotlin Multiplatform in Production•
(Crs En)
MVI Compose Multiplatform Contacts List App With Photos (iOS & Android)•
(Dev Ru)
Игры, в которые играют люди на собеседованиях•
(Dev Ru)
Podlodka #324: холакратия — самоорганизующиеся команды•
(Dev Ru)
Как мы за полгода построили работу команды data инженеров от хаоса до порядка (Яна Жежер, СберМаркет)•
(Dev En)
Design and Prototype for iOS 17 in FigmaПосмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
AppTractor
Что делать iOS-разработчикам в России?
В этом видео расскажу в какой ситуации оказались iOS-разработчики в России?
👍2🤮2
This media is not supported in your browser
VIEW IN TELEGRAM
Wavy Slider - это анимированный волнистый слайдер в материальном стиле и индикатор выполнения, аналогичный тому, который появился в медиаплеере Android 13.
Библиотека может быть использована в мультиплатформенных проектах Compose как обычный Material Slider.
Поддерживаются такие целевые платформы, как Android, Desktop и JavaScript.
Она также может быть использована в обычном одноплатформенном Android-проекте с помощью Jetpack Compose или (возможно) XML-видов.
Wavy Slider на GitHub: https://github.com/mahozad/wavy-slider
Платформа: Android
⭐️: 12
Библиотека может быть использована в мультиплатформенных проектах Compose как обычный Material Slider.
Поддерживаются такие целевые платформы, как Android, Desktop и JavaScript.
Она также может быть использована в обычном одноплатформенном Android-проекте с помощью Jetpack Compose или (возможно) XML-видов.
Wavy Slider на GitHub: https://github.com/mahozad/wavy-slider
Платформа: Android
⭐️: 12
Полезные iOS-инструменты для дебаггинга
Любой разработчик наверняка знает, что создание высококачественного приложения требует не только написания кода. Одна из важнейших составляющих достижения успеха в этом деле — эффективная отладка. К счастью, существует множество инструментов, которые помогут быстро и эффективно диагностировать, а также устранять проблемы. В этой статье мы подробно рассмотрим нативные и сторонние инструменты, доступные для отладки iOS-приложений, как использовать эти инструменты для диагностики и устранения распространенных проблем.
Статья: https://habr.com/ru/companies/simbirsoft/articles/747462/
Платформа: iOS
Любой разработчик наверняка знает, что создание высококачественного приложения требует не только написания кода. Одна из важнейших составляющих достижения успеха в этом деле — эффективная отладка. К счастью, существует множество инструментов, которые помогут быстро и эффективно диагностировать, а также устранять проблемы. В этой статье мы подробно рассмотрим нативные и сторонние инструменты, доступные для отладки iOS-приложений, как использовать эти инструменты для диагностики и устранения распространенных проблем.
Статья: https://habr.com/ru/companies/simbirsoft/articles/747462/
Платформа: iOS
❤1👎1🔥1
Делаем эмулятор Android через Terminal
В Android разработке может наступить момент, когда для тестирования приложения на различных устройствах может потребоваться виртуальное устройство. Эмулятор Android легко можно создать с помощью GUI Android Studio, но также можно и с помощью командной строки на macOS. В этой статье я расскажу вам, как именно это сделать!
Статья: https://habr.com/ru/companies/wrike/articles/747154/
Платформа: Android
В Android разработке может наступить момент, когда для тестирования приложения на различных устройствах может потребоваться виртуальное устройство. Эмулятор Android легко можно создать с помощью GUI Android Studio, но также можно и с помощью командной строки на macOS. В этой статье я расскажу вам, как именно это сделать!
Статья: https://habr.com/ru/companies/wrike/articles/747154/
Платформа: Android
Здоровое трение в UX: создание слайдера оплаты
Недавно мы внесли изменения в систему оплаты, позволив пользователям оплачивать покупки непосредственно из корзины с предварительным выбором основных способов оплаты. И хотя эти изменения могут показаться малозаметными, не стоит обманываться, думая, что это всего лишь небольшие доработки. Мы усовершенствовали эту ценную деталь, чтобы обеспечить удобство для наших пользователей и стимулировать рост бизнеса.
Статья: https://apptractor.ru/info/articles/zdorovoe-trenie-v-ux-sozdanie-slaydera-oplaty.html
Платформа: разработка
Недавно мы внесли изменения в систему оплаты, позволив пользователям оплачивать покупки непосредственно из корзины с предварительным выбором основных способов оплаты. И хотя эти изменения могут показаться малозаметными, не стоит обманываться, думая, что это всего лишь небольшие доработки. Мы усовершенствовали эту ценную деталь, чтобы обеспечить удобство для наших пользователей и стимулировать рост бизнеса.
Статья: https://apptractor.ru/info/articles/zdorovoe-trenie-v-ux-sozdanie-slaydera-oplaty.html
Платформа: разработка
👍1
Swift Markdown - это Swift-пакет от Apple для разбора, создания, редактирования и анализа документов в Markdown формате.
В качестве парсера используется реализация cmark-gfm, разработанная на GitHub, поэтому он полностью соответствует спецификации. По мере изменения потребностей сообщества эффективный диалект, реализуемый этой библиотекой, может меняться.
Дерево разметки, предоставляемое этим пакетом, состоит из неизменяемых/постоянных, потокобезопасных, копируемых при записи типов значений, которые копируют только изменившуюся подструктуру.
Swift Markdown на GitHub: https://github.com/apple/swift-markdown
Платформа: iOS
⭐️: 2.3K
В качестве парсера используется реализация cmark-gfm, разработанная на GitHub, поэтому он полностью соответствует спецификации. По мере изменения потребностей сообщества эффективный диалект, реализуемый этой библиотекой, может меняться.
Дерево разметки, предоставляемое этим пакетом, состоит из неизменяемых/постоянных, потокобезопасных, копируемых при записи типов значений, которые копируют только изменившуюся подструктуру.
Swift Markdown на GitHub: https://github.com/apple/swift-markdown
Платформа: iOS
⭐️: 2.3K
GitHub
GitHub - swiftlang/swift-markdown: A Swift package for parsing, building, editing, and analyzing Markdown documents.
A Swift package for parsing, building, editing, and analyzing Markdown documents. - swiftlang/swift-markdown
Как мы запускали демоприложения
Те, кто работал над крупным Android-проектом с множеством модулей, не понаслышке знают, что такие проекты могут долго собираться. Неважно, что мы делаем — исправляем баг или разрабатываем фичу, нам нужно собрать проект, чтобы увидеть, как изменения повлияли на приложение. Мы тратим время на ожидание сборки проекта, и это влияет на продуктивность.
В статье я расскажу, как мы ускорили синхронизацию и сборку проекта, решили проблему лагающей Android Studio с помощью демоприложений, уменьшили простой и улучшили продуктивность разработчиков.
Статья: https://habr.com/ru/companies/tinkoff/articles/747336/
Платформа: Android
Те, кто работал над крупным Android-проектом с множеством модулей, не понаслышке знают, что такие проекты могут долго собираться. Неважно, что мы делаем — исправляем баг или разрабатываем фичу, нам нужно собрать проект, чтобы увидеть, как изменения повлияли на приложение. Мы тратим время на ожидание сборки проекта, и это влияет на продуктивность.
В статье я расскажу, как мы ускорили синхронизацию и сборку проекта, решили проблему лагающей Android Studio с помощью демоприложений, уменьшили простой и улучшили продуктивность разработчиков.
Статья: https://habr.com/ru/companies/tinkoff/articles/747336/
Платформа: Android
👍2