Forwarded from Яндекс
Подписывайтесь
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Как я создал персональную систему компонентов для iOS-приложений
Создание множества iOS-приложений привело меня к интересному наблюдению. Несмотря на схожую функциональность между проектами, каждый раз я заново создавал одни и те же элементы интерфейса: кнопки, карточки, списки, модальные окна и прочее. Это приводило к дублированию кода и замедляло разработку. Поэтому я решил создать персональную библиотеку компонентов, которую можно использовать в любом проекте.
Зачем мне понадобилась такая система?
Причины были простыми:
* Повторное использование кода
* Быстрый запуск MVP
* Единый визуальный стиль
* Простота поддержки
Система позволила мне сократить время разработки новых приложений и ускорить прототипирование.
Как я начал
Всё началось с анализа моих предыдущих проектов. Я выписал повторяющиеся элементы и разбил их по категориям:
* Кнопки
* Ячейки таблиц
* Навигационные элементы
* Модальные окна
* Формы
Затем я создал отдельный фреймворк на Swift — MireComponents, который можно подключать к любому проекту через Swift Package Manager.
Архитектура
Я структурировал компоненты следующим образом:
*
*
*
*
Каждый компонент строится по принципу модульности и легко настраивается под нужды проекта.
Пример: Кнопка
Таким образом, я могу создать кнопку всего одной строкой:
Использование
В каждом новом проекте я просто добавляю зависимость на
Создание собственной системы компонентов — отличное вложение времени, особенно если вы разрабатываете несколько приложений с нуля. Это снижает количество багов, ускоряет разработку и делает код чище.
https://medium.com/@mireabot/how-i-created-a-personal-component-design-system-for-ios-apps-d3f9be6f426c
#ios
👉 @developer_mobila
Создание множества iOS-приложений привело меня к интересному наблюдению. Несмотря на схожую функциональность между проектами, каждый раз я заново создавал одни и те же элементы интерфейса: кнопки, карточки, списки, модальные окна и прочее. Это приводило к дублированию кода и замедляло разработку. Поэтому я решил создать персональную библиотеку компонентов, которую можно использовать в любом проекте.
Зачем мне понадобилась такая система?
Причины были простыми:
* Повторное использование кода
* Быстрый запуск MVP
* Единый визуальный стиль
* Простота поддержки
Система позволила мне сократить время разработки новых приложений и ускорить прототипирование.
Как я начал
Всё началось с анализа моих предыдущих проектов. Я выписал повторяющиеся элементы и разбил их по категориям:
* Кнопки
* Ячейки таблиц
* Навигационные элементы
* Модальные окна
* Формы
Затем я создал отдельный фреймворк на Swift — MireComponents, который можно подключать к любому проекту через Swift Package Manager.
Архитектура
Я структурировал компоненты следующим образом:
*
UIComponents/
: визуальные элементы с минимальной логикой*
ViewModels/
: логика взаимодействия и состояния*
Themes/
: цвета, шрифты и отступы*
Helpers/
: утилиты и расширенияКаждый компонент строится по принципу модульности и легко настраивается под нужды проекта.
Пример: Кнопка
public final class MCButton: UIButton {
public init(title: String, style: MCButtonStyle) {
super.init(frame: .zero)
setup(title: title, style: style)
}
private func setup(title: String, style: MCButtonStyle) {
setTitle(title, for: .normal)
backgroundColor = style.backgroundColor
layer.cornerRadius = style.cornerRadius
// Прочие стили...
}
}
Таким образом, я могу создать кнопку всего одной строкой:
let button = MCButton(title: "Продолжить", style: .primary)
Использование
В каждом новом проекте я просто добавляю зависимость на
MireComponents
и начинаю сборку интерфейса. Это упрощает работу и сохраняет единообразие.Создание собственной системы компонентов — отличное вложение времени, особенно если вы разрабатываете несколько приложений с нуля. Это снижает количество багов, ускоряет разработку и делает код чище.
https://medium.com/@mireabot/how-i-created-a-personal-component-design-system-for-ios-apps-d3f9be6f426c
#ios
👉 @developer_mobila
👍2
Изучаем основы Android XR
В этом лабораторной работе вы улучшите базовое одноэкранное приложение, чтобы обеспечить захватывающий пользовательский опыт на Android XR.
Кодлаб от Google по разработке для Android XR. В этом лабораторной работе вы улучшите базовое одноэкранное приложение, чтобы обеспечить захватывающий пользовательский опыт на Android XR.
Что вы узнаете:
🔹 Уникальные пользовательские возможности, которые дает форм-фактор XR.
🔹 Основы адаптации приложений к работе на гарнитуре Android XR с помощью композабл элементов, предоставляемых библиотекой Jetpack Compose XR.
🔹 Как использовать элементы пользовательского интерфейса, предоставляемые библиотекой Compose XR.
🔹 Где можно узнать больше о создании приложений для Android XR.
https://developer.android.com/codelabs/xr-fundamentals-part-1#0
#Android
👉 @developer_mobila
В этом лабораторной работе вы улучшите базовое одноэкранное приложение, чтобы обеспечить захватывающий пользовательский опыт на Android XR.
Кодлаб от Google по разработке для Android XR. В этом лабораторной работе вы улучшите базовое одноэкранное приложение, чтобы обеспечить захватывающий пользовательский опыт на Android XR.
Что вы узнаете:
https://developer.android.com/codelabs/xr-fundamentals-part-1#0
#Android
👉 @developer_mobila
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Управляем зависимостями и lifecycle во Flutter: yx_scope без генерации кода 📢
13 мая в 20:00 МСК в OTUS пройдёт открытый вебинар «DI и жизненный цикл модулей во Flutter на yx_scope».
Что разберём
— yx_scope vs Kiwi, Injector, Auto Injector, Scope — когда и почему выигрывает первое решение
— Безопасное DI на этапе компиляции — без глобальных синглтонов
— Гибкий lifecycle — как избежать утечек памяти при навигации
— Интеграция yx_scope в многомодульный интернет‑магазин (live‑код)
Спикер — Дмитрий Золотов, Flutter + Kotlin Developer в Yandex. 23 года опыта: full‑stack (Flutter/Python/Kotlin/Go/C++), DevOps, системное администрирование. Контрибьютор ReOpenLDAP, автор серий вебинаров по Kubernetes и кроссплатформенной разработке, приглашённый преподаватель в ИТМО.
Кому будет полезно
— Flutter‑инженерам, которые ищут чистую архитектуру без лишнего codegen
— Разработчикам, поддерживающим проекты с десятками экранов и активной навигацией
— Тем, кто хочет ускорить релизы, сохраняя контроль над памятью и зависимостями
После вебинара вы сможете
— Внедрять зависимости без шаблонов и ловить ошибки до запуска
— Управлять жизненным циклом компонентов так, чтобы память оставалась под контролем
— Масштабировать фичи, не переписывая DI‑слой
Участие бесплатное. Мест ограничено — бронируйте прямо сейчас.
→ Регистрируйтесь
Реклама. ООО «Отус онлайн‑образование», ОГРН 1177746618576
13 мая в 20:00 МСК в OTUS пройдёт открытый вебинар «DI и жизненный цикл модулей во Flutter на yx_scope».
Что разберём
— yx_scope vs Kiwi, Injector, Auto Injector, Scope — когда и почему выигрывает первое решение
— Безопасное DI на этапе компиляции — без глобальных синглтонов
— Гибкий lifecycle — как избежать утечек памяти при навигации
— Интеграция yx_scope в многомодульный интернет‑магазин (live‑код)
Спикер — Дмитрий Золотов, Flutter + Kotlin Developer в Yandex. 23 года опыта: full‑stack (Flutter/Python/Kotlin/Go/C++), DevOps, системное администрирование. Контрибьютор ReOpenLDAP, автор серий вебинаров по Kubernetes и кроссплатформенной разработке, приглашённый преподаватель в ИТМО.
Кому будет полезно
— Flutter‑инженерам, которые ищут чистую архитектуру без лишнего codegen
— Разработчикам, поддерживающим проекты с десятками экранов и активной навигацией
— Тем, кто хочет ускорить релизы, сохраняя контроль над памятью и зависимостями
После вебинара вы сможете
— Внедрять зависимости без шаблонов и ловить ошибки до запуска
— Управлять жизненным циклом компонентов так, чтобы память оставалась под контролем
— Масштабировать фичи, не переписывая DI‑слой
Участие бесплатное. Мест ограничено — бронируйте прямо сейчас.
→ Регистрируйтесь
Реклама. ООО «Отус онлайн‑образование», ОГРН 1177746618576
👍5
Поддержка webextensions под Андроид
Сегодня я хочу представить очередную свою работу, точнее рабочий черновик. Да, я в курсе — дураку полработы не показывают, но так и на хабре то не дураки сидят. Итак, сегодня я расскажу как перенес поддержку webextensions в chromium под Андроид, что работает а что не работает, как пользоваться тем что работает и когда будет работать то что не работает.
https://habr.com/ru/articles/882640/
#Android
👉 @developer_mobila
Сегодня я хочу представить очередную свою работу, точнее рабочий черновик. Да, я в курсе — дураку полработы не показывают, но так и на хабре то не дураки сидят. Итак, сегодня я расскажу как перенес поддержку webextensions в chromium под Андроид, что работает а что не работает, как пользоваться тем что работает и когда будет работать то что не работает.
https://habr.com/ru/articles/882640/
#Android
👉 @developer_mobila
👍1😁1
🚀 Подборка Telegram каналов для программистов
Системное администрирование, DevOps 📌
https://www.tgoop.com/bash_srv Bash Советы
https://www.tgoop.com/win_sysadmin Системный Администратор Windows
https://www.tgoop.com/sysadmin_girl Девочка Сисадмин
https://www.tgoop.com/srv_admin_linux Админские угодья
https://www.tgoop.com/linux_srv Типичный Сисадмин
https://www.tgoop.com/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://www.tgoop.com/linux_odmin Linux: Системный администратор
https://www.tgoop.com/devops_star DevOps Star (Звезда Девопса)
https://www.tgoop.com/i_linux Системный администратор
https://www.tgoop.com/linuxchmod Linux
https://www.tgoop.com/sys_adminos Системный Администратор
https://www.tgoop.com/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://www.tgoop.com/sysadminof Книги для админов, полезные материалы
https://www.tgoop.com/i_odmin Все для системного администратора
https://www.tgoop.com/i_odmin_book Библиотека Системного Администратора
https://www.tgoop.com/i_odmin_chat Чат системных администраторов
https://www.tgoop.com/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://www.tgoop.com/sysadminoff Новости Линукс Linux
1C разработка 📌
https://www.tgoop.com/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://www.tgoop.com/DevLab1C 1С:Предприятие 8
https://www.tgoop.com/razrab_1C 1C Разработчик
https://www.tgoop.com/buh1C_prog 1C Программист | Бухгалтерия и Учёт
https://www.tgoop.com/rabota1C_rus Вакансии для программистов 1С
Программирование C++📌
https://www.tgoop.com/cpp_lib Библиотека C/C++ разработчика
https://www.tgoop.com/cpp_knigi Книги для программистов C/C++
https://www.tgoop.com/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://www.tgoop.com/pythonofff Python академия.
https://www.tgoop.com/BookPython Библиотека Python разработчика
https://www.tgoop.com/python_real Python подборки на русском и английском
https://www.tgoop.com/python_360 Книги по Python
Java разработка 📌
https://www.tgoop.com/BookJava Библиотека Java разработчика
https://www.tgoop.com/java_360 Книги по Java Rus
https://www.tgoop.com/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://www.tgoop.com/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://www.tgoop.com/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://www.tgoop.com/developer_mobila Мобильная разработка
https://www.tgoop.com/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://www.tgoop.com/frontend_1 Подборки для frontend разработчиков
https://www.tgoop.com/frontend_sovet Frontend советы, примеры и практика!
https://www.tgoop.com/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://www.tgoop.com/game_devv Все о разработке игр
Библиотеки 📌
https://www.tgoop.com/book_for_dev Книги для программистов Rus
https://www.tgoop.com/programmist_of Книги по программированию
https://www.tgoop.com/proglb Библиотека программиста
https://www.tgoop.com/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://www.tgoop.com/bigdata_1 Big Data, Machine Learning
Программирование 📌
https://www.tgoop.com/bookflow Лекции, видеоуроки, доклады с IT конференций
https://www.tgoop.com/rust_lib Полезный контент по программированию на Rust
https://www.tgoop.com/golang_lib Библиотека Go (Golang) разработчика
https://www.tgoop.com/itmozg Программисты, дизайнеры, новости из мира IT
https://www.tgoop.com/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://www.tgoop.com/nodejs_lib Подборки по Node js и все что с ним связано
https://www.tgoop.com/ruby_lib Библиотека Ruby программиста
https://www.tgoop.com/lifeproger Жизнь программиста. Авторский канал.
QA, тестирование 📌
https://www.tgoop.com/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://www.tgoop.com/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://www.tgoop.com/thehaking Канал о кибербезопасности
https://www.tgoop.com/xakep_2 Хакер Free
Книги, статьи для дизайнеров 📌
https://www.tgoop.com/ux_web Статьи, книги для дизайнеров
Математика 📌
https://www.tgoop.com/Pomatematike Канал по математике
https://www.tgoop.com/phis_mat Обучающие видео, книги по Физике и Математике
https://www.tgoop.com/matgeoru Математика | Геометрия | Логика
Excel лайфхак📌
https://www.tgoop.com/Excel_lifehack
https://www.tgoop.com/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://www.tgoop.com/sysadmin_rabota Системный Администратор
https://www.tgoop.com/progjob Вакансии в IT
Системное администрирование, DevOps 📌
https://www.tgoop.com/bash_srv Bash Советы
https://www.tgoop.com/win_sysadmin Системный Администратор Windows
https://www.tgoop.com/sysadmin_girl Девочка Сисадмин
https://www.tgoop.com/srv_admin_linux Админские угодья
https://www.tgoop.com/linux_srv Типичный Сисадмин
https://www.tgoop.com/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://www.tgoop.com/linux_odmin Linux: Системный администратор
https://www.tgoop.com/devops_star DevOps Star (Звезда Девопса)
https://www.tgoop.com/i_linux Системный администратор
https://www.tgoop.com/linuxchmod Linux
https://www.tgoop.com/sys_adminos Системный Администратор
https://www.tgoop.com/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://www.tgoop.com/sysadminof Книги для админов, полезные материалы
https://www.tgoop.com/i_odmin Все для системного администратора
https://www.tgoop.com/i_odmin_book Библиотека Системного Администратора
https://www.tgoop.com/i_odmin_chat Чат системных администраторов
https://www.tgoop.com/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://www.tgoop.com/sysadminoff Новости Линукс Linux
1C разработка 📌
https://www.tgoop.com/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://www.tgoop.com/DevLab1C 1С:Предприятие 8
https://www.tgoop.com/razrab_1C 1C Разработчик
https://www.tgoop.com/buh1C_prog 1C Программист | Бухгалтерия и Учёт
https://www.tgoop.com/rabota1C_rus Вакансии для программистов 1С
Программирование C++📌
https://www.tgoop.com/cpp_lib Библиотека C/C++ разработчика
https://www.tgoop.com/cpp_knigi Книги для программистов C/C++
https://www.tgoop.com/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://www.tgoop.com/pythonofff Python академия.
https://www.tgoop.com/BookPython Библиотека Python разработчика
https://www.tgoop.com/python_real Python подборки на русском и английском
https://www.tgoop.com/python_360 Книги по Python
Java разработка 📌
https://www.tgoop.com/BookJava Библиотека Java разработчика
https://www.tgoop.com/java_360 Книги по Java Rus
https://www.tgoop.com/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://www.tgoop.com/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://www.tgoop.com/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://www.tgoop.com/developer_mobila Мобильная разработка
https://www.tgoop.com/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://www.tgoop.com/frontend_1 Подборки для frontend разработчиков
https://www.tgoop.com/frontend_sovet Frontend советы, примеры и практика!
https://www.tgoop.com/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://www.tgoop.com/game_devv Все о разработке игр
Библиотеки 📌
https://www.tgoop.com/book_for_dev Книги для программистов Rus
https://www.tgoop.com/programmist_of Книги по программированию
https://www.tgoop.com/proglb Библиотека программиста
https://www.tgoop.com/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://www.tgoop.com/bigdata_1 Big Data, Machine Learning
Программирование 📌
https://www.tgoop.com/bookflow Лекции, видеоуроки, доклады с IT конференций
https://www.tgoop.com/rust_lib Полезный контент по программированию на Rust
https://www.tgoop.com/golang_lib Библиотека Go (Golang) разработчика
https://www.tgoop.com/itmozg Программисты, дизайнеры, новости из мира IT
https://www.tgoop.com/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://www.tgoop.com/nodejs_lib Подборки по Node js и все что с ним связано
https://www.tgoop.com/ruby_lib Библиотека Ruby программиста
https://www.tgoop.com/lifeproger Жизнь программиста. Авторский канал.
QA, тестирование 📌
https://www.tgoop.com/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://www.tgoop.com/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://www.tgoop.com/thehaking Канал о кибербезопасности
https://www.tgoop.com/xakep_2 Хакер Free
Книги, статьи для дизайнеров 📌
https://www.tgoop.com/ux_web Статьи, книги для дизайнеров
Математика 📌
https://www.tgoop.com/Pomatematike Канал по математике
https://www.tgoop.com/phis_mat Обучающие видео, книги по Физике и Математике
https://www.tgoop.com/matgeoru Математика | Геометрия | Логика
Excel лайфхак📌
https://www.tgoop.com/Excel_lifehack
https://www.tgoop.com/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://www.tgoop.com/sysadmin_rabota Системный Администратор
https://www.tgoop.com/progjob Вакансии в IT
Telegram
Bash Советы
🚀 Секреты и советы по Bash
🔹 Полезные трюки, хитрые однострочники и лайфхаки для работы в терминале.
🔹 Автоматизация, скрипты и оптимизация работы в Linux.
🔹 Стать мастером Bash легко – просто подпишись!
По всем вопросам @evgenycarter
🔹 Полезные трюки, хитрые однострочники и лайфхаки для работы в терминале.
🔹 Автоматизация, скрипты и оптимизация работы в Linux.
🔹 Стать мастером Bash легко – просто подпишись!
По всем вопросам @evgenycarter
👍2
Дивный мир мобильной разработки и трудности Open Source
Когда я впервые решил создать свой open-source проект, мне казалось, что главное – это хорошая идея и рабочий код. Я взялся за разработку библиотеки для сетевых клиентов и UI-компонентов, вложил в неё два года работы и, наконец, выложил на GitHub. Но вместо успеха меня ждал холодный душ – библиотека получила всего 10 звёздочек.
Тогда я осознал ключевую проблему open-source: одна только идея не работает. Если проект плохо оформлен – его никто не найдёт. Документация и описание – не менее важны, чем сам код. В следующем проекте я учёл ошибки. Когда правильно оформил проект, он начал находить аудиторию, получать звёзды и фидбек от разработчиков.
https://habr.com/ru/companies/oleg-bunin/articles/906952/
#ios
👉 @developer_mobila
Когда я впервые решил создать свой open-source проект, мне казалось, что главное – это хорошая идея и рабочий код. Я взялся за разработку библиотеки для сетевых клиентов и UI-компонентов, вложил в неё два года работы и, наконец, выложил на GitHub. Но вместо успеха меня ждал холодный душ – библиотека получила всего 10 звёздочек.
Тогда я осознал ключевую проблему open-source: одна только идея не работает. Если проект плохо оформлен – его никто не найдёт. Документация и описание – не менее важны, чем сам код. В следующем проекте я учёл ошибки. Когда правильно оформил проект, он начал находить аудиторию, получать звёзды и фидбек от разработчиков.
https://habr.com/ru/companies/oleg-bunin/articles/906952/
#ios
👉 @developer_mobila
👍1
Автообновление через GitHub releases с помощью Hilt и Retrofit в Android
Вдохновившись обновлением Telegram без маркета приложений я захотел сделать на одном из своих пет-проектов что-то подобное. Первой мыслью было - найти этот код в исходниках Telegram, но т.к. скорее всего у них обновление скачивается с серверов, я решил не играть в лотерею и не тратить время на раскопки в Java-коде, потому что я хотел сделать так, чтобы можно было скачивать с GitHub-releases.
https://habr.com/ru/articles/839008/
#Android
👉 @developer_mobila
Вдохновившись обновлением Telegram без маркета приложений я захотел сделать на одном из своих пет-проектов что-то подобное. Первой мыслью было - найти этот код в исходниках Telegram, но т.к. скорее всего у них обновление скачивается с серверов, я решил не играть в лотерею и не тратить время на раскопки в Java-коде, потому что я хотел сделать так, чтобы можно было скачивать с GitHub-releases.
https://habr.com/ru/articles/839008/
#Android
👉 @developer_mobila
👍4
Осталось 2 дня до вебинара! Успейте зарегистрироваться ⌛️
Управляем зависимостями и lifecycle во Flutter: yx_scope без генерации кода
🗓 13 мая, 20:00 МСК — открытый вебинар OTUS
Коротко о программе
— yx_scope vs Kiwi / Injector / Auto Injector / Scope — покажем, где выигрывает yx_scope
— Безопасное DI на этапе компиляции, никаких глобальных синглтонов
— Гибкий lifecycle: как избежать утечек памяти при навигации
— Live-код: интегрируем yx_scope в многомодульный интернет-магазин
Спикер — Дмитрий Золотов, Flutter + Kotlin Developer в Yandex, 23 года опыта full-stack и DevOps.
Кому зайдёт
— Flutter-инженерам, ищущим чистую архитектуру без лишнего codegen
— Разработчикам, поддерживающим большие проекты с активной навигацией
— Всем, кто хочет ускорить релизы и держать память под контролем
После вебинара вы сможете
— Внедрять зависимости без шаблонов и ловить ошибки до запуска
— Управлять жизненным циклом компонентов без утечек
— Масштабировать фичи без переписывания DI-слоя
Участие бесплатное, мест всё меньше.
→ Регистрируйтесь сейчас
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Управляем зависимостями и lifecycle во Flutter: yx_scope без генерации кода
🗓 13 мая, 20:00 МСК — открытый вебинар OTUS
Коротко о программе
— yx_scope vs Kiwi / Injector / Auto Injector / Scope — покажем, где выигрывает yx_scope
— Безопасное DI на этапе компиляции, никаких глобальных синглтонов
— Гибкий lifecycle: как избежать утечек памяти при навигации
— Live-код: интегрируем yx_scope в многомодульный интернет-магазин
Спикер — Дмитрий Золотов, Flutter + Kotlin Developer в Yandex, 23 года опыта full-stack и DevOps.
Кому зайдёт
— Flutter-инженерам, ищущим чистую архитектуру без лишнего codegen
— Разработчикам, поддерживающим большие проекты с активной навигацией
— Всем, кто хочет ускорить релизы и держать память под контролем
После вебинара вы сможете
— Внедрять зависимости без шаблонов и ловить ошибки до запуска
— Управлять жизненным циклом компонентов без утечек
— Масштабировать фичи без переписывания DI-слоя
Участие бесплатное, мест всё меньше.
→ Регистрируйтесь сейчас
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Автоматизация сборки и релиза Android-приложений через GitHub Actions
Полный разбор GitHub Actions Workflow для сборки, подписи и релиза Android-приложений.
В продолжение моей статье про обновление Android-приложений через Github releases, я решил автоматизировать еще одну часть этого рутинного процесса, а именно, сборку и релиз. При написании статьи руководствовался этой статьей, но немного поменял подход, а именно: не включаю в данный процесс файлы проекта, потому что, я думаю, это является более гибким подходом, позволяющим переносить workflow между проектами без изменений файлов самого проекта.
https://habr.com/ru/articles/881196/
#Android
👉 @developer_mobila
Полный разбор GitHub Actions Workflow для сборки, подписи и релиза Android-приложений.
В продолжение моей статье про обновление Android-приложений через Github releases, я решил автоматизировать еще одну часть этого рутинного процесса, а именно, сборку и релиз. При написании статьи руководствовался этой статьей, но немного поменял подход, а именно: не включаю в данный процесс файлы проекта, потому что, я думаю, это является более гибким подходом, позволяющим переносить workflow между проектами без изменений файлов самого проекта.
https://habr.com/ru/articles/881196/
#Android
👉 @developer_mobila
Media is too big
VIEW IN TELEGRAM
Опасности в Android: уязвимости и защитные меры
Увлекательное путешествие в мир безопасности Android! Разобрали самые интересные и коварные уязвимости, такие как Path Traversal, SQL-инъекции и Tapjacking. Но основное внимание уделили WebView: неправильной валидации данных, уязвимостям в библиотеке для парсинга URL, JavaScript Interface и загрузке диплинков.
Безопасность — это не только важно, но и захватывающе! Она необходима в каждом приложении, чтобы обеспечить уверенность пользователей в безопасности их данных. Не стоит перекладывать эту ответственность на безопасников.
В докладе нет скучных терминов и монотонных объяснений. Вместо этого — захватывающая история поиска уязвимостей и их устранения, основанная на личном опыте при разработке приложений.
Будет полезно всем тем, кто интересуется безопасностью Android-приложений.
источник
#Android
👉 @developer_mobila
Увлекательное путешествие в мир безопасности Android! Разобрали самые интересные и коварные уязвимости, такие как Path Traversal, SQL-инъекции и Tapjacking. Но основное внимание уделили WebView: неправильной валидации данных, уязвимостям в библиотеке для парсинга URL, JavaScript Interface и загрузке диплинков.
Безопасность — это не только важно, но и захватывающе! Она необходима в каждом приложении, чтобы обеспечить уверенность пользователей в безопасности их данных. Не стоит перекладывать эту ответственность на безопасников.
В докладе нет скучных терминов и монотонных объяснений. Вместо этого — захватывающая история поиска уязвимостей и их устранения, основанная на личном опыте при разработке приложений.
Будет полезно всем тем, кто интересуется безопасностью Android-приложений.
источник
#Android
👉 @developer_mobila
👍1
Интеллект внутри: делаем умные Flutter‑приложения с ML и AI 🤖
20 мая в 20:00 МСК OTUS проведёт открытый вебинар для мобильных разработчиков, которые хотят вывести свои приложения на новый уровень: жесты, эмоции, LLM‑подсказки — всё прямо на устройстве.
Что будет:
— TensorFlow Lite и ONNXRuntime — запускаем модели офлайн;
— MediaPipe — работаем с камерой, жестами и лицами;
— Интеграция OpenAI / Google AI / Hugging Face — подключаем LLM за 15 минут;
— Живой код: интернет‑магазин, в который добавляем ML‑функции шаг за шагом.
Спикер: Дмитрий Золотов, Flutter + Kotlin Developer в Yandex, 23 года опыта, контрибьютор ReOpenLDAP, приглашённый преподаватель ИТМО.
Участие бесплатное, места ограничены. Забронируйте прямо сейчас и добавьте AI‑магию в своё портфолио.
→ Зарегистрироваться
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
20 мая в 20:00 МСК OTUS проведёт открытый вебинар для мобильных разработчиков, которые хотят вывести свои приложения на новый уровень: жесты, эмоции, LLM‑подсказки — всё прямо на устройстве.
Что будет:
— TensorFlow Lite и ONNXRuntime — запускаем модели офлайн;
— MediaPipe — работаем с камерой, жестами и лицами;
— Интеграция OpenAI / Google AI / Hugging Face — подключаем LLM за 15 минут;
— Живой код: интернет‑магазин, в который добавляем ML‑функции шаг за шагом.
Спикер: Дмитрий Золотов, Flutter + Kotlin Developer в Yandex, 23 года опыта, контрибьютор ReOpenLDAP, приглашённый преподаватель ИТМО.
Участие бесплатное, места ограничены. Забронируйте прямо сейчас и добавьте AI‑магию в своё портфолио.
→ Зарегистрироваться
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Media is too big
VIEW IN TELEGRAM
Apple Invites App OnBoarding UI - Infinite ScrollView - Text Renderer - Animations - SwiftUI
источник
#ios
👉 @developer_mobila
источник
#ios
👉 @developer_mobila
❤2👍2
Очумелые ручки: как я превратил старый смартфон в игровую консоль с возможностью звонить
Осторожно: эта статья точно будет хабратортной, ведь в ней мы смоделируем, спроектируем и запрограммируем своё видение N-Gage 2! Я очень старался сделать статью интересной даже для тех читателей, кто не разбирается в теме 3D-печати и программирования микроконтроллеров :-)
Я очень люблю ретро-игры и игровые консоли. Иногда я люблю позалипать в какую-нибудь классику с NES, Sega Mega Drive или, например, PSP. Однако особое место в моём сердечке занимает игровой телефон Nokia N-Gage, который, к сожалению, не получил продолжения, как и его более современный собрат — Sony Ericsson Xperia Play. Недавно я пересматривал свою коллекцию девайсов и обнаружил на полочке Galaxy S4 Mini. И тут я подумал: а что если...
https://habr.com/ru/companies/timeweb/articles/883068/
#Android
👉 @developer_mobila
Осторожно: эта статья точно будет хабратортной, ведь в ней мы смоделируем, спроектируем и запрограммируем своё видение N-Gage 2! Я очень старался сделать статью интересной даже для тех читателей, кто не разбирается в теме 3D-печати и программирования микроконтроллеров :-)
Я очень люблю ретро-игры и игровые консоли. Иногда я люблю позалипать в какую-нибудь классику с NES, Sega Mega Drive или, например, PSP. Однако особое место в моём сердечке занимает игровой телефон Nokia N-Gage, который, к сожалению, не получил продолжения, как и его более современный собрат — Sony Ericsson Xperia Play. Недавно я пересматривал свою коллекцию девайсов и обнаружил на полочке Galaxy S4 Mini. И тут я подумал: а что если...
https://habr.com/ru/companies/timeweb/articles/883068/
#Android
👉 @developer_mobila
🎮 Как заработать на играх?
Игры уже давно не просто развлечение — это перспективная индустрия, где геймдизайнеры задают тренды и создают новые миры.
Хотите узнать, как из идеи рождается хит, который покоряет игроков?
Что делает игру по-настоящему увлекательной?
Можно ли войти в геймдев без опыта? (Спойлер — можно!)
Если вам всегда было интересно заглянуть за кулисы геймдева, то есть отличная возможность погрузиться в эту сферу и профессию бесплатно — на мини-курсе Skillbox по геймдизайну: https://epic.st/5t1_V?erid=2VtzqwmJGaG
Вы разберётесь:
✔️ Как создаются игровые механики и уровни
✔️ Как придумать игру, в которую хочется играть часами
✔️ Какие навыки нужны геймдизайнеру и где их применить
✔️ Сколько зарабатывают специалисты и как начать карьеру в геймдеве
💡 Обучение будет на реальном кейсе: разберёте лучшие решения из игры «Возмездие: Тени Антары». Смотрите видео в удобное время, выполняйте практические задания и закрепляйте полученные навыки.
🎁 Бонус: получите персональную консультацию по карьере и тестовый доступ к профессии — попробуете себя в реальной среде.
Игры уже давно не просто развлечение — это перспективная индустрия, где геймдизайнеры задают тренды и создают новые миры.
Хотите узнать, как из идеи рождается хит, который покоряет игроков?
Что делает игру по-настоящему увлекательной?
Можно ли войти в геймдев без опыта? (Спойлер — можно!)
Если вам всегда было интересно заглянуть за кулисы геймдева, то есть отличная возможность погрузиться в эту сферу и профессию бесплатно — на мини-курсе Skillbox по геймдизайну: https://epic.st/5t1_V?erid=2VtzqwmJGaG
Вы разберётесь:
✔️ Как создаются игровые механики и уровни
✔️ Как придумать игру, в которую хочется играть часами
✔️ Какие навыки нужны геймдизайнеру и где их применить
✔️ Сколько зарабатывают специалисты и как начать карьеру в геймдеве
💡 Обучение будет на реальном кейсе: разберёте лучшие решения из игры «Возмездие: Тени Антары». Смотрите видео в удобное время, выполняйте практические задания и закрепляйте полученные навыки.
🎁 Бонус: получите персональную консультацию по карьере и тестовый доступ к профессии — попробуете себя в реальной среде.
Переходим на SwiftUI
Приглашённый эксперт — Максим Гришутин, iOS Team Lead приложения Ozon для продавцов.
В этом эпизоде расскажем про модный и молодёжный SwiftUI. Не забудем обсудить его связку с Combine и async/await. Как же они помогают создавать более эффективные и инновационные проекты?
Приглашённый эксперт — Максим Гришутин, iOS Team Lead приложения Ozon для продавцов. Он поделится своим опытом внедрения SwiftUI с самой первой версии. С какими трудностями столкнулись, как их решали и к чему в итоге пришли. Зададим все самые острые вопросы.
Вспомним зарождение декларативной вёрстки на iOS — библотеку Carbon. И плавно перейдём к SwiftUI от первой до последней версии, которые так активно продвигает Apple уже несколько лет.
А также узнаем, что делать, когда Stack Overflow пуст, а на твои вопросы отвечают только на китайском.
https://www.youtube.com/watch?v=7SnqJ7H8Cxs
#ios
👉 @developer_mobila
Приглашённый эксперт — Максим Гришутин, iOS Team Lead приложения Ozon для продавцов.
В этом эпизоде расскажем про модный и молодёжный SwiftUI. Не забудем обсудить его связку с Combine и async/await. Как же они помогают создавать более эффективные и инновационные проекты?
Приглашённый эксперт — Максим Гришутин, iOS Team Lead приложения Ozon для продавцов. Он поделится своим опытом внедрения SwiftUI с самой первой версии. С какими трудностями столкнулись, как их решали и к чему в итоге пришли. Зададим все самые острые вопросы.
Вспомним зарождение декларативной вёрстки на iOS — библотеку Carbon. И плавно перейдём к SwiftUI от первой до последней версии, которые так активно продвигает Apple уже несколько лет.
А также узнаем, что делать, когда Stack Overflow пуст, а на твои вопросы отвечают только на китайском.
https://www.youtube.com/watch?v=7SnqJ7H8Cxs
#ios
👉 @developer_mobila
YouTube
Максим Гришутин - Переходим на SwiftUI
В этом эпизоде расскажем про модный и молодёжный SwiftUI. Не забудем обсудить его связку с Combine и async / await. Как же они помогают создавать более эффективные и инновационные проекты?
Приглашённый эксперт - Максим Гришутин, iOS Team Lead приложения…
Приглашённый эксперт - Максим Гришутин, iOS Team Lead приложения…
👍1
Остерегайтесь READ_MEDIA_IMAGES
В этом посте поделимся опытом того, как добавление этого разрешения в манифест заблокировало нам возможность выпустить приложение в альфа-канал, и почему вы должны быть осторожны, прежде чем добавлять это разрешение в свой проект.
Если вы являетесь Android-разработчиком, то, возможно, знаете о недавнем изменении политики Google Play в отношении разрешения READ_MEDIA_IMAGES. К сожалению, мы не знали. В этом посте поделимся опытом того, как добавление этого разрешения в манифест заблокировало нам возможность выпустить приложение в альфа-канал, и почему вы должны быть осторожны, прежде чем добавлять это разрешение в свой проект.
https://medium.com/@astamato/beware-of-read-media-images-not-just-a-feeling-of-rejection-aa1ddacaff5d
#ios
👉 @developer_mobila
В этом посте поделимся опытом того, как добавление этого разрешения в манифест заблокировало нам возможность выпустить приложение в альфа-канал, и почему вы должны быть осторожны, прежде чем добавлять это разрешение в свой проект.
Если вы являетесь Android-разработчиком, то, возможно, знаете о недавнем изменении политики Google Play в отношении разрешения READ_MEDIA_IMAGES. К сожалению, мы не знали. В этом посте поделимся опытом того, как добавление этого разрешения в манифест заблокировало нам возможность выпустить приложение в альфа-канал, и почему вы должны быть осторожны, прежде чем добавлять это разрешение в свой проект.
https://medium.com/@astamato/beware-of-read-media-images-not-just-a-feeling-of-rejection-aa1ddacaff5d
#ios
👉 @developer_mobila
Через два дня — живой разбор AI в Flutter
⏰ 20 мая, 20:00 МСК. Бесплатный вебинар «Интеллект внутри: делаем умные Flutter‑приложения с ML и AI».
Почему стоит подключиться:
— увидите, как запустить нейросети офлайн без серверных счетов;
— разберётесь, чем MediaPipe лучше готовых SDK для жестов;
— научитесь подключать LLM‑подсказки к любому экрану приложения;
— получите скидку на курс «Flutter Mobile Developer».
Код пишем в прямом эфире вместе с Дмитрием Золотовым (Yandex).
Не откладывайте — регистрация закроется при наборе группы.
→ Забронировать место
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
⏰ 20 мая, 20:00 МСК. Бесплатный вебинар «Интеллект внутри: делаем умные Flutter‑приложения с ML и AI».
Почему стоит подключиться:
— увидите, как запустить нейросети офлайн без серверных счетов;
— разберётесь, чем MediaPipe лучше готовых SDK для жестов;
— научитесь подключать LLM‑подсказки к любому экрану приложения;
— получите скидку на курс «Flutter Mobile Developer».
Код пишем в прямом эфире вместе с Дмитрием Золотовым (Yandex).
Не откладывайте — регистрация закроется при наборе группы.
→ Забронировать место
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Руководство по использованию unsafe в Swift
В этой статье мы рассматрим различные подходы для работы с небезопасными операциями в языке программирования Swift. Swift предоставляет несколько способов для работы с указателями и низкоуровневой памятью:
🔹Прямое использование указателей без обёрток,
🔹Применение встроенных обёрток (например, UnsafePointer, UnsafeMutablePointer, UnsafeRawPointer, с их вариациями)
🔹Дополнительные механизмы вроде withUnsafePointer, withUnsafeMutablePointer, Unmanaged и OpaquePointer.
https://habr.com/ru/articles/887914/
#ios
👉 @developer_mobila
В этой статье мы рассматрим различные подходы для работы с небезопасными операциями в языке программирования Swift. Swift предоставляет несколько способов для работы с указателями и низкоуровневой памятью:
🔹Прямое использование указателей без обёрток,
🔹Применение встроенных обёрток (например, UnsafePointer, UnsafeMutablePointer, UnsafeRawPointer, с их вариациями)
🔹Дополнительные механизмы вроде withUnsafePointer, withUnsafeMutablePointer, Unmanaged и OpaquePointer.
https://habr.com/ru/articles/887914/
#ios
👉 @developer_mobila
👍1