Pull to refresh
0
0
Анастасия @AKhorevich

Разработчик Android

Send message

MVP в Unity или как упростить жизнь

Reading time3 min
Views17K

Для начала разберемся, что такое MVP (Model View Presenter)


Зачем же он нужен? Самый простой ответ — для постройки удобной и расширяемой архитектуры.


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

Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments14

MVC в Unity со Scriptable Objects. Часть 1

Reading time5 min
Views13K
MVC (Model-View-Controller) — это схема, предполагающая разделение данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента, чтобы каждый из них можно было независимо модифицировать. Разработчик Cem Ugur Karacam поделился своим опытом программирования в Unity и коротко рассказал о Scriptable Objects. Мы представляем перевод его статьи, опубликованной на сайте dev.to.

Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments4

Как классифицировать мусор с помощью Raspberry Pi и машинного обучения Arm NN

Reading time11 min
Views4.5K


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

Производительность таких решений сильно зависит от пропускной способности сети и задержки. Кроме того, отправка данных внешнему сервису может привести к проблемам с конфиденциальностью. В этой статье демонстрируется возможность переноса ИИ из облачной среды на периферию. Чтобы продемонстрировать ML с использованием периферийных ресурсов, мы будем использовать API-интерфейсы Arm NN для классификации изображений мусора с веб-камеры, подключённой к компьютеру Raspberry Pi, который покажет результаты классификации.

Приятного чтения!
Total votes 8: ↑8 and ↓0+8
Comments0

Как воскресить раннюю электронную музыку с помощью Arduino?

Reading time7 min
Views5.8K

Этот проект вдохновлён ранней электронной музыкой и звуковыми эффектами, созданными радиофонической мастерской BBC в 1960-х годах. До того как синтезаторы стали обычным делом, чтобы услышать невиданные звуки, использовали сочетание промышленного испытательного оборудования и фокусов с магнитной лентой. Тестовые генераторы и «найденные звуки» давали сырой аудиоматериал, который зацикливался, реверсировался, ускорялся и замедлялся с помощью нескольких магнитофонов, чтобы получить жуткие, неестественные звуки, сопровождающие радио- и телепрограммы того времени.

В своём проекте с помощью микроконтроллера Arduino я смоделировал три винтажных тестовых генератора; весь проект можно собрать меньше чем за 15 фунтов стерлингов [около полутора тысяч рублей]. Исполнению не хватает эстетического очарования и аналогового звука реальных вещей, но я сохранил тактильное управление руками, которого нет в программных плагинах, и по самой его сути все потроха проекта можно хакнуть, отремонтировать и обновить.

Приятного чтения!
Total votes 11: ↑11 and ↓0+11
Comments1

Как за 60$ создать систему распознавания лиц с помощью Python и Nvidia Jetson Nano 2GB

Reading time17 min
Views18K

Новый набор инструментов для разработчиков Nvidia Jetson Nano 2GB представляет собой одноплатный компьютер с графическим ускорителем стоимостью 59$, работающий под управлением программного обеспечения с искусственным интеллектом.

Производительность, которую вы можете получить от одноплатного компьютера за 59$ в 2020 году, просто потрясающая. Давайте попробуем использовать этот продукт, чтобы собрать простой вариант домофона, который будет отслеживать всех людей, подходящих ко входной двери вашего дома. С помощью алгоритма распознавания лиц система мгновенно узнает, приближался ли когда-нибудь в прошлом к вашей двери этот человек, даже если в прошлый визит он был одет по-другому.

Приятного чтения!
Total votes 23: ↑21 and ↓2+19
Comments30

Как мы «вырастили» и победили читеров в своем онлайн-шутере

Reading time8 min
Views45K

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

Несколько лет назад мы написали тестовый прототип шутера, который быстро стал популярным — защиты никакой не было, и некоторые побежали этим пользоваться. Мы затыкали пробоины скотчем, читеры находили новые дыры, а мы учились у них — с помощью социальной инженерии и повышения технических навыков. И в итоге пересмотрели отношение к защите будущих мобильных проектов (об этом — в конце статьи).

Читать далее
Total votes 93: ↑88 and ↓5+83
Comments111

35 ресурсов, которые будут интересны создателям стартапов

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


Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments2

Создание игры «35ММ». Постапокалипсис в России

Reading time15 min
Views53K


Всем доброго времени суток, меня зовут Сергей Носков. Сегодня я бы хотел рассказать о создании моего первого полноценного инди-проекта под названием 35ММ, вышедшего в Steam в 2016 году. История конечно давняя, и с тех пор уже было опубликовано несколько статей и интервью на тему проекта, однако, подробного описания процесса разработки не было. Также, практически не были затронуты технические моменты реализации. Об этом, собственно, мы и поговорим.

Начнем с небольшой предыстории. 35ММ — это адвенчура с видом от первого лица в сеттинге постапокалипсиса на территории России. В народе — симулятор ходьбы. Игра повествует нам историю путешествия двух странников по опустевшим землям, оставленным цивилизацией. Основная часть населения вымерла после страшной болезни, и теперь природа отыгрывает у человечества свои очки. К сожалению, уже не помню точно, как зародилась идея данного проекта, но точно помню, что на тот момент я был ярым фанатом темы сталкера, игр «Метро» и вообще подобного атмосферного антуража. У меня всегда вызывали трепет и восторг пейзажи заброшенных городов, промышленных зон и деревень. Уж не знаю, что это за болезнь такая и как такую любовь объяснить, но нас таких много. В общем-то, подобной страсти по данной теме было достаточно для того, чтобы начать создание своего небольшого игрового мира.
Читать дальше →
Total votes 166: ↑164 and ↓2+162
Comments58

Профилируем Unity проект с Android Studio

Reading time5 min
Views20K
Всем день добрый! Это статья о том, как профайлить Unity игры на Android с Android Studio. Я расскажу о том, как настроить Android Studio и получить максимальное кол-во данных. Вопросы анализа и выводов на основе полученного результата находятся вне рамок данной статьи.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments0

Android LiveData на Kotlin с использованием Retrofit и coroutines

Reading time6 min
Views21K
Статья рассказывает об использовании Android Components ViewModel, LifeCycle и LiveData. Эти компоненты позволяют не заботиться о жизненном цикле Activity.

Так же рассмотрен пример применения современного Coroutines в связке с репозитарием на Retrofit

fun main(args: Array<String>): Unit = runBlocking {
    // Wait (suspend) for Result
    val result: Result<User> = api.getUser("username").awaitResult()
    // Check result type
    when (result) {
        //Successful HTTP result
        is Result.Ok -> saveToDb(result.value)
        // Any HTTP error
        is Result.Error -> log("HTTP error with code ${result.error.code()}", result.error)
        // Exception while request invocation
        is Result.Exception -> log("Something broken", e)
    }
}
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments3

Шейдеры растворения и исследования мира

Reading time9 min
Views25K

Часть 1: шейдер растворения


Шейдер растворения возвращает красивый эффект, к тому же его легко создать и понять; сегодня мы сделаем его в Unity Shader Graph, а также напишем на HLSL.

Вот пример того, что мы будем создавать:



Как это работает


Чтобы создать шейдер растворения (dissolve shader), нам придётся работать со значением AlphaClipThreshold в шейдере «Shader Graph» или воспользоваться функцией HLSL под названием clip.

По сути, мы прикажем шейдеру не рендерить пиксель на основании текстуры и переданного значения. Нам нужно знать следующее: белые части растворяются быстрее.
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments3

Джентльменский набор программиста UE4, ч. 1

Reading time3 min
Views48K


Давно хотелось составить список навыков и инструментов, которыми, по моему мнению, должны входить в «джентльменский набор» любого программиста под Unreal Engine 4. Буквально на днях, в чатике по UE4 я встретил такое:

> blueprints, animation dev, tech art, ai, multiplayer, editor extensions. первое, что пришло в голову

> Что приходит на ум: blueprints, animations, AI, material editor, widgets, slate, editor extensions, ue4 plugins, physics, lighting, rendering, c++
+ Сколько времени работал(а) с движком и страна, всё :)

В таких формулировках всё сказанное — лишь набор слов. Поэтому я собрался и составил вопросник для тех, кто хочет быть UE4-программистом, и который позволяет оценить свой уровень тем, кто уже считает себя продвинутым программером под UE4.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments5

Маркетинговая стратегия веб-студии/агентства

Reading time8 min
Views73K
Привет, Хабр! Мы продолжаем наш цикл материалов про бизнес веб-студий в рамках Осеннего Ускорения с NetCat и сегодня подробно говорим о маркетинговой стратегии веб-студии, а также публикуем шаблон карты маркетинговых активностей.

На нашем рынке творится полный кошмар с позиционированием и маркетингом студий/агентств. Каждая первая компания гордо объявляет себя «молодым динамично развивающимся digital-агентством полного цикла» — и в результате все игроки сливаются в единую серую безликую массу. Обсудим, как можно этого избежать, и как сформировать грамотную маркетинговую стратегию развития своей компании. Я не претендую на то, что такая структура документа является единственно верной, но на моем опыте такой формат всегда себя оправдывал.

Введение


Стратегия – живой документ, который вы пишете для себя. Его цель – определить вектор развития, задать ключевые цели и описать способы их достижения с точки зрения маркетингового аспекта.
Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments17

[ Психология дизайна ] — The Psychology of Design

Reading time13 min
Views27K


Существует ряд дебатов о том, какие дополнительные навыки должны изучать дизайнеры. Должны ли дизайнеры кодироваться уметь писать код и понимать бизнес? Эти навыки невероятно ценны, но, возможно, не являются существенными. Тем не менее, я бы сказал, что каждый дизайнер должен изучить основы психологии. Как люди, у нас есть основной «план» того, как мы воспринимаем и обрабатываем окружающий мир, а изучение психологии помогает нам определить этот план. Как дизайнеры, мы можем использовать психологию для создания более интуитивных, ориентированных на человека продуктов и опыта. Вместо того, чтобы принуждать пользователей подстраиваться под дизайн продукта или опыта, мы можем использовать некоторые ключевые принципы из психологии в качестве руководства для проектирования дизайна по модели поведения людей.

Но проблема в том, с чего начать? Какие принципы из психологии полезны? Каковы примеры этих принципов в работе? В этой статье мы рассмотрим основы и обсудим этические последствия использования психологии в дизайне.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments4

Что такое психическое здоровье: взгляд со стороны психологии / психотерапии

Reading time28 min
Views52K
Привет, читатель!

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

ПРЕДСТАВЬТЕ, ЧТО ТУТ — КАРТИНКА ДЛЯ ПРИВЛЕЧЕНИЯ ВНИМАНИЯ


tl:dr: В статье рассматривается вопрос психического здоровья на примере модели, предложенной Нэнси Мак-Вильямс (“16 элементов психического здоровья”). По каждому элементу я постараюсь дать примеры — как выглядит “сломанная” в этом аспекте психика, что было сделано, чтобы её “починить” (в данном конкретном случае), какие ошибки были допущены, что ещё можно было бы сделать и т.д.

К сожалению, стремление к упрощению материала с моей стороны значительно снизило точность и объективность формулировок, предупреждаю сразу.
Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments130

Психотерапия. Марс в доме Сатурна и интрацеребральные инъекции гомеопатического псилоцибина

Reading time10 min
Views18K
image

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

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

Но сейчас не буду. У многих психологов может подгореть. Но я начну:
Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments114

Жесткие и гибкие навыки в IT: все и более, и менее серьезно, чем хотелось бы думать

Reading time9 min
Views16K
В последнее время мне часто приходится наблюдать очень нервную реакцию IT-специалистов при малейшем намеке на то, что их «базовые навыки» обесцениваются, и в первую очередь — в пользу других умений, которые они не оттачивали всю жизнь. Наиболее ярко это проявляется в дискуссиях, где так называемые жесткие навыки противопоставляются мягким. Такое отношение само по себе показывает, насколько важна данная проблема. Но в глубине его кроется допущение, которое, как мне кажется, несоразмерно раздувает тревогу: как бы абсурдно это ни звучало, возможно, такая резкая реакция вызвана тем, что мы относимся к мягким навыкам недостаточно серьезно. Сегодня я хотел бы поделиться своим взглядом на ситуацию и предложить ряд шагов, которые могли бы всем нам помочь.


Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments25

Android Architecture Components. Часть 4. ViewModel

Reading time11 min
Views80K
image

Компонент ViewModel — предназначен для хранения и управления данными, связанными с представлением, а заодно, избавить нас от проблемы, связанной с пересозданием активити во время таких операций, как переворот экрана и т.д. Не стоит его воспринимать, как замену onSaveInstanceState, поскольку, после того как система уничтожит нашу активити, к примеру, когда мы перейдем в другое приложение, ViewModel будет также уничтожен и не сохранит свое состояние. В целом же, компонент ViewModel можно охарактеризовать как синглтон с колекцией экземпляров классов ViewModel, который гарантирует, что не будет уничтожен пока есть активный экземпляр нашей активити и освободит ресурсы после ухода с нее (все немного сложнее, но выглядит как-то так). Стоит также отметить, что мы можем привязать любое количество ViewModel к нашей Activity(Fragment).

Компонент состоит из таких классов: ViewModel, AndroidViewModel, ViewModelProvider, ViewModelProviders, ViewModelStore, ViewModelStores. Разработчик будет работать только с  ViewModel, AndroidViewModel и для получения истанца с ViewModelProviders, но для лучшего понимания компонента, мы поверхностно рассмотрим все классы.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments3

Карты из шестиугольников в Unity: части 1-3

Reading time54 min
Views75K
image

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

Части 1-3: сетка, цвета и высоты ячеек

Части 4-7: неровности, реки и дороги

Части 8-11: вода, объекты рельефа и крепостные стены

Части 12-15: сохранение и загрузка, текстуры, расстояния

Части 16-19: поиск пути, отряды игрока, анимации

Части 20-23: туман войны, исследование карты, процедурная генерация

Части 24-27: круговорот воды, эрозия, биомы, цилиндрическая карта

Часть 1: создание сетки из шестиугольников


Оглавление


  • Преобразуем квадраты в шестиугольники.
  • Триангулируем сетку из шестиугольников.
  • Работаем с кубическими координатами.
  • Взаимодействуем с ячейками сетки.
  • Создаём внутриигровой редактор.

Этот туториал является началом серии о картах из шестиугольников. Сетки из шестиугольников используются во многих играх, особенно в стратегиях, в том числе в Age of Wonders 3, Civilization 5 и Endless Legend. Мы начнём с основ, будем постепенно добавлять новые возможности и в результате создадим сложный рельеф на основе шестиугольников.
Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments14

ViewModel и LiveData: паттерны и антипаттерны

Reading time7 min
Views44K
Привет, Хабр! Представляю вашему вниманию перевод статьи ViewModels and LiveData: Patterns + AntiPatterns автора Jose Alcérreca.

View и ViewModel


Распределение ответственностей


Типичное взаимодействие объектов приложения, построенное с помощью Архитектурных Компонентов:

image

В идеале ViewModel не должна ничего знать про Android. Это улучшает тестируемость и модульность, снижает кол-во утечек памяти. Основное правило — в Вашей ViewModel не должно быть импортов android.* (за исключением вроде android.arch.*). Это относится и к Presenter.
ViewModel (и Presenter) не должны знать о классах фреймворка Android

Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments5

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity