Приветствую вас, дорогие любители и знатоки Python! Прошло пол года с момента моей последней публикации на Хабре. Был погружен в пучину обстоятельств и сторонние проекты. Начиная с сегодняшней, статьи будут выходить с периодичностью раз в месяц. В этой статье мы рассмотрим как создать и анимировать контент для слайдов а также сделать parallax эффект для фонового изображения с помощью фреймворка Kivy и библиотеки KivyMD.
Разработка мобильных приложений *
Android, iOS, Windows Phone и прочие
- Новые
- Лучшие
- Все
- ≥0
- ≥10
- ≥25
- ≥50
- ≥100
Jetpack Compose — как легко построить UI на Android
В июле этого года вместе с Android Studio Arctic Fox вышла одна из долгожданных библиотек — Jetpack Compose. Она позволяет создавать пользовательский интерфейс в декларативном стиле и обещает быть революцией в построении UI.
Разбираемся, так ли это на самом деле, какие у библиотеки преимущества и недостатки. Подробности — в статье.
Flutter: о разработке плагинов с интерфейсом ActivityAware
В былые времена клиенты присылали цветные изображения документов со сканера по емейлу. Кто ленился или не мог — отправлял свой загранник по почте. С этим неплохо справлялось решение от ABBYY. Потом появились телефоны и люди стали присылать фотографии паспортов. ABBYY сломался. Перешли на решение от Smart Engines и даже с фотографиями, посланными через WhatsApp особых проблем не было. Но потом пошли умные мобилки с включенными по умолчанию водяными знаками типа «Xiaomi 9T» часто перекрывающими важнейшую часть паспорта. Вдобавок к этому наличие в кадре на фотографии пальцев и бликов тормозило общение с клиентом.
Когда паспорт распознается в видеопотоке на телефоне клиента, то этой проблемы так остро не стоит. Почему?
- Мобильное ядро отображает рамку документа в процессе распознавания, не просто маску поверх видео, а именно рамку документа, находящегося в руках. По моим ощущениям, это дает человеку понимание, где не должно быть его пальцев. Вообще, это интересная тема для отдельного исследования.
- Система использует механизм сатурации данными и готова выдать результат только после определенной уверенности в них.
Дайджест интересных материалов для мобильного разработчика #412 (20 — 26 сентября)
Реализация in-app purchases на Flutter c помощью Adapty SDK
Привет, меня зовут Алексей, я разрабатываю Adapty SDK для Flutter. Сегодня я расскажу про внедрение внутренних покупок в мобильное приложение на Flutter с помощью плагина, который мы разрабатываем.
Flutter — это относительно новый фреймворк от Google для быстрого создания кросс-платформенных приложений. Второй популярный фреймворк — React Native, о покупках на Реакте мы писали в другой статье.
In-app purchases: продвинутые механики работы с покупками на Android и iOS
Привет, я Влад, core разработчик Adapty SDK для Android. Это заключительная статья из серии туториалов по внедрению внутренних покупок в приложениях Google Play и App Store.
В заключительной статье мы решили не замыкаться на одной платформе, а рассказать о продвинутых практиках работы с покупками на iOS и Android и показать, как сервер расширяет наши возможности при работе с подписками и какие преимущества даёт.
Статья, в которой я раскрываю три 0-day уязвимости в iOS и критикую bug bounty программу Apple
Все уязвимости имеют класс Information Disclosure, а именно получение чувствительной информации приложениями из App Store без запроса разрешений у пользователя, либо обход sandbox и получение такой информации, к которой у приложений в принципе не должно быть доступа. Я загрузил на GitHub код приложений, который я отправлял в Apple для демонстрации уязвимостей, его можно запустить на своих устройствах и посмотреть, приложения только получают данные и отображают их в UI.
Кому интересно почитать подробнее про данные уязвимости, а также про Apple Security Bounty Program, добро пожаловать под кат.
Битва снифферов: Charles vs Proxyman
Привет, меня зовут Даша, я работаю тестировщицей клиентского мобильного приложения в компании Ozon.
Сегодня поговорим о снифферах в тестировании мобильных приложений –– программах для перехвата, анализа и модификации трафика. Пожалуй, самый популярный сниффер из тех, о которых мне доводилось слышать — Charles. Про него уже не раз писали на Хабре, есть довольно детальные разборы. Но не Charles-ом единым!
Два в одном: фронтенд и мобильная разработка на EPAM Meet Up
Что объединяет фронтендеров и мобильных разработчиков? И те, и другие ругаются на бэкенд!
Если говорить серьёзнее, понятно, что общего много: они работают на клиентской стороне, имеют дело с UI и так далее. Но технологии в вебе и мобильных приложениях различаются, так что технические доклады им нужны разные. А 29 сентября состоится онлайн-митап для тех и других сразу — как это возможно?
Секрет в том, что у митапа будут два параллельных трека (каждый из трёх докладов). Так что фронтендеры смогут узнать полезное на одном, «мобильщики» — на другом. В мобильном треке освещены и iOS, и Kotlin Multiplatform, и Flutter, так что есть интересное для самых разных специалистов. И состав спикеров заметный: например, Виталия Фридмана уже знают многие JS-разработчики, а Александр Денисов отлично известен Flutter-сообществу.
Под катом — подробное описание программы. А тут добавим, что при начале в 19:00 доклады завершатся уже в 21:05, так что полностью выпадать из жизни вечером среды не придётся. Впрочем, можно не только смотреть доклад, но и подключаться к дискуссии после него, и вот сколько времени вы там промучаете спикера вопросами — это больше от вас зависит.
Map matching, стилизация кластера и игры со шрифтами — что нового в 2GIS Kit
Привет! Это первый выпуск дайджеста 2GIS Kit — набора картографических, поисковых и навигационных инструментов для разработчиков.
Если о больших продуктах получается рассказать отдельными статьями на том же vc.ru (например, Mobile SDK и редактор стилей), то о каждой фиче так не получается. А фич-то много!
Так что пробуем формат, в котором здесь будем рассказывать о небольших, но важных обновлениях. Сегодня расскажу, что сделали за последние три месяца.
Скорость сборки в iOS
Всем привет! Меня зовут Юра, я – iOS-разработчик в hh.ru. В этой статье мы рассмотрим с одну из важнейших метрик для IOS-разработчика – скорость сборки. Я расскажу о том, как мы собираем эти метрики и что потом с ними делаем, и почему мы вообще решили всё это измерять. Видеоверсию можно посмотреть тут.
Тестовая ферма из Android-устройств: как собрать, отладить и не взорвать офис
У нас был небольшой бюджет и большие проблемы с рутинным тестированием в match3-игре, у которой накопилось более 1500 уровней. А вот чего у нас не было, так это идеально подходящего коробочного решения, работающего на лету и без пересборок. Поэтому мы нагородили собственную ферму с высаженной грядкой из десятка Xiaomi, отправкой статистики, отчетами в Slack, блекджеком и коровой.
Я Павел Щеваев, CTO студии BIT.GAMES, которая является частью международного игрового бренда MY.GAMES. Вы можете знать нас по RPG «Гильдия Героев», а ваши мамы — по «Домовятам» в Одноклассниках. Да, это были мы. :) Но сегодня речь пойдет о нашем новом проекте Storyngton Hall. Это головоломка «три в ряд» с сюжетом, по которому красивые леди разгадывают загадки, декорируют комнаты, примеряют платья, устраивают балы, и, в конце концов, выходят замуж.
Jetpack Microbenchmark — тестируем производительность кода
В мобильной разработке периодически возникают ситуации, когда нужно оценить время выполнения кода. Помимо теоретических подходов (например, Big O), которые позволяют отсеять очевидно неудачные решения, существуют бенчмарки для тестирования кода и поиска более мелких отличий.
В этой статье расскажу, как устроена и работает библиотека Microbenchmark от Google, а также покажу примеры использования. С ней можно не только оценить производительность, но и решить спорные ситуации на код-ревью.
Рекомендательная система подбора новостей в ЯRUS без влияния рекламы
Люди привыкли читать новости на специальных агрегаторах. Но все чаще начинают звучать жалобы на то, что рекламных баннеров с каждым не то что годом, а месяцем становится все больше. И, надо сказать, недовольство читателей небезосновательно.
Код без багов и сломанное авто: как мы нетривиально проверяли Заправки 2ГИС
Машина кружит по заправочной станции на окраине Питера. Подъезжает к колонке, доливает пару литров, отъезжает в парковочный карман, стоит минуту — и всё повторяется снова.
Разомлевший на жаре (на улице июньские 34 градуса!) заправщик у соседней колонки лениво смотрит на происходящее. Кажется, его не удивляет, что два человека в салоне с ноутбуками постоянно что-то кричат третьему — и тот как будто делает всё по команде. Есть ещё один, четвёртый — он бегает и снимает это на телефон.
Но после третьего круга не выдерживает оператор на кассе. «Двенадцатая колонка, оплачивать будете?» — доносится из динамика.
Наше приложение — первый в истории 2ГИС продукт, в котором платёжный пайплайн полностью реализован нами самими внутри. Ещё за пару месяцев до этого у нас не было почти ничего, кроме идеи и команды. А полчаса назад казалось, что всё, что может пойти не так, пойдёт не так на этом первом полевом тесте.
Выросли на глазах. Как развить компетенции команды в процессе прототипирования и проектирования UX-интерфейса приложения
Всем привет! В прошлый раз я, как Product Owner клиентского мобильного приложения Первой грузовой компании (ПГК), рассказала о формировании нашей продуктовой команды. Спасибо всем, кто оставил комментарии под текстом. Благодаря вашим сообщениям появился этот материал. Сегодня поделюсь с вами опытом, как мы сформировали матрицу компетенций, и как коллеги развивали свои скилы во время прототипирования и проектирования сервиса.
Напомню, речь о приложении «Мобильный репортер», которое работает по принципу шеринг-сервисов. У пользователя есть анкета по осмотру грузовых вагонов — чек-лист со структурированной информацией и возможностью добавить актуальные фотографии. Это помогает следить за качеством грузовых вагонов на железной дороге и своевременно ремонтировать проблемные.
Как собирали команду
Мы пригласили в команду представителей разных сфер бизнеса. В нее вошли коммерческие специалисты (продажи) – люди, непосредственно работающие с клиентами, принимающие их заявки и понимающие, что им нужно. Они — «первая линия» по сбору обратной связи о некачественных вагонах. Еще позвали представителей вагонного блока – тех, кто отвечает за ремонт вагонов, специалистов движенческого блока, оформляющих документы на отправку вагона в депо, и ИТ-экспертов, которые воплощают в жизнь пожелания бизнеса и клиентов. Отмечу, что мы выбирали и профильных специалистов, и руководителей.
Было сложно. В тот период корпоративной жизни у нас еще не было таких направлений, как «проектная работа» и «продуктовая разработка». Между собой преимущественно общались смежные подразделения. Мы только делали первые шаги в области кроссфункционального взаимодействия. Во время проработки прототипа продукта специалисты по продажам, ремонту и движению вагонов, ИТ по-настоящему «открыли» друг друга во время проработки прототипа продукта.
Дайджест интересных материалов для мобильного разработчика #411 (13 — 19 сентября)
Про многопоточность 2. GCD
Привет! Вот и новая часть серии статей про многопоточность дождалась своей очереди (ну вы поняли, да, типа очередь статей последовательная (͡° ͜ʖ ͡°) ). В этот раз мы поднимемся на ступеньку выше, рассмотрим фреймфорк Dispatch, разберем большую часть GCD примитивов, распространенные проблемы и поищем решения.
Kotlin Native. Работаем с новой моделью памяти
Всем доброго дня! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. Продолжаем рассматривать способы многопоточный работы в Kotlin Native. В предыдущих статьях мы уже рассмотрели существующие способы работы с многопоточностью с корутинами и без, и что делать с имеющимися болями. Теперь поговорим о новой модели управления памятью, которая появилась совсем недавно.
31 августа компания JetBrains представили превью новой модели управления памятью в Kotlin Native. Основной упор команда разработчиков сделала на безопасность шаринга между потоками, устранение утечек памяти и освобождение нас от использования специальных аннотаций. Также доработка коснулась Coroutines, и теперь можно без опаски переключаться между контекстами корутин без заморозки. Обновления подхватили и Ktor:
Итак, что же нового появится в версии Kotlin 1.6.0-M1-139:
1. Заявлено, что мы можем убрать все freeze() блоки (в том числе и во всех фоновых Worker), и переключаться между контекстами и потоками без каких-либо проблем.
2.Использование AtomicReference или FreezableAtomicReference не приводит к утечкам памяти.
3.При работе с глобальными константами не нужно теперь использовать SharedImmutable.
4.При работе с Worker.execute producer больше не требует возвращать изолированный подграф объектов.
Однако есть и нюансы:
История успеха: из джуна в сеньора за 2 года
Мы знаем, как много вокруг курсов, мастер-классов и книжек о том, как построить карьеру в IT. И как мало реальных кейсов из жизни.
В нашей новой рубрике "История успеха" мы расскажем об интересных примерах карьерного пути (вверх, вниз, в сторону) в e-Legion. Первым героем стал наш тимлид iOS-разработки на проекте — Виктор Волков. Виктор пришёл в e-Legion джуном два года назад после магистратуры университета и месяц назад получил апгрейд сеньора. В этой статье вы узнаете, как войти в профессию без опыта, и чем обусловлен такой впечатляющий карьерный рост Виктора. Просто на ночь нужно втирать порошок из…
Вклад авторов
-
RoboForm 1939.8 -
alizar 1879.6 -
PapaBubaDiop 1540.0 -
phillennium 1157.0 -
YourDestiny 1011.0 -
InkOut 801.0 -
redmadrobot 779.0 -
Leono 778.0 -
marks 755.0 -
Developers_Relations 663.0