iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
12.4K subscribers
654 photos
64 videos
3.95K links
Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день.

Лучшее iOS сообщество в Телеге: @iosgt

Размещение рекламы: @tanyasanovna
Download Telegram
Зачем переключаться с Xcode на Neovim

👉В отличие от Xcode, у Neovim есть мощная система плагинов, которая позволяет как писать собственные, так и модифицировать чужие.
👉ШОРТКАТЫ! Их много, а их хорошее знание повышает продуктивность во много раз.
👉Можно полностью отказаться от использования мыши или тачпада.
👉В процессе работы с Neovim вы научитесь чаще использовать терминал, и за счет разных утилит тоже прокачаете свою продуктивность.
👉Вы сможете открыть хоть все свои проекты одновременно, не боясь того, что закончится оперативка.
👉Если вы решите сменить техстек, все навыки Neovim останутся с вами.
Как декомпозировать проекты

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

Автор статьи делает попытку алгоритмизировать свой опыт. Мне кажется, получилось довольно неплохо, и я сохранил себе статью, чтобы в будущем скидывать джунам. Алгоритм такой:

👉Перечислите все задачи, которые на ваш взгляд надо сделать, чтобы завершить проект.
👉Для каждой задачи выпишите последовательный список шагов, которые надо сделать, чтобы ее завершить.
👉Посмотрите на каждую задачу, и попробуйте понять, достаточно ли конкретно она определена. Понять это помогут несколько вопросов: "Понятно ли, какое изменение требуется сделать?", "Могу ли я понять, как должна выглядеть задача в состоянии сделано?", "Если я превращу список шагов в тудушки, достаточно ли сделать их все, чтобы выполнить задачу?", "Достаточно ли у меня информации, чтобы начать работать над задачей прямо сейчас?".
Swift on Server 2024

Рабочая группа, занимающаяся развитием серверного Swift, рассказала про текущее положение дел и планы на следующий год.

👉Опубликованы результаты большого опроса про то, с какими проблемами сталкиваются разработчики.
👉Экосистема продолжает расти, особенно отмечают процесс инкубации новых пакетов и участие в GSoC.
👉Structured concurrency адоптится и новыми пакетами, и фундаментальными существующими, вроде SwiftNIO.
👉Важный новый тулинг: Swiftly, Dependabot, Chiseled Containers, OpenAPI generator.
👉Фокусы на 2024: усиленный маркетинг, подготовка к Swift 6, дальнейший адопшн Swift Concurrency.
Новые выпуски Подлодки

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

🇬🇧Саша Зимин, которого знает каждый уважающий себя айосер, рассказал про свой опыт переезда и жизни в UK. А я добавил про свой опыт получения Global Talent визы.
Никита Прокопов записал фундаментальный выпуск про сложности задач работы с датой и временем.
📚Вместе с Виталием Брагилевским записали экспериментальный исторический выпуск про Аду Лавлейс и ее роль в истории программирования. Уникальный контент – Виталий прочитал все ее заметки в оригинале, выделил оттуда самое полезное и интересное, и детально разобрал в выпуске.
Как уменьшить размер приложения с помощью dynamic фреймворков

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

Отличная статья про то, почему не забывать про свою менталочку – важно, и какие эвристики помогут не убиваться на работе. Моя любимая мысль – не все дедлайны одинаково важны, а некоторые – вообще высосаны из пальца.
Привет! На связи Podlodka Crew — организатор онлайн IT-конференций по разным аспектам разработки.

🔺Хочешь создавать уникальные и высокотехнологические интерфейсы, на которые равняются другие?

Приходи на новый сезон конференции 15 апреля. Ведь в этот раз мы решили досконально разобраться в хардкорном UI. Дадим знания, которыми владеют единицы.

Разберём аспекты, которые станут вызовом даже для скилловых iOS-разработчиков. Редкие техники и инструменты, сложные кейсы и инновационные подходы — всё, чтобы создавать действительно выдающийся UI!

💜Искусство layout`a и анимации текста. Подробно разберём каждое па этого танца с драконами в мире iOS UI.
💜Лучшие практики и тонкости работы с анимациями на Metal в iOS-разработке. Стань железным человеком с точки зрения UI.
💜AR-cooking. Раскроем рецепты от моделирования до управления 3D-пиццей.
💜Перфоманс интерфейса. Окунёмся в редкие инструменты, секреты аналитики и решения распространённых проблем. Только для самых искушенных разработчиков!

© Внимание! ©
Переход по ссылке и покупка билета изменят твой перфоманс навсегда:
https://podlodka.io/ioscrew
Please open Telegram to view this post
VIEW IN TELEGRAM
Интероп Haskell и Swift

Представьте, что вы зачем-то хотите часть кода приложения написать на Haskell, и вызывать его из Swift. В статье разбирается, как правильно настраивать FFI и экспоузить нужные функции.
Инженерные практики, важные для больших проектов

Список практик, которые:
- Не имеют особого значения для маленьких проектов
- Значительно повышают продуктивность по мере роста проекта
- Их сложно внедрить, когда проект уже разросся

Вот некоторые из них:

👉Короткий и понятный README со ссылками на ключевые доки
👉Документация с четкой структурой, которую легко поддерживать и дополнять
👉Процессная документация, детально описывающая, как код попадает в master
👉Style guide с принятыми конвенциями
👉Бенчмаркинг
👉Fuzz testing
Как работать с закладками в Xcode

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

👉Их можно объединять в группы
👉Любую закладку можно пометить как выполненную
👉В качестве закладки можно использовать поисковый запрос
Канал Apple Developer на YouTube

Главное событие 2024 – Apple завели канал на YouTube, и начали выкладывать туда видео для разработчиков. Пока там только сессии с WWDC23, но, надеюсь, со временем появится и что-то уникальное.
Остались считанные часы до старта Podlodka iOS Crew!

Если пропустили – завтра мы начинаем сезон про хардкорный UI! Сложные анимации, хитрые оптимизации, перформанс – в общем, все, что нужно, чтобы поставить на место конкурентов.

Ну и чтобы вы поменьше сомневались, по промокоду FINAL_CHANCE скидка на билеты для тех, кто в воскресенье готов сделать планы на грядущую неделю чуточку интереснее. Никогда не знаешь, в какой момент понадобится вывести свой UI на новый уровень!

Забрать билет 💥
Please open Telegram to view this post
VIEW IN TELEGRAM
Dude Where Is My Touch Bar

Если в macOS приложении в NSUserDefaults выставить YES для ключа _NS_4445425547, то в вашем приложении появится системное дебажное меню. Главный пункт, конечно, это Dude Where Is My Touch Bar!
Сервис для визуализации JSON

Смотрите, какой кайфовый сервис для того, чтобы визуализировать любой JSON в виде древовидной диаграммы. Есть и поиск, и темная тема.
Генератор для Privacy Manifest

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

А вот тут – более подробная статья про него.
Про распил монолита

Автор одного из любимейших приложений на моем айфоне, трекера калорий Foodnoms, написал подробную статью про то, как он рефакторил архитектуру приложения, правильным способом разбивая его на модули.
Гайд по подготовке кодовой базы к Swift 6

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

Accelerate – системный фреймворк для высокопроизводительных векторных вычислений на CPU. Он состоит из шести библиотек:

👉BNNS – создание и обучение нейронок
👉vImage – обработка изображений на уровне пикселей
👉vDSP – обработка цифровых сигналов
👉vForce – тригонометрические, логарифмические и экспоненциальные функции над векторами
👉LAPACK – решение задач линейной алгебры
👉BLAS – базовые операции линейной алгебры

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

Любой UI фреймворк рано или поздно используют для того, чтобы писать приложения под терминал. SwiftTUI – библиотека, которая реализует аналогичный SwiftUI API для приложений с чисто текстовым интерфейсом.

Что уже работает:

👉Property wrappers @State, @Binding, @Environment
👉VStack, HStack, ForEach, Group and @ViewBuilder
👉Structural identity как в SwiftUI
👉Button, TextField и изменение фокуса стрелками
👉Text, Color, Spacer
👉 .border(), .padding(), .background(), .foregroundColor()

🔗Пример с ToDo листом
🔗Пример с клиентом для SoundCloud