Мобильный трудоголик – Telegram
Мобильный трудоголик
1.44K subscribers
65 photos
10 videos
290 links
Пишу простым языком об iOS разработке на Swift и мобильной разработке в целом.
Обо мне: https://news.1rj.ru/str/hardworkerIT/3
Чат: @hardworkerChatIT
Канал про разработку и жизнь в ИТ: @itDenisov
Вакансии по мобильной разработке: @mobileDevJobs
Download Telegram
Минцифры и hh.ru запустили платформу для оценки IT-навыков: как это работает и кому пригодится.

📊 Что показывают исследования?
🔸 60% работодателей обращают внимание на указанные в резюме навыки.
🔸 Каждый третий HR реально учитывает подтверждённые компетенции при отборе кандидатов (Остальные, по традиции, полагаются на "ну, выглядит адекватно" и шестое чувство).

⚙️ Как устроена платформа?
🔹 Бесплатно – тесты можно проходить без ограничений.
🔹 Добровольно – только если хотите добавить сертификат в резюме.
🔹 С защитой от накруток – антифрод-система исключает жульничество.
🔹 Анонимность – если результат не понравился, его можно скрыть и пересдать через месяц.

✍️ Что можно проверить?
Сейчас доступно 17 направлений, включая:
🔸 Языки программирования: Java, Python, JavaScript, C++.
🔸 Базы данных: SQL, NoSQL.
🔸 DevOps, тестирование, кибербезопасность.

К концу года обещают расширить до 21 темы.

🤔 Зачем это нужно?
🔹 Новичкам – чтобы подтвердить знания и выделиться среди других джунов.
🔹 Опытным специалистам – для объективной оценки скиллов (и аргумента на переговорах о зарплате).
🔹 Рекрутерам – чтобы быстрее отсеивать неподходящих кандидатов.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
🗿7👀3👍1🤔1
⚠️ Для чего используется final?

Ключевое слово final запрещает дальнейшие изменения:
🔸 для классов: запрещено наследовать.
🔸 для метод: запрещено переопределять.
🔸 для переменных: запрещено изменять значения после инициализации.

Важно:
В Swift final работает только для классов и членов классов. Для констант следует использовать ключевое слово let.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥7🫡4
📱 Отключаем запрос о соответствии экспортным требованиям в TestFlight.

Загружая новую сборку приложения, всегда приходится заходить в App Store Connect для нажатия на «Нет» в окне «Информация о соответствии экспортным требованиям».

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

Для этого необходимо открыть файл Info.plist и добавить следующие строки:
<key>ITSAppUsesNonExemptEncryption</key>
<false/>


⚠️ Что это даёт?
🔹 Больше не нужно вручную отвечать «Нет» в App Store Connect.
🔹 Сборки сразу становятся доступными для тестирования в TestFlight.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👏6👀4🔥2
👨‍💻 Оборот App Store составил $1.3 трлн, но Apple взяла комиссию только с $131 млрд.

🤔 Как так вышло?
90% оборота — продажи физических товаров, услуг и реклама (не облагаются комиссией Apple).

Например: доставка, реклама ($150 млрд), товары (>$1 трлн).

💵 Реальные доходы Apple.
🔹 В 2024 году сервисы (включая iCloud, Music) заработали $96.2 млрд.
🔹 Доля App Store — $22–39 млрд (17–30% от $131 млрд).

🔒 Что скрывает Apple?
Компания включает в оборот товары, не проходящие через IAP (например, Uber, Amazon). Но напоминает, что поддерживает API (250K+), фреймворки (SwiftUI, Core ML) и образовательные программы.

💡 Вывод:
Цифры впечатляют, но контекст важен — большая часть оборота не приносит прибыль Apple.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👀15🤯7🗿3
🔢 Что такое @State в SwiftUI?

@State — это property wrapper (обертка свойства), которая позволяет хранить и отслеживать изменяемые данные внутри View. Когда значение @State меняется, SwiftUI автоматически перерисовывает представление, чтобы отразить обновленные данные.

✍️ Особенности:
🔸 Для простых значений: используется для примитивов (Int, String, Bool) и структур (Struct).
🔸 Локальное хранение: данные живут только внутри этой View и не предназначены для передачи в другие экраны.
🔸 Автоматическое обновление: при изменении значения SwiftUI пересоздает View (но сохраняет состояние).

♣️ Пример:

struct MyView: View {
@State private var value = 0 // Значение, которое может меняться

var body: some View {
Button("Нажато: \(value)") {
value += 1 // Изменение @State перерисует кнопку
}
}
}


🤔 Когда использовать?
🔹 Для внутреннего состояния View (чекбоксы, текст поля, флаги).
🔹 Если данные не нужно передавать в другие View (иначе используйте @Binding или @ObservedObject).

⚠️ Важно:
🔸 Всегда помечайте @State как private.
🔸 Не используйте для сложных объектов (для этого есть @StateObject).

🚀 @State — это основа реактивности в SwiftUI!

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1642
Apple Watch могут мешать похудению?

⚠️ Исследование Университета Миссисипи показало:
Часы переоценивают сожжённые калории на 30% — это может сбивать с толку и провоцировать переедание. Пользователи, видя «успешную» тренировку, часто расслабляются и превышают норму калорий, что мешает прогрессу.

Но есть и хорошие новости:
Пульс и шаги считаются точно (погрешность всего 4–8%).

Проблема именно в программном алгоритме подсчёта калорий — возможно, Apple исправит это в обновлениях.

💡 Вывод:
Доверяйте Apple Watch, но с оглядкой — их данные о калориях лучше проверять дополнительно.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👀14👍6🤯3🔥1
📱 Что делает команда git cherry-pick?

Команда git cherry-pick позволяет перенести отдельный коммит из одной ветки в другую, не сливая ветки целиком. Это полезно, когда нужно взять только конкретные изменения из другой ветки.

⚠️ Как это работает?
🔸 Находит коммит (по хешу) в истории Git.
🔸 Применяет его изменения к текущей ветке, создавая новый коммит (с другим хешем).

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

# Переключимся в ветку, куда нужно перенести коммит
git checkout feature

# Перенесем коммит с хешем a1b2c3
git cherry-pick a1b2c3


💡 Вывод:
git cherry-pick – это «точечный» инструмент для переноса отдельных изменений. Используйте его аккуратно, чтобы не запутать историю коммитов.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🤝51🫡1
💻 Минцифры и российские ОС: что решили?

🤔 Что случилось?
Алексей Мельников, Fplus, предложил обязательно предустанавливать российские ОС (таких как «Ред ОС» или «Аврора») на ноутбуки, продающиеся в России.

⚠️ Как именно?
🔸 При продаже в Ozon, Wildberries или магазинах (DNS, Mvideo и др.) на ноутбуке должна быть установлена одна из российских ОС.
🔸 Windows не убирают — пользователь при включении сам выберет систему, по аналогии как сейчас с российскими приложениями на смартфонах.

📱 Почему это не коснется смартфонов?
Министр Минцифр Максут Шадаев согласился с идеей для ноутбуков / ПК, но отказался включать смартфоны в правило. Так как если требовать повсеместную установку ОС, могут сократиться поставки, в магазинах начнется дефицит и поднимется цена на технику. Это уже знакомая нам всем история.

По словам депутатов, это шанс показать, что отечественные ОС могут быть реальной альтернативой.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👀16🗿6🤯1
🍏 Сегодня вечером ждем WWDC - ежегодную конференцию от Apple.

Что уже известно сейчас?
🔹 Нас ждёт масштабный редизайн мобильной операционной системы iOS, по данным ряда журналистов за основу взяли визуальный стиль visionOS.
🔹 Новая версия macOS получит обновлённое приложение «Команды», синхронизацию авторизаций Wi-Fi, игровой лаунчер, нововведения в «Сообщениях»
🔹 iPadOS наконец смогут работать в полноценном мультиоконном режиме — примерно как в macOS.
🔹 Покажут новую версию операцинки для Apple Watch.

Смотрим трансляции WWDC 2025 в 20:00 по московскому времени.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥147👍2
🍏 Apple представила глобальное обновление дизайна и нумерации ОС.

Компания провела презентацию новых версий своих операционных систем и главной фишкой стал новый дизайн. Название нового дизайна - Liquid Glass.

🎨 Apple радикально изменила визуальный стиль всех операционных систем:
🔸 Полупрозрачные «стеклянные» элементы интерфейса.
🔸 Плавные анимации с эффектом текучести.
🔸 Единая эстетика для iOS, iPadOS, watchOS, macOS и visionOS.

#️⃣ Новая система нумерации версий.
🔹 Все ОС теперь имеют единую версию (например, представленные обновления получили версию 26 для 2025-2026 года).
🔹 Номер соответствует году выпуска, а не порядковому обновлению.

Поддержка устройств.
🍎 iOS: iPhone 11 Pro, iPhone SE (2-го поколения) и новее.
🍎 iPadOS: iPad (8-го поколения), iPad mini (5-го поколения) и новее.
🍎 watchOS: Apple Watch Series 6, Apple Watch SE (2-го поколения) и новее.
🍎 macOS: MacBook Pro 16" (2019), MacBook Air M1 (2020), Mac Pro (2019) и новее.
🍎 visionOS: Apple Vision Pro.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
18🔥4👍1👀1
This media is not supported in your browser
VIEW IN TELEGRAM
🍏 Обновление iOS наглядно.

Только не списывай точь в точь c Android.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
🗿15🤯6🤔2
🔨 Как установить несколько Xcode с разными версиями?

При возникновении необходимости в установке нескольких, разных версий среды разработки Xcode на одной машине можно воспользоваться удобным приложением Xcodes, которое является удобным менеджером версий Xcode.

⚠️ Зачем нужно?
🔸 Тестирование приложений на разных версиях Xcode (включая бета-версии).
🔸 Работа с проектами, которые требуют конкретной версии (например, legacy-код).
🔸 Возможность не обновлять основной Xcode, если новая версия вызывает баги.

✍️ Особенности данной утилиты:
🔹 Поддерживает процессоры Apple Silicon и Intel.
🔹 Показывает релизные заметки для каждой версии.
🔹 Упрощает установку и переключение между версиями Xcode.
🔹 Автоматически скачивает нужные версии (включая старые и beta).
🔹 Не требует ручного управления через xcode-select.

🔗 Официальный репозиторий приложения

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥51
🤔 Правда ли что 10% ИТ специалистов ничего не делают на работе? И почему это зачастую не их вина?

Цифра в 10% — условна, но феномен "простоя" в IT существует. Почему так происходит?

1️⃣ Руководитель ≠ Менеджер.
Когда руководитель погружен исключительно в тех. задачи и игнорирует управленческие функции, команда остаётся без руля. Нет планирования, приоритизации, контроля загрузки. Результат: часть команды перегружена, часть — в простое, потому что задачи распределяются хаотично или не распределяются вовсе.

2️⃣ Хаос вместо ролей.
Отсутствие четкого распределение задач и путаница в ролях. Один сотрудник тонет в задачах, пока другой ищет, чем бы заняться. Это не вина кого-либо из сотрудников, а провал менеджмента в организации рабочих процессов.

3️⃣ Избыточный найм.
Компания нанимает специалистов "про запас" на перспективный (но еще не запустившийся) проект. Люди месяцами сидят "на скамейке запасных" без реальных задач, получая зарплату.

4️⃣ Не достанься ты никому.
"Хватай, чтобы не ушел к другим!". Практика переманивания или удержания талантов на всякий случай, даже без конкретной задачи. Встречается реже, но все еще бывает. Результат тот же — талант простаивает.

5️⃣ Проектный вакуум: "Задачи нет, потому что проекта нет".
Вы готовы работать, запросы отправлены, но заказчик тянет время, не дает обратную связь или проект приостановлен. Команда в подвешенном состоянии без четких задач. или же проект в вечном "обсуждаем": Команда формально назначена на проект, но он месяцами висит на стадии обсуждения, ТЗ, согласований. Люди числятся в проекте, но реально делать нечего.

Что делать?
🏢 Компаниям: Укреплять Project / Resource Management, реалистично планировать найм, развивать менеджерские навыки у руководителей, оптимизировать процессы продаж и старта проектов.
👨‍💻 Сотрудникам на "бенче": Использовать время для обучения, внутренних инициатив, практики на пет-проектах. Но помните: длительный простой без развития — тревожный сигнал о системных проблемах в компании.

💡 Вывод:
В большинстве случаев "ничегонеделание" — симптом системных сбоев.

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

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16👀6🤯2
🔢 Что такое @StateObject в SwiftUI? Чем @StateObject отличается от @State?

✍️ Особенности @StateObject:
🔸 Используется для классов (ObservableObject).
🔸 При обновлении View объект сохраняется.
🔸 Часто используется для ViewModel, сетевых сервисов и т.д.
🔸 Объект инициализируется один раз.

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

@StateObject var viewModel = MyViewModel()


✍️ Особенности @State:
🔸 Для простых значений: используется для примитивов (Int, String, Bool) и структур (Struct).
🔸 Локальное хранение: данные живут только внутри этой View и не предназначены для передачи в другие экраны.
🔸 Может инициализироваться и перезаписываться множество раз.

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

@State private var value = 0


💡 Главное отличие:
@StateObject - для сложных зависимостей, @State - для локальных данных View.

⚠️ Важно:
🔸 Для дочерних View используйте @ObservedObject с @StateObject родителя.
🔸 @StateObject не теряет данные при обновлении интерфейса.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1951
🔨 Бета версию Xcode 26 можно поставить на релизную версию macOS.

При этом релизную версию Xcode удалять не обязательно.

Apple обещает, что в новой версии проекты будут загружаться быстрее до 40%.
Кроме того, компания заявила, что Xcode теперь будет занимать на 24% меньше места на диске. - это не может не радовать.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍51
👨‍💻 Честно о минусах работы в IT.

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

Скажу сразу, это не жалобы на мир IT, это предостережение для новичков от старичка.

1️⃣ Знания устаревают невероятно быстро – то, что работало 2 года назад, сегодня уже не катит. Постоянная учеба – это не развитие, а обязательное условие просто остаться на плаву. Выгорание от вечной "догонялки" – реальная угроза.

2️⃣ Код-костыль, написанный когда-то "на время" код, копится годами. Он замедляет разработку, делает каждое изменение рискованным и дорогим, и живет в проекте как постоянная угроза, которая вот-вот взорвется.

3️⃣ Современные инструменты скрывают сложность (абстракция). Когда что-то ломается глубоко внутри, найти причину – это детектив с расследованием "магии", которую ты не создавал и плохо понимаешь.

4️⃣ Тебе постоянно приходится объяснять сложные технические вещи (почему что-то сломалось, сколько времени займет) людям, которые в этом не разбираются. То, что им кажется простым (например, "сделай баннер"), на деле может требовать огромной работы с твоей стороны. "Просто баннер" для них может означать недели работы и переделку архитектуры для тебя.

5️⃣ Code Review. Процесс улучшения кода часто превращается в арену для демонстрации превосходства, придирок к мелочам и споров о вкусах , а не по существу проблемы.

6️⃣ Адские сроки, ночные марафоны перед релизом - классика жанра. Умение работать в стрессе важно, но цена – хроническая усталость и риск профессионального выгорания. Баланс work-life – постоянный челлендж.

7️⃣ Сидячий Образ Жизни: 8+ часов за монитором – убийственно для спины, шеи, глаз и общего здоровья. Если не заниматься спортом и эргономикой – последствия гарантированы. Как бонус, у вас чаще всего не бывает возможности заниматься спортом, потому что после работы идет еще работа.

8️⃣ Удалёнка. Удобно, но влечет за собой размытие границ между работой и личной жизнью, отсутствие живого общения, зависимость от качества интернета и самодисциплины. Иногда хочется просто "выйти с работы", а возможности нет.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👀19👍7🫡1
🍏 🏋️ Мое приложение для рассылки постов в социальных сетях - Social Poster.

В далеком 2018 году я решил разработать приложение Social Poster (SP) для автоматизации публикации объявлений по продаже б/у смартфонов в ВК группах (барахолках) и чатах объявлений в Telegram, что вручную занимало много времени.

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

Изначально разработка велась на Java под Android, но в 2021 году, после того как в приложении зарегистрировалось более трех тысяч пользователей, я решил переписать его на кроссплатформенном фреймворке Flutter под iOS и Android и добавить ряд новых функций. Серверную часть для приложения также разрабатывал самостоятельно на PHP.

📱 Приложение Social Poster одно из первых моих приложений, которое я разработал на Flutter.

📊 На данный момент приложение имеет более 17 тысяч скачиваний в магазинах приложений.

📱 📱 Приложение доступно в магазинах приложений

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍208🔥1
🔢 📱 Swift и Java: первые шаги к совместимости.

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

🤔 Что это значит?
🔸 Двусторонняя совместимость: вызов Java-кода из Swift и наоборот.
🔸 Постепенное расширение: Swift медленно, но верно выходит за границы экосистемы Apple.
🔸 Конкуренция с Kotlin: Swift начинает занимать нишу мультиплатформенных решений (хотя полноценный KMM-аналог пока не обещают).

Ограничения:
🔸 Пока только ранний прототип — не для продакшена.
🔸 Нет поддержки всех фич Java/Swift.
🔸 Требует ручной настройки.

⚠️ Кому это нужно?
🔸 Разработчикам под Android, которые хотят использовать Swift.
🔸 Кроссплатформенным проектам — потенциально меньше дублирования кода.
🔸 Энтузиастам, тестирующим границы Swift.

➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤔7🔥3👀2
📱 Apple обновила маску для иконок в iOS 26.

На изображении видно отличие от маски прошлых версий iOS.
Please open Telegram to view this post
VIEW IN TELEGRAM
👀20👍6🤔2
🔢 Swift: masksToBounds VS clipsToBounds в UIKit.

Если кратко: clipsToBounds — используется для вью, masksToBounds — для слоя.

clipsToBounds:
🔸 Используется для UIView.
🔸 Контролирует обрезку дочерних вью (subviews).
🔸 Если значении true — всё, что выходит за границы родителя, будет скрыто.

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

let myView = UIView()
myView.clipsToBounds = true // обрезаем subviews


masksToBounds:
🔸 Используется для CALayer.
🔸 Контролирует обрезку контента слоя (изображения, тени, закруглении).
🔸 При значении true — обрезает всё, включая тени и выходящие за границы части изображения.

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

let myLayer = CALayer()
myLayer.masksToBounds = true // обрезаем изображение/тень
myLayer.cornerRadius = 10 // закругляем углы, будет работать если masksToBounds является true


➡️ Подписаться на канал
Мобильный трудоголик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍185🫡2
🔨 ChatGPT доступен в Xcode.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥7👀3