Возникла необходимость встроить MLKit в приложение айос. Началось с того, что по каким-то причинам используемые в приложении (андроид и айос) zbar и zxing (работали параллельно для улучшения результатов на обоих ОС) стали плохо работать. В чём проблема я так и не понял, потому-что решил попробовать MLKit – тем более, что они обещали поддержку как для андроида, так и для айос. А ещё потому, что клиенты давно просят добавить распознавание текста – совсем я их разбаловал сканами штрихкодов, VIN (приложение для СТО) и т.п. А тут ещё добавляем новый складской функционал, где для инвентаризации и приёмки нужно много вводить текста, и это на мобильном девайсе. В общем, решено было выбросить zbar/zxing связку и воспользоваться возможностями Google MLKit.
![](http://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/getpro/habr/hub/94d/b18/bf9/94db18bf9b8a7fc678b5be14f0f0e296.png)
Разработка мобильных приложений *
Android, iOS, Windows Phone и прочие
Новости
Гайд по Aurora OS: как начать разработку для отечественной мобильной операционки
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/cbe/e7d/cce/cbee7dcce2a94577243989b77e954caa.png)
Заканчивается бета-тестирование пятой версии отечественной мобильной операционной системы Aurora OS. И если до этого система позиционировалась только как рабочая лошадка для терминалов в сегменте B2B, то теперь авторы планируют выход на рынок персональных устройств для работы. В планах также создание собственной мобильной экосистемы для повседневных задач. Что стоит знать разработчикам об Авроре?
Всего 37% российских онлайн-ресурсов доступны для незрячих людей
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/522/1a6/62c/5221a662c45799aa06fe75b54e3d00d8.jpg)
К таким выводам пришла команда проекта Everland в результате масштабного исследования невизуальной доступности сайтов и мобильных приложений крупнейших российских компаний.
Тринадцать незрячих тестировщиков, прошедших специальное обучение, проанализировали в общей сложности 90 платформ 36-ти компаний из 6 сфер: ритейл, путешествия, телеком, банки, образование и маркетплейсы. Исследовались сайты и приложения на iOS (в случае банков — мобильные версии сайтов) и Android. О выводах ниже.
Стриминговый сервис, чат-бот и стартап — за какие проекты можно получить стипендию Selectel
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/webt/kf/8c/bz/kf8cbz8rhb_rxxnd9z49nw0b6kw.jpeg)
Личные проекты бывают разными: кто-то пишет собственную JS-библиотеку, кто-то создает IT-компанию, а кто-то помогает команде выигрывать гонки (и такое бывает). В этом тексте мы расскажем про пять интересных проектов от студентов, которые выиграли стипендию в Selectel Career Wave.
Истории
Как реализовать обрезку изображений во flutter без сторонних библиотек
Сегодня рассмотрим, как с помощью небольших знаний в математике и встроенных инструментов flutter реализовать функционал редактирования изображений. Сначала рассмотрим существующие библиотеки, которые предоставляют нужный функционал, а потом реализуем собственное решение, используя GestureDetector
, CustomPainter
, RepaintBoundary
и GlobalKey
.
Разбираемся с MavenGate, новой атакой на цепочку поставок для Java и Android-приложений
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/208/937/1d1/2089371d12d542d2bf3dd2b8f039a3c0.jpg)
Всем привет!
Сегодня с вами Юрий Шабалин, генеральный директор «Стингрей Технолоджиз», и я хотел бы разобрать в этой статье новый тип атаки на цепочку поставок под названием «MavenGate».
А что в ней, собственно, такого? Ну хотя бы то, что ей подвержены более 18% всех Java-библиотек, соответственно, для Android это применимо в полной мере. Совершить эту атаку безумно просто. Суть ее основана на логике работы сборщиков Java/Android-проектов и разрозненности репозиториев, которые хранят эти библиотеки.
Если стало интересно и хочется проверить, уязвимы ли вы, добро пожаловать под кат!
Страх, ненависть и токенизация банковских карт в Google Pay
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/8fb/f64/1b5/8fbf641b506e21272c1b3736e94045cd.jpg)
Мы разработали для европейского банка фичу, благодаря которой клиент может подключить карту к Google Pay прямо в приложении. В проекте были задействованы пять участников: мы, банк, Google Pay, интегратор и токен сервис-провайдер. У трёх последних в документации были белые пятна, на прояснение которых ушло полтора месяца, хотя разработка с нашей стороны заняла всего две недели.
Я Владислав Кортиков, Android-разработчик в KODE. В статье рассказал, что может ждать вас при добавлении подобной фичи в банковское приложение. Здесь много неочевидных моментов, постигнутых с болью, и возможно однажды эта информация поможет кому-то сэкономить силы и время.
Как мы помогли запустить приложение для маркета кроссовок Xstreet
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/d5b/665/e9f/d5b665e9f0f16a931e147c9514a4aa3d.png)
В два часа ночи в одной из групп в Telegram я увидел сообщение: нужны разработчики, чтобы «докрутить» приложение. Тут же написал потенциальному клиенту. Пообщались текстом в телеграмм и клиент ответил: «Давайте работать». Через день мы подписали договор. Так состоялась наша самая быстрая сделка. Теперь предстояло так же быстро включиться в проект: сроки горели.
Жизнь после запуска: сколько нужно денег, чтобы содержать приложение
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/6d9/57b/c5c/6d957bc5c7e33ccd5dc1f20124f4837c.png)
Каждый день в YuSMP Group мы общаемся потенциальными заказчиками. Как правило, в финансовой части их интересует стоимость приложения или цена за час работы специалистов. Так или иначе, весь бюджет выстраивается вокруг проекта, и это правильно — важно рассчитать силы на берегу.
Но дело в том, что после релиза продукт необходимо содержать, и да, это тоже стоит денег. В статье рассказали, за что придется платить после запуска, и как правильно завершить проект, чтобы не разориться уже на готовом приложении.
Отчёт о конференции CrossConf 2023
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/c14/cad/cfd/c14cadcfd54bb4b929561520fbedd313.jpg)
Информационная служба Хабра посетила IT‑конференцию CrossConf 2023. Мероприятие проходило 15 сентября 2023 года в Москве в пространстве «Старт Хаб» на «Красном Октябре». Конференция была посвящена обмену опытом кроссплатформенной мобильной разработки и технологичного рынка. По словам организаторов, конференцию посетило 600 IT‑специалистов.
Жизненный цикл приложения на Flutter
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/01f/466/518/01f466518b97e4aa350159bc672a9e2b.png)
Всем привет! Сегодня с вами я, Александр Чаплыгин, Flutter dev Amiga. Расскажу вам одну интересную тему — отслеживание состояния приложения: в фоне, закрыто или оно не активно. Вы поймете, как обрабатывать переходы в новое состояние. Также рассмотрим 2 подхода к реализации, которые могут выручить в той или иной ситуации.
Мобильная разработка за неделю #523 (22 — 28 января)
И подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/webt/5-/zi/xb/5-zixb_wf-s32a1ymghenpta2hw.jpeg)
Сочетание методов верификации и аутентификации через почту и SMS: добавит ли безопасности и нельзя ли проще?
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/ceb/92b/0d5/ceb92b0d50e57c55a9ffdc0adbc96562.png)
Недавно в России вступил в силу закон, запрещающий использовать иностранные сервисы для авторизации на отечественных ресурсах. Привычные уже мессенджеры и системы SSO вроде Google/Apple ID в скором времени для аутентификации работать не будут. Что теперь — возвращаться на SMS и почту, или рынок предлагает альтернативные варианты решения?
Ближайшие события
![](https://webcf.waybackmachine.org/web/20240204143318/https://habrastorage.org/getpro/habr/upload_files/48c/817/f0b/48c817f0b52e6b603845a694cb2cd251.png)
![](https://webcf.waybackmachine.org/web/20240204143318/https://habrastorage.org/getpro/habr/upload_files/486/601/dae/486601dae7e28e969cdc7949dd0580bb.png)
![](https://webcf.waybackmachine.org/web/20240204143318/https://habrastorage.org/getpro/habr/upload_files/731/826/12e/73182612edd74ce040cf3b28b5d68da7.png)
![](https://webcf.waybackmachine.org/web/20240204143318/https://habrastorage.org/getpro/habr/upload_files/fd7/506/1c8/fd75061c8f63653d924168e0ee3662c8.png)
![](https://webcf.waybackmachine.org/web/20240204143318/https://habrastorage.org/getpro/habr/upload_files/7f6/48b/575/7f648b5757150cf2deb76df91eeb0b0f.jpg)
![](https://webcf.waybackmachine.org/web/20240204143318/https://habrastorage.org/getpro/habr/upload_files/675/0ee/f16/6750eef16faccb6a05a4e23d4467b93b.jpg)
![](https://webcf.waybackmachine.org/web/20240204143318/https://habrastorage.org/getpro/habr/upload_files/849/5ba/6c0/8495ba6c0395a49ca999ba71073fa605.png)
![](https://webcf.waybackmachine.org/web/20240204143318/https://habrastorage.org/getpro/habr/upload_files/4ab/bff/fd2/4abbfffd208d3b4d5cd61c402d7ec3de.jpg)
![](https://webcf.waybackmachine.org/web/20240204143318/https://habrastorage.org/getpro/habr/upload_files/d1e/a22/4cd/d1ea224cd82ae67817b7cac7f7fc052c.png)
![](https://webcf.waybackmachine.org/web/20240204143318/https://habrastorage.org/getpro/habr/upload_files/d6e/1b0/4c8/d6e1b04c878148e37a547e03a37c18ee.png)
![](https://webcf.waybackmachine.org/web/20240204143318/https://habrastorage.org/getpro/habr/upload_files/2a5/b6d/6fc/2a5b6d6fc13caf3dabce9c8ab833e282.png)
Как я приложение на Compose писал
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/73d/32a/b51/73d32ab514599b4a483e32d3ad146892.png)
Далеко не новость, что в мобильной разработке под Android развивается новый подход к построению UI. Он же Compose. Он же плейбой, филантроп и просто классная функционалочка, которая колоссально упрощает жизнь в процессе верстки пользовательского интерфейса.
В статье будет рассказана небольшая история создания приложения под Android полностью на Compose и о том, на сколько сильно применение Compose на продуктиве упрощает и ускоряет разработку. Личный опыт автора, которым он (то бишь я) хочет с вами поделиться.
Предубеждения об IT-аутсорсе, с которыми пора покончить
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/701/96d/17f/70196d17fb8d776e5247aeef750621f0.png)
Есть мнение, что найм команды на аутсорсе — это всегда больший риск, чем разработка своими силами. При выборе сторонней команды в голове крутится множество страхов — а вдруг разработчики не смогут быстро погрузиться в проект, или у них не хватит опыта, или ваша конфиденциальная информация окажется у конкурентов… Мы решили собрать все претензии к такому способу реализации проектов и честно ответить на них. Что получилось — читайте в статье.
На каком стеке разработать проект, чтобы не похоронить его после релиза?
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/6ea/1ef/b29/6ea1efb29e8af861c5dbc4abd12fad0a.jpg)
Привет, Хабр! На связи Пиробайт — продуктовые разработчики для фудтех, медтех, автотех.
Каждый заказчик хочет знать, на каком стеке будут разрабатывать его продукт. Почему? За этим стоят опасения: будет ли проект поддерживаться в будущем? Получится ли найти на него разработчиков? Вынесет ли большую нагрузку? Получится ли интегрировать его с другими системами? Не произойдет ли так, что технологии уйдут из России, как это было с SAP, Oracle и прочими?
В статье отвечаем на эти и другие вопросы. Рассказываем, с чем работаем, чтобы продукт жил и процветал.
Управление проектами в работе и жизни
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/5fe/295/ec8/5fe295ec8fbf488f33be2be99cac82c4.jpg)
Управление проектами — фундаментальный навык. Из проектов состоит не только наша работа, но и личная жизнь. Строя дачу, организовывая путешествие или покупая продукты к ужину, мы управляем проектами, даже не задумываясь об этом.
В проекте всегда есть заказчик и исполнитель. Делая что-то для себя, вы комбинируете эти роли. Заказчики могут быть как внутренними, так и внешними, но основные принципы взаимодействия всегда сохраняются.
«А» — начальная точка проекта. Любой проект должен начинаться с правильной постановки задачи. От постановки и понимания задачи зависит результат, за который отвечает исполнитель. Важно услышать саму потребность, с которой к вам пришел заказчик, и интерпретировать её в постановку задачи. Запросить необходимые материалы и задать достаточное количество вопросов для качественного результата — зона ответственности исполнителя. Постановкой задачи является формулировка пользы и способа ее достижения в конкретные сроки. Польза должна быть сформулирована в мире заказчика, а не в мире исполнителя. Финальную постановку задачи нужно согласовать с заказчиком, чтобы убедиться, что вы правильно друг друга понимаете. Выявленное полезное действие в проекте будет служить вам надежным инструментом для конструктивного диалога и принятия верных решений.
«Б» в проекте — это сделанная работа. Делать ≠ сделать. Для заказчика результат либо есть, либо его нет. Путь из точки «А» в точку «Б» существует только в мире исполнителя. Если вы профессионал и цените свою репутацию, то ваши критерии к выполняемой работе должны быть выше, чем у заказчика. Работу нельзя делать плохо, даже если это устроит клиента или он не сразу заметит. Сделать ≠ сдать, сделать — это действительно сделать, вовремя запустить качественный проект и принести пользу.
Упрощаем локализацию iOS-приложения со String Catalogs
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/cde/762/5b3/cde7625b33f27a94769d2a49a1b57e83.jpg)
Выход продукта на новые рынки сбыта — это деньги. Чем лучше ты знаешь своего клиента, тем вероятнее, что ты их сможешь заработать. Это же правило справедливо и в обратную сторону: клиент более охотно будет пользоваться твоим продуктом, если он может разговаривать с ним на одном языке.
Сегодня я расскажу о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки. Языки, разумеется, человеческие: от Swift мы отказываться не будем.
Заводим Яндекс Карты в Compose Multiplatform
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/340/e8b/a5a/340e8ba5ac74e8825816e6a1371fd25c.png)
Привет! Это мой первый пост на Хабре, буду рад услышать профессиональное и не очень мнение по поводу этой статьи.
Реализуем Яндекс Карты в KMP проекте с использованием Compose Multiplatform. Нестандартное решение с интерфейсом на Swift и передачей кода через DI.
И певец, и на дуде игрец. Или почему ChatGPT необходим стажеру
![](https://webcf.waybackmachine.org/web/20240204143318im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/a32/a03/e02/a32a03e02cdfb179680fbfdcfffead5a.png)
Привет, Хабр. Меня зовут Алексей, я разрабатываю мобильные приложения на Flutter в Пиробайте. И ради сегодняшней статьи сошлись аж две звезды, две светлых повести. Во-первых, популярность нейросетей немного приутихла, и они стали обыденным инструментом. Во-вторых, я понемногу осмыслил свой путь изучения языка Dart. О том, как эти 2 вещи умудрились пересечься, я и расскажу дальше.
Предлагаю сразу начать с главной парочки — Dart/Flutter. Когда мы говорим о кроссплатформенной разработке на Flutter, то мы говорим о… Flutter, как это ни странно. И только о нем. Если вы начинаете свой путь изучения фреймворка, то найдете много туториалов, обучалок, статей и прочего: Stateful vs stateless виджеты, BLoC vs RiverPod, основы верстки на Flutter, в конце концов.
Если составлять список, то он покроет большинство фич разработки на Flutter. Но почему-то все забывают о, так сказать, базе — языке Dart.
Такая забывчивость в целом понятна. Dart в отрыве от Flutter никто и звать его никак, будем честны. Однако для новичка, особенно для того, кто пришел из веб-разработки, папаша нашего любимого фреймворка покажется достаточно интересной штукой, так как гораздо больше полагается на ООП. Наличие миксинов, особенностей приватных и паблик полей, куча способов объявить переменную, необходимость указывать типы данных — все эти особенности усложняют переход из классического веба. Сложно найти больше одного практического задания, а практика — важная штука в разработке на любом языке.
Вклад авторов
-
ProductivityInside 3120.2 -
RoboForm 1939.8 -
alizar 1918.6 -
PapaBubaDiop 1541.0 -
phillennium 1272.0 -
YourDestiny 1011.0 -
InkOut 801.0 -
redmadrobot 781.0 -
Leono 778.0 -
marks 755.0