В iOS 15.4 Apple впервые за семь лет пересмотрели свое отношение к поддержке PWA (Progressive Web Applications, стандарт такой для мобильного веба), и наконец-то реализовали поддержку веб-пушей и части других API, которые дают доступ к разным нативным фичам iOS. Это важно, потому что PWA – хорошая альтернатива другим кроссплатформенным решениям, которые позволяют быстро сделать прототип своего продукта.
https://firt.dev/ios-15.4b
https://firt.dev/ios-15.4b
firt.dev
Push Notifications, WebXR, and better PWA support coming to iOS-firt.dev
New APIs, capabilities, bugs, and challenges for Safari and PWAs running in iOS 15.4 and iPadOS 15.4, including Web Push Notifications, WebXR
В обсуждении подходов к работе с диплинками в Mobile Native Foundation разработчики из AirBnb рассказали про свой подход.
Их цель – сделать так, чтобы каждая продуктовая команда отвечала за свои конкретные диплинки, логику их обработки и навигации. Чтобы это работало, core-команда реализовала плагинную систему, в которой каждый диплинк – это плагин, инжектящийся в общий URL handling сервис. Если стало интереснее, почитайте комментарий с деталями.
https://github.com/MobileNativeFoundation/discussions/discussions/144#discussioncomment-2008969
Их цель – сделать так, чтобы каждая продуктовая команда отвечала за свои конкретные диплинки, логику их обработки и навигации. Чтобы это работало, core-команда реализовала плагинную систему, в которой каждый диплинк – это плагин, инжектящийся в общий URL handling сервис. Если стало интереснее, почитайте комментарий с деталями.
https://github.com/MobileNativeFoundation/discussions/discussions/144#discussioncomment-2008969
GitHub
Deeplinking at Scale · MobileNativeFoundation/discussions · Discussion #144
Hey y'all, I would like to start a discussion about how Deeplinking is handled in different companies. I didn't find many articles or videos about deeplinking architecture, troubleshooting,...
Держите памятку с главными шорткатами для Xcode, которые могут полностью заменить собой мышь или тачпад.
https://swiftcraft.io/static/images/xcode-keyboard-only-workflow-print.pdf
https://swiftcraft.io/static/images/xcode-keyboard-only-workflow-print.pdf
В открытый доступ выложили все доклады недавней конференции iOS Conf SG 2022. Я пролистал плейлист, и самыми интересными показались следующие:
Continuous Feature Delivery with Scenario Driven App Development процесса
Swift Concurrency Under the Hood
Special Effects with SwiftUI
Continuous Feature Delivery with Scenario Driven App Development процесса
Swift Concurrency Under the Hood
Special Effects with SwiftUI
YouTube
iOS Conf SG 2022 - YouTube
Кажется, подошел к концу цикл статей про Microapps Architecture. Напоминаю, что это – развитие идей модульной архитектуры, построенное вокруг SwiftPM.
Можете прочитать последнюю статью про Dependency Injection, а можете, если откладывали, пройтись по всему циклу:
SwiftPM Basics
Feature Modules
Resources and Localization
Dependency Injection
Можете прочитать последнюю статью про Dependency Injection, а можете, если откладывали, пройтись по всему циклу:
SwiftPM Basics
Feature Modules
Resources and Localization
Dependency Injection
Swift with Majid
Microapps architecture in Swift. SPM basics.
This week I want to start a series of posts about the new approach I use to build scalable apps in Swift. Microapps architecture allows you to reduce the compile-time and enhances the separation of concerns in your codebase. Teams can produce a module per…
🔥Начинаем текстовый Q&A с Александром Зиминым (@azimin) про:
- Работу в стартапах
- Запуск своих проектов
- Из iOS-разработчика в продуктовый менеджмент
- NFT, запуск больших проектов
- Жизнь на Бали, жизнь в Лондоне
💬Как принять участие в обсуждении:
1. Пишите любой вопрос комментарием к этому посту
2. Используйте реплаи при дальнейшем общении
📆Заканчиваем в 13 часов, так что не откладывайте!
- Работу в стартапах
- Запуск своих проектов
- Из iOS-разработчика в продуктовый менеджмент
- NFT, запуск больших проектов
- Жизнь на Бали, жизнь в Лондоне
💬Как принять участие в обсуждении:
1. Пишите любой вопрос комментарием к этому посту
2. Используйте реплаи при дальнейшем общении
📆Заканчиваем в 13 часов, так что не откладывайте!
Ексей Пантелеев в нашем чате уже рассказывал про то, почему всем iOS разработчикам пора вкатываться в AR. Да и Apple вот уже в этом году должны будут показать новые носимые устройства и перевернуть индустрию. Короче, время разобраться и потрогать лидар руками пришло! Лучший способ вкатиться в тему – сходить на вебинар Ексея про ARKit и RealityKit и попробовать что-то собрать своими руками.
👉 14 февраля, 20 часов, регистрация по ссылке https://otus.pw/gbM0/
👉 14 февраля, 20 часов, регистрация по ссылке https://otus.pw/gbM0/
otus.ru
Разработчик iOS: практическое применение Swift 5, работа в Xсode и Git
Курс Разработчик iOS в OTUS с возможностью трудоустройства
Если вы любите учиться через изучение кода других проектов, то вот вам куча идей для вдохновения. По ссылке – витрина open source приложений для macOS с возможностью фильтрации по используемому фреймворку: AppKit, SwiftUI, Electron.
https://www.oss.wiki/
https://www.oss.wiki/
Async функции в Swift поддерживают возможность их отмены. Это довольно удобная возможность, которая могла бы пригодиться и для синхронных операций. Например, для
https://oleb.net/2022/sync-functions-cancellation/
JSONDecoder.
В статье – размышления про то, как могла бы работать отмена синхронных операций.https://oleb.net/2022/sync-functions-cancellation/
Ole Begemann
Synchronous functions can support cancellation too
Synchronous functions can perform the same cancellation checks as async code. Adding cancellation support can improve response times when async code calls long-running non-async code.
Команда Kickstarter делится историей постепенного переезда их приложения на GraphQL и как он повлиял на доменную модель и архитектуру приложения.
https://building.kickstarter.com/apollo-integration-fun-on-ios-2c2d9e012d45
https://building.kickstarter.com/apollo-integration-fun-on-ios-2c2d9e012d45
Medium
👾 Apollo Integration Fun on iOS
Why?
😎Сколько вам надо утечек, чтобы поверить, что AR/VR очки от Apple уже где-то совсем рядом? Мне хватит тех двух, что появились в последние дни (App Store upload logs и коммит в dyld). А пока мы ждем RealityOS и откладываем на них 3.000$, самое время прочитать наш еженедельный дайджест топовых материалов!
🔥Самые заплюсованные вами посты за неделю
Создание рабочей группы по С++ интеропу в Swift
Полный цикл статей про Microapps Architecture
Памятка с шорткатами для Xcode
🔄Async/await не перестает приносить нам новые статьи каждую неделю. В этот раз сразу две, и обе классные!
Управление памятью с async/await
Как могла бы работать отмена синхронных функций
🔢Не пропустите два материала про довольно редко встречающиеся числовые типы данных.
Decimal
NSMeasurement
💬Кстати, в пятницу мы очень лампово в течение двух часов закидывали вопросами Сашу Зимина. 90+ комментариев – это круто! Я пока не добрался их обработать, но совсем скоро выложу отдельной заметкой, обещаю!
👀Напоминаю, что в Good Reads есть и другие каналы: @leadgr, @droidgr и @qa_channel. Если бы я был вами, я бы точно подписался! Смотрите, какой там кайф.
Как быть, если вы постоянно попадаете в ловушку "Я все сделаю сам"
Обзор новых возможностей Postman, которые могут пригодиться и мобильщику
Поучительная история про разработчика, который стал тимлидом, а затем вообще все скиллы растерял и смог после 40 лет вернуться на работу программиста только очень окольным путем
Мне очень важны ваши положительные реакции, это какая-то абсолютно иррациональная зависимость. Поэтому отсыпьте их и не жалейте!
Даю подсказку: ❤️🥰👍🔥. А в комментариях жду любые идеи по развитию дайджеста и канала!
#digest
🔥Самые заплюсованные вами посты за неделю
Создание рабочей группы по С++ интеропу в Swift
Полный цикл статей про Microapps Architecture
Памятка с шорткатами для Xcode
🔄Async/await не перестает приносить нам новые статьи каждую неделю. В этот раз сразу две, и обе классные!
Управление памятью с async/await
Как могла бы работать отмена синхронных функций
🔢Не пропустите два материала про довольно редко встречающиеся числовые типы данных.
Decimal
NSMeasurement
💬Кстати, в пятницу мы очень лампово в течение двух часов закидывали вопросами Сашу Зимина. 90+ комментариев – это круто! Я пока не добрался их обработать, но совсем скоро выложу отдельной заметкой, обещаю!
👀Напоминаю, что в Good Reads есть и другие каналы: @leadgr, @droidgr и @qa_channel. Если бы я был вами, я бы точно подписался! Смотрите, какой там кайф.
Как быть, если вы постоянно попадаете в ловушку "Я все сделаю сам"
Обзор новых возможностей Postman, которые могут пригодиться и мобильщику
Поучительная история про разработчика, который стал тимлидом, а затем вообще все скиллы растерял и смог после 40 лет вернуться на работу программиста только очень окольным путем
Мне очень важны ваши положительные реакции, это какая-то абсолютно иррациональная зависимость. Поэтому отсыпьте их и не жалейте!
Даю подсказку: ❤️🥰👍🔥. А в комментариях жду любые идеи по развитию дайджеста и канала!
#digest
Twitter
Rens Verhoeven
Uh what is Apple’s RealityOS doing in the App Store upload logs? AR/VR confirmed?
Community-driven коллекция советов по работе с Xcode: дебаггинг, шорткаты, рефакторинг, работа с симулятором и другие категории. Встречаются и устаревшие статьи, так что будьте внимательны.
https://xcode-tips.github.io/
https://xcode-tips.github.io/
Интересный подход к архитектуре SDK финансового сервиса, который содержит в себе и бизнес-логику, и разные пользовательские экраны с логикой перехода между ними. Команда уперлась в несколько проблем:
- Любой код надо править сразу на трех платформах
- Изменений в UI было много, а пользователям для их получения надо было пересобирать приложения
Чтобы порешать это, команда провела большой рефакторинг вокруг нескольких идей:
- Перенести всю логику на бэкенд, чтобы минимизировать дублирование кода
- Представить весь UI в виде ноукод направленного графа, тоже хранить его на бэкенде, а клиент превратить в рендерилку
В статье очень много деталей про то, как в итоге работает эта архитектура, с какими проблемами столкнулись при переходе на нее. Советую почитать всем, кто поддерживает похожие SDK или интересуется серверным рендерингом.
- Любой код надо править сразу на трех платформах
- Изменений в UI было много, а пользователям для их получения надо было пересобирать приложения
Чтобы порешать это, команда провела большой рефакторинг вокруг нескольких идей:
- Перенести всю логику на бэкенд, чтобы минимизировать дублирование кода
- Представить весь UI в виде ноукод направленного графа, тоже хранить его на бэкенде, а клиент превратить в рендерилку
В статье очень много деталей про то, как в итоге работает эта архитектура, с какими проблемами столкнулись при переходе на нее. Советую почитать всем, кто поддерживает похожие SDK или интересуется серверным рендерингом.
Plaid
A New Architecture for Plaid Link: Server-Driven UI with Directed Graphs | Plaid
Flexible Link, our new product platform that would deliver years of diverse new product experiences for our customers.
Менять работу не страшно, когда всё взвесишь
Skyeng ищет мобильных разработчиков уровня senior и middle+. На удалёнку или в московский офис. Сейчас в команду можно попасть за 2 дня: без нудных собеседований, долгих общений с эйчарами и тестовых заданий. Два интервью по полтора часа: техническое и с руководителем команды.
Ребята провели более 40 независимых бесед и узнали, что ценят и с какими трудностями сталкиваются мобильные разработчики, чтобы вы прошли тест и сравнили своё текущее место с работой в Skyeng. Тот самый случай, когда размах бренда и красивые строки в Линкедине — не единственное преимущество.
Кликайте, если вы Android-разработчик
Кликайте, если вы iOS-разработчик
Ещё Skyeng предлагает бонус, если вы посоветуете друзей: 100 000 рублей за друга мобильного разработчика уровня сеньор и мидл+
Skyeng ищет мобильных разработчиков уровня senior и middle+. На удалёнку или в московский офис. Сейчас в команду можно попасть за 2 дня: без нудных собеседований, долгих общений с эйчарами и тестовых заданий. Два интервью по полтора часа: техническое и с руководителем команды.
Ребята провели более 40 независимых бесед и узнали, что ценят и с какими трудностями сталкиваются мобильные разработчики, чтобы вы прошли тест и сравнили своё текущее место с работой в Skyeng. Тот самый случай, когда размах бренда и красивые строки в Линкедине — не единственное преимущество.
Кликайте, если вы Android-разработчик
Кликайте, если вы iOS-разработчик
Ещё Skyeng предлагает бонус, если вы посоветуете друзей: 100 000 рублей за друга мобильного разработчика уровня сеньор и мидл+
В утренней статье наткнулся на доклад, который оказался довольно известным в индустрии, но который я почему-то пропустил раньше – Boundaries от Gary Berhardt. Он рассказывает про концепцию разделения всей логики приложения на две части:
🌝Ядро, описанное чистыми функциями, без каких-либо внешних зависимостей
🌚Императивная оболочка, прослойка между ядром и окружающим миром
Из этой довольно простой идеи вырастает множество других. Про часть из них можно послушать в докладе, а про другие – почитать в этой заметке.
🌝Ядро, описанное чистыми функциями, без каких-либо внешних зависимостей
🌚Императивная оболочка, прослойка между ядром и окружающим миром
Из этой довольно простой идеи вырастает множество других. Про часть из них можно послушать в докладе, а про другие – почитать в этой заметке.
На прошлой неделе мы провели текстовый Q&A с Александром Зиминым. Прошло, кажется, огненно – спасибо всем, кто поучаствовал! Я думал попробовать собрать текстовый дайджест, но получается так себе – гораздо интереснее читать дискуссию от начала до конца прямо в комментариях к посту. Обязательно полистайте, если вам интересно получить новый взгляд на то, куда iOS-разработчику развиваться дальше, как начинать и не бросать свои пет-проекты и какую страну для эмиграции выбрать.
Поставьте этому сообщению 👍, если нужно продолжать проводить такие сессии. А если есть идеи конкретных гостей или тем – пишите в комментарии!
Поставьте этому сообщению 👍, если нужно продолжать проводить такие сессии. А если есть идеи конкретных гостей или тем – пишите в комментарии!
Telegram
iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
🔥Начинаем текстовый Q&A с Александром Зиминым (@azimin) про:
- Работу в стартапах
- Запуск своих проектов
- Из iOS-разработчика в продуктовый менеджмент
- NFT, запуск больших проектов
- Жизнь на Бали, жизнь в Лондоне
💬Как принять участие в обсуждении:
1.…
- Работу в стартапах
- Запуск своих проектов
- Из iOS-разработчика в продуктовый менеджмент
- NFT, запуск больших проектов
- Жизнь на Бали, жизнь в Лондоне
💬Как принять участие в обсуждении:
1.…
Красивый способ работы с SFSymbols в коде. Заворачиваем названия нужных символов в Enum и реализуем для него экстеншн со свойством, которое возвращает изображение и функцией, которая к этому изображению применяет какую-то конфигурацию.
Twitter
Ivan Sapozhnik
When I work with SF Symbols I usually like to put them into Asset enum and then I can either get the image directly via computed property or I can have a function that takes some custom SymbolConfiguration. Looks really clean in the code when you use it.…
Линкер – это специальная программа, которая собирает в один исполняемый файл несколько скомпилированных отдельно объектных файлов. Напрямую с линкером вы скорее всего работаете редко, максимум – в Build Settings какие-нибудь флаги выставляете или разбираетесь с багами при экзотическом способе подключения фреймворка к проекту.
Но если для общего развития вам интересно разобраться с тем, как линкеры устроены и по каким принципам работают – держите серию коротких статей, написанных очень понятным языком.
Но если для общего развития вам интересно разобраться с тем, как линкеры устроены и по каким принципам работают – держите серию коротких статей, написанных очень понятным языком.
Статья про два способа реализовать градиент на UILabel:
👶Простой, но не очень корректный, через extension над UIImage
👴Посложнее, зато визуально правильный, через UIStackView
👶Простой, но не очень корректный, через extension над UIImage
👴Посложнее, зато визуально правильный, через UIStackView
nemecek.be
Always correct gradient text in UIKit
Applying gradient colors to UILabel text isn't straightforward. Let's see how to do it.
А помните, был такой Auto Layout? Хороший твиттер-тред, который напоминает про фундаментальные провалы в дизайне системы. Мой любимый тоже упоминается в треде – Visual Format Language, который давал описывать уравнения с помощью нечитаемого ASCII арта. Которые не проверялись на этапе компиляции и крешились в рантайме. Великолепно!
🔥 Расскажите в комментариях про то, от каких решений в Auto Layout больше всего пригорало у вас!
🔥 Расскажите в комментариях про то, от каких решений в Auto Layout больше всего пригорало у вас!
Twitter
Mike Sanderson
22/ Hopefully this could serve as a starting point for a conversation: Secrecy may have its reasons, but taken to extremes, actually harms Apple's goals. Leaks may be acutely damaging, but some person in the world gives up on their iPhone app and switches…