Гайд по использованию и настройке утилиты Bloaty McBloatface, которая помогает оценить влияние каждого модуля на итоговый размер бинарника и показывает диффы на CI.
https://asifmohd.github.io/ios/2022/02/03/bloaty-ios-introduction.html
https://asifmohd.github.io/ios/2022/02/03/bloaty-ios-introduction.html
Asif’s Blog
Profiling binary size on iOS using Bloaty
I’ve been using this tool called Bloaty McBloatface1 to attribute the contribution of each swift module or file to our app’s binary. And it has worked out really well for me, the CLI tool is super fast, gives lots of information, supports diffing and has…
📱26 февраля компания Flo проведет онлайн hiring event для Android, iOS и Front-End Web инженеров.
Пройти собеседование, получить job offer и welcome-бонус в размере $5 000 можно всего за несколько часов.
Для участия приглашаются Senior (6+ лет опыта на схожей позиции), а также Middle+ Mobile инженеры.
Чтобы принять участие вам надо пройти регистрацию:
👉Android инженеры https://grnh.se/b4d3a0663us
👉iOS инженеры https://grnh.se/861e33bc3us
👉Web инженеры https://grnh.se/5caa722f3us
Пройти собеседование, получить job offer и welcome-бонус в размере $5 000 можно всего за несколько часов.
Для участия приглашаются Senior (6+ лет опыта на схожей позиции), а также Middle+ Mobile инженеры.
Чтобы принять участие вам надо пройти регистрацию:
👉Android инженеры https://grnh.se/b4d3a0663us
👉iOS инженеры https://grnh.se/861e33bc3us
👉Web инженеры https://grnh.se/5caa722f3us
В 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 какие-нибудь флаги выставляете или разбираетесь с багами при экзотическом способе подключения фреймворка к проекту.
Но если для общего развития вам интересно разобраться с тем, как линкеры устроены и по каким принципам работают – держите серию коротких статей, написанных очень понятным языком.
Но если для общего развития вам интересно разобраться с тем, как линкеры устроены и по каким принципам работают – держите серию коротких статей, написанных очень понятным языком.