Pull to refresh
-4
2.1
Send message

Обновления в Swift Concurrency: что нас ждёт в Swift 6

Reading time20 min
Views6.2K

Привет, Хабр! Меня зовут Никита, я занимаюсь iOS-разработкой в Яндекс Диске. Как вы знаете, прошлой осенью зарелизился Swift 6, а вместе c ним появились и строгие проверки для защиты от датарейсов, связанные со Swift Concurrency.

В этой статье я постараюсь разобраться с основными изменениями в каждом пропозале и поделюсь своими заметками, тем, что мне показалось самым важным или интересным. В конце статьи бонус — Playground с тестами для каждого пропозала, чтобы можно было поиграть с кодом, детальнее разобраться с изменениями и понять, как они влияют на код, написанный на Swift 5.

Читать далее

Как самостоятельно выявить бессознательные установки, которые мешают вам больше зарабатывать?

Level of difficultyEasy
Reading time4 min
Views24K

Если вам важно зарабатывать больше, но не получается, возможно, вам просто подсунули негодные правила, как допустимо зарабатывать, а как нет. Но как обнаружить эти правила, если вы их даже не осознаете? Есть 5 способов это сделать.

Читать далее

Как перестать отвлекаться по мелочам, избавиться от прокрастинации и стать продуктивнее как минимум в 2 раза?

Level of difficultyEasy
Reading time4 min
Views90K

Если ты не можешь долго сконцентрироваться на одной задаче и часто отвлекаешься на что-то другое - то эта статья специально для тебя!

Читать далее

90% разработчиков не понимают принцип инверсии зависимостей из SOLID. DIP — это не про абстракции

Reading time4 min
Views64K

Зачастую, когда речь заходит про принцип инверсии зависимостей, можно услышать, что инверсия зависимостей (далее DIP) — это что-то там про зависимость от абстракций, и приводятся примеры, где в качестве «плохого» случая, используются конкретные классы, а в исправленном случае, используются абстрактные классы или интерфейсы. Но такая трактовка принципа в корне неверна.

Почему такая трактовка неверна и в чем же суть принципа — об этом и пойдет речь далее.

Читать далее

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

Level of difficultyEasy
Reading time11 min
Views8.2K

Хабр, привет. На связи Оксана Рубанова, разработчик на платформе Optimacros.

Бывают моменты, когда от тебя ничего не зависит, случается что-то плохое просто потому, что оно иногда случается. А бывают моменты, когда понимаешь, что ты – часть / причина этого плохого, но не понимаешь, как до этого докатился, с чего все началось и главное, как теперь это исправить, учитывая масштаб бедствия (и не важно, личная это сфера или рабочая).

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

В статье поговорим про:

1. Теории накопительного эффекта и разрушенных окон и их влияния на нас

2. Проблему внутреннего тестирование на проектах и идею, как его можно усилить

3. Рабочий эксперимент с командой, длинною в месяц

4. Результаты участников по итогам челленджа

5. Мои выводы со стороны организатора

Читать далее

Как заставить крутиться таймер –  инструкция для iOS-разработчиков

Level of difficultyEasy
Reading time10 min
Views1.6K

Привет, Хабр! На связи Андрей –  iOS разработчик из ecom.tech. Моя команда помогает различным маркетплейсам делать крутые вещи для их приложений. 

В этой статье я поделюсь своим опытом работы с обратным отсчётом времени (на примере Мегамаркета) и расскажу, как поставить таймер самостоятельно. 

Кажется, что таймер – простая для реализации вещь. Но если добавить сюда сжатые сроки, код (рефакторинг которого часто откладывается по разным причинам), пласты бизнес-логики и UI-элементы – получим нетривиальную задачу. 

Читать далее

Асинхронность в iOS: как ускорить корпоративные приложения и не сломать мозг разработчика

Level of difficultyEasy
Reading time4 min
Views2K

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

Если ваше приложение не отвечает мгновенно на действия пользователя, то в голове у него сразу зажигается красный флаг: «Это медленно. Это неудобно. Может, удалить?». В корпоративных приложениях, где важна каждая секунда, это недопустимо.

В этой статье мы поговорим о том, как организовать асинхронную работу в iOS‑приложениях. Разберём подходы от старой доброй GCD до современной магии Swift Concurrency и покажем, как они помогают ускорить приложение без лишнего хаоса в коде.

Читать далее

SOLID. Проблема новичка

Level of difficultyEasy
Reading time5 min
Views22K

Здравствуйте, друзья! Меня зовут Константин, я python backend developer из компании «Окенит». Сегодня я хочу рассказать свое видение проблемы новичка при ознакомлении с принципами SOLID, описанными в книге «Стерильная Архитектура» Робина Мартерта.

За свой десятилетний опыт я часто был свидетелем ситуации, когда молодые разработчики, желая сделать свой проект как можно более открытым для расширения и редактирования, превращали его в груду нечитаемого и неподдерживаемого кода при попытке использовать у себя все рекомендации Матушки Роба. Отсюда вопрос: «Почему, при следовании советам более опытного разработчика, код стал только хуже?».

Ответ на этот вопрос пришел ко мне очень быстро. Из‑за описания и без того абстрактных вещей чересчур абстрактными словами и примерами, Робин Мартерта вместо упорядочивания знаний, наводит хаос в умы читателей. Во избежание этой ситуации я решил написать данную статью, где коротко расскажу о наборе принципов SOLID, для чего они нужны и, главное, как применять эти принципы в жизни. Начнем по порядку, с буквы «S». И так, что же она значит?

Читать далее

«Модная болезнь»: как распознать и предотвратить профессиональное выгорание

Reading time16 min
Views8.1K

Меня зовут Анна Бабич, я психолог, ACT-терапевт, руководитель Школы самооценки и автор телеграм-канала «Жить навстречу себе». В этой статье поговорим о способах распознать профессиональное выгорание — проблему, о которой, кажется, все знают, но попадают в ловушку снова и снова. Я расскажу, как выгорание ощущается внутри и как проявляется во внешней жизни, как его самостоятельно продиагностировать; разберу причины выгорания — какие звоночки вы упорно пропускаете; помогу определить пути, как выбраться из выгорания, если вы в него угодили, и какой должна быть профилактика.

Читать далее

Английский для DevОps

Level of difficultyEasy
Reading time1 min
Views2.8K

100 фраз на английском для DevOps’ов

Последние 3 года я обучаю английскому исключительно ребят из IT.

За эти годы у меня скопилось куча материалов, а что самое главное лексики, которую я собирала с каждого мита, письма, переписки. Слова которые используют разработчики, аналитики,продакты, дизайнеры, QA. Используют не в «гугл переводчике», а в реальной ежедневной работе.

Я собрала большой ноушн файл. 100 фраз из лексики DevOps’ов. От простейших фраз, которые вы услышите в диалоге, до спец лексики. 

Собрала и поняла: на месте того, кто учит, я бы точно сохранила и забила! 😃 А потому ловите не только таблицу, но и все 100 фраз в Quizlet (ссылочка и описание в ноушн-доке) — так их точно проще выучить.

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

Читать далее

Простая настройка CI/CD для Фронтенда и Бэкенда в Github без сторонних инструментов бесплатно в 2024 году

Level of difficultyEasy
Reading time17 min
Views14K

Всем привет! Недавно решил попробовать, что из себя представляет Flutter Web, подумал, может попробовать сделать бота для Telegram, и заодно настроить простейший CI/CD для отдельного фронтенд- и бэкенд-проектов. Однако в интернете я не нашёл простой и исчерпывающей инструкции или процесса.

Поэтому задача этой статьи — решить эту проблему! Сделать автоматическую сборку, тестирование и деплой на сервер, и всё это — без необходимости городить SSH-ключи, Github-токены и подключать сторонние решения. Всё на минималках, без лишней бюрократии.

Читать далее

Apple убивает Swift

Reading time10 min
Views17K

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

Очень далеко.

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

Читать далее

Что такое System design?

Level of difficultyEasy
Reading time4 min
Views12K

Привет Хабр! Меня зовут Татьяна Ошуркова, я разработчик, аналитик и автор телеграм-канала IT Talks. Сегодня большой популярностью пользуется термин «System design», что дословно в переводе означает «Системный дизайн». Направление, которое обозначает данный термин тесно пересекается с архитектурой и проектированием. Но в чем же его отличие и есть ли оно вообще? Что включает в себя направление системного дизайна?

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

Читать далее

Об анатомии крэшей на iOS «по-взрослому»

Level of difficultyHard
Reading time23 min
Views8.5K

Привет, Хабр. Меня зовут Давид Чупреев. Я разработчик мобильных приложений в команде Core iOS ОК. 

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

Читать далее

Уже не джун, но знаний нужно всё больше. Как самостоятельно учиться сложным вещам

Reading time6 min
Views12K

Самостоятельное обучение для разработчика — процесс, который не кончается никогда. Это касается не только джунов, но и намного более опытных мидлов и сеньоров. Однако возникает вопрос: все ли мы умеем учиться правильно? Как преодолеть свою инертность и научиться понимать сложные вещи? 

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

Читать далее

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

Level of difficultyMedium
Reading time3 min
Views1.2K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time15 min
Views83K

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

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

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

Level of difficultyEasy
Reading time3 min
Views603

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

Читать далее

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

Reading time8 min
Views4.1K

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

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

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

Узнать больше о DevSecOps

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

Level of difficultyEasy
Reading time12 min
Views19K

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

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

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

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

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

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

Читать далее

Information

Rating
1,287-th
Registered
Activity