Обновить

Мобильная разработка

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

Flutter Push-уведомления, том числе в Web

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели10K

Добрый день!

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

В двух словах о чём статья:

С нуля мы создадим flutter-проект с подключением к push-уведомлениям. Будем отправлять уведомления не только на Android, IOS, но и на наш веб-сайт, который может рассылать уведомления в т.ч. на мобильные устройства. Нам потребуется дополнительно лишь небольшой хостинг с mysql БД и php.

Читать далее

Telegram web apps как альтернатива мобильным приложениям

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели19K

В последние полтора года я очень активно наблюдаю за стремительным развитием мини-приложений внутри telegram. В этой статье приведу несколько весомых аргументов, которые могут склонить вас к выбору бота с веб-приложением на базе telegram вместо традиционных мобильных приложений. Кому интересно, прошу под кат!

Читать далее

Оптимизация архитектуры: делим крупные классы с помощью миксинов

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели3.9K

Всем привет! Это статья для тех, кто интересуется таким фреймворком, как Flutter. Сегодня обсудим, как делить большой файл класса с помощью миксинов. 

Для начала давайте разберемся, зачем вообще делить большой файл класса?

Причин несколько: во-первых, чтобы было удобно читать и рефакторить код. Во-вторых, чтобы уменьшить количество конфликтов при merge и разделении истории git в конкретном файле. Согласитесь, отследить историю изменений в разных маленьких файлах удобнее и быстрее, чем в одном большом, с разнообразием изменений. 

Читать далее

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

Уровень сложностиПростой
Время на прочтение22 мин
Охват и читатели34K

Гайд по написанию Android-приложения с нуля, используя лучшие архитектурные подходы – Clean Architecture и MVI, они обеспечат поддерживаемость, тестируемость и масштабируемость приложения, что особенно важно для сложных и долгосрочных проектов.

Читать далее

Swift TaskGroup на примерах

Время на прочтение22 мин
Охват и читатели13K

В данной части из серии swift concurrency мы продолжим исследовать structured concurrency. В этот раз остановимся на сущности под названием TaskGroup. Узнаем как с ней работать и чем она отличается от Task и async let. На примере сравним аналогичные реализации с и без TaskGroup и разберем некоторые (не для всех очевидные) моменты при работе с данной сущностью.

Читать далее

Кастомный Date and Time picker как в Telegram на Kotlin Jetpack Compose

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели9.9K

Вдохновившись классными колесиками для выбора времени и даты напоминаний Telegram я захотел сделать на одном из своих пет‑проектов что‑то подобное. Первой мыслью было — найти этот код в исходниках Telegram, но т.к. скорее всего, у них это написано на Java, я решил не играть в лотерею и не тратить время на раскопки в Java‑коде, потому что я хотел сделать это на «реактивном ранце».

Читать далее

Как я преодолел отказ в модерации App Store: история приложения YoloPrice

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.1K

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

В этой статье речь пойдёт не о первичной модерации, когда приложение совсем новое. Мой кейс в том, что модерация App Store начала отклонять новые версии приложения, которое до этого спокойно существовало в App Store уже пару месяцев и имело 1000+ установок, то есть все базовые требования к приложению были соблюдены.
Возможно, кто-то мог пожаловаться на него, или попался новый модератор, истинную причину мы не узнаем, но я расскажу подробно, по каким пунктам отклоняли новые версии и как я с этими пунктами в итоге справился.

Читать далее

Встречаем yx_scope: DI-фреймворк для работы со скоупами в открытом доступе

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели11K

Для больших проектов не всегда хватает одного модуля: иногда надо пошарить какие‑нибудь классы или UI‑элементы. Так со временем проект дробится на много мелких модулей, которые так или иначе связаны разного рода зависимостями. И если за этим не следить, то рано или поздно структура проекта может стать запутанной.

Наша команда разрабатывает приложение Яндекс Про, которым пользуются водители и курьеры. Из‑за многомодульности разные команды использовали разные подходы к связыванию зависимостей — в основном это getIt, injectable и riverpod. Но у всех решений были свои недостатки. К тому же то, что в одном проекте используется несколько подходов, сильно усложняло взаимодействие команд.

Сложности подтолкнули нас к поиску собственного решения, которое удовлетворяло бы всем нашим требованиям. И теперь мы готовы поделиться им с комьюнити: наше решение — это группа библиотек yx_scope.

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

Читать далее

Собственная бизнес-вселенная через призму low-code

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5.7K

В эпоху цифровой трансформации бизнеса все большую популярность набирают low-code платформы, позволяющие создавать сложные бизнес-приложения с минимальным объемом ручного программирования. И, казалось бы, что может быть проще и логичнее - высвободить силы и время, отдав цифровую трансформацию бизнеса на откуп низкокодовой технологии. Но в России доля скепсиса в отношении этой набирающей обороты разработки пока что довольно велика.

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

Звездный час low-code

Первые LC (low-code) начали разрабатываться в 2000-х, но пика популярности они достигли буквально пару лет назад, и особенный интерес к ним возник у отечественного бизнеса: в связи с резким оттоком из страны специалистов ИТ-сферы появилась острая необходимость в подобных решениях, охватывающих практически все аспекты, необходимые для нормальной работы компании, тем более крупной.

Читать далее

10 SDK, чтобы улучшить ваше мобильное приложение

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели6.4K

SDK (Software Development Kit) — комплекс инструментов для расширения функциональности мобильных приложений и доступа к новым опциям и возможностям ПО. При этом каждый SDK ограничен своим набором компонентов и закрывает определённые задачи бизнеса. В статье расскажем о базовых, второстепенных и перспективных SDK, опишем их функции и возможности, приведём примеры наборов разработчика для каждой из категорий.

Читать далее

Нативные библиотеки для Android

Время на прочтение6 мин
Охват и читатели6.4K

В этой статье мы рассмотрим работу с нативными библиотеками, которые могут содержаться в приложениях для Android. Нативные библиотеки — это код, который разработчик написал, а затем скомпилировал для конкретной архитектуры компьютера. Чаще всего этот код написан на C или C++. Наиболее распространенными причинами, по которым разработчик может это сделать, являются математически сложные или требующие больших затрат времени операции, такие как работа с графическими библиотеками.

Стоит отметить, что разработчики вредоносных программ также начали переходить на машинный код, поскольку обратная инженерия скомпилированных двоичных файлов, как правило, менее распространена, чем анализ байт-кода DEX. Во многом это связано с тем, что байт-код DEX может быть декомпилирован на Java, в то время как нативный, скомпилированный код часто приходится анализировать как ассемблер.

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

Читать далее

Сложно ли пронести гаджет в школу

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели6.4K

Это история разработки B2B решения для планшетов, чтобы увеличить их востребованность в сфере образования. Вначале мы совершили все возможные ошибки: считали себя самыми умными, путались в «болях» целевой аудитории вместе с фокус-группой. Всё нравилось менеджерам, разработчикам и, главное, начальству. Затем пилот решения дошёл до пользователей и пришло время отваги для осознания наших заблуждений.

Читать далее

Апгрейд с Xamarin.Native на .NET 8

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5K

Для тех, кто занят в кроссплатформенной мобильной разработке на Xamarin не секрет, что Microsoft прекратил поддержку этой платформы и выкатил обновленную реализацию на чистом .NET. Речь о .NET Android, .NET iOS, MAUI и т.д. Поначалу мне казалось, ну сделали и сделали, что такого может случиться, но как это бывает беда всё же пришла.

Читать далее

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

Автообновление через GitHub releases с помощью Retrofit в Android

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели8K

Как сделать автоматическое обновление непосредственно через приложение или как отказаться от маркетов приложений, части из которых нет на многих устройствах, а другие не подходят по определенному ряду причин!?

Читать далее

Кастомная тема Jetpack Compose

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели8K

Уверен, что каждый, кто использовал цветовые схемы в Android приложениях для раскраски интерфейса, хоть раз задавался вопросом "А как можно поменять скучные цвета primary, secondary, tertiary и др. на свои?" В этой статье речь пойдет как раз про использование своей цветовой схемы для работы с приложением.

Читать далее

Пуск I2S трансивера на Artery

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели8.2K

В этом тексте я написал про то, как самому написать System Software уровня HAL для ARM Cortex-M4 совместимого микроконтроллера.

Как отлаживать такую работу и на что обратить внимание при запуске I2S на Artery MCU.

Читать далее

Flutter. Стиль кода — это все

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели15K

Стиль кода — это все. Это свежий взгляд на простое и сложное. Стильный, но простой код лучше, чем сложный, но не стильный. Сложный и стильный — это искусство. Разработка может быть искусством, тестирование может быть искусством. Оптимизация кода — тоже искусство.

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

Люди тоже диктуют стиль. Стиль был у Роберта Мартина, у Дэвида Томаса, у Мартина Фаулера, у Эрика Эванса... Я встречал стиль в открытом исходном коде. В среде разработчиков стильных проектов куда больше, чем в каком-либо другом сообществе. Стиль — это атрибут, подход и структура.

Выше – юмористическая интерпретация слов из поэмы Чарльза Буковски «Стиль». Вариативность стиля кода настолько многогранна, что не всегда удается прийти к единому мнению в пользу того или иного подхода, поэтому стиль в сегодняшнем понимании — это целая культура.

Сегодня мы будем разматывать клубок лучших практик и скрытых трюков. После этого ваш код станет не просто рабочим, а настоящим произведением искусства. С учетом моего опыта работы мобильным разработчиком в TAGES, я готов поделиться своими знаниями и практиками, которые могут быть полезны для вашего проекта. Пристегнитесь потуже — мы взлетаем!

Читать далее

Парсим данные из Google Sheets с помощью Retrofit в Android

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели3.1K

Как парсить данные Google Sheets с помощью Retrofit и Gson в Kotlin Android или как получить структурированные классы из файлика с расширением json, который падает к программисту из Google Sheets API?

Читать далее

Kotlin Coroutines под капотом

Время на прочтение36 мин
Охват и читатели61K

Вероятнее всего у вас спрашивали на собесе «как работают корутины под капотом?», вы не долго думая выбрасывали что‑то в стиле «там под капотом стейт‑машина, она определяет какая suspend функция будет выполняться», но понимали ли вы на самом деле о чем говорили? Возможно, но если честно я плохо понимал собственные ответы на такие вопросы и даже после десятка пройденных собесов у меня не было полноценной картины как работает внутрянка этой поистине невероятной библиотеки «сладкой асинхрон

Читать далее

Почему умение дебажить — один из самых важных навыков для разработчика

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели16K

Привет! Меня зовут Абакар, и я работаю главным техлидом в Альфа-Банке. Меня часто посещает вопрос: «А какой навык всё-таки самый полезный для разработчика?». Понятное дело, что ответ на этот вопрос обязан быть комплексным, и скилл-сет разраба не должен ограничиваться одним навыком. Но умение дебажить — действительно хороший показатель уровня разработчика. Давай разберем на нескольких примерах, почему я так считаю.

Читать далее