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

Появилась публичная бета-версия приложения «Яндекс — с Алисой» для Android

Время на прочтение 1 мин
Количество просмотров 2.3K
Разработка под iOS *Разработка под Android *Тестирование мобильных приложений *IT-компании


В магазине приложений Google Play появилась публичная бета-версия приложения «Яндекс — с Алисой». Тестовая версия приложения стала доступна не только для Android, но и для iOS через сервис дистрибуции мобильных приложений TestFlight.
Читать дальше →
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 2

Шаблоны проектирования при разработке под Android. Часть 4 — Сохранение данных. Domain Model, Repository, Singleton и BDD

Время на прочтение 10 мин
Количество просмотров 15K
Разработка под Android *
Сразу хочу сказать, что в статье я не буду описывать как надо работать с Data Provider-ом. Это можно найти и в документации и в многочисленных статьях в интернете.
Здесь я расскажу про шаблоны проектирования Domain Model, Singleton, Repository, про подход Behavior Driven Development (BDD) и как я их использовал в своей программе.

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

Например, в моей программе предметная область состоит из данных расписания, заданного в виде нескольких будильников, для будильника можно задать дни недели и время, а также признак «будильник включен». Так же есть несколько алгоритмов, например получить будильник, который сработает следующим и дату и время его срабатывания. Поскольку будильник может дремать, получается что у одного будильника есть несколько срабатываний с разными действиями: первое срабатывание, дремание, и последнее дремание, когда кнопка дремать уже не доступна. Поэтому есть еще алгоритм поучения ближайшего абсолютного времени и действия.
Так же есть алгоритмы для создания нового будильника и редактирования/удаления существующих.

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

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

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

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

Такой подход называется Behavior Driven Development. Его достоинство в том, что я могу тестировать модель в терминах предметной области, то есть в модульных тестах я имитирую обычное поведение пользователя. Благодаря тому, что это реализовано через механизм модульных тестов, я перед каждым релизом могу эти тесты прогнать и быть уверенным, что моя программа программа нормально отрабатывает основные действия пользователя.

Если бы я использовал отдельный класс для редактирования/сохранения будильников и отдельный класс для вычисления ближайшего будильника, то я конечно бы протестировал их по отдельности, но не смог бы проверить их вместе и не смог бы проверить основные действия пользователя.
Читать дальше →
Всего голосов 25: ↑22 и ↓3 +19
Комментарии 2

Новый Google Chrome в Android — без поддержки flash

Время на прочтение 1 мин
Количество просмотров 40K
Разработка под Android *
Буквально вчера на хабре появился топик о новой бета-версии гугл хрома под андроид. Однако одну маленькую, но очень важную деталь автор упустил — браузер не поддерживает флеш. Совсем.

И хотя дефолтный браузер по-прежнему поддерживает флеш, «Гугл» планирует (и это очевидно) в будущем заменить его на хром. «Эдоуби», разумеется, говорит «что это всё в рамках их „стратегии“» и что вместо флеша их сотрудничество направлено на HTML5 и пару специфических технологий от «Эдоуби» (например, CSS Regions, которые реализовали в браузере).

В общем, ноябрьское заявление «Эдоуби» о том, что она «убивает» флеш для мобильных устройств теперь получило реальное подтверждение. А ведь помнится, не так давно, «поддержка флеша» позиционировалась одной из ключевых фич андроида по сравнению с iOS.
Читать дальше →
Всего голосов 159: ↑117 и ↓42 +75
Комментарии 228

Конфигурация приложения в Android: быстрая разработка

Время на прочтение 12 мин
Количество просмотров 13K
Разработка под Android *
imageПри разработке мобильных приложений зачастую возникает необходимость хранить настройки приложения (выбранную пользователем цветовую тему, пароль доступа к приложению, параметры синхронизации с сервером и т.д.). Поскольку такие задачи возникают довольно часто, в Google позаботились о разработчиках и создали механизм для быстрой и легкой реализации данного функционала. Этот механизм позволяет легко создавать, сохранять, отображать и производить разные манипуляции с настройками приложения. Мало того он позволяет автоматически создавать пользовательский интерфейс. При описании типа параметра настроек — автоматически генерируется часть пользовательского интерфейса в зависимости от типа параметра (boolean — чекбокс, String — поле ввода, ...) без написания кода. Звучит неплохо для быстрой разработки, не так ли?
Читать дальше →
Всего голосов 30: ↑22 и ↓8 +14
Комментарии 0

Обзор первого настольного IP телефона на платформе Android — Grandstream GXP2200

Время на прочтение 5 мин
Количество просмотров 27K
Блог компании МУК Разработка систем связи *
Хочу познакомить вас с очередной новинкой от компании Grandstream. Емкостной экран с отличными характеристиками, полнофункциональный Android и возможность установки любых приложений делают из настольного IP телефона устройство с широчайшими возможностями.

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

Настольный телефон с птицами внутри
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 29

Aviate — новый адаптивный лаунчер (+инвайт)

Время на прочтение 2 мин
Количество просмотров 43K
Интерфейсы *
image На днях для андроид был запущен новый проект Aviate — лаунчер способный адаптироваться под потребности владельца телефона и выводить необходимые в данный момент приложения и виджеты.

image

В видеоролике на сайте разработчика коротко говорится о том, что эта замечательная программа которая сделает жизнь удобнее, а управление всем тем скоплением приложений (у многих их десятки) на вашем смартфоне проще и быстрее.
Мне удалось получить инвайт и подкатом небольшой обзор этого проекта.
Читать дальше →
Всего голосов 45: ↑39 и ↓6 +33
Комментарии 297

Так ли хорош React Native?

Время на прочтение 3 мин
Количество просмотров 25K
Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
React Native React Native довольно новая технология которая с первого взгляда кажется серебряной пулей для многих начинающих разработчиков. В статье я хочу развеять этот миф и рассказать что же именно не так с React Native и почему стоит подождать прежде чем его использовать.

И так по порядку, я Full-stack разработчик. Использую последний стандарт javascript на фронетнде и бэкенде. Опыта разработки мобильных приложений нет, но есть 5 лет опыта разработки высоконагруженных проектов на node.js, asp.net mvc. Опробовать React Native я решил при создании простого мобильного приложения — клиента LessPass для Android.
Читать дальше →
Всего голосов 41: ↑24 и ↓17 +7
Комментарии 34

Реактивная работа с Bluetooth в реальных условиях

Время на прочтение 11 мин
Количество просмотров 10K
Разработка под Android *Kotlin *
Туториал

Небольшое предисловие, или в чем же боль


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


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


Опасности на пути джедая


Первый важный момент, о котором должен помнить разработчик, при работе с Bluetooth – пакеты могут повреждаться по пути. А еще – они могут сопровождаться шумом. И это не один случай из миллиона, подобные явления могут встречаться довольно часто, и их нужно обрабатывать. Еще блютус может отключиться, или не подключиться, или сделать вид что подключился, но на самом то деле мы знаем, что это ничего не значит...


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

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

Превращаем старый телефон на Android в резервный сервер с помощью UrBackup/Linux Deploy. Часть 1

Время на прочтение 15 мин
Количество просмотров 29K
Блог компании RUVDS.com Настройка Linux *Системное администрирование *Разработка мобильных приложений *Серверное администрирование *
Туториал
Перевод


Сегодня я покажу вам, как запустить полноценный резервный сервер на рутованном телефоне Android с помощью UrBackup и Linux Deploy. Пластиковый мусор уже заполонил все вокруг, а в добавок к нему очередной глобальной эко-проблемой становятся еще и электронные отходы. Так зачем выбрасывать прекрасный, пусть даже потрескавшийся и поношенный, телефон?
Читать дальше →
Всего голосов 57: ↑56 и ↓1 +55
Комментарии 52

Монтирование и управление LVM-томами на Android Linux Deploy. Часть 2

Время на прочтение 6 мин
Количество просмотров 3K
Блог компании RUVDS.com Настройка Linux *Системное администрирование *Разработка мобильных приложений *Серверное администрирование *
Перевод

В этом руководстве мы рассмотрим создание и монтирование LVM томов на рутованном устройстве Android. Это вторая часть моего проекта «Резервный сервер на Android», но она будет на 80% состоять из работы с LVM и лишь на 20% с UrBackup/Linux Deploy. Первая часть доступна здесь.
Читать дальше →
Всего голосов 34: ↑33 и ↓1 +32
Комментарии 4