Обновить
1024K+

Android *

Пишем под самую популярную мобильную ОС

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

Surf-итоги кода: Flutter, Android и iOS в 2024-м

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

Да-да, мы назвали статью «Итоги кода» — и кто нам что-то скажет.

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

Располагайтесь удобнее, возьмите чашечку любимого горячего напитка и погрузитесь в итоговую идиллию новостей и результатов от Flutter, Android и iOS-команд Surf.

Читать дальше

Оптимизация под контролем: инструменты и метрики для Аndroid-приложений

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

Для пользователей важно, чтобы приложение открывалось быстро и работало отзывчиво. Чем быстрее оно загружается, плавнее работает, тем больше вероятность, что человек вернётся и продолжит им пользоваться. С другой стороны, постоянное добавление новой функциональности может негативно повлиять на скорость старта и отзывчивость приложения, что, вероятно, сподвигнет пользователя поискать более быстрый аналог.

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

Читать далее

Разработка плагина для Android Studio

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

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

Читать далее

Orbit MVI с сахаром: вкусный фреймворк для однородной архитектуры

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

Привет, $username! Меня зовут Анастасия, я junior-android-разработчик в МТС Диджитал. Пойдем, расскажу тебе про фреймворк OrbitMVI. Узнала я о нем от своего лида: он делегировал мне задачу заменить наш самодельный Redux на Orbit, чтобы в нашем приложении архитектура стала удобнее и однороднее.

Сначала я пошла читать документацию, что из себя представляет Orbit MVI и с чем его едят. Затем попробовала его на небольшом тестовом проекте и поняла: это интересный, удобный и понятный фреймворк. В этом посте я покажу, что в «Орбите» есть полезного и как его можно использовать.

Читать далее

Мобильная разработка за неделю #569 (16 — 22 декабря)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели3K
В новом дайджесте добавляем Image Playground в приложение и разбираемся с Android 15, делаtv свой DI за 10 минут и заставляем крутиться таймер, раскрываем внутреннюю архитектуру Flutter, проектируем мобильное приложение маркетплейса, оцениваем годовые доходы App Store и Google Play и многое другое. Подключайтесь!

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

Читать дальше →

Как мы раскрыли внутреннюю архитектуру Flutter и затащили его на собственную платформу

Время на прочтение13 мин
Охват и читатели15K
Если вы разрабатываете мобильные приложения, то почти наверняка сталкивались с Flutter — мегапопулярным открытым фреймворком от Google. Наша команда Mobile SDK and Applications Development, конечно, тоже захотела использовать Flutter при создании приложений для KasperskyOS — собственной микроядерной операционной системы «Лаборатории Касперского» — но был нюанс…



Особенности архитектуры KasperskyOS задают условия, при которых мы не можем пойти проторенными дорожками и свободно интегрировать фреймворк на своей платформе. Подсмотреть решения где-то вовне мы не можем тоже — таких кейсов в индустрии просто не было. А сам Google практически не раскрывает внутреннюю архитектуру Flutter. Так что интеграцию требовалось выстраивать с нуля.

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

Если вы тоже разрабатываете приложения, где требуется разбираться во внутренней архитектуре Flutter, статья точно будет вам полезна — ныряйте под кат!
Читать дальше →

Что такое KNOX по мнению Galaxy AI, как установить сертификат Минцифры и другие впечатления за год

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

Если бы Samsung дал доступ к KNOX SDK всем и дополнил его всеми возможностями для экспериментов, а не только востребованными бизнесом, то этот блог стал бы, наверное, одним из популярных. Сбылась бы мечта многих, связанных с IT, — отключить все ненужные сервисы на смартфоне и чувствовать себя хорошо.

В принципе, хороший контент для письма Деду Морозу… В этой статье пройдусь по тому, какие функции SDK и облачные сервисы KNOX привлекали разработчиков решений в этом году, а также самые занятные B2B истории и первые впечатления от ведения​ блога.

Читать далее

Разработка специализированного графика для отображения ЭКГ с использованием Canvas на платформе .NET for Android

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

В современной медицине точное отображение электрокардиограммы (ЭКГ) играет ключевую роль в диагностике и мониторинге сердечно-сосудистых заболеваний. Разработка специализированного графика для визуализации ЭКГ в реальном времени на мобильных устройствах требует не только глубокого понимания медицинских стандартов, но и тщательного выбора технологий для реализации. В статье мы рассмотрим процесс создания такого графика с использованием технологии Canvas, обсудим возникшие проблемы и найденные решения.

Читать далее

Создание Custom Layout в Jetpack Compose

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

Привет, Хабр! Меня зовут Артем и я автор и ведущий YouTube канала Android Insights

Сегодня я расскажу о том, как создавать Custom Layout в Jetpack Compose, а также мы решим одну связанную с данной темой практическую задачку. Создание Custom Layout может показаться чем-то сложным на первый взгляд, но я постараюсь все объяснить максимально понятно и подробно. Итак, приступим!

Читать далее

Dagger 2: как сделать свой DI за 10 минут

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

Привет, меня зовут Иван Курак, я Android-разработчик приложения Ozon Job. Если в первой статье мы разбирали фреймворк Koin, то во второй на наш исследовательский стол попадёт Dagger, который мы используем на большинстве проектов Ozon, в том числе на приложении Ozon Курьер Экспресс, за которое отвечает наш отдел.  Это мобильное приложение, которое позволяет курьерам-фрилансерам и водителям службы доставки взять подработку в Ozon и доставлять экспресс-заказы от селлера напрямую клиенту или в ПВЗ Ozon.

В проекте мы используем Dagger 2 согласно его основной функциональности — собирать общие компоненты и навигацию между модулями, изолировать зависимости, улучшить тестируемость и поддерживаемость.

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

Эта статья будет полезна тем, кто использует Dagger 2 в своих приложениях и иногда/часто попадает в ситуации непонимания, почему Dagger 2 ведёт себя не так, как мы ожидаем. А это может создавать определённые трудности, особенно при отладке сложных проблем или при необходимости настройки более сложных сценариев внедрения зависимостей.

Например, в приложении Ozon Курьер Экспресс ведутся большие работы по переписыванию приложения на новую архитектуру. Поэтому рядом с существующей DI-архитектурой появилась вторая DI-архитектура.  Чтобы их подружить, пришлось покопаться во внутренностях кода, что генерирует Dagger 2.

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

Читать далее

Всё, что нужно знать об Android 15: архивирование, защита данных и новые API

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

Android 15 ворвался в наши жизни с новым усилением безопасности и удобством разработки. Сёрфер Полина, Android-разработчик в Surf, всё посмотрела, попробовала, проанализировала и теперь расскажет, что же там такого интересного. 

Читать дальше

У тимлида нет цели, но есть путь. Или как стать настоящим самураем и не сделать сеппуку

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

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

Читать далее

Мобильная разработка за неделю #568 (9 — 15 декабря)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели2.8K
В этом выпуске Swift и SwiftUI в iOS 18 и собственная система мониторинга фильтра воды, очередные похороны Flutter и суровые истины о программировании с помощью ИИ, дейтинг в России 2024, открытые русскоязычные опенсорс-модели и многое другое. Подключайтесь!

Читать дальше →

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

Flutter форкнули и похоронили. Эксперты о Flock, поводах для беспокойства и будущем фреймворка

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

Про «смерть» Flutter говорят каждый год, иногда по нескольку раз. Сейчас разговоры об этом получили новый виток — во многом после сокращений в Google и появления форка Flock, который якобы заменит основную ветку.

Разбираем страхи, связанные с фреймворком, и отвечаем на основные вопросы по Flutter и Flock с экспертами. За помощь в написании статьи спасибо ведущим Flutter-инженерам Евгению Сатурову, Михаилу «Fox» Матюнину, Сергею Кольцову и Евгению Коту.

Читать далее

AndroidAPS в часах. Продолжение

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

Друзья, ранее я испытывал AndroidAPS на полноценном Android в часах Kospet, что решало проблему забывания телефона и потери связи, а так же ситуаций, когда телефон не может быть рядом. Статья тут.

Часы с полным андроид - большая редкость и создалось четкое ощущение, что это не та технология, которая будет активно развиваться (как минимум потому что здравых, читай удобных, красивых, современных и с моментальным запуском программы, часов с полным андроид почти нет). То ли дело Wear OS (например часы Samsung на Wear OS).

Все еще решая проблему "второго телефона" и замены его на удобные часы, которые не нужно доставать из рюкзака, решил посмотреть какие возможности откроются нам на Wear.

Для начала, Wear версия XDrip+ уже сейчас дает возможность использовать часы как основной приемщик данных о глюкозе, причем переподключать сенсор к часам не нужно. Подключение происходит стандартно к телефону и после этого на Wear можно включить две разные функции:
- Enable Collector (Connect to BT Collector when phone is out-of-range = Подключить Wear к Bluetooth устройству сбора данных, когда телефон находится вне зоны досягаемости)

- Force Collector (Force phone to use Wear Collection Service = Принудительно использовать службу сбора данных Wear на телефоне) - в этом случае именно часы будут собирать данные с сенсора.

Первая функция не сработала (данные так и не появились) на моих Galaxy Watch 5Pro, вторая функция - сработала, но с задержками, вероятно когда часы засыпают данные все еще корректно не передаются, так что задержки почти все время от 3 до 30 минут. Разбираюсь. Как только решим эту проблему - попробуем подключить к часам помпу и перенести все или часть приложения на часы, чтобы добиться большей автономности.

Читать далее

Зачем покупать, когда можно… или как я собирал систему мониторинга фильтра воды и что из этого вышло

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

Привет, Хабр!

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

Читать далее

Мобильная разработка за неделю #567 (2 — 8 декабря)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели2.5K
В новом дайджесте уменьшение размера банковского приложения и транзишинометр для Android, вопперы и табы, сертификаты и профили, сколько приложений, из выпущенных в 2024 году, стали успешными, вранье LLM и многое другое. Подключайтесь!

Читать дальше →

Умная система обучения для детей до 3 лет. Animal Island Aila

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

В современном мире технологии играют всё более важную роль в обучении и развитии детей. Проект "Animal Island Aila" — это инновационная умная система, созданная специально для малышей от 12 до 36 месяцев. Она помогает детям познакомиться с основами английского языка (цвета, формы, буквы), расширяет словарный запас и делает процесс обучения увлекательным. 

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

Суть проекта 

Проект "Animal Island Aila" реализован на основе клиент-серверной архитектуры и включает два отдельных приложения: одно для детей, а другое для родителей. В качестве сервера используется облачная платформа Amazon Web Services. 

Приложение для детей, разработанное на Kotlin, работает на специальном Android-планшете Aila Sit & Play™. Оно демонстрирует различные обучающие видео, рассказы и колыбельные для детей. 

Приложение для родителей, разработанное на Flutter и Dart, доступно для платформ Android и iOS. Оно позволяет родителям управлять детским устройством и наблюдать за детьми в реальном времени. 

Архитектура серверной части 

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

Читать далее

Jetpack Compose как unbundled-библиотека. Скорость UI vs. Гибкость разработки

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

Jetpack Compose может работать медленнее системы View из-за своей архитектуры и дизайна. Но при этом он гораздо более гибкий.

Дело в том, что Jetpack Compose — это unbundled-библиотека. В этой статье я расскажу о том, что это значит и почему оно влияет на производительность, на примере нашего переезда на Compose.

Мы вместе ужаснёмся тормозам UI, вызванным переездом на Compose, и порадуемся возможности писать Compose-код, не оглядываясь на версию Андроида! Но это всё спойлеры. Давайте расскажу подробнее!

Читать далее

Особенности использования сторонних сервисов в мобильных приложениях на примере Firebase

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

Всем привет!

На связи Веселина Зацепина и Юрий Шабалин, эксперты по безопасности мобильных приложений из компании Стингрей. Сегодня мы затронем очень интересную тему — сервисы Firebase. Поговорим об их применении в мобильных приложениях и о том, как обеспечить их безопасность. Эта статья призвана обратить внимание разработчиков и ИБ-специалистов на внешние сервисы, которые используют приложения, поскольку они часто остаются без должного внимания и аудита. Очень надеемся, что после прочтения вы начнёте по-другому смотреть на безопасность мобильных продуктов, ведь они обмениваются данными не только с собственными серверами, но и с многими другими.

И, конечно, мы попробуем ответить на вопрос: что же может быть страшного в, казалось бы, стандартных и привычных сервисах? Интересно? Тогда начнём!

Читать далее