Мобильный трудоголик
1.32K subscribers
61 photos
9 videos
264 links
👨‍💻 Пишу простым языком об iOS разработке на Swift и мобильной разработке в целом.
🔹 Вошел в IT задолго до того как это стало мейнстримом.
---
‍Обо мне: https://t.me/hardworkerIT/3
Чат: @hardworkerChatIT
Канал про разработку и жизнь в ИТ: @itDenisov
Download Telegram
👋 Всем Привет! Меня зовут Артем, я разработчик с опытом более 12 лет. Из них в мобильной разработке 8 лет.

Работал над проектами таких компаний, как: МТС, Mintrocket, ВТБ, Первый Бит, Билайн, Мои документы, X5 и др.

Пишу на Swift (UIKit, SwiftUI), Flutter (Dart). Имею опыт Backend разработки (PHP, Yii2, Laravel) и дизайна мобильных приложений.


🔗 Примеры моих работ


Некоторые мои разработки:

🛫 Social Poster (SP) - автопостинг по социальным сетям

💚 Счетчик дней: вредные привычки

🔢 SwiftUI-Adapter: как поддерживать новые фичи SwiftUI и не терять совместимость

📱 Бесплатная доска объявлений - Telegram Bot

TaskFocus - планировщик задач и фокусирование


В данном канале мы поговорим о:

🔵Разработке: наблюдения и личный опыт.
🔵Технологиях: на что стоит обратить внимание.
🔵Нейросетях: как применять их в реальных проектах.
🔵Карьере в IT: как расти по карьерной лестнице, проблемы и нюансы.
🔵Дисциплине и саморазвитии: пишу код в спокойном темпе даже по выходным, мне есть, что рассказать.
...
и немного юмора..


Канал про разработку и жизнь в ИТ:
🐈 Кот Денисова

Вакансии и резюме по мобильной разработке:
🍏🏋️ Mobile Dev Jobs

По всем вопросам обращаться:
👨‍💻 Artem


🙏 Не забудь нажать кнопку «подписаться».
Please open Telegram to view this post
VIEW IN TELEGRAM
31👍13👏1🫡1
Как презентовать свой код не техническому заказчику.

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

1️⃣ Свяжите код с конкретной бизнес-задачей.
Не углубляйтесь в архитектуру или алгоритмы. Объясните, как ваш код устраняет проблему клиента. Например:
«Раньше пользователи жаловались на долгую загрузку карточек товаров. Мы переработали обработку изображений — теперь страницы открываются моментально, а конверсия в покупки выросла на 20%».

2️⃣ Используйте визуализацию и аналогии.
Найдите способ показать результат: демонстрация работы, видеозаписи и скриншоты интерфейса, упрощенные схемы или сравнение «до/после» помогут сделать абстрактное понятным.

3️⃣ Замените технический термины на простые формулировки.
Слова вроде «деплоить», «фреймворк», «хард-код» или «дебажить» оставьте для коллег. Клиенту скажите: “Исправили ошибки предыдущей версии, и теперь при регистрации не выдает ошибку”.

4️⃣ Акцентируйте выгоды, а не процесс.
Ваш заказчик хочет знать не КАК вы писали код, а ЗАЧЕМ. Для этого продемонстрируйте, как вы помогли добиться бизнес-целей. Начните с проблемы, которую устранили, коротко объясните, что вы сделали. Но главное — покажите результат: «Теперь приложение не зависает в при наплыве пользователей, а значит, клиенты не уйдут к конкурентам из-за провисаний».

5️⃣ Проверяйте понимание.
После объяснения спросите:
«Хотите уточнить, как это повлияет на ваши ежедневные задачи?»
Это покажет, что вы заботитесь о ясности, а не просто отчитались о работе.

⚠️ Главное: ваш код — не цель, а инструмент. Заказчик должен ясно видеть, что ваш код — это не абстракция, а инструмент, который делает его продукт стабильнее, быстрее и прибыльнее.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥1👏1
Сервис «Ответы Mail» (аудитория 38,6 млн пользователей) пережил серьёзный ребрендинг. Вместо привычных обсуждений под вопросом — теперь древовидные комментарии, как в соцсетях, а лента адаптируется под интересы: можно подписаться на любимые темы или довериться умным алгоритмам. Карма вместо «экспертных звёзд» — теперь статус растёт от активности, а не формальных заслуг.

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

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
🗿2👍1👏1👀1
Что творится с работой в IT в 2025?

Пару лет назад компании выстраивались в очередь за кадрами, а рекрутеры искали сотрудников даже в сервисах знакомств. Сейчас страсти поутихли. Высокие ставки ЦБ заставили компании пересмотреть аппетиты: бизнес начал считать каждую копейку, релоканты вернулись, новичков без опыта после курсов прибавилось. И как же изменения повлияли на рынок?

😐 Рост зп замедлился — новичкам теперь не светит прибавка, а в некоторых местах вилки и вовсе урезали.
😐 Джунам теперь нужен опыт — если раньше хватало теоретических знаний, сейчас требуют, чтобы ты уже поработал на реальных проектах.
😐 Плюшки порезали — бесплатные обеды, спортзалы и психологи теперь только в крупных компаниях, но и за эти привилегии еще нужно побороться.
😐 Глобальные сокращения — ИИ составляет конкуренцию действующим спецам, больше не нужна команда из 10 человек, достаточно 2-3, которые направляют новые технологии.

Но кадров всё равно не хватает❗️

На новые проекты собирают ресурсы из переполненных команд и не набирают новых сотрудников. Только теперь нужны не просто «айтишники», а профи в узких областях. Например, в защите данных нехватка — 20%, а в разработке под отечественные ПО для госструктур— 30%. Компании перестали брать «наугад» — нужен человек, который быстро подхватит все задачи.

А что с зарплатами и мировыми трендами?
🔸 Мидлы в минусе — их зарплаты ниже, чем пару лет назад.
🔸 Сеньоры выжимают максимум из бонусов — фиксированные ставки почти не растут.
🔸 Джуны в тисках конкуренции — на одну вакансию приходится 200+ откликов (раньше было 20-30).
В мире тоже не сладко: Amazon, Microsoft и другие гиганты уволили десятки тысяч сотрудников. В России же проблема другая — катастрофически не хватает тех, кто разбирается в нашем софте (российские ОС, базы данных).

Итог
Сейчас в IT пробиваются только те, кто точно знает, чего хочет работодатель. Новичкам придется пахать за дешево, зато узкие спецы всё еще на вес золота. Советую приглядеться к направлениям: AI/ML Engineer - инженер машинного обучения, AI разработчик - разработчик искусственного интеллекта, data scientist. Рынок стал жестким, но не безнадежным — главное, уметь то, чего не умеют другие. Перемены в IT-рынке не новое дело, адаптируемся и продолжаем развивать сферу. Возможностей еще полно.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯3👏1🤔1👀1
Опытного IT-инженера с 20-летним стажем и зарплатой $150 тыс. в год уволили, заменив нейросетями. Шон К. отправил более 800 резюме, но не получил ни одного оффера, несмотря на его обширный опыт. Ему даже посчатливилось побывать на собеседованиях, которые частично проводил ИИ.

Сейчас Шон вынуждено живёт в трейлере и работает курьером, чтобы выжить.

Шон не осуждает технологии, но критикует подход компаний: вместо усиления команд с помощью ИИ используют для сокращения сотрудников. Эксперты предупреждают: это начало масштабного кризиса занятости из-за внедрения нейросетей в IT и других сферах.


Не ждём, но готовимся.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👀3🤯2🫡11
📱 Как быстро удалить все ветки Git на локальной машине кроме dev и main.

Если в вашем проекте накопилось много ненужных локальных веток, их можно удалить одной командой, оставив только ключевые (например, main и dev).

1️⃣ Откройте терминал и перейдите в папку проекта:

cd /путь/к/проекту


2️⃣ Убедитесь, что в команде указаны защищённые ветки — те, которые нельзя удалять (например, main, dev или другие).

3️⃣ Выполните команду для удаления всех веток, кроме указанных:

git branch | grep -v "main" | grep -v "dev" | xargs git branch -D


⚠️ Как это работает?
git branch — выводит список всех локальных веток.

grep -v "main" и grep -v "dev" — исключают из списка защищённые ветки.

xargs git branch -D — удаляет оставшиеся ветки.


⚠️ Важно:
🔸 Команда безвозвратно удаляет ветки, поэтому убедитесь, что ничего важного не потеряете.
🔸 Если есть незамерженные изменения, Git не даст удалить ветку — предварительно закоммитьте или сохраните изменения.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61👏1🫡1
💻 Почему джуны 2025 года учатся в 2 раза быстрее, чем мы?

Если вы, как я, начинали карьеру в IT до 2020-х, наверняка замечали: как быстро новое поколение джунов осваивает Swift, Kotlin, Java, Python, C# и т.д.. В чём секрет?


1️⃣ Информация
Джуны 2025 не тратят время на поиск знаний — они тратят его на практику. Раньше, чтобы изучить iOS-разработку, нужно было покупать книги на английском, искать наставника в офлайне и разгадывать ошибки по форумам. Сейчас действительно много бесплатной информации: YouTube-туториалы разбирают SwiftUI за 15 минут , интерактивные платформы вроде LeetCode позволяют решать задачи, а бесплатные курсы уже с полноценной структурой, по которой можно научиться базе.

2️⃣ ChatGPT
Сегодняшние новички генерируют шаблоны через ChatGPT, исправляют ошибки с GitHub Copilot. Это как учить математику с калькулятором: меньше рутины — больше фокуса на логике. Но есть риск: некоторые джуны не понимают, как работает их код. Зато они умеют задавать правильные вопросы ИИ.

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

4️⃣ Микрообучение + геймификация
Раньше обучение строилось на месяцах теории и сложных проектах, которые убивали мотивацию и развивали дисциплину. Сейчас джуны учатся через 5-минутные уроки и челленджи - и получают быстрый результат. Прогресс виден сразу — мозг регулярно вырабатывает дофамин и стимулирует работать дальше.

5️⃣ Вайбкодинг.
Джунам не нужно биться над чистотой кода, они описывают ИИ, что хотят от нее получить, и она пишет код за них. Если возникают баги — фиксит их за разработчиков. Они могут не иметь навыка кодинга, но сможешь создать веб-приложения, автоматизировать процессы, делать CRM и даже запускать MVP стартапов.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
🗿5🤔4👀2
🔢 Протокол Equatable: как сравнивать пользовательские типы в Swift.

В Swift протокол Equatable позволяет сравнивать объекты между собой с помощью оператора ==. Многие стандартные типы (например, String, Int, Float) уже соответствуют этому протоколу. Но если вы создаёте собственный тип, его нужно явно подписать под Equatable, чтобы включить сравнение.

Как добавить поддержку Equatable для своего типа?
Достаточно указать протокол после имени типа:

struct MyStruct: Equatable {
let title: String
let count: Int
}


Swift может автоматически сгенерировать реализацию ==, если все свойства типа тоже поддерживают Equatable (как в примере выше).

Но если логика сравнения сложнее, можно реализовать метод вручную:

struct MyStruct: Equatable {
let title: String
let count: Int

static func == (lhs: MyStruct, rhs: MyStruct) -> Bool {
return lhs.title == rhs.title && lhs.count == rhs.count
}
}


Пример использования:

let firstStruct = MyStruct(title: "first", count: 1)
let secondStruct = MyStruct(title: "second", count: 2)

if firstStruct == secondStruct {
print("Равно")
} else {
print("Не равно")
}


После выполнения данного кода мы увидим следующий результат:
Не равно


➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👏3🔥1
Media is too big
VIEW IN TELEGRAM
📱 К нам подъехала коллаборция года!

Павел Дуров объявил о заключении эксклюзивного годового партнерства с Илоном Маском и его компанией xAI. Уже этим летом ожидаем в Telegram появится доступ к чат-боту Grok

⚠️ Что это значит?

💻 фактчекинг постов: Grok сможет проверять достоверность информации прямо в ленте или чатах, помогая пользователям отделять факты от вымысла.
✍️ анализ и сокращение текста. Grok сделает выжимку или, наоборот, детально распишет любой текст по вашему запросу.
🛡 умный модератор: Назначьте Grok модератором ваших чатов или каналов! Он сможет автоматически чистить спам и "ненавистных ботов", поддерживая порядок.
🔍ИИ в поиске: задавайте сложные вопросы самому "умному" ИИ напрямую через поисковую строку Telegram – мгновенные ответы без переключения между окнами.

Телеграм получит аж $300 млн в качестве инвестиций. Как тебе такое, Илон Маск?

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3👏1
Тем временем TON взлетел на 20%📈💪
👍4🔥3👏1
🔢 Протокол Comparable: как сравнивать объекты в Swift (<, >, <=, >=).

В Swift протокол Comparable позволяет сравнивать объекты с помощью операторов <, >, <= и >=. Это полезно для сортировки, поиска минимального / максимального значения и других операций.

Многие стандартные типы (Int, Float, String и др.) уже поддерживают Comparable. Но если вы работаете со своими типами, их можно сделать сравниваемыми вручную.

Как добавить поддержку Comparable для своего типа?

struct MyStruct: Comparable {
let title: String
let count: Int
}


Но в отличие от Equatable, Swift не всегда может автоматически сгенерировать реализацию. Если свойства неоднозначны для сравнения (например, несколько полей), нужно реализовать методы сравнения вручную:

struct MyStruct: Equatable {
let title: String
let count: Int

static func < (lhs: MyStruct, rhs: MyStruct) -> Bool {
return lhs.count < rhs.count
}

static func > (lhs: MyStruct, rhs: MyStruct) -> Bool {
return lhs.count > rhs.count
}

static func <= (lhs: MyStruct, rhs: MyStruct) -> Bool {
return lhs.count <= rhs.count
}

static func >= (lhs: MyStruct, rhs: MyStruct) -> Bool {
return lhs.count >= rhs.count
}
}


Пример использования:

let firstStruct = MyStruct(title: "first", count: 1)
let secondStruct = MyStruct(title: "second", count: 2)

if firstStruct >= secondStruct {
print("firstStruct больше или равен")
} else {
print("firstStruct меньше")
}


После выполнения данного кода мы увидим следующий результат:
firstStruct меньше


➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥41👏1