Telegram Web Link
Сервис для визуализации 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
Как включать экспериментальные фичи Swift

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

Если у вас есть друзья, занимающиеся С++ разработкой, и вы хотите познакомить их со своим любимым языком – держите идеальный гайд, который проводит аналогии между ментальной моделью плюсов и Swift и объясняет всякую неочевидную магию.
Видео с Swift Server Side митапа

Недавно прошел первый официальный Swift Server Side митап. Программа такая:

👉Как использовать Swift на Linux, в том числе в облаке и на портативных девайсах
👉Рассказ про Vapor от одного из его разработчиков
👉Q&A с участниками Server-Side Workgroup
Гайд по Swift Argument Parser

Если вы пишете на Swift какие-то консольные приложения, вы точно используете пакет Swift Argument Parser. В серии постов разбираются все детали работы с ним, в том числе:

👉Сокращенные и полные флаги
👉Инверсия флагов
👉Флаги с enum'ами

Из интересного – прямо в статью встроена интерактивная консоль, в которой можно поиграться с примерами.
This media is not supported in your browser
VIEW IN TELEGRAM
Релиз SystemNotification 1.0

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

🔗Getting Started
🔗Демо приложение
Выбор сервиса на замену App Center

Пару недель назад я рассказывал, что Microsoft закрывает App Center. Держите статью с обзором альтернатив, на которые можно переехать, их плюсов, минусов и фичей.
Инженерная культура в БигТехе

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

Записали выпуск Подлодки с Алексеем Козятинским (ex. Google, а сейчас senior staff SWE в Netflix), который откровенно поделился с нами своим сложным жизненным опытом в биг техе, и вместе мы поразмышляли о том, как инженерная культура помогает бизнесу достигать своих целей, какое влияние она оказывает на конечных сотрудников и как выбрать "ту самую" компанию мечты, где вы будете чувствовать себя по-настоящему на своем месте.

🔗Смотреть на Youtube
KeyPath в Swift

Отличный разбор того, как работают KeyPath в Swift, для чего они нужны, и какие неочевидные возможности у них есть.

👉KeyPath литерал можно сконвертировать в функцию вида (Root) -> Value
👉KeyPath'ы можно комбинировать друг с другом через функцию .appending
👉В KeyPath можно зашить доступ по индексу к любому из параметров
👉Можно определять свои атрибуты через @dynamicMemberLookup
👉С KeyPath работает вывод типов
Forwarded from Код Воробья для iOS разработчиков
Apple выкатила много новых дизайн-шаблонов в своем профиле для 🎨 Figma

Для 💎 пока нету
Please open Telegram to view this post
VIEW IN TELEGRAM
Зачем в приложение добавлять озвучку

Озвучка действий в приложении может быть как самым раздражающим элементом UX, так и одним из самых цепляющих. При этом, у многих пользователей звук вообще выключен по умолчанию. В статье разбирается, зачем затаскивать озвучку в свое приложение, как сделать ее запоминающейся и не надоедливой, и откуда вообще брать материалы для звуков. И все это – на живых примерах!
Xamarin всё

Конец эпохи. Начиная с 1 мая, Microsoft официально остановил поддержку всех SDK Xamarin, включая Xamarin.Forms. Всех, кто еще не успел переехать, отправляют мигрировать на MAUI.
2024/09/28 12:14:43
Back to Top
HTML Embed Code: