This media is not supported in your browser
VIEW IN TELEGRAM
FittedSheets - реализация Bottom Sheet для iOS, представление View Controller-а внизу экрана. Предлагает произвольные размеры (автоматически подстраиваясь под содержание встроенного контроллера) и поддерживает скроллинг.
FittedSheets на GitHub: https://github.com/gordontucker/FittedSheets
Платформа: iOS
⭐️: 1.1K
FittedSheets на GitHub: https://github.com/gordontucker/FittedSheets
Платформа: iOS
⭐️: 1.1K
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Посмотрите, поделитесь, поставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
•
(iOS Ru)
Топ-10 типичных ошибок iOS-разработчика•
(iOS Ru)
Простой пример Внедрения зависимостей в iOS•
(iOS Ru)
Прожарка Tuist•
(iOS En)
SwiftUI Swipe Actions from Scratch•
(iOS En)
Super Power Scroll Views - SwiftUI•
(iOS En)
SwiftUI: Telegram Dark Mode Animation Challenge•
(iOS En)
WatchOS 10 Heart App Animation Using SwiftUI•
(iOS En)
Phase Animations in iOS 17•
(iOS En)
Say Goodbye to Manual Mock Data: Discover the Power of @SampleBuilder!•
(And Ru)
Gradle Kotlin DSL: о чем умолчали в документации•
(And Ru)
Здоровье вашей Gradle-сборки•
(And Ru)
Советы к собеседованию•
(And En)
New UI for Android Studio•
(And En)
Dependency Management in a Multi-Module Project - THIS Is How You Need to Do It•
(And En)
Create a Wear OS watchface•
(And En)
How to Use CameraX With Android Jetpack Compose To Implement In-App Photo Capturing•
(Crs En)
Release an iOS app with Flutter in 7 steps•
(Crs En)
A Complete Guide for using Dynamic Island in your next Flutter App•
(Dev En)
A Hackers’ Guide to Language Models•
(Mrk Ru)
Публичное собеседование на роль продакт-менеджера по монетизацииПосмотрите, поделитесь, поставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
AppTractor
Топ-10 типичных ошибок iOS-разработчика
Собрал десять их самых частых ошибок.
👍2
Подборка логических задач с собеседований
Офис
Есть компания со штатом в нечетное количество сотрудников. Все сотрудники живут по разным адресам на разном удалении от офиса. Вопрос: существует ли вариант переезда компании, после которого абсолютно все сотрудники смогут добираться на работу быстрее (их путь до офиса сократится)?
Наггетсы
В Макдональдс вы можете заказать куриные наггетсы в коробках по 6, 9 и 20 штук. Каким является максимальное число наггетсов, которое НЕЛЬЗЯ заказать любыми комбинациями этих коробок?
Шарик с гелием
Вы находитесь в автомобиле, где к полу веревочкой привязан шар, наполненный гелием. Окна закрыты. Вы нажимаете на педаль газа. Что произойдет с шаром: переместится он вперед, назад или останется в прежнем положении?
Стакан воды на проигрывателе
Вы поставили стакан воды на диск проигрывателя виниловых пластинок и медленно увеличиваете скорость вращения. Что произойдет раньше: стакан сползет в сторону, стакан опрокинется, вода расплескается?
Зарплата
Три работника хотят вычислить свою среднюю зарплату при условии, что каждый знает свою зарплату, но не может сообщить ее другому напрямую. Обмен информации между людьми возможен, но передаваемые друг другу сообщения не должны содержать какую-либо конкретную информацию об уровне зарплат. Как это сделать?
Офис
Есть компания со штатом в нечетное количество сотрудников. Все сотрудники живут по разным адресам на разном удалении от офиса. Вопрос: существует ли вариант переезда компании, после которого абсолютно все сотрудники смогут добираться на работу быстрее (их путь до офиса сократится)?
Наггетсы
В Макдональдс вы можете заказать куриные наггетсы в коробках по 6, 9 и 20 штук. Каким является максимальное число наггетсов, которое НЕЛЬЗЯ заказать любыми комбинациями этих коробок?
Шарик с гелием
Вы находитесь в автомобиле, где к полу веревочкой привязан шар, наполненный гелием. Окна закрыты. Вы нажимаете на педаль газа. Что произойдет с шаром: переместится он вперед, назад или останется в прежнем положении?
Стакан воды на проигрывателе
Вы поставили стакан воды на диск проигрывателя виниловых пластинок и медленно увеличиваете скорость вращения. Что произойдет раньше: стакан сползет в сторону, стакан опрокинется, вода расплескается?
Зарплата
Три работника хотят вычислить свою среднюю зарплату при условии, что каждый знает свою зарплату, но не может сообщить ее другому напрямую. Обмен информации между людьми возможен, но передаваемые друг другу сообщения не должны содержать какую-либо конкретную информацию об уровне зарплат. Как это сделать?
💩3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
ComposeFadingEdges - это мощная библиотека Compose для Android, которая легко реализует настраиваемые исчезающие края с горизонтальной или вертикальной ориентацией, статичным или прокручиваемым содержимым, видео или рисунком.
ComposeFadingEdges на GitHub: https://github.com/GIGAMOLE/ComposeFadingEdges
Платформа: Android
⭐️: 42
ComposeFadingEdges на GitHub: https://github.com/GIGAMOLE/ComposeFadingEdges
Платформа: Android
⭐️: 42
Универсальные датасорсы в iOS-разработке
В мире iOS-разработки, коллекции – это основной инструмент для представления данных в упорядоченной форме, таких как списки, таблицы, галереи фотографий или медиа-файлов. Они широко используются в различных сервисах, от социальных сетей до медицинских приложений. Однако, для создания эффективных и высокопроизводительных систем, необходимо иметь гибкое и масштабируемое решение для управления данными в коллекциях. Именно здесь на сцену выходят универсальные датасорсы.
Статья: https://habr.com/ru/companies/tensor/articles/763582/
Платформа: iOS
В мире iOS-разработки, коллекции – это основной инструмент для представления данных в упорядоченной форме, таких как списки, таблицы, галереи фотографий или медиа-файлов. Они широко используются в различных сервисах, от социальных сетей до медицинских приложений. Однако, для создания эффективных и высокопроизводительных систем, необходимо иметь гибкое и масштабируемое решение для управления данными в коллекциях. Именно здесь на сцену выходят универсальные датасорсы.
Статья: https://habr.com/ru/companies/tensor/articles/763582/
Платформа: iOS
Возможна ли жизнь после плеймаркета?
Всё не так плохо, как кажется. Мы были готовы к такому исходу событий и заранее изучали альтернативы. В андроиде существует определенное количество мест распространения — я буду их называть альтернативные сторы.
Статья: https://habr.com/ru/companies/alfa/articles/763976/
Платформа: Android
Всё не так плохо, как кажется. Мы были готовы к такому исходу событий и заранее изучали альтернативы. В андроиде существует определенное количество мест распространения — я буду их называть альтернативные сторы.
Статья: https://habr.com/ru/companies/alfa/articles/763976/
Платформа: Android
Использование строковых ресурсов в ViewModel
При создании приложений для Android одним из распространенных "подводных камней" является использование строковых ресурсов во ViewModel.
В этой статье мы выясним, почему включение строковых ресурсов непосредственно в ViewModel может вызвать проблемы, и рассмотрим альтернативные методы их решения.
Статья: https://apptractor.ru/info/articles/ispolzovanie-strokovyh-resursov-v-viewmodel.html
Платформа: Android
При создании приложений для Android одним из распространенных "подводных камней" является использование строковых ресурсов во ViewModel.
В этой статье мы выясним, почему включение строковых ресурсов непосредственно в ViewModel может вызвать проблемы, и рассмотрим альтернативные методы их решения.
Статья: https://apptractor.ru/info/articles/ispolzovanie-strokovyh-resursov-v-viewmodel.html
Платформа: Android
MetaCodable - расширение возможностей реализации
MetaCodable нацелен на повышение эффективности ваших реализаций Codable, предоставляя следующие возможности:
• Позволяет объявлять пользовательские значения
• Позволяет создавать плоскую модель для вложенных значений
• Позволяет создавать композицию из нескольких типов
• Позволяет предоставлять значение по умолчанию в случае сбоев декодирования с помощью
• Позволяет создавать пользовательские стратегии декодирования/кодирования с помощью
• Позволяет игнорировать определенные свойства при декодировании/кодировании с помощью
• Позволяет игнорировать все инициализированные свойства типа при декодировании/кодировании с помощью функции
MetaCodable на GitHub: https://github.com/SwiftyLab/MetaCodable
Платформа: iOS
⭐️: 180
Codable
в Swift с помощью макросов. Фреймворк предоставляет пользовательские макросы, которые могут быть использованы для генерации динамических реализаций Codable. Ядром фреймворка является макрос Codable(), который генерирует реализацию на основе данных, предоставляемых с помощью других макросов.MetaCodable нацелен на повышение эффективности ваших реализаций Codable, предоставляя следующие возможности:
• Позволяет объявлять пользовательские значения
CodingKey
для каждой переменной, вместо того чтобы писать все значения CodingKey
с помощью CodedAt(_:)
, передавая один аргумент.• Позволяет создавать плоскую модель для вложенных значений
CodingKey
с CodedAt(_:)
и CodedIn(_:)
.• Позволяет создавать композицию из нескольких типов
Codable
с помощью CodedAt(_:)
, не передавая никаких аргументов.• Позволяет предоставлять значение по умолчанию в случае сбоев декодирования с помощью
Default(_:)
.• Позволяет создавать пользовательские стратегии декодирования/кодирования с помощью
HelperCoder
и использовать их с помощью CodedBy(_:)
, т.е. LossySequenceCoder
и т.д.• Позволяет игнорировать определенные свойства при декодировании/кодировании с помощью
IgnoreCoding()
, IgnoreDecoding()
и @IgnoreEncoding()
.• Позволяет игнорировать все инициализированные свойства типа при декодировании/кодировании с помощью функции
IgnoreCodingInitialized()
, если они явно не запрошены для декодирования/кодирования путем добавления каких-либо атрибутов кодирования, т.е. CodedIn(_:)
, CodedAt(_:)
, CodedBy(_:)
, Default(_:)
и т.д.MetaCodable на GitHub: https://github.com/SwiftyLab/MetaCodable
Платформа: iOS
⭐️: 180
GitHub
GitHub - SwiftyLab/MetaCodable: Supercharge Swift's Codable implementations with macros meta-programming.
Supercharge Swift's Codable implementations with macros meta-programming. - SwiftyLab/MetaCodable
Как создать Todo-приложение с помощью Cloud Firestore, MVI, Kotlin и Jetpack Compose
6 видео.
Плейлист: https://www.youtube.com/playlist?list=PLA7YMGupLhlGdLMlZQUuplhUfnTQUWxTc
Платформа: Android
6 видео.
Плейлист: https://www.youtube.com/playlist?list=PLA7YMGupLhlGdLMlZQUuplhUfnTQUWxTc
Платформа: Android
❤2
Как начать работу со Swift Concurrency
В видео:
00:00:00 - Введение
00:03:58 - Async await в Swift с примерами кода
00:50:18 - Обертывание существующего асинхронного кода в async/await в Swift
01:09:06 - Async let: параллельный вызов асинхронных функций
01:19:53 - Какую роль играют Task в системе параллелизма Swift?
01:48:00 - Понимание групп задач Swift на примере
02:11:14 - Заключение
Видео: https://www.youtube.com/watch?v=TOIUI369RzU
Платформа: iOS
В видео:
00:00:00 - Введение
00:03:58 - Async await в Swift с примерами кода
00:50:18 - Обертывание существующего асинхронного кода в async/await в Swift
01:09:06 - Async let: параллельный вызов асинхронных функций
01:19:53 - Какую роль играют Task в системе параллелизма Swift?
01:48:00 - Понимание групп задач Swift на примере
02:11:14 - Заключение
Видео: https://www.youtube.com/watch?v=TOIUI369RzU
Платформа: iOS
👍1
Notify - это простое приложение для заметок, созданное с использованием современных средств Android-разработки. Этот проект демонстрирует хорошую реализацию Android-приложения с правильным проектированием архитектуры. Используется: MVVM, Kotlin, корутины, Jetpack Compose UI Toolkit, Android Architecture Components, Dependency Injection, Material Components for Android, Accompanist и Biometric.
Notify на GItHub: https://github.com/aritra-tech/Notify
Платформа: Android
⭐️: 116
Notify на GItHub: https://github.com/aritra-tech/Notify
Платформа: Android
⭐️: 116
Вы не так готовите Kingfisher, или как самураи работают с загрузкой изображений
У самурая нет цели, есть только путь. И никакой самурай уж точно не станет изобретать велосипед, чтобы этот путь проехать. Вот и у меня нет цели дать готовый рецепт — только указать верное направление.
В статье разберемся с тем, как использовать готовые решения, не допуская распространенных ошибок, на которые часто подталкивают авторы библиотек для загрузки и отображения картинок.
Статья: https://habr.com/ru/articles/761772/
Платформа: iOS
У самурая нет цели, есть только путь. И никакой самурай уж точно не станет изобретать велосипед, чтобы этот путь проехать. Вот и у меня нет цели дать готовый рецепт — только указать верное направление.
В статье разберемся с тем, как использовать готовые решения, не допуская распространенных ошибок, на которые часто подталкивают авторы библиотек для загрузки и отображения картинок.
Статья: https://habr.com/ru/articles/761772/
Платформа: iOS
Библиотека Scout — быстрый и безопасный DI на Kotlin
Яндекс выпустил свою DI-библиотеку для Kotlin. Используется в приложении Маркета.
Scout на GitHub: https://github.com/yandex/scout
Статья: https://habr.com/ru/companies/yandex/articles/764920/
Платформа: Android
⭐️: 7
Яндекс выпустил свою DI-библиотеку для Kotlin. Используется в приложении Маркета.
Scout на GitHub: https://github.com/yandex/scout
Статья: https://habr.com/ru/companies/yandex/articles/764920/
Платформа: Android
⭐️: 7
🔥2😱2
Побочные эффекты Jetpack Compose в подробностях
Цель побочных эффектов в Jetpack Compose - обеспечить возможность выполнения операций, не связанных с пользовательским интерфейсом, которые изменяют состояние приложения вне Composable-функции контролируемым и предсказуемым образом.
Побочные эффекты, такие как обновление базы данных или сетевой вызов, должны быть отделены от логики рендеринга пользовательского интерфейса для повышения производительности и удобства сопровождения кода.
Jetpack Compose предоставляет несколько функций Composable, таких как
Статья: https://apptractor.ru/info/articles/pobochnye-effekty-jetpack-compose-v-podrobnostyah.html
Платформа: Android
Цель побочных эффектов в Jetpack Compose - обеспечить возможность выполнения операций, не связанных с пользовательским интерфейсом, которые изменяют состояние приложения вне Composable-функции контролируемым и предсказуемым образом.
Побочные эффекты, такие как обновление базы данных или сетевой вызов, должны быть отделены от логики рендеринга пользовательского интерфейса для повышения производительности и удобства сопровождения кода.
Jetpack Compose предоставляет несколько функций Composable, таких как
SideEffect
, LaunchedEffect
и DisposableEffect
.Статья: https://apptractor.ru/info/articles/pobochnye-effekty-jetpack-compose-v-podrobnostyah.html
Платформа: Android
Papyrus - это типобезопасный HTTP-клиент для Swift. Он превращает ваши API в чистые и лаконичные протоколы Swift, в которых каждая функция представляет собой конечную точку API. А аннотации к протоколу, функциям и параметрам помогают конструировать запросы и декодировать ответы.
Papyrus на GitHub: https://github.com/joshuawright11/papyrus
Платформа: iOS
⭐️: 117
Papyrus на GitHub: https://github.com/joshuawright11/papyrus
Платформа: iOS
⭐️: 117
GitHub
GitHub - joshuawright11/papyrus: A type-safe HTTP client for Swift.
A type-safe HTTP client for Swift. Contribute to joshuawright11/papyrus development by creating an account on GitHub.
Осваиваем фреймворк Observation в Swift
Новый фреймворк Observation в сочетании с функциями Swift Concurrency позволяет заменить Combine, который выглядит устаревшим по мнению Apple. В этой статье мы узнаем, как использовать фреймворк Observation для обработки потоков данных в наших приложениях.
Статья: https://apptractor.ru/info/articles/osvaivaem-freymvork-observation-v-swift.html
Платформа: iOS
Новый фреймворк Observation в сочетании с функциями Swift Concurrency позволяет заменить Combine, который выглядит устаревшим по мнению Apple. В этой статье мы узнаем, как использовать фреймворк Observation для обработки потоков данных в наших приложениях.
Статья: https://apptractor.ru/info/articles/osvaivaem-freymvork-observation-v-swift.html
Платформа: iOS
AppTractor
Осваиваем фреймворк Observation в Swift
В этой статье мы узнаем, как использовать фреймворк Observation для обработки потоков данных в наших приложениях.
Добавление кастомных шрифтов Google в приложение
Видео: https://www.youtube.com/watch?v=9HGbwifxirw
Платформа: Android
Видео: https://www.youtube.com/watch?v=9HGbwifxirw
Платформа: Android
AnyPass - это универсальное решение для управления паролями, генерации паролей и анализа их состояния. Внутри Kotlin, Compose Multiplatform, корутины, Swift, модуляризация, Koin, Firebase, Coil, Ktlint и многое другое.
AnyPass на GitHub: https://github.com/getspherelabs/anypass-kmp
Платформа: Android/кроссплатформа
⭐️: 92
AnyPass на GitHub: https://github.com/getspherelabs/anypass-kmp
Платформа: Android/кроссплатформа
⭐️: 92
👍2
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Поставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
•
(iOS Ru)
Как ускорить сборку проекта и не остановить разработку•
(iOS Ru)
Забудь про UITableView•
(iOS Ru)
Новые подходы к работе с регулярными выражениями в Swift. Просто о сложном•
(iOS Ru)
О дивный новый мир со Swift Concurrency•
(iOS En)
Custom In-App Notification’s – Xcode 15 – SwiftUI Tutorials•
(iOS En)
How to get started with Swift Concurrency (Beginner Tutorial)•
(iOS En)
Changing Status Bar Style in 5 Min's - SwiftUI•
(iOS En)
Build an Air Quality Index App with SwiftUI Map & Google AQI API•
(iOS En)
How to Build a Custom Sheet in SwiftUI•
(iOS En)
New and Deprecated APIs in iOS 17•
(And Ru)
Как устроена логика навигации флоу в приложении Тинькофф•
(And Ru)
Введение в безопасность Android-приложений•
(And Ru)
Удалил один класс, а сломался весь проект: Decoupling•
(And Ru)
Корутинные загадки•
(And Ru)
Измеряем sequence•
(And En)
Now in Android: 92 - Studio Bot expansion, Firebase integration, Android Studio, and much more!•
(And En)
How to Build a Camera App With CameraX - Taking Photos•
(And En)
How to Build a Custom Gradle Plugin to Share Project Config - Multi-Module Architecture•
(And En)
Add Custom Google Fonts in your App•
(And En)
How to make and use BOM (Bill of Materials) dependencies in Android projects•
(Crs Ru)
Генератор межъязыковых мостов для мобильных приложений PyDjinni•
(Crs En)
KMP Hopes & Dreamcatchers with Ritesh GuptaПоставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
AppTractor
Как ускорить сборку проекта и не остановить разработку
Тинькофф Бизнес ускорили холодную сборку до 2 раз.
Подборка видео про новый фреймворк Observation
Новый фреймворк Observation в сочетании с функциями Swift Concurrency позволяет заменить Combine, который выглядит устаревшим по мнению Apple.
• Фреймворк Observation (SwiftUI + iOS 17)
• iOS 17 Data Flow with Observation Framework
• SwiftUI Data Flow in iOS 17 - Observation & @Observable
• SwiftUI Data Flow with the new Observation - simpler SwiftUI code and improved performance in iOS 17
• Swift Observation from Scratch
Платформа: iOS
Новый фреймворк Observation в сочетании с функциями Swift Concurrency позволяет заменить Combine, который выглядит устаревшим по мнению Apple.
• Фреймворк Observation (SwiftUI + iOS 17)
• iOS 17 Data Flow with Observation Framework
• SwiftUI Data Flow in iOS 17 - Observation & @Observable
• SwiftUI Data Flow with the new Observation - simpler SwiftUI code and improved performance in iOS 17
• Swift Observation from Scratch
Платформа: iOS