Крис Латтнер, создатель Swift, рассказал на форуме о том, почему прошлым летом он окончательно вышел из состава группы, отвечающей за дизайн Swift. Причины:
- Токсичность на созвонах рабочей группы
- Игнорирование формальных пропозалов и комментариев Латтнера
- Нарушение базовых принципов дизайна, установленных Латтнером в начале разработки
- Токсичность на созвонах рабочей группы
- Игнорирование формальных пропозалов и комментариев Латтнера
- Нарушение базовых принципов дизайна, установленных Латтнером в начале разработки
Swift Forums
Core team to form language workgroup
The core team is currently looking at restructuring the project's leadership to provide more pathways for community members to become actively involved in the project's stewardship. Swift has gradually introduced more workgroups to focus on technical and…
Раз уж мы начали говорить про SwiftUI, то вот еще одна неплохая статья. Разбор того, как подходить к unit-тестированию SwiftUI приложений. Там в итоге все ожидаемо упирается в то, что надо аккуратно выносить логику в отдельные классы, тестировать их, а сами вьюшки не трогать – но сами примеры, на которых эта идея доносится, мне понравились.
Swift by Sundell
Writing testable code when using SwiftUI | Swift by Sundell
Let’s take a look at how we can make our UI-related logic fully testable, even when that logic is primarily used within SwiftUI-based views.
Пример реализации unidirectional архитектуры с использованием async/await. Перед прочтением советую посмотреть предыдущие посты серии про реализацию этой архитектуры:
- Basics
- Best practices
- Container Views
- Connectors
- Basics
- Best practices
- Container Views
- Connectors
Swift with Majid
Redux-like state container in SwiftUI. Swift concurrency model.
Over the last two years, I have actively used unidirectional flow to develop my apps. I covered the approach I use in the series of posts about building Redux-like state containers. This week I want to share with you how this approach adapts to the latest…
Прошла неделя «Перформанс и профайлинг” от Podlodka Crew, где мы поделились опытом как оптимитизировать размер приложения.
Компания Intermedia разрабатываем коммуникационную платформу Unite и платформу для видеоконференций AnyMeeting .
В наши команды мы ищем iOS разработчиков, которые хотели бы развиваться в продуктовой компании.
Наши вакансии в Unite https://spb.hh.ru/vacancy/52118728 и AnyMeeting https://spb.hh.ru/vacancy/49587520.
Ваши вопросы по вакансии задавайте @apanova78
Компания Intermedia разрабатываем коммуникационную платформу Unite и платформу для видеоконференций AnyMeeting .
В наши команды мы ищем iOS разработчиков, которые хотели бы развиваться в продуктовой компании.
Наши вакансии в Unite https://spb.hh.ru/vacancy/52118728 и AnyMeeting https://spb.hh.ru/vacancy/49587520.
Ваши вопросы по вакансии задавайте @apanova78
Intermedia
Intermedia | Unified Communications, business email, cloud voice, web/video/content sharing, file backup, identity and access management…
Intermedia is a leading one-stop shop for unified communications, business email, VoIP, web/ video/ content sharing, identity & security services. Learn more
А теперь сделаем zoom out и на примере InDriver посмотрим на то, как может выглядеть модульная архитектура приложения, в которой каждый модуль написан по UDF.
Хабр
Модуляризация доменного слоя в UDF. Часть II
В предыдущей части мы рассмотрели, что такое домен и какими принципами можно руководствоваться при его модуляризации. В этой части сконцентрируемся на типах связей между модулями и различиях в...
Саша Зимин выложил в Open source код Muna – своей утилиты для продуктивности под macOS. Можно посмотреть, как пилить кастомный UI на Cocoa или просто поддержать Сашу звездой!
GitHub
GitHub - azimin/muna: Muna is macOS app that helps you create reminders in less than 5 seconds
Muna is macOS app that helps you create reminders in less than 5 seconds - azimin/muna
В Swift 4.2 появился новый property wrapper
@dynamicMemberLookup,
который дает возможность обращаться через точку к любому свойству типа, которое будет резолвиться в рантайме, в том числе к KeyPath.
В статье показывается пример того, как эта фича помогает сократить бойлерплейт в некоторых модельных классах.swift tips
The power of Dynamic Member Lookup
In Swift 4.2 a new property wrapper @dynamicMemberLookup was introduced with SE-0195. The introduction reads This proposal introduces a new @dynamicMemberLookup attribute. Types that use it provide "dot" syntax for arbitrary names which are resolved at runtime…
Всем привет.
Война – это ужасно, и того, что происходит, не должно происходить. Я считаю недопустимой войну, развязанную Россией, и безумными действия российского правительства.
Бояться в этой ситуации – абсолютно нормально, потому что никто не может представить, как дальше будут развиваться события. Но постарайтесь не давать страху перерастать в панику. Это – плохое состояние, в котором любые принятые решения будут, скорее всего, неверными.
Чтобы у вас была возможность отвлечься от новостных лент, я продолжу выкладывать в свои каналы технический контент. Кроме этого, я обязательно буду делиться ссылками, актуальными сейчас – новостями про работу важных для нас сервисов, советами по релокации. Если вы не захотите его читать – можете замьютить канал или отписаться от него. Если захотите поделиться своим состоянием и мыслями – приходите в @iosgt.
Ребята из 🇺🇦, держитесь ❤️
Война – это ужасно, и того, что происходит, не должно происходить. Я считаю недопустимой войну, развязанную Россией, и безумными действия российского правительства.
Бояться в этой ситуации – абсолютно нормально, потому что никто не может представить, как дальше будут развиваться события. Но постарайтесь не давать страху перерастать в панику. Это – плохое состояние, в котором любые принятые решения будут, скорее всего, неверными.
Чтобы у вас была возможность отвлечься от новостных лент, я продолжу выкладывать в свои каналы технический контент. Кроме этого, я обязательно буду делиться ссылками, актуальными сейчас – новостями про работу важных для нас сервисов, советами по релокации. Если вы не захотите его читать – можете замьютить канал или отписаться от него. Если захотите поделиться своим состоянием и мыслями – приходите в @iosgt.
Ребята из 🇺🇦, держитесь ❤️
Присыпанный экспериментами разбор того, как в iOS работают анимации. Понимание граничных кейсов может сильно помочь вам, когда вы в следующий оаз столкнетесь с задачей анимировать что-то не очень стандартное.
Хабр
Как UIView мешал слоям анимироваться
Эту часть я хотел посвятить анимациям, но понял, что это очень большая тема и для нее тоже нужен контекст. Поэтому сначала расскажу, что же лежит под капотом тех методов, которые мы обычно используем...
В Swift есть много разных типов ренджей:
Range, ClosedRange, PartialRangeFrom, UnboundedRange,
и на них перечисление не заканчивается. У каждого из них свои сценарии использования и ограничения. Чтобы разобраться в отличиях, держите кайфовую статью по теме!Medium
How ranges work in Swift
Ranges family of types may not seem to bring us surprises, but they hide exciting points in the implementation.
Последнее время модульная архитектура на базе SwiftPM на волне хайпа. Вспомните тот же недавний цикл от Majid Jabrayilov. Держите статью про еще один аспект модульности – то, как и где правильно. и секьюрно хранить ключи от различных сервисов.
Medium
Hiding Secrets From Git in SwiftPM
Modularise your apps
Опенсорсная подборка цветовых палитр, которая оптимизирована для использования в интерфейсах:
- цвета подобраны так, чтобы не было бесполезных
- воспринимаемая яркость у всех на одном уровне
- цвета подобраны так, чтобы не было бесполезных
- воспринимаемая яркость у всех на одном уровне
Наткнулся на VPN свой мечты, который сейчас стал еще более актуальным – Outline VPN. В чем суть:
- Арендуешь сервак у Digital Ocean, AWS, Scaleway или вообще кого угодно
- Запускаешь на нем одной командой VPN-сервер
- Управляешь подключениями к нему через приложение на десктопе
- Подключаешься к нему через удобные приложения для любой операционки
В чем плюс по сравнению с платным VPN-сервисом: меньше шанс, что именно твои айпишники в бан попадут, плюс сможешь если что сам быстро мигрировать.
Я себе взял сервер у AWS, там на первые 3 месяца вообще абонентской платы нет.
- Арендуешь сервак у Digital Ocean, AWS, Scaleway или вообще кого угодно
- Запускаешь на нем одной командой VPN-сервер
- Управляешь подключениями к нему через приложение на десктопе
- Подключаешься к нему через удобные приложения для любой операционки
В чем плюс по сравнению с платным VPN-сервисом: меньше шанс, что именно твои айпишники в бан попадут, плюс сможешь если что сам быстро мигрировать.
Я себе взял сервер у AWS, там на первые 3 месяца вообще абонентской платы нет.
getoutline.org
Outline VPN - Access to the free and open internet
Outline is a VPN software that makes it easy for anyone to create, run, and share access to their own VPN.
Огромный гайд по всем доступным в iOS подходам к реализации многопоточной логики. Для каждого разбираются основные примитивы и кейсы использования. Бонусом идут общие советы по дебагу многопоточного кода. В общем, идеальная статья, чтобы периодически освежать свои знания.
Medium
The Complete Guide to Concurrency and Multithreading in iOS
Main thread vs. background thread. Async/await and Actor. GCD vs. OperationQueue. Group dispatch, how to empower background thread, and…
Паша Комаровский, которого вы можете знать по докладу про инвестиции на AppsConf или его блогу про рациональность и разумное обращение с финансами, вчера выпустил замечательную статью про то, какими принципами руководствоваться в кризисное время, чтобы не наделать ошибок с деньгами.
Мы решили записать с Пашей выпуск подкаста Подлодки про эту же тему и разобрать там ваши вопросы про разумные действия в период максимальной нестабильности экономики. Накидайте ваших вопросов в комментариях, чтобы мы могли их разобрать. Примеры:
“Надо ли переводить все в доллары?”
“Бежать ли вкладывать деньги в недвижку, или держать все в банке?”
“Что может стать с моими акциями?”
Мы решили записать с Пашей выпуск подкаста Подлодки про эту же тему и разобрать там ваши вопросы про разумные действия в период максимальной нестабильности экономики. Накидайте ваших вопросов в комментариях, чтобы мы могли их разобрать. Примеры:
“Надо ли переводить все в доллары?”
“Бежать ли вкладывать деньги в недвижку, или держать все в банке?”
“Что может стать с моими акциями?”
На прошлой неделе я обещал сделать подборку материалов для тех, кто хочет подтянуть свои знания Auto Layout. Держите, и желаю вам никогда не сталкиваться с ambiguous layout!
Готовые сниппеты для часто встречающихся задач
Старая, но очень подробная статья про внутренние механизмы работы Auto Layout
Математические основы Auto Layout
Бумага про то, как UI можно описывать системами линейных уравнений
40-страничный обзор алгоритма Cassowary, на котором основан AL
Готовые сниппеты для часто встречающихся задач
Старая, но очень подробная статья про внутренние механизмы работы Auto Layout
Математические основы Auto Layout
Бумага про то, как UI можно описывать системами линейных уравнений
40-страничный обзор алгоритма Cassowary, на котором основан AL
Hacking with Swift
The Auto Layout cheat sheet
Looking for some quick fix examples for Auto Layout? Look no further!
Команда «CatHouse» - свежебрендированные ребята, которые уже 4 года работают в различных направлениях IT-индустрии, они в поиске iOS разработчиков, которые будут заниматься разработкой и проектированием новых приложений в сфере системных утилит.
«CatHouse» в поисках целеустремленных ребят, которые имеют опыт разработки мобильных приложений под iOS 11+ и опыт разработки клиент-серверных приложений, умеют верстать кодом (используется SnapKit), понимают принципы работы UIKit и готовы верстать элементы любой сложности, а так же знают git и умеют работать с submodule.
Взамен «CatHouse» готовы предложить полную удалёнку или комфортное рабочее место в офисе в самом центре Питера.
Если Вы являетесь человеком, который жаждет постоянный рост и развитие, то «CatHouse» предоставит курсы повышения квалификации и карьерный рост.
Оплачиваемые отпуска и больничные в 100% объеме Вашей заработной платы, а так же достойная заработная плата, определяющаяся по результату собеседования. Вилка заработной платы: 100,000 - 300,000 рублей.
Быстрее стучись PM'у в телегу @web_product_devs :)
«CatHouse» в поисках целеустремленных ребят, которые имеют опыт разработки мобильных приложений под iOS 11+ и опыт разработки клиент-серверных приложений, умеют верстать кодом (используется SnapKit), понимают принципы работы UIKit и готовы верстать элементы любой сложности, а так же знают git и умеют работать с submodule.
Взамен «CatHouse» готовы предложить полную удалёнку или комфортное рабочее место в офисе в самом центре Питера.
Если Вы являетесь человеком, который жаждет постоянный рост и развитие, то «CatHouse» предоставит курсы повышения квалификации и карьерный рост.
Оплачиваемые отпуска и больничные в 100% объеме Вашей заработной платы, а так же достойная заработная плата, определяющаяся по результату собеседования. Вилка заработной платы: 100,000 - 300,000 рублей.
Быстрее стучись PM'у в телегу @web_product_devs :)
Я уверен, что большинство из подписчиков не особо следило за судьбой Catalyst после небольшой волны начального хайпа. Если вы относитесь к этому большинству, то вот отличный материал, чтобы разобраться с его текущим состоянием – перечень всех плохих решений во фрейморке, которые ограничивают его использование.
High Caffeine Content
Where Mac Catalyst Falls Short