iOS Dev
Открыть в Telegram
👨💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift
Больше7 970
Подписчики
+224 часа
+247 дней
+5630 дней
Архив постов
7 970
О сложном пути и о Гунсунь Луну из царства Чжао
Пост не только о разработке, но и о том, что мне кажется важным
Если бы за последние 25 лет авиационная промышленность развивалась столь же стремительно, как вычислительная техника, то Boeing 767 можно было бы приобрести сегодня за 500 долларов и облететь на нем земной шар за 20 мин, израсходовав при этом 19 литров горючего. Цитата из журнала «В мире науки» (1983, 8 выпуск).
⏳ Когда мы видим сложную задачу или что-то, кажущееся на первый взгляд недостижимым, можно посчитать, что для достижения этой цели потребуется бесконечное количество времени или иных ресурсов. И очень часто эта возможность так и остаётся возможностью.
Это касается хардорных фич, объёмного рефакторинга, попаданию в IT в целом, или участию в каких-то контестах, в частности.
Метафорически это можно сравнить с игрой в умники и умницы, подсознательно хочется выбрать зелёную дорожку с двумя ошибками вместо красной, которая этого не прощает.
Иногда хочется быстрее прийти к финишу в одном соревновании. На мой взгляд, гораздо важнее выработать технику, которая будет с вами навсегда. Неважно, играете вы в квизы или занимаетесь спортом, стабильность важнее кратковременного успеха, а нахождение в топ-10 на протяжении сезона лучше одной случайной победы.
⚽️ В футболе такая же параллель: вчерашняя победа Ливерпуля со счётом 7-0 невероятна, но капитан Манчестер Юнайтед не должен пихать судью на 86 минуте матча. В целом, лучше проиграть один раз 7-0, чем 7 раз по 1-0.
Несмотря на то, что стремление к лучшему естественно, как известно - это враг хорошего (спасибо, Вольтер).
Гунсунь Луну сказал: «Если от палки длиной в один чи ежедневно отнимать половину, это не завершится и через 10000 поколений».
Важно знать меру. И 1 000 задач на литкоде это замечательно, но станете ли вы счастливее от этого?
@iOS Dev — так проснитесь же, мистер Фримен
7 970
О сложном пути и о Гунсунь Луну из царства Чжао
Пост не только о разработке, но и о том, что мне кажется важным
Если бы за последние 25 лет авиационная промышленность развивалась столь же стремительно, как вычислительная техника, то Boeing 767 можно было бы приобрести сегодня за 500 долларов и облететь на нем земной шар за 20 мин, израсходовав при этом 19 литров горючего. Цитата из журнала «В мире науки» (1983, 8 выпуск).
⏳ Когда мы видим сложную задачу или что-то, кажущееся на первый взгляд недостижимым, можно посчитать, что для достижения этой цели потребуется бесконечное количество времени или иных ресурсов. И очень часто эта возможность так и остаётся возможностью.
Это касается хардорных фич, объёмного рефакторинга, попаданию в IT в целом, или участию в каких-то контестах, в частности.
Метафорически это можно сравнить с игрой в умники и умницы, подсознательно хочется выбрать зелёную дорожку с двумя ошибками вместо красной, которая этого не прощает.
Иногда хочется быстрее прийти к финишу в одном соревновании. На мой взгляд, гораздо важнее выработать технику, которая будет с вами навсегда. Неважно, играете вы в квизы или занимаетесь спортом, стабильность важнее кратковременного успеха, а нахождение в топ-10 на протяжении сезона лучше одной случайной победы.
⚽️ В футболе такая же параллель: вчерашняя победа Ливерпуля со счётом 7-0 невероятна, но капитан Манчестер Юнайтед не должен пихать судью на 86 минуте матча. В целом, лучше проиграть один раз 7-0, чем 7 раз по 1-0.
Несмотря на то, что стремление к лучшему естественно, как известно - это враг хорошего (спасибо, Вольтер).
Гунсунь Луну сказал: «Если от палки длиной в один чи ежедневно отнимать половину, это не завершится и через 10000 поколений».
Важно знать меру. И 1 000 задач на литкоде это замечательно, но станете ли вы счастливее от этого?
@iOS Dev — так проснитесь же, мистер Фримен
7 970
Различные способы сортировки массива строк в Swift
В Swift есть два способа сортировки: тот, который мутирует исходный массив, и тот, который этого не делает.
У них обоих одно и то же требование: элемент в коллекции должен соответствовать протоколу Comparable.
Типы, соответствующие этому протоколу, можно сравнивать с помощью операторов
<, <=, >= и >.
📖 В этом материале рассказывается о различных способах сортировки, а также объясняется, в каких случаях localizedStandardCompare поможет справиться, например, с упорядочиванием имен формата Name2.txt, Name7.txt, и Name25.txt.
@iOS Dev7 970
Для работы в международной команде базового английского может не хватить. Держите 5 советов, которые помогут подготовиться к общению с иностранными коллегами.
Если хотите подтянуть язык для работы в IT — попробуйте Яндекс Практикум. Они запустили курсы специально для разработчиков, аналитиков и продакт-менеджеров.
В основе обучения — занятия с личным преподавателем, дополнительно вас ждёт разговорная практика с иностранными IT-специалистами. Они помогут освоить язык на примере собеседований, стендапов, ревью и других рабочих встреч. Будет проще пройти реальное англоязычное собеседование, если вы уже тренировали его на занятиях.
🌐 Записывайтесь на бесплатную консультацию к куратору. Он определит ваш уровень языка и расскажет о курсе.
@iOS Dev
7 970
Визуальное справочное руководство для документирования кода на Swift
📖 В этом огромном материале Marco Eidinger представляет полный обзор параметров для документирования.
Кроме этого, он делится советами и рекомендациями по эффективному созданию документации, а также рассматривает различия между
Xcode Quick Help по сравнению с DocC Renderer и Jazzy.
@iOS Dev7 970
Weekend offer от ВКонтакте для C++ и мобильных разработчиков
Множество ключевых команд приглашают разработчиков получить шанс попасть в одну из них за выходные: достаточно оставить отклик, и с вами свяжутся.
Уже 11–12 марта состоятся встречи с тимлидами: они расскажут про процессы и задачи, которые предстоит решать, и ответят на все вопросы. Также состоятся интервью и финальные собеседования с кандидатами. А вечером второго дня определят лучших и отправят им оффер.
Успевайте оставить отклик до 9 марта!
@iOS Dev
7 970
🔆 Обновление App Store: бенчмарки для приложений
С помощью нового показателя в App Analytics вы можете оценить производительность своего приложения, сравнив ее с аналогичными приложениями в App Store.
Выкатили сравнение по следующим показателям:
🔘Коэффициент конверсии.
🔘Коэффициент удержания на 1-й, 7-й и 28-й день.
🔘Показатель сбоев.
🔘Средний доход на одного платящего пользователя.
Приложения в одной и той же категории App Store группируются вместе.
🌐 На официальном сайте можно прочитать про каждый параметр подробнее, а также узнать про советы по улучшению показателей.
@iOS Dev
7 970
Зарплаты разработчиков во второй половине 2022
🟢 По сравнению с первой половиной 2022 года, зарплаты ощутимо выросли у стажеров — на 14%. Немного подросли зарплаты сеньоров и лидов — по 4%. Практически не изменились зарплаты мидлов и джунов.
🟢 Больше всего выросли зарплаты разработчиков Delphi — на 28%.
Медианная зарплата Objective-С разработчиков выросла на 4% — 260 000 ₽.
🤑Медианная зарплата джунов на Swift — 95 000 ₽ (+9%), процентно схожий рост у мидлов, у сеньоров +3%.
💪 Среди лидов больше всего платят Swift-разработчикам — 350 000 ₽, а меньше всего лиды получают в 1С.
@iOS Dev — о важном
7 970
Три способа передачи данных при использовании WatchConnectivity
⌚При работе с
watchOS, существуют различные методы для связи между устройствами iPhone и Apple Watch.
Основной точкой взаимодействия является класс WCSession. Этот объект используется для создания соединения между телефоном и часами.
И хотя Apple рекомендует использовать собственные возможности URLSession для запроса данных, методы из поста предназначены для передачи небольших объемов информации.
📖 В этом материале автор рассказывает о своём опыте работы с watchOS и плюсах и минусах каждого из способов связи между Apple Watch и iPhone.
@iOS Dev7 970
Создание шаблонов заголовков в Xcode для Swift Packages
Если вы используете
Swift Package, при создании нового файла возникают две неприятные проблемы:
1️⃣ Нет шаблона заголовка.
2️⃣ Нет запроса для имени файла.
📖 В этом материале есть решение для обеих проблем (вы можете использовать его и под свои рабочие процессы).
📖 А про изменение стандартных заголовков в файлах Xcode есть небольшой пост вот тут.
@iOS Dev7 970
Создание приложения, похожего на стандартный iOS Timer с помощью SwiftUI
📖 В этом материале рассказывается, как повторить стандартный таймер на SwiftUI, ориентируясь на следующие 4 части интерфейса:
1️⃣
TimePickerView.
2️⃣ Элементы управления StartButton и StopButton.
3️⃣ CircularProgressView, который виден только при активном таймере.
4️⃣ Элемент управления PauseButton, который виден также только при активном таймере.
Каждый из компонентов пользовательского интерфейса создаётся по отдельности.
🛠 Исходный код проекта доступен здесь.
@iOS Dev7 970
🚨Обновите fastlane срочно!
В последние пару дней многие могли столкнуться с проблемой авторизации фастлейна, которая на самом деле ещё серьёзнее.
Дело в том, что теперь Apple требует заголовок
X-APPLE-HC при входе в https://idmsa.apple.com/appleauth/auth/signin.
❗️Отсутствие этого заголовка приводит к запрету доступа и возможной блокировке учетной записи Apple ID (некоторых, в том числе и один из моих личных аккаунтов это затронуло).
📔 Детальнее в этом пулл-реквесте: обсуждение.
В версии 2.212.1 эту проблему устранили, однако найстойчиво рекомендуется перейти на ключи App Store Connect API (как раз этот способ я использую в приложении Starly).
🛠Ссылка на актуальную версию fastlane здесь.7 970
Загляните в канал Романа - Head of Mobile с суммарным опытов в IT 10+ лет .
Новости и гайды по iOS-разработке, статьи об управлении командой и создании продуктов в одном телеграм канале — iOS Enjoyer.
7 970
Реализация показа аннотаций диаграмм при наведении в Swift Charts
📖 В этом посте можно узнать, как создать интерактивную гистограмму, которая показывает аннотации при наведении
Отметки столбцов будут отражать данные о продажах трех разных продуктов за год, сгруппированные по месяцам.
Кроме этого, в аннотациях будут указаны точные данные о продажах каждого продукта за определенный месяц.
🛠 Пример реализации доступен на github.
@iOS Dev
7 970
Реализация вращения линейного градиента на SwiftUI
LinearGradient принимает в качестве управления направлением аргумент типа UnitPoint.
Оказывается, что это просто нормализованная пара X/Y под капотом, так что при выборе подходящих X и Y, можно рисовать свои градиенты под любым углом.
📖 Автор рассказывает о том, как несложно реализовать подобный эффект и приводит пример кода.
@iOS Dev7 970
Quick actions для iOS: интеграция и примеры
🧑💻 Quick actions — отличный способ предоставить пользователям быстрый доступ к общим функциям вашего приложения на главном экране.
Пользователь может коснуться и удерживать иконку приложения, чтобы отобразить набор ярлыков или действий, которые можно выполнить прямо с хоумскрина.
📖 В этом материале вы сможете узнать, как создавать:
1️⃣ Static quick actions, которые всегда доступны для вашего приложения.
2️⃣ Dynamic quick actions, которые ваше приложение может определить в рантайме.
3️⃣ Как поддерживать оба типа быстрых действий на примере тестового приложения.
@iOS Dev
7 970
Опенсорсный клиент на SwiftUI для Mastodon: демонстрация реализованных методов и фич
IceCubesApp — это приложение с открытым исходным кодом для доступа к децентрализованной социальной сети Mastodon! Он полностью построен на SwiftUI, что делает его быстрым, легким и простым в использовании.
Проект разделен на разные пакеты Swift, чтобы упростить управление кодовой базой и ее обслуживание.
Каждый из них ориентирован на определенный аспект приложения, такой как пользовательский интерфейс, сетевое взаимодействие или модели данных.
Этот модульный подход упрощает совместную работу и гарантирует, что код организован и прост для понимания.
В большинстве случаев архитектура представляет собой простой MVVM.
📖 Thomas Ricouard написал статью, в которой рассказал о некоторых аспектах и реализованных фичах.
🛠 Приложение на Github доступно по ссылке (⭐️2 100).
@iOS Dev
