Как заменить стандартное окно сбоя своим экраном ошибки
Наши приложения иногда аварийно завершают работу по причинам, которых мы никогда не ожидали, несмотря на все меры предосторожности, которые мы принимаем против этого. Но вместо того, чтобы всегда показывать пользователю стандартное скучное диалоговое окно сбоя во время возникновения ошибки, замечательно было бы отобразить свой собственный экран, правда?
Статья: https://apptractor.ru/info/articles/kak-zamenit-standartnoe-okno-sboya-svoim-ekranom-oshibki.html
Платформа: Android
Наши приложения иногда аварийно завершают работу по причинам, которых мы никогда не ожидали, несмотря на все меры предосторожности, которые мы принимаем против этого. Но вместо того, чтобы всегда показывать пользователю стандартное скучное диалоговое окно сбоя во время возникновения ошибки, замечательно было бы отобразить свой собственный экран, правда?
Статья: https://apptractor.ru/info/articles/kak-zamenit-standartnoe-okno-sboya-svoim-ekranom-oshibki.html
Платформа: Android
Создание обложки для Wear OS
От создания уникального циферблата для часов на Wear OS до рассуждений о возможностях Wear OS 4 и грядущих Pixel Watch 2 - это видео сокровищница знаний и шуток.
Видео: https://techhype.io/media/create-a-wear-os-watchface/
Платформа: Android
От создания уникального циферблата для часов на Wear OS до рассуждений о возможностях Wear OS 4 и грядущих Pixel Watch 2 - это видео сокровищница знаний и шуток.
Видео: https://techhype.io/media/create-a-wear-os-watchface/
Платформа: Android
Cashew - это полноценное многофункциональное приложение, предназначенное для эффективного управления финансами. Созданное с использованием Flutter, SQL-пакета Drift и Firebase, это приложение обеспечивает плавное и интуитивно понятное управление финансами на различных устройствах.
Cashew на GitHub: https://github.com/jameskokoska/Cashew/
Платформа: Flutter/кроссплатформа
⭐️: 96
Cashew на GitHub: https://github.com/jameskokoska/Cashew/
Платформа: Flutter/кроссплатформа
⭐️: 96
Дебаггинг приложения без Xcode. Зачем?
Мы упростили жизнь нашим тестировщикам. Они теперь могут много вещей делать сами, не обращаясь к разработчикам.
Мы получили дебаггинг без Xcode. Разработчик может просто открыть симулятор, когда ему лень собирать проект. Он может открыть приложение, запустить дебаг меню и посмотреть логи, которых может быть вполне достаточно, из-за этого даже не стоит подключать Xcode.
У нас много интересных задач, например, изменение размера экрана. Наши разработчики всегда готовы браться за задачи для дебаг меню — ими просто интересно заниматься.
Статья: https://habr.com/ru/companies/alfa/articles/763596/
Платформа: iOS
Мы упростили жизнь нашим тестировщикам. Они теперь могут много вещей делать сами, не обращаясь к разработчикам.
Мы получили дебаггинг без Xcode. Разработчик может просто открыть симулятор, когда ему лень собирать проект. Он может открыть приложение, запустить дебаг меню и посмотреть логи, которых может быть вполне достаточно, из-за этого даже не стоит подключать Xcode.
У нас много интересных задач, например, изменение размера экрана. Наши разработчики всегда готовы браться за задачи для дебаг меню — ими просто интересно заниматься.
Статья: https://habr.com/ru/companies/alfa/articles/763596/
Платформа: iOS
На 65% меньше APK и на 70% меньше потребление памяти: как мы оптимизировали приложение для Android
1. Правила Proguard
2. Png в Webp
3. Удаление неиспользуемых ресурсов
4. Добавление ResConfigs
5. Работа с ассетами приложения
6. Оптимизация шрифтов
7. Пакеты приложений для Android (AAB)
Статья: https://apptractor.ru/info/articles/na-65-menshe-apk-i-na-70-menshe-potreblenie-pamyati-kak-my-optimizirovali-prilozhenie-dlya-android.html
Платформа: Android
1. Правила Proguard
2. Png в Webp
3. Удаление неиспользуемых ресурсов
4. Добавление ResConfigs
5. Работа с ассетами приложения
6. Оптимизация шрифтов
7. Пакеты приложений для Android (AAB)
Статья: https://apptractor.ru/info/articles/na-65-menshe-apk-i-na-70-menshe-potreblenie-pamyati-kak-my-optimizirovali-prilozhenie-dlya-android.html
Платформа: Android
❤1
Анимация сердца из WatchOS 10
В этом видео автор показывает, как создать анимацию сердца из WatchOS 10 с помощью SwiftUI.
Видео:вот - https://youtu.be/kZKI-BImtLE . А ссылкой на канал поделишься? :)
Платформа: iOS
В этом видео автор показывает, как создать анимацию сердца из WatchOS 10 с помощью SwiftUI.
Видео:
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