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

Программист

Отправить сообщение

Схема кампуса в Android приложении

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

Всем привет, я Леонид Соляной, Android разработчик из @UMNODigital, и сегодня я расскажу о своем домашнем проекте.

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

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

Android Bluetooth Low Energy (BLE) — готовим правильно, часть #2 (connecting/disconnecting)

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

Подключение, отключение и обнаружение BLE сервисов.

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

Kotlin под капотом: нюансы использования аннотаций

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

Котлин очень лаконичный язык, но когда его код компилируется в Java bytecode, то изящные  конструкции kotlin распадаются на развесистые и монструозные конструкции Java. При этом применение аннотаций может сыграть с вами злую шутку.  

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

Изучаем данные, собранные Xiaomi Mi Band за год

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

Введение


Люди носят фитнес-браслеты по разным причинам, я могу предположить некоторые из них:


  1. Для того, чтобы поддерживать себя в форме и выполнять цели по активности;
  2. Потому что это некая модная штучка;
  3. Чтобы ставить над собой эксперименты или узнать себя лучше.

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


Методы для извлечения этих данных работают для Mi Band 1, 1S и, возможно, 2 (приложение для 2, кажется, такое же).

Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии74

Пишем приложение на Mi Band 7 с сервисной частью

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

Недавно я купил себе Mi band 7, по началу хотел купить 6-ую версию, пока не узнал, что на 7-ой обновилась операционная система и теперь она поддерживает установку приложений. Да, официально они об этом не заявили, но умельцы уже сделали множество приложений. Они ставят их как циферблаты, и это вполне обычные приложения. Но все эти приложения работают только локально на самом MiBand 7, не имея возможности взаимодействовать ни с телефоном, ни с интернетом. Я углубился в байткод приложения и документации по ZeppOS чтобы найти способ создавать приложения, взаимодействующие с интернетом, в этой статье я опишу свой путь. В итоге у меня получилось сделать запрос в интернет с часов и даже запустить мост для отладки приложений. 

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

Android: как подружить ваше приложение с Google Ассистентом?

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

Многие из вас прекрасно знают, что такое Google Ассистент. Это голосовой помощник, подобный Siri, Алисе, Алексе и другим. Когда пользователь что-то говорит, Google Ассистент понимает это с помощью natural language understanding (NLU). NLU преобразует человеческую речь в специальную структуру данных, которую уже можно обработать.

У разработчиков Android есть возможность интегрировать NLU в свои приложения через специальный api, который называется App Actions. Точнее, существует два вида интеграции: мы можем получить и использовать Deep Link из речи пользователя или получить данные из приложения, не открывая его, и показать их прямо в Google Ассистенте через Slice.

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

Космический сервер уже на орбите: как принять с него сигнал

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

27 июня с космодрома Восточный был запущен космический аппарат «Метеор-М» № 2-3 и 42 попутных спутника. Среди них и СтратоСат-ТК-1, который отвёз наш космический сервер на орбиту. 11 июля в 9:40 пико-спутник RUVDS был выведен из пускового контейнера и отправился в своё самостоятельное путешествие по орбите.

Сейчас расскажем, как же следить за нашим спутником и получать с него данные. К сожалению, в одной статье на Хабре не уместить всех нюансов работы с радиолюбительскими спутниками, поэтому мы разделим инструкцию на две части. Первая — если вы совсем не понимаете, о чём идёт речь и у вас нет никакого опыта работы с радио. И вторая — подразумевающая какой-то опыт или желание его приобрести. И мы очень надеемся, что более опытные радиолюбители будут делиться опытом с новичками и помогать нам с возможными вопросами.
Читать дальше →
Всего голосов 83: ↑80 и ↓3+77
Комментарии57

Jetpack Compose Desktop

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

Несколько дней назад компания JetBrains в своём блоге рассказала о выходе нового инструмента для создания дескопных приложений Jetpack Compose Desktop. Компания с русскими корнями не особо жалует русскоязычную аудиторию и не спешит рассказать нам о новинке, поэтому возьму на себя роль популяризатора.

Разработчики под Android уже могли слышать про Compose, которая доступна в предварительной версии Android Studio 4.2. Я не любитель устанавливать бета-версии, поэтому не мог пощупать новую технологию своими руками. Но когда услышал новость про Compose Desktop, то не удержался и поставил себе IntelliJ IDEA Early Access Program.

Для начала я установил версию IDEA 2020.3, где уже есть все необходимые настройки и шаблоны.

Создаём новый проект и выбираем шаблон Desktop uses Kotlin 1.4.0. Минимальная версия Java SDK должна быть не ниже 11. Проверял на Windows 10, других платформ у меня нет.

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

Не бойтесь использовать Gradle

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

Дорогие junior и все, кто занимается copy-past конфигов Gradle.

В этой статье я хочу простым языком рассказать вам о gradl'овой конфигурации сборки вашего проекта, чтобы вы не боялись использовать Gradle.

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

Четырёхмерный лабиринт с видом от первого лица

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

Существует более 30 игр с дополнительным пространственным измерением (список на википедии), которые разнообразными способами визуализируют и пытаются сделать доступной для понимания наличие четвёртой координаты. Но среди тех игр, с которыми я ознакомился, не нашел для себя такой, которая сочетала бы в себе следующие факторы:

- вид от первого лица

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

- простая и привычная графика, с текстурами и освещением

- отсутствие лишних геймплейных элементов и бóльшая направленность игры на исследование четырёхмерного мира

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

Читать далее
Всего голосов 122: ↑122 и ↓0+122
Комментарии72
Читая про умные дома, зачастую натыкаешься просто на обзоры множества гаджетов. Умные колонки, розетки, холодильники со встроенным компьютером и прочие штучки, слабо связанные друг с другом. На самом деле всё это будет просто нагромождением различных автономных систем с кучей точек отказа. Поэтому мой умный дом начинался задолго до условного похода по магазинам — с кропотливого планирования. Под катом я расскажу, что и как я лично реализовал и какие плюшки это привнесло в мою жизнь.
Добро пожаловать / Вход воспрещён
Всего голосов 81: ↑48 и ↓33+15
Комментарии70

Shodan — темный близнец Google

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

Источник
S in IoT stands for Security
Про Shodan уже не раз писали, в том числе и здесь. Я хочу предложить еще раз пробежаться по возможностям этого замечательного инструмента и принципам его работы. Сразу хочу оговориться, ситуация с этим поисковиком вполне классическая для исследователей в области информационной безопасности — инструмент может использоваться как с благими намерениями, так и сильно за чертой закона.

Disclamer:
Использование самого поисковика не является чем-то наказуемым. Успешный вход в незакрытую панель управления узла нефтяного терминала где-то в Сингапуре и эксперименты с открыванием заслонок — уже наказуемы. Могут прийти и постучаться недружелюбные люди. Поэтому будьте благоразумны и уважайте чужое пространство. Мы против применения Shodan для чего-то кроме исследовательских целей или анализа собственных систем.

Предлагаю еще раз пройтись по возможностям этого поисковика, особенностям его синтаксиса и попробовать найти что-то интересное. И давайте не будет печатать «Войну и Мир» на чужих сетевых принтерах.
Всего голосов 56: ↑56 и ↓0+56
Комментарии31

Компьютерное зрение на WebRTC-сервере с аппаратным ускорением от Intel OWT

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

WebRTC упростил (в большинстве своем) получение и отправку видеопотоков в реальном времени. А значит, можно немного поразвлекаться с ними при помощи машинного обучения. В прошлом месяце я показал, как запустить компьютерное зрение (Computer Vision – CV) локально в браузере. Как я уже упоминал, локально – это, конечно, хорошо, но иногда требуется более высокая производительность, и для этого нам понадобится удаленный сервер. В данном посте я расскажу о том, как запускать серверные модели OpenCV с аппаратным ускорением на чипсетах Intel с помощью Open WebRTC Toolkit (OWT) с открытым исходным кодом.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии1

Анимации c помощью Transitions API

Время на прочтение11 мин
Количество просмотров70K
Привет!

На хабре ещё не была освещена тема Transitions API для анимаций, которые появились в Android начиная с 4.4 (KitKat) и продолжили свое развитие в 5.0 (Lollipop). В своей статье я расскажу о том, как упростить работу с анимациями с их использованием и как применять их на любом устройстве с версией Android 4.0 и выше.


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

Как перестать бояться Proguard и начать жить

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


Здравствуйте, я Android разработчик и я больше не боюсь ProGuard...


Обычно, об этой утилите вспоминают, когда сталкиваются с dalvik dex-limit issue или с требованием улучшить безопасность приложения. К сожалению, правильно настроить Proguard удается далеко не с первого раза. Я часто наблюдал, как многие, сломав проект, выключают Proguard и включают поддержку Mulditex и каждый раз немножечко грустил по этому поводу, ведь Proguard помогает как сократить размер приложения, так и повысить его производительность.


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

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

Переписываем с java на C++ на платформе Android

Время на прочтение4 мин
Количество просмотров22K
Хочу с вами поделиться опытом переписывания с java на C++ на платформе Android и тем, что в результате получилось.

Для своего маленького домашнего проекта был использован алгоритм поиска лиц Виола-Джонса, java-исходники с моделью были взяты отсюда code.google.com/p/jviolajones с небольшой модификацией — были добавлены два класса: Point и Rectangle. Уточню почему не стал использовать OpenCV под Android — для его работы необходимо поставить отдельно приложение-библиотеку, что в моем случае будет весьма неудобно, и опыты показали его падение без предупреждения, разбираться с этим долго не стал, также и с поиском других библиотек, и решил взять простейшую готовую реализацию.

Быстродействие алгоритма показало плачевные результаты, на фотографии размером 400 на 300 на моем стареньком разбитом GT-I9300I — 54 секунды, на avd (виртуальном устройстве) и то дольше — 250 секунд.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии15

Пришел, увидел, обобщил: погружаемся в Java Generics

Время на прочтение17 мин
Количество просмотров310K
Java Generics — это одно из самых значительных изменений за всю историю языка Java. «Дженерики», доступные с Java 5, сделали использование Java Collection Framework проще, удобнее и безопаснее. Ошибки, связанные с некорректным использованием типов, теперь обнаруживаются на этапе компиляции. Да и сам язык Java стал еще безопаснее. Несмотря на кажущуюся простоту обобщенных типов, многие разработчики сталкиваются с трудностями при их использовании. В этом посте я расскажу об особенностях работы с Java Generics, чтобы этих трудностей у вас было поменьше. Пригодится, если вы не гуру в дженериках, и поможет избежать много трудностей при погружении в тему.


Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии46

Пара способов отправить уведомления на смартфон со своего сервера

Время на прочтение9 мин
Количество просмотров87K
В этом туториале я рассмотрю пошагово, как отправлять со своего сервера уведомления на свой (или не свой) смартфон, какие средства для этого понадобятся. Эти способы универсальны и подойдут для любого языка программирования, т.к. напрямую используют API гугла, без использования библиотек. Отправить можно на смартфоны с Android, iOS и в браузеры с поддержкой Push API (на сегодня это Chrome, Firefox и их производные).

В общем всем тем, кто давно хотел отправлять уведомления со своего домашнего сервера на свой смартфон, но не знал с чего начать, посвящается.
Хочу отправлять свои уведомления!
Всего голосов 49: ↑43 и ↓6+37
Комментарии81

Аркадный автомат дома своими руками

Время на прочтение2 мин
Количество просмотров17K
Здравствуйте, хочется немного уйти от политики и коронавируса, решил немного разбавить новости и поделиться своим проектом. Автомат выполнен в виде Bartop и стойкой превращающей его в полноразмерный. Питаю отдельные чувства именно к такому «модульнуму» формату, о преимуществах которого напишу ниже.

2

Читать дальше →
Всего голосов 50: ↑48 и ↓2+46
Комментарии19

Процедурный генератор хрущёвок

Время на прочтение9 мин
Количество просмотров110K
Сидел я как-то дома, читал статью про хрущёвки и восторгался гением архитектора. Потом меня отпустило, и я подумал, что унылость и однообразие хрущёвок очень легко можно описать математически. Прямые углы, равные интервалы, минимум украшений — что может быть проще?

На самом деле, у хрущёвок существует несколько десятков модификаций, но некая основа, сущность хрущёвки всё равно прослеживается.

В общем, недолго думая, я сел и написал генератор хрущёвок на C# под Unity3d. Под катом описание работы алгоритма и размышления на тему uv-карт, сабмешей и шейдеров.
Читать дальше →
Всего голосов 271: ↑264 и ↓7+257
Комментарии90
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Пермский край, Россия
Зарегистрирован
Активность

Специализация

Mobile Application Developer