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

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

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

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

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

Время на прочтение 2 мин
Количество просмотров 4K

Мы в beeline cloud следим за ситуацией на рынке ИТ и подготовили для вас подборку карьерных историй, которые, с одной стороны, вызывают удивление, с другой — гордость. И какими бы разными ни были авторы, их объединяет одно — желание делиться с ИТ-сообществом уникальным опытом. 

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 14

Новости

«Клиентов нужно не искать, а создавать»: погружение в Telegram API через TDLib

Время на прочтение 9 мин
Количество просмотров 2.9K

Сперва я рассказывал простые вещи о Telegram Bot API и делал интересных ботов — виртуальную подругу и друга для заказа шавермы. Затем коснулся тестовых серверов и юзерботов. И наконец, пришла пора заглянуть глубже — узнать, как сделать свой клиент для Telegram. Что такое TL-схема и TDLib? Об этом мы сегодня и узнаем.

Данная статья не только поможет тем, кто решил написать свой клиент для Telegram, но и немного расширит кругозор остальным: MTProto — это не приевшийся JSON API. Добро пожаловать под кат!

Готовы показать свои знания в IT? Примите участие в IT-кроссворде Selectel, выиграйте 10 000 рублей на аренду серверов и эксклюзивный мерч Selectel.

Читать дальше →
Всего голосов 29: ↑29 и ↓0 +29
Комментарии 7

Kotlin Multiplatform перешёл в stable. Что это значит?

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

1 ноября состоялся релиза Kotlin 1.9.20, beta компилятора k2. 

Но для нас интереснее глобальное изменение статуса KMP. Мы используем эту технологию в мобильной разработке и написали про неё несколько статей.

В статье подробнее рассмотрим, что изменилось в технологии с переходом в релиз.

Читать далее
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 5

Можно ли обойтись без нативных языков, разрабатывая на Flutter и RN?

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 2.8K

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

Пакетов на pub.dev для решения этих задач мне всегда хватает. Но бывают моменты, когда пакет работает не так, как надо, либо требует сложной настройки для работы. Поэтому я стал заглядываться на изучение нативных языков, дабы уметь внедрять их в проект и не зависеть от других пользователей, которые пишут пакеты на Flutter (или хотя бы знать, как исправлять за ними ошибки в коде).

Передо мной встала дилемма — будет ли время, затраченное на изучение нативки, стоить того, чтобы избавиться от некоторых недостатков кроссплатформенной разработки? Или можно обойтись без этого? Ниже я расскажу, к какому выводу пришел за время своей работы.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 7

Истории

Как сделать тесты на Espresso более читабельными и стабильными

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 917
Если вы писали тесты на Espresso — тестовом фреймворке от Google с открытым исходным кодом, — то вы знаете, что они не всегда стабильны и легко читаемы. Меня зовут Ксения Никитина, я являюсь Android-разработчиком в мобильной команде «Лаборатории Касперского». В этой статье я предложу вам способ, как сделать так, чтобы ваши автотесты отвечали всем ключевым качествам: были хорошо читаемы, стабильны, логируемы, давали возможность делать скриншоты, работали с AndroidOS и, наконец, имели продуманную и понятную архитектуру.



Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 1

Как создать интерактивные виджеты на iOS 17

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 983

5-9 июня 2023 года состоялась ежегодная презентация Apple WWDC23, на которой было представлено много интересных новшеств для iOS-разработчиков. Одну из таких фич — интерактивные виджеты, мы рассмотрим в этом руководстве.

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

В iOS 17 реализован функционал для создания интерактивных виджетов. Теперь у них появились элементы управления и анимации, виджет может сам выполнять некоторую работу без запуска основного приложения. Грубо говоря, обновленные виджеты представляют собой небольшие отдельные приложения, как AppClip.

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

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

Байт-код — это просто! Как сделать DI по-настоящему быстрым

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

Привет! Меня зовут Григорий Юрков, и я уже несколько лет работаю в инфраструктурной команде Яндекс Маркета. Два года назад мы начали разрабатывать свой легковесный DI-фреймворк Scout, который предоставляет выразительный Kotlin DSL. Он не генерирует код, а делает всю работу в рантайме.

Недавний переход с compile-time-библиотеки Dagger 2 на нашу привёл к замедлению старта приложения. В этой статье мы будем подробно рассматривать то, как применение байт-кода помогло сохранить скорость на том же уровне и спасти проект по миграции на Scout.

Ускоримся!
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 36

Flutter. Локальная база данных

Время на прочтение 7 мин
Количество просмотров 3.6K

Ранее мы писали статью про реализацию паттерна MVVM на Флаттере. В комментариях к ней просили разобрать связку нашего приложения с базой данных. 

Стоит заметить, что локальная БД в данном случае будет использоваться для кеширования данных, получаемых с бэкенда, однако взаимодействие с бэком не будет рассматриваться здесь, так как это тема, достойная отдельной статьи.

Меня зовут Ричард, и я младший разработчик в компании Digital Design.

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

Читать далее
Рейтинг 0
Комментарии 5

Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти

Время на прочтение 10 мин
Количество просмотров 2.9K

Многим знаком подход Backend Driven UI. С его помощью можно создавать новые страницы, запускать А/B-тесты, легко менять флоу в любое время и сразу на всех платформах. И при этом не надо долго и мучительно перевыкатывать приложение.

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

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 1

Flutter и работа с нативным кодом на примере библиотеки для работы с NFC

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.2K

Как исправлять недочеты в нативных библиотеках при работе с флаттером на примере NFC

В большинстве случаев при работе с флаттером разработчику никак не приходится взаимодействовать с нативным кодом (Java/Kotlin и ObjectiveC/Swift), потому что инструментарий флаттера довольно богат. Но иногда возникают случаи, когда без этого не обойтись. Самым частым примером является работа с датчиками телефона.

Рассмотрим проблему: представим что вам нужно сделать чтение данных карты с NFC. Вы выбрали плагин, в нашем случае это был nfc_manager 3.1.0, который позволяет это делать, но на android из него не возвращается номер карты, который вам необходим. Что делать? С такой проблемой мы недавно столкнулись и сейчас расскажем как это решается.

Для решения данной проблемы нужно выполнить несколько шагов.

Во-первых необходимо скопировать код библиотеки к себе в проект. Должно получиться так:

Читать далее
Рейтинг 0
Комментарии 2

Мобильная разработка за неделю #512 (23 — 29 октября)

Время на прочтение 5 мин
Количество просмотров 2K
В новом дайджесте изучаем Swift OpenAPI Generator и работу Spotify на Bazel, вспоминаем 15 лет Android и обозреваем невизуальную доступность, внедряем карты, пишем бесполезные программы, возвращаемся к Windows Phone и многое другое!

Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 1

Ситуация на российском рынке Android-разработки. Как разработчику оставаться востребованным специалистом?

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 9.2K

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

Читать далее
Всего голосов 29: ↑15 и ↓14 +1
Комментарии 11

Решаем трудности адаптации мобильных приложений с Responsive_framework

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 957

Hola, Amigos! Меня зовут Ярослав Цемко, я Flutter-разработчик в компании заказной разработки Amiga. Сейчас я расскажу об очень крутом плагине, который помог нам решить проблемы, связанные с адаптацией контента под разные дисплеи в одном из наших проектов.

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

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

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
HolyJS
Дата 2 – 12 ноября
Время 15:00 – 19:00
Место Санкт-Петербург Онлайн
IT Recruiting – HR Forum 2023
Дата 8 – 10 ноября
Время 9:00 – 18:00
Место Москва
Яндекс Backend Tour
Дата 13 – 26 ноября
Время 18:00 – 23:00
Место Москва Нижний Новгород Екатеринбург Новосибирск Санкт-Петербург Онлайн
Национальный рекламный форум
Дата 15 – 17 ноября
Время 10:00 – 19:30
Место Москва
Онлайн IT HR-конференция HR42
Дата 17 – 18 ноября
Время 10:00 – 14:00
Место Онлайн
Импульс Т1
Дата 17 ноября
Время 13:00
Место Иннополис Онлайн
HighLoad++ 2023
Дата 27 – 28 ноября
Время 9:00 – 20:00
Место Москва Онлайн
Импульс Т1
Дата 1 декабря
Время 12:30
Место Москва Онлайн

Как защитить свою форму верификации от ботов

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

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

Читать далее
Всего голосов 13: ↑0 и ↓13 -13
Комментарии 0

От Style Transfer до диффузии: эволюция визуальных эффектов на смартфонах

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 917


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


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

Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 1

Электронные книги? Аудиокниги? Смешать, но не взбалтывать

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

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

Читать далее
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 22

Адаптивный дизайн приложений на Gtk

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 1.8K

Основные рабочие среды из мира GNU/Linux — это GNOME и KDE Plasma. До недавнего времени их можно было видеть только на десктопах, но сейчас эти окружения можно заметить и на мобильных девайсах. Эти девайсы не слишком распространены. Десктопный Linux встречается гораздо чаще.

Для того чтобы внедриться в мир адаптивных интерфейсов, в сообществе KDE был создан целый фреймворк под названием Kirigami. О нем можно прочитать в этой статье.

Разработчики из сообщества GNOME Foundation пошли похожим путем, создав библиотеку виджетов libadwaita в дополнение к Gtk4. До нее там тоже были некоторые способы создания адаптивных интерфейсов. Например, при помощи библиотеки libhandy. Но речь пойдет не о них.

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

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

SwiftUI: от сомнений к успешному внедрению

Время на прочтение 10 мин
Количество просмотров 1.7K

Всем привет, меня зовут Фарид Хусаинов, я тим-лид команды мобильной разработки Банки.ру. Мы делаем iOS-приложения компании Банки.ру, а именно – наше основное приложение и приложение, посвященное страхованию.

Два с половиной года назад мы приняли решение перевести наше мобильное приложение на SwiftUI. На тот момент это была смелая и рискованная идея, так как SwiftUI был новой технологией. Маленькое комьюнити, много багов и нехватка опытных разработчиков, работающих на этой платформе, делали этот шаг непростым.

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

Как интегрировать мультиаккаунт в уже работающий сервис и не поломать всё

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 724

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

С ростом аудитории и функциональности сервисов появляются пользователи, которым по различным причинам необходимо использовать несколько учётных записей для абсолютно разных целей: личных, рабочих или учебных. Чтобы они могли быстро и удобно переключаться между ними, разработчики добавляют в свои приложения функцию мультиаккаунта — с функцией переключения, multi push и т. д.

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

Что может пойти не так?

Читать далее
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 0

Построение графа покрытия UI-тестами бизнес-логики на основе VisualFSM

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

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

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

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

Вклад авторов

Работа