Как стать автором
Обновить
161.12

Разработка мобильных приложений *

Android, iOS, Windows Phone и прочие

Сначала показывать
Порог рейтинга

Хардкодить допоздна? А может, лучше нет, ворк?

>> Регистрация и программа <<

23 апреля в 20:00 приглашаем воронежских разработчиков на неформальный митап. Для тех, кто не сможет прийти офлайн, будет трансляция.

Никаких скриншотов кода на слайдах. Никакого душного обсуждения документации. Поговорим о том, что окружает нас вне работы. Прокачаем софт-скиллы и нетворкинг.

В программе митапа три доклада:

  • Лёша, Android-разработчик Surf — «Дедлайн "вчера": как работать с приоритетами».

    Как рассеивается внимание? Как ставить приоритеты в работе с командой? Когда нужно выносить переписку в звонок, а когда можно обойтись текстом? Ответим на эти и многие другие вопросы про приоритеты в работе и жизни.

  • Дима, Flutter-разработчик Surf — «Тимлид — друг или враг? Или так»?

    Расскажу о роли тимлида, но со стороны нижестоящего сотрудника. Что мне нравится/что не нравится в лиде, что для меня кажется полезным, а смысл чего я не понимаю.

  • Кирилл, iOS-разработчик, наш друг и гость из Una Financial — «Work-life health для IT-шника среднего возраста».

    Поделюсь жизненными проблемами разработчиков и способами их решения. Внимательный слушатель вообще сможет их избежать! Обсудим, как сделать жизнь лучше, повысить её качество. Максимально продлим трудоспособный возраст.

Митап пройдет 23 апреля, в 20:00, в воронежском пространстве «Eventuki»: ул. Фридриха Энгельса, 52.

Участие в митапе бесплатное, чтобы прийти или получить ссылку на трансляцию, нужно зарегистрироваться 👈

Запись трансляции обязательно сохраним, но если вы из Воронежа, мы очень ждём понетворкать вживую. До встречи 😉

Теги:
0
Комментарии0

⚡️Вести с полей - Duit

Новый релиз flutter_duit v3.4.0!

Что внутри:

  • ⚙️ Новые виджеты: GridView, Card, AppBar, Scaffold, InkWell, CarouseView, AnimatedContainer

  • ⚙️ Повышена минимальная версия Flutter SDK для использования Duit (3.24.x)

Подробности о самом интересном:

🔥 Поддержка виджетов Scaffold, AppBar и Card ознаменует начало работы над полноценной реализации всего набора виджетов из библиотеки material

🚀 Приведен в порядок публичный проект на github, который поможет отслеживать прогресс разработки виджетов и новых фич фреймворка

О проекте:

Теги:
0
Комментарии0

Пользователь сообщил, что в клиентском опроснике «Ростелекома» нельзя поставить оценку ниже 7 — кнопка «Далее» становится неактивной.

Теги:
+18
Комментарии3

Ждем вас на онлайн-дискуссии по Мобильной ферме

Через час, в 16:00 мск, начнем обсуждение трех подходов к мобильному тестированию. Обсудим плюсы и минусы работы с локальными, публичными и зарубежными решениями. Определим наиболее эффективный формат тестирования для разных ситуаций. 

Смотреть на YouTube →

Смотреть во ВКонтакте →

О чем поговорим

  • Локальная ферма: плюсы и минусы с технологической точки зрения 

  • Browserstack: стоит ли полагаться на зарубежного провайдера 

  • Можно ли заменить ферму качественной автоматизацией?

Спикеры

🎙 Фаиль Шахмаев, руководитель мобильной разработки в TrendTech

🎙 Юрий Дубовой, руководитель iOS-разработки в Делимобиль

🎙 Никита Бондарев, Head of QA в Спортc"

🎙 Александр Кабанец, менеджер продукта «Мобильная ферма» в Selectel

Подключиться к трансляции →

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии0

⚡️Вести с полей - Duit

Новый релиз flutter_duit v3.3.0!

Что внутри:

  • ⚙️ Wasm-совместимая реализация WebSocketTransport

  • ⚙️ Новые виджеты: SafeArea, IntrinsicWidth, RemoteSubtree

  • ⚙️ Экспорт API duit_kernel, полноценная поддержка тем фреймворком

  • ⚙️ Автоматический тайпкаст контроллеров кастомных виджетов

  • ⚙️ Исправлена ошибка аттача контроллера к драйверу после тайпкаста

Подробности о самом интересном:

🔥 Среди новых виджетов есть совершенно особенный - RemoteSubtree. Этот виджет позволяет динамически загружать собственный контент (макет дочерних поддеревьев виджетов). Ключевая фича виджета - возможность передать ему список зависимостей (по аналогии с действиями), благодаря которым будут собраны данные виджетов и переданы в теле запроса на получение контента.

🚀 Экспорт API duit_kernel, который отвечает за работу тем. С этого релиза этой функцией можно уверенно пользоваться! В example app добавлен пример использования нового API.

🎁 Работа с кастомными виджетами стала еще более удобной! Больше не требуется вручную кастовать UIElementController<dynamic> к UIElementController<тип_атрибута> - приведение типов будет выполенено автоматически.

О проекте:

Теги:
Рейтинг0
Комментарии0

🤖 Приглашаем на онлайн-дискуссию по мобильному тестированию

12 марта эксперты из крупных компаний встретятся, чтобы обсудить свой опыт работы с локальными, публичными и зарубежными мобильными фермами. Они сравнят три решения с разных точек зрения, расскажут про плюсы и минусы каждого решения, поделятся собственным опытом и вместе обсудят, какой формат тестирования эффективнее в разных ситуациях.

Приглашаем вас присоединиться, узнать больше о мобильном тестировании и получить ответы на вопросы.

Где и когда

12 марта в 16:00 (МСК). В этот раз встречаемся только онлайн, так что присоединиться можно из любой точки мира.

Спикеры

▪️ Фаиль Шахмаев, руководитель мобильной разработки в TrendTech.

▪️ Юрий Дубовой, руководитель iOS-разработки в Делимобиль.

▪️ Никита Бондарев, head of QA в Спортс”.

▪️ Александр Кабанец, менеджер продукта «Мобильная ферма» в Selectel.

Программа

▪️ Локальная ферма: плюсы и минусы с технологической точки зрения.

▪️ Можно ли заменить ферму качественной автоматизацией?

▪️ Browserstack: стоит ли полагаться на зарубежного провайдера. 

▪️ Ответы на вопросы зрителей.

Будем рады, если у вас получится подключиться!

Зарегистрироваться →

Теги:
Всего голосов 8: ↑8 и ↓0+10
Комментарии0

$mol_hack - mobile science app hackathon

Наш давний друг Женя Блохин, учёный-химик из Питера, попросил нас помочь с простым мобильным оупенсорс клиентом для научной БД. Он сделал ставку на фреймворк $mol, чтобы поддержать отечественные технологии и показать их научному сообществу во всём мире.

Чтобы добиться самого высокого качества, мы проводим онлайн хакатон с призовым фондом в ₽300K, который будет справедливо поделён между всеми участниками. Задача очень простая: нужно переписать не хитрое научное оупенсорс приложение с VanillaJS на $mol - TypeScript фреймворк мирового уровня.

Подробности будут на этом канале 23 февраля, когда хакатон начнётся. У вас будет неделя до 2 марта, чтобы неспеша вылизать своё решение. А ещё через неделю мы распределим места и объявим победителя, чей форк будет влит обратно в основной репозиторий. Да, у нас всё будет в открытую на платформе GitHub, чтобы каждый мог убедиться в справедливости судейства.

Участвуйте сами и призывайте в наши ряды новобранцев. Ещё не поздно до начала успеть освоить самый продвинутый фреймворк хотя бы на базовом уровне - этого уже будет достаточно, чтобы иметь шанс что-то выиграть.

Теги:
Всего голосов 9: ↑4 и ↓5-1
Комментарии0

Как сократить JSON на 74% при 100 элементах?

Важное преимущество SDUI — возможность внедрять изменения без выпуска новых версий приложений. Но это же преимущество есть его недостаток, ведь передача всех данных по сети зависит от качества соединения и увеличивает объём данных. 

Качество связи мы не можем контролировать, а вот уменьшить количество передаваемой информации посредством сокращения JSON, — вполне.

Нам нужна функция, которая могла бы вынести и переиспользовать общую логику. В нашем SDUI уже существует концепция «функций», и их разнообразные реализации, но ни одна из них не умела сокращать JSON, поэтому нужна была новая.

Функция должна брать общую часть и заменять в ней только те части, которые отличаются от элемента к элементу, оставляя остальное неизменным. Подобный подход давно применяется в виде шаблонизации, что и было необходимо реализовать. Идея в том, чтобы взять шаблон и подставлять в него различные значения. В нашем SDUI мы уже умели подставлять значения из других мест, и для этого у нас есть собственный синтаксис.

Детали реализации шаблонизации в статье.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Kotlin Multiplatform на практике: как работать с технологией (видео-туториал)

Выпустили серию видео о базовых аспектах работы с Kotlin Multiplatform, технологией для мультиплатформенной разработки (iOS, Android, Web, Desktop).

KMP позволяет использовать общую кодовую базу для нескольких платформ. Причём мы можем гибко регулировать, какую часть кода делаем общей (например, оставляем нативный UI-слой, а бизнес-логику делаем общей).

Рассказали, как и для чего применять технологию на практике, и как к ней подступиться.

Уже доступны все шесть выпусков туториала:

1. Что из себя представляет технология KMP?

2. Настройка окружения

3. Структура проекта

4. Верстка на SwiftUI

5. Верстка на Compose

6. Сетевой слой

Посмотреть туториал можно здесь:

К каждому выпуску приложен документ с пояснением некоторых терминов и полезными ссылками (см. в описании видео), которые пригодятся при ознакомлении с материалом.

Теги:
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Ну что, народ, что называется "тащусь" от новой сегодняшней версии ChatGPT CodeCopilot.

Там теперь появились три окна. Слева знакомый чат, в центре код, причём теперь уже с возможностью редактировать прямо здесь. А справа ещё менюшка с несколькими опциями. Там и комментарии, и логи, и борьба с багами и др. В целом, стало даже немного похоже на Xcode.

Мне же особенно понравилась опция Code Review. Это круто! Типа он проходит по коду и даёт рекомендации.

For example:

I've reviewed the code and suggested improvements for logical consistency, potential crash prevention, layout calculations, and readability. Let me know if you need further refinements! 🚀

Даже не знаю, как это назвать. Реально круто!

Теги:
Всего голосов 8: ↑4 и ↓4+2
Комментарии1

Привет, друзья! Меня зовут Александр Минкин, в компании SM Lab я работаю тимлидом Android-разработки на продукте МП Спортмастер. Сегодня я хочу поделиться с вами подробностями об одном из самых мощных архитектурных паттернов для мобильных приложений - MVI (Model-View-Intent). Этот паттерн помогает создавать приложения с четко разделенной логикой, улучшенной тестируемостью и высокой масштабируемостью. Давайте разберемся в его особенностях и посмотрим примеры кода на языке программирования Kotlin в Android с использованием Kotlin Coroutines, StateFlow и Fragment, а также давайте расширим наш пример с использованием чистой архитектуры, где добавим уровни domain-слоя (UseCases) и data-слоя (Repository). Этот подход поможет вам управлять состояниями приложения более эффективно и реагировать на изменения в реальном времени.

 Основные компоненты MVI с чистой архитектурой:

1. Model: Хранит состояние приложения.

2. View: Отображает текущее состояние Model.

3. Intent: Интерпретирует действия пользователя и направляет их в UseCase.

4. UseCase: Содержит бизнес-логику и выполняет операции.

5. Repository: Обеспечивает доступ к данным, будь то локальные или удаленные источники.

Преимущества MVI:

- Однозначное управление состоянием: Все состояния приложения проходят через один поток данных, что упрощает их отслеживание.

- Масштабируемость: Каждый компонент отвечает за свою часть логики, что позволяет легко масштабировать приложение.

- Тестируемость: Изолированные компоненты упрощают написание тестов.

Давайте рассмотрим пример использования MVI в приложении на Kotlin. Допустим, у нас есть приложение для управления задачами. Ссылка на gist:

https://gist.github.com/Rasalexman/53f9be0fc4e295b987e0921839a9a84e

Здесь мы рассмотрели базовый пример использования MVI. Хочу отметить, что в разных реализациях этот архитектурный паттерн, может включать в себя несколько дополнительных компонентов, таких как Reducer - это компонент помогающий преобразовать входное намерение в состояние. В примере выше таким reducer может выступать функция `processIntent`, но чаще его делают как абстракцию в виде интерфейса с функцией reduce, которая принимает Intent и возвращает State. Также мы можем добавить такой компонент как Store - это общая часть для работы с намерениями, которая получает результат обработки намерения и может производить как SideEffects, так и само состояние (State) экрана. Количество компонентов может меняться от сложности реализации, вплоть до добавления специальных объектов middleware и сайд-эффектов (SideEffects). Подробное рассмотрение данных компонентов не входило в текущую статью. С более сложными реализациями вы можете ознакомиться по ссылкам ниже

Заключение:

MVI - это мощный архитектурный паттерн, который помогает разрабатывать структурированные, масштабируемые и легко тестируемые приложения. Его использование позволяет разработчикам четко разделять логику представления, состояния и намерений пользователя, упрощая сопровождение и расширение приложения.

Использование Kotlin Coroutines и StateFlow с архитектурой MVI позволяет вам эффективно управлять состояниями и асинхронными операциями в вашем приложении. Интеграция чистой архитектуры с использованием UseCases и Repository делает ваше приложение более модульным и легко масштабируемым. Это упрощает написание кода, при этом ваше приложение становится более отзывчивым и масштабируемым, а так же удобным в управлении данными и бизнес-логикой, улучшая тестируемость и поддержку кода.

Спасибо, что прочитали данную статью. Буду признателен за комментарии и реакции к этому посту. Делить какую реализацию MVI вы используете у себя в проектах. Всем отличного настроения, помните, что его, как и архитектуру, вы можете выбирать сами ;)

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Как CodeStyle спасает Flutter-проекты от хаоса

Разрозненная структура файлов, разные подходы к оформлению и дублирование функциональности — всё это замедляет разработку и повышает вероятность ошибок.
Чтобы победить хаос, сделать работу команды быстрее и проще, попробуйте внедрить CodeStyle — это свод правил, которые делают код читаемым, стандартизированным и удобным для поддержки.

Вот что вы получите:

  • Читаемость: новые участники команды быстрее понимают проект.

  • Стандартизация: вся кодовая база выглядит так, будто ее писал один человек.

  • Поддерживаемость: проще рефакторить и находить ошибки.

Почему CodeStyle особенно важен для Flutter

Flutter на проектах дает гибкость, которая при отсутствии дисциплины превращается в проблему. Например, вы можете столкнуться с:

  • разрозненной структурой файлов, которая затрудняет поиск компонентов;

  • непоследовательным оформлением кода, которое усложняет его понимание;

  • дублированием библиотек и функционала, которое приводит к путанице.

Единый CodeStyle решает эти проблемы и создает прозрачную и предсказуемую структуру проекта.

Как внедрить CodeStyle: 4 шага

1. Обучение

Проводите мастер-классы и лекции, показывайте примеры из реальных проектов. Это помогает разработчикам видеть преимущества стандартов.

2. Автоматизация

Настройте инструменты для проверки кода:

  • линтеры (например, flutter_lints) для автоматической проверки стиля;

  • pre-commit хуки (Husky или Lefthook) для форматирования кода перед коммитом.

3. Код-ревью

Сделайте ревью обязательным этапом Pull Request. Это улучшит качество кода и поможет следить за соблюдением правил.

4. Командное соглашение

Создайте документ с правилами CodeStyle и внедрите их в культуру команды. Пусть разработчики понимают, что стандарты упрощают жизнь каждому.

Если хотите внедрить эти подходы на своих проектах, читайте подробную статью от нашего Flutter-разработчика Никиты Грибкова. В ней найдете больше примеров, кода и рекомендаций.

Теги:
Рейтинг0
Комментарии0

Всем доброго дня. Представьте, что есть система, которая автоматически генерирует технические спецификации и документацию для разработчиков на основе описания проекта.

Фичи:

Генерация структурированных документов в Markdown/PDF

Интеграция c Jira/Confluence

Возможность автоматической генерации диаграмм (ERD, Sequence)

Полезно ли это/пользовались бы сами?

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии2

Ближайшие события

Пишем приложение для поиска объектов на С++ (а не на Python)

Результат работы приложения по поиску объектов на С++
Результат работы приложения по поиску объектов на С++

Приложения по поиску объектов, написанные на С++, работают ничуть не хуже привычных вариантов на Python. На это есть несколько причин:

  • Программы на С++ получаются более быстрыми и компактными. Инженерам доступно больше вычислительных ресурсов, так как современные компиляторы оптимизируют программу в соответствии с архитектурой целевого процессора.

  • C++ не использует дополнительный сборщик мусора для управления памятью — это существенно влияет на производительность программы. 

  • Размер программы также можно уменьшить, поскольку C++ не использует дополнительную виртуальную машину и компилируется непосредственно в машинный код.

Это хороший выбор для мобильных устройств с ограниченным объемом ресурсов, например, телефонов или маломощных плат, которые используются в робототехнике или видеоаналитике.

Если хотите написать такое приложение, изучите материалы инженера YADRO и ML-энтузиаста Кирилла Колодяжного. Он подробно описал, как реализовать программу на С++ с применением библиотек компьютерного зрения.

Подготовительная часть →

Практическая часть →

Теги:
Всего голосов 6: ↑6 и ↓0+8
Комментарии0

Три лекции с нашего митапа для продактов!

В октябре собирали гостей в нашем петербургском офисе послушать доклады спикеров и понетворкать. А теперь делимся записями с вами!

 > Опыт реальной трансформации культуры и процессов продуктовой команды (YouTube, VK)
Спикер: Влад Стоянов, Product lead

> Лидеры компетенции: Современные холакратичные методики управления без управления (YouTube, VK)
Спикер: Артур Арсенов, Product design lead

> Ничто не истина — всё дозволено. О культуре приоритизации (YouTube, VK)
Спикер: Саша Липин, Product lead

Следи за новостями, чтобы не пропускать будущие мероприятия!  

Теги:
Рейтинг0
Комментарии0

Согласно данным, технология PWA стала популярнее среди мессенджеров, банков, интернет-магазинов и других видов компаний.

Основные плюсы прогрессивных веб-приложений касаются пользовательского опыта: здесь есть преимущества как по сравнению с вебом, так и с нативными приложениями. Рассмотрим эти особенности подробнее.

1. Устанавливаются в обход сторов.

Пользователи скачивают прогрессивные веб-приложения напрямую из браузера с сайта компании. Это помогает компании сэкономить бюджет на продвижение приложения в сторах.

2. Работают в офлайн-режиме.

Прогрессивные приложения может работать в автономном режиме без соединения с сервером.

3. Загружаются за секунду. 

PWA загружаются очень быстро благодаря HTML-отдаче. С момента загрузки до появления первого элемента или изображения обычно проходит не более 1 секунды.

4. Весит меньше мегабайта. 

В отличие от нативных приложений PWA занимает менее 1 Мб в памяти смартфона. 

5. Эффективно адаптируется под устройство. 

PWA подстраиваются под любое пользовательское окружение. Они работают на всех возможных системах, устройствах и браузерах. 

6. Выглядит привычно для пользователя. 

При загрузке PWA пользователь может установить ярлык или иконку приложения на экран смартфона.

Если для бизнеса существуют значимые риски, создание PWA может быть более оправданным шагом: так вы избегаете зависимости от сторов и их политики.

Теги:
Рейтинг0
Комментарии0

Всем привет! Сегодня поговорим о PWA.

Прогрессивное веб-приложение (PWA) — это гибрид обычной веб-страницы и мобильного приложения. Оно сочетает в себе функции большинства современных браузеров с преимуществами мобильных приложений и создаётся с использованием стандартных веб-технологий, включая HTML, CSS и JavaScript.

Функциональные возможности включают работу в автономном режимеpush-уведомления и доступ к аппаратуре, что создает аналогичный нативным приложениям опыт работы для пользователя.

Некоторые из крупнейших в мире компаний, такие как Twitter, Instagram, Uber, Pinterest, Forbes, Alibaba и другие, уже используют PWA.

Согласно сообщению из CNBC, к 2025 году почти три четверти населения мира будут использовать для доступа к интернету только смартфоны. Поэтому, если вы планируете создать новый веб-сайт или редизайнить старый, вам следует задуматься о создании PWA.

Теги:
Всего голосов 5: ↑1 и ↓4-3
Комментарии8

iOS vs Android: большая битва платформ. Что лучше для разработчика, бизнеса и простого пользователя

В извечном вопросе о «лучшей мобильной платформе» попробовали разобраться вместе с инженерами Сравни: Android-разработчиком Русланом Кадыровым и iOS-разработчиком Константином Китаевым.

Обсудили, как платформы различаются в плане технологий и пользовательского опыта, под какую из них проще разрабатывать и может ли «многообразие Android» успешно конкурировать с «магией Apple».

Также в выпуске:

  • Состояние мобильной разработки — есть ли кризис?

  • Развитие разработчиков для iOS и Android: полезные материалы и практики

  • Превосходство Android Studio над XСode?

  • Когда наступит кроссплатформенное будущее?

Посмотреть или послушать Sravni Podcast можно здесь:

YouTube
RUTUBE
VK
Яндекс Музыка

Оперативно узнавать о наших новых подкастах, докладах, лекциях и других полезных ИТ-материалах можно в тг-канале Sravni Tech.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Новости ноября из мира Android-разработки уже на 📹 YouTube и 📹 VK Video

🤖 Изменения в графике релизов Android, начиная с 2025 года
🏝 Новая KMP IDE от JetBrains — часть плана развития Kotlin Multiplatform (KMP) на 2025 год
🔨 Новинки Gemini AI в Android Studio
📸 CameraX 1.4 — новый релиз с массой фичей

Не пропустите полезный выпуск для всех, кто хочет быть на волне новинок в Android-разработке! 🤖

Теги:
Рейтинг0
Комментарии0

Внедряем модели машинного обучения в мобильное приложение на Flutter

Если Flutter-приложение нужно сделать более удобным и инклюзивным, скорее всего, придется использовать технологии ML. Вот только несколько примеров задач, в которых машинное обучение наверняка понадобится:

  • классификация изображений: чтобы приложение могло распознавать объекты на фотографиях или видео (например, Google Lens);

  • обработка естественного языка (NLP): в приложениях с голосовыми ассистентами или чат-ботами ML обрабатывает речь и тексты;

  • персонализация: алгоритмы ML анализируют поведение пользователей и предлагают персонализированный контент или рекомендации;

  • распознавание голоса: используется в приложениях для конвертации речи в текст и команд.

Существует несколько способов, как интегрировать модели машинного обучения в приложение. Можно воспользоваться ML Kit от Firebase или библиотеками на Dart. Но самое распространенное решение — фреймворк TensorFlow Lite (TFLite). Его главное (но не единственное) преимущество — что он будет работать в том числе тогда, когда смартфон не подключен к интернету.

В отдельной статье разбираем, как настроить модель для работы с TFLite, как интегрировать TFLite во Flutter-приложение и как оптимизировать модели для мобильных устройств.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

База для начинающих Android-разработчиков

О профессии и главной IDE

Как стать Android-разработчиком и расти в профессии — чем занимается разработчик, что должен уметь, перспективы карьеры.

Как пользоваться Android Studio — инструкция для начинающих. Рассказываем о возможностях программы, помогаем настроить и запустить.

О языках программирования

Почему почти все приложения для Android написаны на Kotlin — рассказываем об официальном языке для разработки.

5 популярных языков для мобильной разработки — не всё можно сделать с помощью Kotlin.

Два полезных инструмента

Gradle — поможет автоматизировать сборку приложений.

RecyclerView — пригодится для отображения данных в приложениях.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии1

Нативные инструменты для создания виджетов во Flutter-приложении

Несмотря на все преимущества Flutter, он не всегда оптимально решает задачи, которые требуют глубокой нативной интеграции. Существуют инструменты, разработанные специально под нативные платформы, но недоступные напрямую из Dart. И как правило, в таких случаях на помощь приходит PlatformChannel

Но существуют и нативные инструменты, которые интегрируются с Flutter. Они, например, позволяют внедрять Home Widgets — элементы, с которыми можно взаимодействовать напрямую с домашнего экрана

Когда виджеты разработаны, их нужно внедрить в приложение. Библиотека home_widget предоставляет набор инструментов для работы с нативными виджетами, данные методы мы можем вызвать при помощи класса HomeWidget. Вот самые важные из методов:

  1. Future<bool?> saveWidgetData<T>( String id, T? data ) 

    Метод позволяет сохранить передаваемые данные в хранилище нашего виджета.

  2. Future<bool?> updateWidget({String? name, String? androidName, String? iOSName, String? qualifiedAndroidName,})

    Метод вызывается для обновления нашего виджета.

  3. Future<T?> getWidgetData<T>(String id, {T? defaultValue,})

    Метод позволяет прочитать данные из нашего виджета. Он может быть полезен, если нужно синхронизировать информацию между виджетом и Flutter-приложением.

Больше подробностей о нативных инструментах с примерами кода вы найдете в отдельной статье.

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии0

Компании «Транссеть» и «Ред Софт» объявляют о выходе мобильного приложения «ТРС.Обходчик» на устройствах под управлением мобильной операционной системы РЕД ОС М. «ТРС.Обходчик» входит в состав комплексного решения TRS.EAM и предназначено для автоматизации процессов эксплуатации инфраструктуры в различных секторах экономики, таких как промышленность, транспортная сфера, сельское хозяйство и других.

Мобильное приложение «ТРС.Обходчик» разработано в рамках партнёрского взаимодействия компаний «Транссеть» и «Ред Софт». Оно позволяет пользователям получать доступ к информации и выполнять операции прямо с мобильных устройств. Приложение обладает интуитивно понятным интерфейсом и высокой степенью защиты данных.

Приложение TRS.EAM представляет собой комплексное решение для автоматизации процессов эксплуатации инфраструктуры. Оно включает в себя различные модули и инструменты, позволяющие оптимизировать работу предприятий и организаций, повысить эффективность использования ресурсов и снизить риски возникновения аварийных ситуаций.

Теги:
Всего голосов 3: ↑3 и ↓0+8
Комментарии0

Сервисы Apple частично отключились по всему миру, а не только в России

У пользователей iPhone, iPad и Mac сейчас возникают проблемы с загрузкой приложений из Apple App Store. Когда пользователи нажимают «get», чтобы загрузить приложение, значок ненадолго зависает, показывая, что оно загружается, но затем снова появляется надпись «get», и пользователи не могут установить нужное приложение.

Судя по графику сбоев в работе App Store от DownDetector, проблемы начали возникать около 11 утра по восточному времени.

Несмотря на то, что у пользователей возникают проблемы с загрузкой приложений, похоже, что App Store по-прежнему может их обновлять. На странице статуса Apple указано, что сервисы App Store работают в обычном режиме. 

Источник

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Привет! Это подкаст «Айтидо» от команды мобильной разработки Альфа-Банка 🎙 В втором выпуске подкаста мы поговорили с Николаем Крыловым, техлидом мобильной разработки.

Обсуждаем разное — от карьеры проводника в РЖД до погружения в фотографию. Коля рассказал, как пофигизм помогает ему быть лидом, как выстроены производственные процессы и почему сотрудники порой их нарушают. А также поделился советом, как спастись от выгорания и переработок ⏰

Ссылки на подкаст:

🔗 RuTube
🔗 YouTube
🔗 ВКонтакте
🔗 Яндекс Музыка

Подписывайтесь на Tелеграм-канал Alfa Digital, там много интересного о нашей корпоративной культуре и технологиях.

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

Не пытайтесь, это React Native + Flavor

Инсайт дня: React Native и flavor

В компании где я работаю, существует приложение написанное на нативных технологиях в лице — Kotlin/Swift.

Так вот, в приложение на андроид реализована система flavor, практически для более чем 80 компаний.

Попытка удешевить разработку, привела нас к React Native, так как у меня был немалый опыт разработки и работы с данным фреймворком.

С первого взгляда не было очевидно, но… оказывается в React Native поддержки подобного попросту нет от слова совсем.

Конечно, любой скажет «да ведь просто можно использовать переменную флейвора текущего приложения, и менять контент условностями» — но все не столь однозначно и просто… (ведь требование и цель использовать все преимущества этой концепции)

Как итог, если вы хотите реализовать концепцию flavor в полной мере, используя React Native (и вы четко понимаете как это работает в нативе) — то предупрежу сразу что у вас не получится, банально из‑за того, что вы получаете возможность настроить лишь ваши иконки и заголовки, ну и настройки на уровне андроид конфигов =)

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии1

В Японии запустили приложение с ИИ для повышения уровня брачности и рождаемости

Местное правительство Токио запустило приложение для знакомств на базе искусственного интеллекта для поощрения браков в рамках своих усилий по решению проблемы снижения рождаемости в Японии.

Приложение под названием Tokyo Enmusubi (поиск партнеров в Токио) доступно лицам в возрасте 18 лет и старше, которые проживают в столице или добираются до нее на работу. Пользователи должны пройти онлайн-собеседование, предоставить удостоверение личности, документ, подтверждающий доход, и свидетельство о статусе холостяка для обеспечения безопасности на платформе.

Приложение, доступное на смартфонах и онлайн, использует искусственный интеллект для подбора потенциальных партнеров на основе общих ценностей и ответов на 110 подробных вопросов.

Чтобы зарегистрироваться, пользователи должны внести взнос в размере 11 000 иен (около 77 долларов США), а членство действительно в течение двух лет. Хотя искусственный интеллект предоставляет предложения по подбору пары, пользователи также могут искать партнеров на основе определенных критериев.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии3

Вышел новый Sravni Podcast: про устройство мобильной разработки и управление её процессам

С Денисом Сизым, тимлидом Сравни, обсудили специфику приложений для iOS и Android, сложности с проверками в сторах, преимущества Backend Driven UI и развитие в ИТ — от написания первого калькулятора на Pascal до управления командой.

Также в подкасте:

  • Как и для чего сеньор становится тимлидом? 

  • В чем польза архитектурного мышления? 

  • Почему все «сидят в телефонах», но важным чаще пользуются в вебе? 

  • Бывают ли в идеальном мире дейлики?

Посмотреть или послушать подкаст можно здесь:

Больше полезных видео, статей и других ИТ-материалов — в ТГ инженерного сообщества Sravni Tech.

Теги:
Всего голосов 6: ↑6 и ↓0+8
Комментарии0

Лидерство в коде: технологии, сообщества и корпоративная среда

Привет! Это подкаст «Айтидо» от команды мобильной разработки Альфа-Банка 🎙

Айтидо – путь мобильных технологий. В этом подкасте мастера разработки делятся опытом создания приложений, раскрывая искусство объединения бизнеса, команды и инноваций. Каждый выпуск – это частичка того пути айтидо, который мы выбрали.

В первом выпуске подкаста мы поговорили с Никитой Збитневым, техлидом мобильной разработки

Поговорили о его пути в мобильную разработку через Java, как внедряются новые технологии в финтехе и почему многие переходят из корпораций в стартапы. Никита поделился лайфхаками о том, как он остается на одной волне с командой, развивает сообщество и успевает играть в D&D 🐉

🔗 RuTubehttps://alfa.me/bYzuxc

🔗 YouTubehttps://alfa.me/brD4Lx

🔗 ВКонтактеhttps://alfa.me/66Z_dt

Подписывайтесь на telegram-канал Alfa Digital, там много интересного о нашей корпоративной культуре и технологиях.

Теги:
Всего голосов 5: ↑4 и ↓1+5
Комментарии1

Передаем привет всем Android-разработчикам и спешим поделиться хорошей новостью: хотим провести публичное собеседование с одной большой компанией. Это классный вариант проверить знания, поделиться ими с другими. А еще быстрее найти работу — да вы и сами в курсе.

Нужны спецы уровня middle+

→ а заявки собираем тут

Теги:
Всего голосов 4: ↑2 и ↓2+3
Комментарии0

Backend-Driven UI и конструкторы — благо или зло?

Об этом — в новом выпуске подкаста «Свободный слот». Бизнес обычно в восторге от BDUI: высокий Time to Market, новые фичи без обновлений приложений, UI для нескольких платформ. А вот инженерам не всегда нравится пользоваться конструкторными решениями.

Вместе с Леонидом Ральниковым, разработчиком BDUI-фреймворка DivKit из Яндекса, мы говорим о том, какие плюсы и минусы есть у конструкторов, как это влияет на компанию и что нас ждет в будущем. Можно ли отдать вёрстку продакту? Не теряют ли инженеры базу, верстая экраны через конструкторы? Как тестировать приложения с BDUI?

А что вы думаете о BDUI? Делитесь мнением в комментариях.

Слушайте «Свободный слот» на разных платформах:

Apple Podcasts
ВК Подкасты
Яндекс Музыка

Теги:
Всего голосов 12: ↑11 и ↓1+12
Комментарии0

🛠️ Главные инструменты Rive

Для работы с Rive Animation лучше использовать их UI-интерфейс, в котором и происходит создание и настройка самой анимации. Анимация состоит из нескольких составляющих. Они больше знакомы дизайнерам, но, если кратко, вот некоторые из них.

  1. Artboard: слой, который является холстом анимации — на нем располагаются остальные элементы. В нем можно задать цвет и размер фона. В каждом файле Rive есть хотя бы один такой.

  2. Group: необязательный элемент, но он отлично подходит, чтобы объединить элементы в группы для любого объекта, изменение которого может потребоваться в дальнейшем.

  3. Shape: Rive позволяет создавать, редактировать и анимировать векторную графику, используя процедурные или пользовательские фигуры. Из них чаще всего и состоит весь интерфейс.

  4. Pen: это инструмент, который позволяет делать очень сложные кастомные фигуры.

Про анимации и Flutter-приложения много пишет руководитель нашего отдела мобильной разработки Саша Ворожищев — подписывайтесь на его канал, если интересна эта тема.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Почему PWA лучше нативных приложений?

Прогрессивные веб-приложения полюбили крупные мировые бренды: маркетплейсы (AliExpress), крупные сетевые компании (Starbucks). А в России к ним присмотрелись банки, когда столкнулись с ограничениями сторов. Неограниченный доступ клиентов к услугам стал мощным преимуществом веба.

А какие еще плюсы у PWA для бизнеса и пользователей?

Они дешевле. Стоимость разработки прогрессивного веб-приложения примерно на 30% меньше нативной разработки. Над ним работает одна команда, а не две.

Не требуют принудительного обновления. Все обновления становятся мгновенно доступны пользователю. Бизнес не ждет апрува в сторах, а потом не тратит ресурсы, чтобы уговорить клиента обновить приложение.

Не ухудшают пользовательский опыт. Технология предполагает, что на рабочем столе размещается PWA со своей иконкой. Это выглядит абсолютно как приложение. Пользователь даже не подозревает, что это самом деле веб.

Не забивают память смартфона. PWA занимает на устройстве на порядок меньше места, чем нативное приложение. Сравните: PWA обычно “весят” единицы мегабайт, а мобильные приложения – десятки или даже сотни мегабайт.

Согласны, у PWA есть не только плюсы.

Большая статья обо всех нюансах PWA vs Native от СТО Clevertec уже готова: PWA vs Native: где приложения для iOS и Android больше никогда не пригодятся

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Как создать веб-приложение на базе VK Mini Apps 📱

Написали пошаговую инструкцию, в которой:

  • показываем, как создать интерфейс на основе готовых адаптивных VKUI‑компонентов;

  • затрагиваем все основные библиотеки социальной сети;

  • устанавливаем сертификаты и подключаем проксирующий сервер;

  • разворачиваем в облаке и загружаем на платформу VK;

  • добавляем приложение в каталог, чтобы его легко находили пользователи.

Особые навыки администрирования не понадобятся. Берем небольшие вычислительные мощности (1 CPU с 512 МБ RAM) и простой Docker-файл.

Начать изучение →

Теги:
Всего голосов 9: ↑9 и ↓0+11
Комментарии0

Lottie vs. Rive

Это два популярных инструмента для создания анимаций в приложениях на Flutter. Сравнили их плюсы и минусы.

Lottie

Плюсы:

  • Простота использования: благодаря поддержке JSON, Lottie доступен для разработчиков любого уровня.

  • Кроссплатформенность: позволяет использовать одни и те же анимации на разных платформах.

  • Широкое комьюнити: в сети есть большое количество готовых анимаций.

  • Гибкость: Lottie позволяет настраивать анимацию и эффекты, что дает больше контроля над результатом.

Минусы:

  • Ограничения по сложности: Lottie не подходит для очень сложных анимаций с большим количеством элементов и эффектов.

  • Производительность: в некоторых случаях Lottie потребляет слишком много ресурсов, что плохо влияет на производительность приложений.

Rive

Плюсы:

  • Интерактивность: Rive поддерживает интерактивные анимации, которые реагируют на пользовательские действия.

  • Мощный редактор: он понятный, функциональный и с ним не нужно погружаться в дебри разработки.

  • Производительность: с Rive получается быстрая и плавная анимация благодаря формату файлов.

Минусы:

  • Сложность использования: у Rive более сложный интерфейс, чем у Lottie, новичкам с ним работать трудно.

  • Размер файлов: Rive-анимации могут быть тяжелыми, и это влияет на вес всего приложения.

Итого: если вам нужны простые и легкие анимации с быстрой интеграцией, Lottie — отличный выбор. Для сложных, интерактивных и высокопроизводительных анимаций лучше подойдет Rive.

Подробнее про Rive писали в большой статье и в тг-канале о мобильной разработке и ИТ.

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии0

Интервью подкаста про Ural Digital Weekend 2024 с Артемом Михайловым

В этом выпуске встретились с Артемом Михайловым, генеральным директором e-legion. e-legion — ведущий разработчик мобильных приложений в РФ.

В интервью мы обсудили тренды в заказной разработке, поговорили про управление рисками и ситуацию на рынке кадров.

Интервью на YouTube: https://youtu.be/roNktjC0fzE

Полная информация о конференции в статье на Habr. А билеты — на сайте UDW2024.

Теги:
Всего голосов 3: ↑3 и ↓0+6
Комментарии0

Apple вернула приложение «Авито» в App Store. «Все на месте. Рады, что удалось быстро решить вопрос. Спасибо всем, кто помогал и сопереживал», — пояснили в «Авито».

23 июля Apple удалила мобильное приложение «Авито» из российского AppStore. Разработчики приложения пояснили, что их приложение действительно стало недоступно для скачивания в AppStore и исчезло из магазина приложений без уведомления от Apple.

В «Авито» начали оперативно выяснять причину удаления приложения.

«Друзья, к сожалению, наше приложение в настоящий момент стало недоступно для скачивания в AppStore. Причины выясняем. Рекомендуем не удалять установленное приложение и отключить функцию «Сгружать неиспользуемые приложения». Детали дадим сразу, как будет больше понимания.

Те, у кого приложение не установлено, могут использовать мобильную версию сайта», говорится в сообщении сервиса.

Приложение «Авито» также доступно в Google Play и RuStore для пользователей Android.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии2

Anthropic запустила Android-приложение для чат-бота Claude AI. Его можно скачать из Google Play, приложение бесплатное и доступно для всех пользователей, включая подписчиков Pro и Team.

Приложение предоставляет пользователям Android доступ к самой мощной модели Claude 3.5 Sonnet. Оно предлагает:

  • поддержку нескольких платформ;

  • возможности машинного зрения для анализа изображений в реальном времени;

  • многоязычный перевод в реальном времени;

  • опцию расширенных рассуждений. 

В мае Anthropic уже выпустила приложение для iOS.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Мы создали свой инструмент для доставки сборок Android-приложений

В условиях блокировки официального сервиса Firebase App Distribution в России, перед нашим отделом мобильной разработки встала задача создать собственный инструмент для доставки сборок Android-приложений тестировщикам.

Да, мы могли бы пользоваться Firebase App Distribution с помощью VPN, но это не очень удобно. VPN-сервисы ненадежны, потому что подвержены блокировкам. К тому же создание собственного решения позволяет добавлять новые функции и адаптировать инструмент под конкретные нужды команды.

На многих проектах огромное количество времени уходило на то, чтобы достать сборку из GitLab или собрать ее вручную и отправить тестировщику. Также это сильно отвлекает от работы над задачами. Решением стала разработка инструмента, который будет принимать, хранить и раздавать файлы сборок.

Для его реализации выбрали фреймворк Ktor. Благодаря этому любой разработчик, знакомый с Kotlin, сможет быстро разобраться в кодовой базе, поддерживать инструмент и интегрировать его с различными проектами. А в качестве интерфейса решили выбрать Telegram. Наши рабочие чаты чаще всего находятся именно там. Кроме того, Telegram Bot API предоставляет много возможностей, хоть и имеет некоторые ограничения.

Делимся исходным кодом этого инструмента. А подробная инструкция по работе с ним — в отдельной статье.

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии0

Стриминговый сервис Netflix представил игру Minesweeper («Сапёра») на iOS и Android для своих подписчиков.

В версии Minesweeper от Netflix пользователям доступен режим «Путешествие», в котором игровое поле меняется в зависимости от локации. В головоломке также можно выполнять ежедневные задания и делиться результатами с другими игроками.

Теги:
Всего голосов 1: ↑1 и ↓0+2
Комментарии0