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

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

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

История одного модального окна или переходим с UIKit на SwiftUI. Часть 2.1. Неожиданный баг Combine

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

В этой статье изначально планировала написать продолжение первой части статьи. А именно показать обещанные ProgressView и SkeletonView. Но тут на моём пути возникло неожиданное препятствие.

Обо всём по порядку.

Мы же понимаем, что просто так оставить View со всем функционалом внутри нельзя. Обычно я накидываю быстрый функционал и UI в одном классе, а затем уже разделяю. Использую MVVM архитектуру. И модальное окно не стало исключением. Проверив, что всё работает во View, я создала ViewModel, сделала её ObservableObject

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

Как написать чат-бота в Telegram без навыков программирования

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

Мы напишем вот такого бота

В наше время любой человек без навыков программирования может самостоятельно написать простого чат-бота. Например, чтобы предоставлять услуги через Telegram, организовать работу сообщества и т. д. Скажем, для отметки посещаемости в учебном классе, для общения в домовом чате, для скачивания фильмов и музыки. А техническому специалисту написать такого бота вообще тривиальная задача. Зачем нужны чат-боты, как их использовать бизнесу и частным лицам, как написать бота самостоятельно, если у вас есть навыки программирования или их нет, поговорим в этой статье.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+12
Комментарии5

Как встроить распознавание звуков в ваше iOS приложение на Swift с использованием SoundAnalysis

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

В мире, где ваш телефон умеет угадывать настроение по плейлисту, почему бы не научить его распознавать звуки вокруг? С помощью фреймворка SoundAnalysis это проще, чем кажется. Мы расскажем, как легко и с минимальными потерями для душевного здоровья интегрировать распознавание звуков в ваше iOS-приложение.

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

Внедряем DevSecOps в процесс разработки. Часть 5. Этап Deploy-time Checks, обзор инструментов

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

Привет! На связи Олег Казаков из Spectr. 

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

Сегодня я расскажу о заключительном этапе DevSecOps — Deploy-time Checks. 

Узнать больше о DevSecOps
Всего голосов 2: ↑2 и ↓0+4
Комментарии2

Telegram Боты на Aiogram 3.x: Простой бот на вебхуках с локальным запуском и деплоем

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

Друзья, приветствую!

Если вы следите за моими статьями, то знаете, что на Хабре у меня опубликовано более 10 объемных публикаций на тему разработки телеграмм ботов через замечательный Python-фреймворк Aiogram 3.

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

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

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

В общем, будет интересно и позновательно!

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

Битва с монстром. Региональный застройщик победил федерала и увеличил продажи в 4 раза с помощью контекстной рекламы

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

В регион с населением около 500 тыс. чел. пришел федеральный застройщик. Местным игрокам ловить нечего? Вот и нет, можно побороться за клиентов с помощью контекстной рекламы. Делимся опытом нестандартного использования инструментов Я. Директ в продажах недвижимости. В ход идут все средства ― инструменты из e-commerce, микроконверсии, точные офферы и доработки сайта. 

Эта стратегия помогла региональному застройщику отвоевать долю рынка у девелопера-гиганта, с которым невозможно тягаться по бюджетам. Рассказываем в кейсе, как привлекли самую конверсионную аудиторию, увеличили медийный охват в 12 раз и продажи ― в 4 раза.

Читать далее
Всего голосов 24: ↑19 и ↓5+16
Комментарии20

Режимы наложения/смешивания в SwiftUI

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

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

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

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

Шесть способов позаботиться о здоровье мозга, когда вам ещё нет 40

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

Деменция не является неизбежным следствием старения. Считается, что около 40 % случаев деменции можно предотвратить (или хотя бы отсрочить), изменив некоторые привычки образа жизни.

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

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

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

Пишем свой Swift макрос без лида, ИТ-курсов и кредитов

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

Привет, Хабр! Меня зовут Сергей, я iOS-разработчик. В повседневной работе я использую множество проверенных инструментов, а в свободное время мне нравится исследовать новые возможности и расширять свои горизонты за пределами используемых в продакшене технологий.

Сегодня я хотел бы рассказать вам о макросах в Swift 5.9, как их можно применять для избавление от бойлерплейта в коде, как их создавать, какие сложности есть с ними и куда всё это движется. Так как я работаю в команде дизайн-системы, мы рассмотрим макросы на примере добавления метода copy для всех моделей UI-компонентов.

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

Принципы SOLID на примере iOS-разработки

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

Привет, меня зовут Антон, я iOS-разработчик в компании Surf. Все программисты хотят писать красивый, масштабируемый и сопровождаемый код, и мобильщики – не исключение. Как в этом помогут принципы SOLID, и зачем они нужны?

Расскажем и покажем на примерах (куда без этого). Кейсы в статье относятся к iOS-разработке, но они будут полезны для всех разработчиков, независимо от стека.

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

Введение в тестирование на Swift Testing

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

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

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

Telegram Боты на Aiogram 3.x: Отправка и обработка медиа сообщений

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

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

Сегодня мы вновь погрузимся в мир Telegram ботов на Aiogram 3.x и рассмотрим отправку и обработку медиа сообщений.

Если вы ещё не ознакомились с моей предыдущей статьей, где я подробно раскрывал основы работы с Message хендлером, настоятельно рекомендую это сделать. В той статье я рассмотрел такие важные аспекты, как:

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

Telegram Боты на Aiogram 3.x: Первые Шаги

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

Привет, друзья!

За свою практику программирования я успел написать множество малых, средних и крупных проектов, преимущественно в формате Telegram-ботов. Моя история началась с популярной на то время версии aiogram 2.24 (тех, кто в теме, поймут), а сейчас я полностью перешел на версию 3.x, о чем нисколько не жалею.

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

Сегодня мы научимся:

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

iOS-разработчики в 2024 году: какие нужны скилы и как проходит процесс найма

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

Команда Яндекс Практикума провела исследование и готова рассказать, как обстоят дела в найме начинающих iOS-разработчиков: какие навыки требуются джуниорам для работы, о чём их спрашивают на собеседованиях и сколько откликов им нужно отправить, чтобы получить приглашение на интервью.

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

Нейропиксели для небогатых

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

В наше время только ленивый не пишет статей про ИИ, нейросети, ChatGPT, и вот это всё. Но вот незадача, я-то пишу про мало кому интересные старые компьютеры из далёкого прошлого, где никакими нейросетями отродясь не пахло. Как же с таким багажом влиться в модно-молодёжную струю и хайпануть немножечко на горячем тренде?

Не волнуйтесь, решение есть. Сегодня речь пойдёт про следующую ядрёную смесь: пиксельная графика и нейросети применительно к разработке инди-игр. Примитивные технологии древности, новейшие достижения прогресса и бедные свободные творцы. High tech, low life — киберпанк ещё никогда не был так близок!

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

Планирование и организация рабочего и личного времени

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

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

За моими плечами 6 лет в enterprise разработке и и еще много лет другой работы, которую я совмещал с фрилансом по разработке, а через месяц мне будет 32 года. Это не только короткая справка обо мне, но и важный контекст для моих размышлений. Дело в том, что не только разные подходы к организации времени подходят разным людям, но одному человеку в разные этапы его жизни также будут подходить разные подходы относительно организации его времени. Кто-то моложе и имеет больше сил, кто-то старше и может иметь меньше сил, а бывает и наоборот. Но цель организации времени для разных людей в разные моменты жизни одна. И эта цель - не успеть все или как можно больше, как мне казалось совсем недавно, а определить подходящий тебе темп, чтобы ты чувствовал себя хорошо, чтобы ты был на пике своей формы постоянно, чтобы ты жил для себя, а не для работы или своих дел.

Читать далее
Всего голосов 18: ↑12 и ↓6+8
Комментарии15

Как понять, что пора выпускать новое приложение вместо старого? Разбираем со стороны бизнеса

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

Раньше я был вовлечён в создание приложений со стороны банка, а теперь занимаюсь ими со стороны компании-разработчика. Делюсь: вот что думает бизнес, когда решается на новое приложение.

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

Написание тестов для асинхронного кода с помощью XCTest

Время на прочтение6 мин
Количество просмотров745


Если вы когда-нибудь думали о проведении юнит-тестирования в Xcode, вы наверняка обращали внимание на XCTest. Это довольно простой фреймворк на Objective-C и Swift. Однако тестирование асинхронного кода всегда было немного сложным из-за таких конструкций, как делегаты и коллбэки (функции обратного вызова).

В этой статье мы начнём с рассмотрения классического способа тестирования асинхронного кода, чтобы убедиться, что мы все на одной волне относительно плюсов и минусов классического асинхронного теста. После этого мы рассмотрим, как async / await кардинально меняет способ написания юнит-тестов для асинхронного кода, и как он может повлиять на то, что тесты оказываются успешными и неудачными.
Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии1

AVPlayer seek(to:… vs seek(…tolerance

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

Привет всем! Это моя внеочередная статья, о том что нагорело. У меня за последний год накопилось много интересного (и не очень :) ) материала. Но эту статью хочу написать вне очереди. Не так давно я столкнулся с интересным поведением метода seek(to: CMTime). Об этом и хочу написать.

Но начнем по порядку.

AVPlayer известен нам с iOS 4. Он содержит AVPlayerItem, AVAsset.

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

Почему вы себя обесцениваете: какую выгоду это дает и что делать с ощущением своей несостоятельности?

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

«Я ничего собой не представляю. Все вокруг компетентнее, умнее, опытнее меня. Я не заслуживаю своего места под солнцем», — так думают люди, которые себя обесценивают. Эти переживания не только мучительны, но вдобавок мешают построить карьеру, отношения, самореализоваться и хорошо себя чувствовать. Из-за чего возникает желание себя обесценить и что с ним делать?

Читать далее
Всего голосов 25: ↑18 и ↓7+13
Комментарии18
1
23 ...

Информация

В рейтинге
474-й
Зарегистрирован
Активность