Основы работы с Canvas API в Flutter
Недавно мы рассказывали, как реализовать собственный график на Flutter с помощью Canvas. Однако возможности Canvas API гораздо шире — вы можете построить и анимировать сложные графические объекты для вашего приложения.
Как это сделать, объясняется в гайде:
https://www.raywenderlich.com/26483389-flutter-canvas-api-getting-started
#flutter
Недавно мы рассказывали, как реализовать собственный график на Flutter с помощью Canvas. Однако возможности Canvas API гораздо шире — вы можете построить и анимировать сложные графические объекты для вашего приложения.
Как это сделать, объясняется в гайде:
https://www.raywenderlich.com/26483389-flutter-canvas-api-getting-started
#flutter
👍10❤4👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Создание bottom sheet на Compose при помощи расширений Kotlin
В статье рассмотрена реализация bottom sheet на Jetpack Compose, в основе которой
https://proandroiddev.com/jetpack-compose-bottom-sheet-over-android-view-using-kotlin-extension-7fecfa8fe369
#android #compose
В статье рассмотрена реализация bottom sheet на Jetpack Compose, в основе которой
ModalBottomSheetLayout:https://proandroiddev.com/jetpack-compose-bottom-sheet-over-android-view-using-kotlin-extension-7fecfa8fe369
#android #compose
👍10
SwiftyMocky — фреймворк для unit-тестирования на iOS
SwiftyMocky генерирует «заглушки» для зависимостей в iOS-приложении. С помощью фреймворка можно проверить результаты вызовов и настроить тестовые значения для свойств и методов.
SwiftyMocky активно используется в крупных проектах, например, от «СберМаркета» или Vivid Money.
Документация: https://github.com/MakeAWishFoundation/SwiftyMocky
#ios #тестирование
SwiftyMocky генерирует «заглушки» для зависимостей в iOS-приложении. С помощью фреймворка можно проверить результаты вызовов и настроить тестовые значения для свойств и методов.
SwiftyMocky активно используется в крупных проектах, например, от «СберМаркета» или Vivid Money.
Документация: https://github.com/MakeAWishFoundation/SwiftyMocky
#ios #тестирование
👍4
Как сделать Android-приложение тестируемым?
Вопрос подробно разобран в серии статей:
1. MVP и MVVM
В первой части рассмотрена разработка интерфейсов без использования реактивной модели, приложения на архитектурах MVP и MVVM, а также тестов.
2. MVI
Во второй части рассмотрены архитектурный подход Model-View-Intent (MVI), создание собственной реализации MVI и особенности разработки и тестирования приложений на MVI.
#android #архитектура
Вопрос подробно разобран в серии статей:
1. MVP и MVVM
В первой части рассмотрена разработка интерфейсов без использования реактивной модели, приложения на архитектурах MVP и MVVM, а также тестов.
2. MVI
Во второй части рассмотрены архитектурный подход Model-View-Intent (MVI), создание собственной реализации MVI и особенности разработки и тестирования приложений на MVI.
#android #архитектура
👍16
Сломанная авторизация на iOS 15 или как 2 месяца искать ошибку
Осенью 2021 года разработчики «СберМаркета» обнаружили, что иногда пользователей после блокировки iPhone «разлогинивало» из приложения. Баг вышел незаурядным: хотфикс API бэкенда не помог, и о схожей проблеме сообщали iOS-разработчики из других компаний.
Решение нашли только через 2 месяца, когда Apple обновила документацию и описала новую фичу iOS 15 — прогрев приложения в бэкграунде.
Подробнее о проблеме и её исправлении ребята рассказали в статье:
https://habr.com/ru/company/sbermarket/blog/666546/
#ios
Осенью 2021 года разработчики «СберМаркета» обнаружили, что иногда пользователей после блокировки iPhone «разлогинивало» из приложения. Баг вышел незаурядным: хотфикс API бэкенда не помог, и о схожей проблеме сообщали iOS-разработчики из других компаний.
Решение нашли только через 2 месяца, когда Apple обновила документацию и описала новую фичу iOS 15 — прогрев приложения в бэкграунде.
Подробнее о проблеме и её исправлении ребята рассказали в статье:
https://habr.com/ru/company/sbermarket/blog/666546/
#ios
👍9❤1
6 вакансий для мобильных разработчиков
— iOS-разработчик в МТС
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: От 2 лет
— Android-разработчик в Outlines Tech
Где: Болгария, Польша, Словакия
Опыт: От 2 лет
— Преподаватель на курс «Flutter» в OTUS
Где: Удалённо
Опыт: От 3 лет
— Middle iOS-разработчик в МТС
Где: Москва
Опыт: От 3 лет
— Senior Android-разработчик в МТС
Где: Москва, можно удалённо
Опыт: От 3 лет
— Преподаватель на курс «iOS» в OTUS
Где: Удалённо
Опыт: От 5 лет
#вакансии #работа
— iOS-разработчик в МТС
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: От 2 лет
— Android-разработчик в Outlines Tech
Где: Болгария, Польша, Словакия
Опыт: От 2 лет
— Преподаватель на курс «Flutter» в OTUS
Где: Удалённо
Опыт: От 3 лет
— Middle iOS-разработчик в МТС
Где: Москва
Опыт: От 3 лет
— Senior Android-разработчик в МТС
Где: Москва, можно удалённо
Опыт: От 3 лет
— Преподаватель на курс «iOS» в OTUS
Где: Удалённо
Опыт: От 5 лет
#вакансии #работа
💩26👎3👍1🔥1
Коллекция примеров графиков на Swift Charts
На WWDC 2022 показали множество результатов использования фреймворка Swift Charts.
Если вам захочется использовать подобное или глубже покопаться в примерах, группа iOS-разработчиков воссоздала сэмплы на Swift Charts.
Репозиторий: https://github.com/jordibruin/Swift-Charts-Examples
#ios
На WWDC 2022 показали множество результатов использования фреймворка Swift Charts.
Если вам захочется использовать подобное или глубже покопаться в примерах, группа iOS-разработчиков воссоздала сэмплы на Swift Charts.
Репозиторий: https://github.com/jordibruin/Swift-Charts-Examples
#ios
👍5
ARKit 6: что нового?
На WWDC 2022 показали обновление ARKit — фреймворка для работы с дополненной реальностью.
Шестая версия ARKit принесла много интересного. Подробнее — в статье:
https://habr.com/ru/post/673602/
#ios
На WWDC 2022 показали обновление ARKit — фреймворка для работы с дополненной реальностью.
Шестая версия ARKit принесла много интересного. Подробнее — в статье:
https://habr.com/ru/post/673602/
#ios
👍1
Пример offline-first Android-приложения на Compose и Flow
Автор приложения вдохновлялся архитектурой приложения Now in Android от Google. Интерфейс очень простой, но главное — внутри:
— управление состояниями UI с Flow;
— приложение построено с учётом концепции offline-first;
— покрытие State и Flow unit-тестами;
— различные оптимизации рекомпозиции.
Как всё устроено, объясняется в статье:
https://www.valueof.io/blog/compose-ui-state-flow-offline-first-repository
#android #compose
Автор приложения вдохновлялся архитектурой приложения Now in Android от Google. Интерфейс очень простой, но главное — внутри:
— управление состояниями UI с Flow;
— приложение построено с учётом концепции offline-first;
— покрытие State и Flow unit-тестами;
— различные оптимизации рекомпозиции.
Как всё устроено, объясняется в статье:
https://www.valueof.io/blog/compose-ui-state-flow-offline-first-repository
#android #compose
🔥10👍2
Внедрение зависимостей в Android-приложение
1. Основы dependency injection
В видео вы узнаете, что такое инверсия управления (Inversion of Control или IoC), принцип инверсии зависимостей (Dependency Inversion Principle или DIP), внедрение зависимостей (Dependency Injection или DI) и IoC Container.
2. Hilt, часть 1
Вы научитесь использовать библиотеку Hilt в Android-приложении для построения графа зависимостей. В процессе вы узнаете о стандартных компонентах, квалификаторах и аннотациях в Hilt.
3. Hilt, часть 2
В видео показано, как перенести на Hilt ViewModel, Fragments и Activity.
#android #di
1. Основы dependency injection
В видео вы узнаете, что такое инверсия управления (Inversion of Control или IoC), принцип инверсии зависимостей (Dependency Inversion Principle или DIP), внедрение зависимостей (Dependency Injection или DI) и IoC Container.
2. Hilt, часть 1
Вы научитесь использовать библиотеку Hilt в Android-приложении для построения графа зависимостей. В процессе вы узнаете о стандартных компонентах, квалификаторах и аннотациях в Hilt.
3. Hilt, часть 2
В видео показано, как перенести на Hilt ViewModel, Fragments и Activity.
#android #di
👍18
Система диплинков в Android-приложении: опыт QIWI
Диплинки представляют собой URI на конкретный ресурс в приложении. Они направляют пользователя в нужную часть приложения всего за один тап (например, из уведомлений). Выглядит удобно для бизнеса и пользователей, однако на практике нужно уделить большое внимание безопасности и актуальности диплинков.
Поэтому ребята из QIWI построили свою систему обработки, анализа и мониторинга диплинков с кодогенерацией:
https://habr.com/ru/company/qiwi/blog/673850/
#android
Диплинки представляют собой URI на конкретный ресурс в приложении. Они направляют пользователя в нужную часть приложения всего за один тап (например, из уведомлений). Выглядит удобно для бизнеса и пользователей, однако на практике нужно уделить большое внимание безопасности и актуальности диплинков.
Поэтому ребята из QIWI построили свою систему обработки, анализа и мониторинга диплинков с кодогенерацией:
https://habr.com/ru/company/qiwi/blog/673850/
#android
👍10
Интегрируем Flutter в действующий нативный Android-проект
Решили перенести Android-проект на Flutter, чтобы приложение работало на Android и iOS? Необязательно переписывать всё сразу.
В нативный проект на Android можно постепенно внедрить отдельные модули на Flutter. Так вы сможете проанализировать работу каждого компонента и постепенно перенести всё приложение.
Как создать Flutter-модуль, объясняется в статье на примере раздела FAQ:
https://tproger.ru/articles/kak-integrirovat-flutter-v-dejstvujushhij-nativnyj-android-proekt/
#android #flutter
Решили перенести Android-проект на Flutter, чтобы приложение работало на Android и iOS? Необязательно переписывать всё сразу.
В нативный проект на Android можно постепенно внедрить отдельные модули на Flutter. Так вы сможете проанализировать работу каждого компонента и постепенно перенести всё приложение.
Как создать Flutter-модуль, объясняется в статье на примере раздела FAQ:
https://tproger.ru/articles/kak-integrirovat-flutter-v-dejstvujushhij-nativnyj-android-proekt/
#android #flutter
👍10
Все компоненты и свойства SwiftUI — в одном каталоге
Все элементы удобно разбиты по версиям SwiftUI, в которых они появились, а также имеют пометку, для каких платформ доступны (iOS, macOS, watchOS или tvOS).
Сохраняйте годноту к себе: https://mackuba.eu/swiftui/changelog
#ios #swiftui
Все элементы удобно разбиты по версиям SwiftUI, в которых они появились, а также имеют пометку, для каких платформ доступны (iOS, macOS, watchOS или tvOS).
Сохраняйте годноту к себе: https://mackuba.eu/swiftui/changelog
#ios #swiftui
👍4
Что послушать: подкаст про мобильные архитектуры
Начнём своё утро с чашки кофе и крутого выпуска подкаста от Podlodka. В нём подняли тему, которая не раз вызывала споры среди мобильных разработчиков. Да, речь про мобильные архитектуры.
Ведущие подкаста и приглашённый гость Евгений Елчев попытались разобраться, зачем столько архитектур мобильным разработчикам и в чём между ними разница:
https://youtu.be/3EoEnoA4oU8
#подкасты #архитектура #ios
Начнём своё утро с чашки кофе и крутого выпуска подкаста от Podlodka. В нём подняли тему, которая не раз вызывала споры среди мобильных разработчиков. Да, речь про мобильные архитектуры.
Ведущие подкаста и приглашённый гость Евгений Елчев попытались разобраться, зачем столько архитектур мобильным разработчикам и в чём между ними разница:
https://youtu.be/3EoEnoA4oU8
#подкасты #архитектура #ios
👍17👎4
Диспетчеризация в Swift: погружение в теорию и практику
Method Dispatch, или диспетчеризация, — это процесс, при котором программа выбирает, какие инструкции выполнить при вызове метода. На Swift существует 3 типа диспетчеризации: статическая Direct Dispatch и динамические Table Dispatch и Message Dispatch.
На собеседовании по iOS-разработке могут задать вопрос по этой теме. Разобраться в Method Dispatch поможет статья:
https://habr.com/ru/company/simbirsoft/blog/673636/
#ios
Method Dispatch, или диспетчеризация, — это процесс, при котором программа выбирает, какие инструкции выполнить при вызове метода. На Swift существует 3 типа диспетчеризации: статическая Direct Dispatch и динамические Table Dispatch и Message Dispatch.
На собеседовании по iOS-разработке могут задать вопрос по этой теме. Разобраться в Method Dispatch поможет статья:
https://habr.com/ru/company/simbirsoft/blog/673636/
#ios
👍12🔥1🤩1💩1
Подборка актуальных вакансий
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Преподаватель на курс «Flutter»
Где: удалённо
Опыт: от 3 лет
— Преподаватель на курс «iOS»
Где: удалённо
Опыт: от 5 лет
#вакансии #работа
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Преподаватель на курс «Flutter»
Где: удалённо
Опыт: от 3 лет
— Преподаватель на курс «iOS»
Где: удалённо
Опыт: от 5 лет
#вакансии #работа
💩11👎5👍1
Сделаем Android Studio более красивой и наглядной
Бегающий Марио в прогресс баре, отдельный цвет для каждой пары скобок в коде, иконки в стиле Material — Android Studio можно полностью кастомизировать под себя. Главное, чтобы в процессе не крашнулась.
Интересные темы, иконки, шрифты, прогресс-бары и другие плагины собраны в одной статье:
https://blog.protein.tech/how-to-make-android-studio-look-awesome-ee19e3719a59
#android #начинающим
Бегающий Марио в прогресс баре, отдельный цвет для каждой пары скобок в коде, иконки в стиле Material — Android Studio можно полностью кастомизировать под себя. Главное, чтобы в процессе не крашнулась.
Интересные темы, иконки, шрифты, прогресс-бары и другие плагины собраны в одной статье:
https://blog.protein.tech/how-to-make-android-studio-look-awesome-ee19e3719a59
#android #начинающим
🤡23❤🔥7👍2🤩2
This media is not supported in your browser
VIEW IN TELEGRAM
Ищем в команду соцсетей Tproger редактора
Коротко о том, что нужно будет делать: создавать контент в Telegram-каналы по теме IT и помогать развивать эти каналы.
Подробнее о вакансии, ссылка на тестовое и отклик здесь: https://tprg.ru/EguN
Коротко о том, что нужно будет делать: создавать контент в Telegram-каналы по теме IT и помогать развивать эти каналы.
Подробнее о вакансии, ссылка на тестовое и отклик здесь: https://tprg.ru/EguN
👍4💩4
Миграция на новые API для тестирования корутин
Обновление
Если вы ещё не совершили миграцию своего проекта, то перенести его со старых на новые API для тестирования корутин поможет статья:
https://medium.com/androiddevelopers/migrating-to-the-new-coroutines-1-6-test-apis-b99f7fc47774
#android
Обновление
kotlinx.coroutines до версии 1.6 принесло новые API для тестирования корутин, и старые объявлены устаревшими (deprecated). Более того, к концу 2022 года старые API окончательно удалят.Если вы ещё не совершили миграцию своего проекта, то перенести его со старых на новые API для тестирования корутин поможет статья:
https://medium.com/androiddevelopers/migrating-to-the-new-coroutines-1-6-test-apis-b99f7fc47774
#android
👍2
Учебное пособие по AsyncSequence и AsyncStream для iOS
В этом учебном пособии вы можете узнать, как использовать протоколы параллелизма Swift AsyncSequence и AsyncStream для обработки асинхронных последовательностей:
https://www.raywenderlich.com/34044359-asyncsequence-asyncstream-tutorial-for-ios
#swift #ios
В этом учебном пособии вы можете узнать, как использовать протоколы параллелизма Swift AsyncSequence и AsyncStream для обработки асинхронных последовательностей:
https://www.raywenderlich.com/34044359-asyncsequence-asyncstream-tutorial-for-ios
#swift #ios
👍3
Переход на регулярные релизы мобильного приложения: опыт InDriver
Выпуск по готовности больших задач несёт за собой множество проблем, например, более мелкие фичи простаивают в ожидании крупного релиза. Ситуация усугубляется, когда над приложением работает несколько команд.
Чтобы устранить проблемы, ребята из InDriver решили полностью переработать подход к релизу приложения и сделать релиз регулярным. Подробности — в статье:
https://habr.com/ru/company/indriver/blog/665892/
#android #ios
Выпуск по готовности больших задач несёт за собой множество проблем, например, более мелкие фичи простаивают в ожидании крупного релиза. Ситуация усугубляется, когда над приложением работает несколько команд.
Чтобы устранить проблемы, ребята из InDriver решили полностью переработать подход к релизу приложения и сделать релиз регулярным. Подробности — в статье:
https://habr.com/ru/company/indriver/blog/665892/
#android #ios
👍11👎1