Pull to refresh
3
0
Дмитрий @MaNaXname

Пользователь

Send message

SwiftUI уроки (часть 1)

Reading time9 min
Views7.6K

В чём особенность этих уроков?

Основаны на книге "Mastering SwiftUI" от Appcoda: Мы берем за основу материал этой книги, но не слепо следуем ей.

Интерпретация и перевод: Мы адаптируем материал книги для русскоговорящей аудитории, делая его более понятным и удобным для восприятия.

Для начинающих и опытных: Эти уроки подойдут как тем, кто только начинает изучать SwiftUI, так и тем, кто хочет узнать что-то новое об этом фреймворке.

Чего вы можете ожидать?

Пошаговое изучение SwiftUI: Мы будем проходить все основные темы, от простых до сложных.

Практические примеры: Вы сможете закрепить полученные знания, выполняя практические задания.

Присоединяйтесь к этой серии!

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments2

Азы поисковой оптимизации для веб-разработчика: прокачиваем SEO с помощью кода и здравого смысла

Reading time15 min
Views13K

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

В этой статье обсудим технические детали верстки оптимизированных под поисковые движки веб-страниц, а для закрепления знаний создадим по всем правилам и задеплоим на сервер небольшой сайт. Это не ультимативный гайд, а скорее шпаргалка о том, как сделать красиво, функционально и так, чтобы целевая страница попадала в топ выдачи. Материал будет полезен веб-разработчикам, которые только начинают заниматься SEO. Опытных специалистов приглашаем в комментарии — поделитесь своими лайфхаками и кейсами поисковой оптимизации.
Читать дальше →
Total votes 30: ↑27 and ↓3+30
Comments7

Эргономика рабочего места инди-разработчика, или как я избавился от боли в спине

Level of difficultyEasy
Reading time5 min
Views16K

Бывает, просыпаешься рано утром, готовишь вкусный кофе, чтобы настроиться на рабочий день. Гладишь своего кота, садишься за стол… и после нескольких часов работы начинаешь чувствовать боль в спине. В результате снижается продуктивность и концентрация на задачах. В статье расскажу, какие методы помогли мне решить эту проблему. Подробности под катом.
Читать дальше →
Total votes 48: ↑47 and ↓1+56
Comments58

Основа геймплея игры на C++ для Unreal Engine

Reading time13 min
Views59K
image

Основа геймплея для Unreal Engine 4 предоставляет разработчику мощный набор классов для создания игры. Ваш проект может быть шутером, симулятором фермы, глубокой RPG — это неважно, основа очень универсальна, делает за вас часть тяжёлой работы и задаёт некоторые стандарты. Она довольно сильно интегрирована в движок, поэтому рекомендую вам придерживаться этих классов, а не пытаться изобретать собственную основу игры, как это часто бывает в движках наподобие Unity3D. Понимание этой основы очень важно для успешной и эффективной работы над проектами.

Для кого эта статья?


Для всех, кого интересует создание игр в UE4, а конкретно на C++, и кто хочет больше узнать о основе геймплея Unreal. В этом посте рассматриваются базовые классы, которые вы будете использовать в основе геймплея, и объясняется их применение, процесс создания их экземпляров движком и способ получения доступа к этим классам из других частей кода игры. Бо́льшая часть информации справедлива также и для блюпринтов.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments3

Проект юного DevOps Глава 1: Введение и подготовка стенда

Level of difficultyMedium
Reading time16 min
Views20K

В данной серии статей описан процесс создания первого pet-проекта для начинающего инженера в DevOps:

Глава 1: Введение и подготовка стенда

Глава 2: Настройка центра сертификации и репозитория

Глава 3: Настройка OpenVPN

Глава 4: Настройка мониторинга

Читать далее
Total votes 11: ↑7 and ↓4+3
Comments18

Начало работы с Axum — самым популярным веб-фреймворком Rust

Level of difficultyMedium
Reading time11 min
Views14K


Когда дело доходит до выбора серверного веб-фреймворка в экосистеме Rust, можно запутаться из-за большого количества вариантов. В прошлом, лидером по популярности был Rocket, но сейчас за первенство сражаются Axum и actix-web, и Axum все больше набирает обороты. В этой статье мы немного погрузимся в Axum — веб-фреймворк для создания REST API на Rust, разрабатываемый командой Tokio. Он прост в использовании и хорошо совместим с Tower — надежной библиотекой для создания модульных компонентов сетевых приложений.


В этой статье мы подробно рассмотрим, как использовать Axum для создания веб-сервиса. Кроме того, мы рассмотрим изменения, которые произошли в версии 0.7.

Читать дальше →
Total votes 25: ↑22 and ↓3+25
Comments9

Как выдавать бесплатные SSL сертификаты с помощью certbot, Nginx и Docker

Level of difficultyMedium
Reading time5 min
Views32K

Всем привет! Одна из моих рутинных задач - это подъем новых проектов и микросервисов в облаках. Для этого практически всегда нужны домены и поддомены с наличием SSL сертификата. У меня выработался подход, с помощью которого я автоматизировал процесс выдачи сертификатов с помощью certbot. О чём и хочу рассказать.

Читать далее
Total votes 18: ↑15 and ↓3+12
Comments31

От винта! Рычаги и винты в Unity

Level of difficultyEasy
Reading time9 min
Views3.6K

Всем привет! Меня зовут Григорий Дядиченко, и я разрабатываю разные проекты на заказ. Сегодня хотелось бы поговорить про рычаги и винты, и их реализацию в Unity. Сейчас как раз на хайпе Apple Vision Pro, а подобные штуки бывают весьма полезны в проектах с виртуальной и дополненной реальностью. Если вы интересуетесь Unity разработкой и темой MR — добро пожаловать под кат! Может данная реализация пригодится в вашем проекте.

Читать далее
Total votes 7: ↑6 and ↓1+7
Comments0

Разрушители легенд: Как на самом деле магазины проверяют приложения на уязвимости

Reading time22 min
Views7.9K

Всем привет! Снова с вами Юрий Шабалин. Уже много лет я занимаюсь безопасностью мобильных приложений и в своих исследованиях доношу важность этого направления для бизнеса.

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

Давайте посмотрим!

Читать далее
Total votes 17: ↑16 and ↓1+17
Comments15

Правильное понимание Single Responsibility Principle (SRP) в Dart/Flutter

Level of difficultyMedium
Reading time4 min
Views4.8K

SRP оказался самым сложным принципом из всех SOLID принципов в понимании и как в следствии неправильное применение в кодировании. Множество разработчиков уровня junior / middle, которых я собеседовал на позицию Flutter разработчика давали ответ, что SRP - это принцип единой отвественности. Это конечно правильный ответ согласно книги Роберта Мартина "Чистая архитектура". Но мне хотелось услышать как понимает этот принцип наш кандидат в разработчики. Ведь от этого зависит расширяемость и простота читаемости нашего проекта, ведь мы расширяем команду и хотелось бы чтоб мы писали код в единой концепции. В большинстве случаев разработчики понимают этот принцип, как класс, который он создал должен содержать только один метод. И всё что мы написали в этом методе, несёт единственную ответственность, ведь он решает одну задачу. И на этом кандидат заканчивает свою мысль. Ну что же, неплохо, но и не совсем правильно. Да, такой принцип тоже есть, но он применяется на низшем уровне системы. Действительно для удобства чтения не надо всё сваливать в один метод. Практичнее будет если мы каждому методу разрешим делать что то одно и название этого метода будет понятно другому разработчику, что делает этот метод. SRP же применяется на среднем уровне программы. В общем, я делаю вывод что кандидат не читал книгу "Чистая архитектура", либо это делал очень невнимательно...

SRP это про другое! Сам Роберт Мартин столкнулся с такой же проблемой, неправильное понимание того, что он имел ввиду под SRP и попробовал её решить, написав другое определение и разъяснение к нему. Давайте почитаем!

Читать далее
Total votes 9: ↑4 and ↓5+3
Comments13

Погружение в мир адаптивной верстки с Flutter

Level of difficultyMedium
Reading time12 min
Views9.7K

Я Магин Максим, Flutter-разработчик агентства мобильной разработки Instadev. Поговорим о таком понятии как “адаптивная верстка”. Разберем, для чего она нужна, чем отличается от других видов верстки и какие подводные камни могут встретиться при использовании.

Каждый разработчик так или иначе сталкивался с вопросом - как сделать качественный UI, который будет хорошо себя показывать на различных устройствах. Даже среди смартфонов существует большое разнообразие размеров – одни шире, другие – длиннее. Понятное дело, что для каждого устройства уникальный код не напишешь. А что делать, если среди устройств необходимо учесть еще и планшеты, где действуют уже другие правила расположения и масштабирования элементов? Есть ли универсальное решение? Но обо всем по порядку.

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

Существует 4 основных подхода к верстке: фиксированный, резиновый, адаптивный и отзывчивый. Каждый из этих подходов имеет свои плюсы и минусы. Разберем их чуть подробнее.

Фиксированный подход

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

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments4

Стратегические паттерны DDD

Level of difficultyMedium
Reading time8 min
Views13K

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

Читать далее
Total votes 15: ↑12 and ↓3+9
Comments1

Применение DDD. От моделей до EDM — поиск новых форм и архитектурные излишества

Reading time14 min
Views6.6K

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



DDD не на коленке, а за дорого ;)

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

Большая шпаргалка по Rust. 2/2

Level of difficultyMedium
Reading time39 min
Views8K



Hello world!


Представляю вашему вниманию вторую часть большой шпаргалки по Rust.


Первая часть.


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


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


Также настоятельно рекомендуется хотя бы по диагонали прочитать замечательный Учебник по Rust (на русском языке).

Читать дальше →
Total votes 21: ↑20 and ↓1+26
Comments2

Nginx: шпаргалка

Level of difficultyEasy
Reading time2 min
Views24K

Шпаргалка по основным секциям Nginx, которые следует держать под рукой. Ниже приведены самые частые функции: включение SSL, переадресация, раздача статики и т.д.

Читать далее
Total votes 31: ↑15 and ↓16+1
Comments18

Cache API — кэшируем данные на стороне клиента

Level of difficultyMedium
Reading time6 min
Views8.4K

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

Разберемся, как мы можем его использовать, сравним с другими методами организации кэша на стороне клиента, а также реализуем новостную ленту с применением Cache API.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments13

Сто паттернов для разработки корпоративных программ. Часть первая

Level of difficultyMedium
Reading time27 min
Views19K

В этой статье рассмотрены все паттерны проектирования из "Банды четырёх" с примерами на языке программирования C#. Для самых терпеливых имеются дополнительные паттерны.

Это первая статья из серии "Сто паттернов для разработки корпоративных программ". Следующие статьи будут посвящены паттернам из книг Мартина Фаулера и Роберта Нистрема.

Читать далее
Total votes 15: ↑9 and ↓6+6
Comments20

Как переназначить кнопку dictation на macOS (без стороннего софта)

Level of difficultyEasy
Reading time3 min
Views1.8K

Год назад я купил Mac с функциональными клавишами и столкнулся с кнопкой dictation, которая вызывает стандартную программу для диктовки текста. Перед покупкой я предположил что это кнопка с значком микрофона должна включать и выключать микрофон, каково же было мое разочарование, когда вместо функционала включения и выключения микрофона я получил запуск dictation. Меня не особо устраивал сторонний софт (например: Kabaneri elements), хотелось что-то нативное и небольшое

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments6

Забудь про свои деньги, инди разработчик

Reading time3 min
Views17K

Я где-то в параллельной вселенной являюсь инди разработчиком игр. Так вот, есть у меня игра Necromancer Returns, которая есть в Steam и GooglePlay.

И по какой-то причине захожу в консоль гугл плей и вижу письмо о том, что моя игра не отображается в сторе уже более полугода, т.к. нет в приложении Privacy Policy. А еще и API у меня там очень старое и игра на современных телефонах не устанавливается.

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

В итоге я продлил домен своего лэндинга https://beastsbattle.com. Добавил туда страницу Privacy Policy. Отправил на проверку. Надеюсь, что скоро обновится игра и будет опять доступна.

Тоже самое проделал и с Beasts Battle.

Мне стало интересно, а вообще, игры там что-то зарабатывают?
Оказывается почти за эти 2 года Necromancer Returns накопила на счетах в Steam - $900 и GooglePlay - $200.

Я перестал за этим следить, т.к. игры приносят не большие деньги. За месяц в IT компании я в разы зарабатываю больше. Что данные деньги - просто как увлечение, баловство, интерес.

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

И тут мне стало интересно, а вообще эти деньги можно вывести или нет?

Читать далее
Total votes 23: ↑11 and ↓12+4
Comments19

Как я наконец осуществил мечту заняться разработкой игр

Level of difficultyEasy
Reading time7 min
Views25K

Начало 2024 года. У меня на руках демка игры, над которой я работал последние полгода. Ещё год назад я занимался разработкой мобильных приложений и сидел на хорошей зарплате, а сейчас я безработный инди-разработчик! Но как так вышло?

Читать далее
Total votes 45: ↑43 and ↓2+48
Comments29

Information

Rating
6,068-th
Location
Biała, Tarnow, Польша
Date of birth
Registered
Activity