ExtensionManager теперь позволяет накатить четких эффектов поверх CameraX. Зачет. https://bit.ly/2X6umZc
Medium
Apply special effects to images with the CameraX Extensions API
Android CameraX was designed to make camera development easier. As CameraX was being developed, camera application developers have shared…
Конференция для мобильных разработчиков Mobius — 22-25 ноября, онлайн.
Вас ждет 4 дня выступлений спикеров со всего мира, которые будут рассказывать обо всем, что происходит в индустрии и может пригодиться в работе. Речь пойдет про:
✔️ iOS;
✔️ Android;
✔️ Мультиплатформенную разработку;
✔️ Фреймворки и инструменты;
✔️ Лучшие практики;
✔️ И многое другое.
Первая программа уже на сайте, и чтобы не пропустить самые топовые доклады, рекомендуем подписаться на рассылку.
А если вы уже знаете, что пойдете на конференцию, то ловите промокод
Вас ждет 4 дня выступлений спикеров со всего мира, которые будут рассказывать обо всем, что происходит в индустрии и может пригодиться в работе. Речь пойдет про:
✔️ iOS;
✔️ Android;
✔️ Мультиплатформенную разработку;
✔️ Фреймворки и инструменты;
✔️ Лучшие практики;
✔️ И многое другое.
Первая программа уже на сайте, и чтобы не пропустить самые топовые доклады, рекомендуем подписаться на рассылку.
А если вы уже знаете, что пойдете на конференцию, то ловите промокод
drodev2021JRGpc , он поможет приобрести Personal Standard билет по очень выгодной цене. Ведь чем ближе конференция, тем выше цена 🔥👍2
Обычно на протяжении недели приходит порядочное количество вакансий, большинство из которых типовые простыни об одном и том же.
Чем-то понравилась вакансия от QLean. Ищут синьора андроид, который будет ответственен за приложения с нуля. Про деньги не пишут, но, судя по описанию, либо должны хорошо платить, либо никого не найдут 😜 https://qlean.notion.site/Senior-Android-Developer-451c5e12f5d744f1a48ff6e13167a0f9
Чем-то понравилась вакансия от QLean. Ищут синьора андроид, который будет ответственен за приложения с нуля. Про деньги не пишут, но, судя по описанию, либо должны хорошо платить, либо никого не найдут 😜 https://qlean.notion.site/Senior-Android-Developer-451c5e12f5d744f1a48ff6e13167a0f9
👍1
Только сейчас распробовал беспроводную отладку приложений, которая идет нативно с Android 11+.
Один раз "спарив" приложение со студией в знакомой сети будет работать само по себе при включении опции.
По ощущению деплоится чуть дольше, но отсутствие проводов - кайф. Особенно если разрабатываете на маке, на котором стандартный USB только через переходник.
Один раз "спарив" приложение со студией в знакомой сети будет работать само по себе при включении опции.
По ощущению деплоится чуть дольше, но отсутствие проводов - кайф. Особенно если разрабатываете на маке, на котором стандартный USB только через переходник.
👍1
Бесплатный митап Sber Mobile Meetup — 7 декабря, 17:00, онлайн
Сбер при поддержке JUG Ru Group проведет онлайн-митап для мобильных разработчиков. В программе — три доклада от специалистов, которые работают над сервисами Сбера:
– Андрей Попов — «Современный подход к анимациям в UICollectionView». Доклад об анимациях, применимых к коллекциям с помощью современных API в iOS SDK.
– Дмитрий Исаев — «Clean MMVM c Combine, SwiftUI в продакшене». Узнайте, как команда Сбера применила этот стек к большому объему бизнес-логики, вдохновившись Clean Code от дядюшки Боба Мартина.
– Андрей Данилов — «Как (не) ускорить сборку Android-проекта». Андрей расскажет, как не наступить на грабли при ускорении сборки: исправить порядок репозиториев зависимостей и найти альтернативы для неэффективных инструментов.
А еще вы сможете задать спикерам вопросы после докладов и пообщаться с коллегами в Spatial chat.
Участие бесплатное, нужно только зарегистрироваться. Ждем вас!
Сбер при поддержке JUG Ru Group проведет онлайн-митап для мобильных разработчиков. В программе — три доклада от специалистов, которые работают над сервисами Сбера:
– Андрей Попов — «Современный подход к анимациям в UICollectionView». Доклад об анимациях, применимых к коллекциям с помощью современных API в iOS SDK.
– Дмитрий Исаев — «Clean MMVM c Combine, SwiftUI в продакшене». Узнайте, как команда Сбера применила этот стек к большому объему бизнес-логики, вдохновившись Clean Code от дядюшки Боба Мартина.
– Андрей Данилов — «Как (не) ускорить сборку Android-проекта». Андрей расскажет, как не наступить на грабли при ускорении сборки: исправить порядок репозиториев зависимостей и найти альтернативы для неэффективных инструментов.
А еще вы сможете задать спикерам вопросы после докладов и пообщаться с коллегами в Spatial chat.
Участие бесплатное, нужно только зарегистрироваться. Ждем вас!
👍1
Бесплатный онлайн-митап для мобильных разработчиков от Luxoft и JUG Ru Group
16 декабря, 18:00 (Мск, GMT+3)
Программа митапа:
📌 Дмитрий Мовчан — «Гайд по выживанию в мире UI тестов»
Дмитрий поможет понять, какой тип UI-тестирования вам нужен, поговорит про типичные проблемы и пройдется по инструментам, которые помогут с ними справиться.
📌 Михаил Зотьев — «Как проходит развитие библиотеки Elementary»
Elementary — библиотека, позволяющая писать приложения на Flutter в стиле паттерна MVVM. Из доклада Михаила вы узнаете про основные концепты, преимущества и недостатки библиотеки.
📌 Евгений Сатуров — «Стелем мягкую соломку на жесткий Flutter»
Евгений поделится с сообществом базой лучших практик разработки Flutter-проектов. В основе его доклада — опыт, накопленный командой Surf почти за 3 года работы с Flutter.
А также вас ждут дискуссии после каждого доклада и розыгрыши брендированного мерча за лучший вопрос.
Участие бесплатное, нужно только зарегистрироваться!
16 декабря, 18:00 (Мск, GMT+3)
Программа митапа:
📌 Дмитрий Мовчан — «Гайд по выживанию в мире UI тестов»
Дмитрий поможет понять, какой тип UI-тестирования вам нужен, поговорит про типичные проблемы и пройдется по инструментам, которые помогут с ними справиться.
📌 Михаил Зотьев — «Как проходит развитие библиотеки Elementary»
Elementary — библиотека, позволяющая писать приложения на Flutter в стиле паттерна MVVM. Из доклада Михаила вы узнаете про основные концепты, преимущества и недостатки библиотеки.
📌 Евгений Сатуров — «Стелем мягкую соломку на жесткий Flutter»
Евгений поделится с сообществом базой лучших практик разработки Flutter-проектов. В основе его доклада — опыт, накопленный командой Surf почти за 3 года работы с Flutter.
А также вас ждут дискуссии после каждого доклада и розыгрыши брендированного мерча за лучший вопрос.
Участие бесплатное, нужно только зарегистрироваться!
👍2
Я раньше лично с некоторыми ребятами из команды работал, т.ч. им можно доверять!
Удалённый Android-разработчик в компанию hi-Mobile.
Кто нам нужен:
Android-разработчик, который дополнит нашу команду и будет помогать нам развивать приложение по доставке продуктов на дом.
Обязательно сделаем так, чтобы вы могли комфортно интегрироваться в проект — подскажем, расскажем, поможем!
Нам не принципиально откуда вы, потому как можно работать удалённо. Процессы прозрачные, бюрократии нет.
Soft Skills для нас выше, чем Hard Skills!
О нас:
Мы маленькая, но прогрессивная команда мобильной разработки. Мы крепко дружим и делаем свою работу также хорошо, как и дружим. У нас за плечами (и в релизе) большие проекты, которые приносят людям пользу каждый день. У нас нет бюрократии и синдрома менеджера. Мы доверяем друг-другу и всегда помогаем.
Проекты, на которых мы выросли и в которых принимали значимое участие и запускали с нуля:
1. Моя Москва (госуслуги Москвы) — https://www.mos.ru/mobile/
2. ЦИАН (поиск недвижимости) — https://promo.cian.ru/apps
3. Гурманика (доставка еды) — https://gurmanika.ru
4. Smart (доставка продуктов) — https://smart.swnn.ru
5. Точка банк (проект для участия в тендерах) — https://play.google.com/store/apps/details?id=com.tochka.bank.tenders
Предстоящие основные задачи:
- Развитие нового функционала и поддержка существующего на Kotlin;
- Взаимодействие с дизайнерами и QA;
- Проведение code-review;
Обязательные требования:
- Опыт в разработке Android от 1 лет;
- Владение Java/Kotlin и Android SDK;
- Уверенные знания в RxJava;
- Знание шаблонов проектирования MVP, MVVM набор компонентов Android Jetpack, умение их применять;
- Опыт работы с DI-фреймворками;
- Опыт написания клиент-серверных приложений(retrofit, okhttp);
- Работа с VCS, gitflow;
- Понимание принципов Material Design;
График работы:
5/2, с 11 до 19 по Мск. Если у вас другой временной режим/временная зона, можем обсудить.
Условия:
150-170 тыс руб в месяц (на руки/на карту). Оплата 2 раза в месяц (аванс, зарплата). Отпуска и больничные оплачиваются. Минимум бюрократии.
Контакт для связи:
@Vlad_US
Удалённый Android-разработчик в компанию hi-Mobile.
Кто нам нужен:
Android-разработчик, который дополнит нашу команду и будет помогать нам развивать приложение по доставке продуктов на дом.
Обязательно сделаем так, чтобы вы могли комфортно интегрироваться в проект — подскажем, расскажем, поможем!
Нам не принципиально откуда вы, потому как можно работать удалённо. Процессы прозрачные, бюрократии нет.
Soft Skills для нас выше, чем Hard Skills!
О нас:
Мы маленькая, но прогрессивная команда мобильной разработки. Мы крепко дружим и делаем свою работу также хорошо, как и дружим. У нас за плечами (и в релизе) большие проекты, которые приносят людям пользу каждый день. У нас нет бюрократии и синдрома менеджера. Мы доверяем друг-другу и всегда помогаем.
Проекты, на которых мы выросли и в которых принимали значимое участие и запускали с нуля:
1. Моя Москва (госуслуги Москвы) — https://www.mos.ru/mobile/
2. ЦИАН (поиск недвижимости) — https://promo.cian.ru/apps
3. Гурманика (доставка еды) — https://gurmanika.ru
4. Smart (доставка продуктов) — https://smart.swnn.ru
5. Точка банк (проект для участия в тендерах) — https://play.google.com/store/apps/details?id=com.tochka.bank.tenders
Предстоящие основные задачи:
- Развитие нового функционала и поддержка существующего на Kotlin;
- Взаимодействие с дизайнерами и QA;
- Проведение code-review;
Обязательные требования:
- Опыт в разработке Android от 1 лет;
- Владение Java/Kotlin и Android SDK;
- Уверенные знания в RxJava;
- Знание шаблонов проектирования MVP, MVVM набор компонентов Android Jetpack, умение их применять;
- Опыт работы с DI-фреймворками;
- Опыт написания клиент-серверных приложений(retrofit, okhttp);
- Работа с VCS, gitflow;
- Понимание принципов Material Design;
График работы:
5/2, с 11 до 19 по Мск. Если у вас другой временной режим/временная зона, можем обсудить.
Условия:
150-170 тыс руб в месяц (на руки/на карту). Оплата 2 раза в месяц (аванс, зарплата). Отпуска и больничные оплачиваются. Минимум бюрократии.
Контакт для связи:
@Vlad_US
mos.ru
Приложение «Моя Москва» — скачать официальное приложение mos.ru для iOS и Android
Воспользуйтесь популярными услугами и сервисами портала mos.ru для решения повседневных задач в различных сферах жизни, таких как дом, семья, транспорт, здоровье, досуг. Оплачивайте все счета в два клика. Будьте в курсе главных новостей. Скачивайте приложение…
👍9
Прямо давно ничего не писал, пора исправлять.
И Кстати, через 25 минут начинается keynote Google I/O 2023:
https://io.google/2023/program/396cd2d5-9fe1-4725-a3dc-c01bb2e2f38a/
И Кстати, через 25 минут начинается keynote Google I/O 2023:
https://io.google/2023/program/396cd2d5-9fe1-4725-a3dc-c01bb2e2f38a/
👍2
Google мощно продвигает Jetpack Compose как правильный способ делать UI.
Компоуз классный, но (особенно по началу) может вызывать неочевидные просадки в производительности приложения.
О том как правильно дебажить Compose рассказывали вчера на Google I/O:
https://www.youtube.com/watch?v=Kp-aiSU8qCU
Компоуз классный, но (особенно по началу) может вызывать неочевидные просадки в производительности приложения.
О том как правильно дебажить Compose рассказывали вчера на Google I/O:
https://www.youtube.com/watch?v=Kp-aiSU8qCU
YouTube
Debugging Jetpack Compose
Jetpack Compose has brought a whole new approach to developing Android apps and this brings a new set of techniques for debugging. Learn how to address common challenges when developing with Compose code, like why is (or isn’t!) my composable recomposing…
❤2🤮1
Делал тут недавно один side проектик небольшой и там нужна была постраничная загрузка страниц.
Paging3 библиотека по идее делает что надо, но по факту придется завязываться на нее на всех слоях - от data до UI.
С другой стороны можно сделать руками, не завязываясь на либу, но по факту архитектура получится +- такая же, только самописная.
Итого возник вопрос - в проекте используете Paging(1/2/3) либу, или пишите сами ручками?
Paging3 библиотека по идее делает что надо, но по факту придется завязываться на нее на всех слоях - от data до UI.
С другой стороны можно сделать руками, не завязываясь на либу, но по факту архитектура получится +- такая же, только самописная.
Итого возник вопрос - в проекте используете Paging(1/2/3) либу, или пишите сами ручками?
Пользуетесь Paging3 для постраничной загрузки?
Anonymous Poll
36%
Да, экономит время
34%
Нет, пишу всё сам
30%
Нет таких задач
🤮1
Игрался с плагином в AS, который показывает статистику по строкам кодам, файлам и т.д. в проекте.
В небольшом side проекте статистика показала, что суммарно строк кода в тестах больше, чем в файлах, которые тесты покрывают 🙂
Не покрытыми остались только Compose UI классы, но по факту их тоже стоит покрыть. Просто в Unit тестировании компоуза пока не разбирался - есть над чем работать.
В небольшом side проекте статистика показала, что суммарно строк кода в тестах больше, чем в файлах, которые тесты покрывают 🙂
Не покрытыми остались только Compose UI классы, но по факту их тоже стоит покрыть. Просто в Unit тестировании компоуза пока не разбирался - есть над чем работать.
👍3🤮3
В рамках google I/O был доклад как делать data layer:
https://io.google/2023/program/373ef4ca-1e69-4af4-ac21-f51b967c4742/
Не до конца согласен с разделением на Repository и DataSource.
DataSource по факту является таким же репозиторием. .
Предлагают реализовать DefaultTaskRepository, реализующий интерфейс TaskRepository.
При этом реализация внутри зависит от конкретных реализаций DataSource (локального хранилища и сети).
Я бы спрятал оба DataSource также за TaskRepository и DefaultTaskRepository использовал как прокси репозиторий.
В таком случае можно использовать любой TaskRepository и не менять логику основного репозитория. Например, если захочется переехать на другую БД или сделать in-memory зачем-то.
https://io.google/2023/program/373ef4ca-1e69-4af4-ac21-f51b967c4742/
Не до конца согласен с разделением на Repository и DataSource.
DataSource по факту является таким же репозиторием. .
Предлагают реализовать DefaultTaskRepository, реализующий интерфейс TaskRepository.
При этом реализация внутри зависит от конкретных реализаций DataSource (локального хранилища и сети).
Я бы спрятал оба DataSource также за TaskRepository и DefaultTaskRepository использовал как прокси репозиторий.
В таком случае можно использовать любой TaskRepository и не менять логику основного репозитория. Например, если захочется переехать на другую БД или сделать in-memory зачем-то.
io.google
Google I/O 2026
Don't miss Google I/O, featuring product launches, innovations, and insights. Tune in for the live keynotes and sessions.
🤔3👎1
Впечатлило как #Compose из коробки поддерживает темную тему.
По факту для этого делать ничего и не надо. Вновь созданный проект использует Material из коробки и все базовые элементы уже приспособлены к смене темы 🔥
По факту для этого делать ничего и не надо. Вновь созданный проект использует Material из коробки и все базовые элементы уже приспособлены к смене темы 🔥
🔥2
Когда лучше закидывать пост в канал? (Можно выбрать несколько)
Anonymous Poll
32%
Утром
19%
Днем
25%
Вечером
19%
Будни
13%
Выходные
40%
Мне все равно
🥱3🤮1
Смотрел примеры по навигации и поддержки разных форм-факторов на Compose.
Офф. пример JetNews:
https://github.com/android/compose-samples/tree/main/JetNews
Они используют NavComponent для верхнеуровневой навигации. Дальше, на home screen во viewModel держат текущий uIState:
…
В зависимости от размера экрана строят нужный compose.
По сути и лента и detailed page существуют в рамках одного «экрана» и на уровне UI решается как через Composable строить представление.
Довольно элегантное решение, которое позволяет поддерживать кучу разных формфакторов и не запутаться в разных ресурсных папках, как это могло бы быть при стандартном подходе с фрагментами.
Или есть варианты интереснее?
Офф. пример JetNews:
https://github.com/android/compose-samples/tree/main/JetNews
Они используют NavComponent для верхнеуровневой навигации. Дальше, на home screen во viewModel держат текущий uIState:
data class HasPosts(
val postsFeed: PostsFeed,
val selectedPost: Post,
val isArticleOpen: Boolean,…
В зависимости от размера экрана строят нужный compose.
По сути и лента и detailed page существуют в рамках одного «экрана» и на уровне UI решается как через Composable строить представление.
Довольно элегантное решение, которое позволяет поддерживать кучу разных формфакторов и не запутаться в разных ресурсных папках, как это могло бы быть при стандартном подходе с фрагментами.
Или есть варианты интереснее?
👍2