☕️Мы дожили до воскресенья, и это успех! Пора заварить чашечку кофе и нагнать пропущенные за неделю материалы. Помните, что я продолжаю писать дайджесты, только пока получаю публичное одобрение (я вообще зависимый от публичного одобрения человек), поэтому ставьте побольше положительных реакций вроде ❤️, 👍 и 🤩 – и я продолжу это делать!
🔥Лучшие материалы недели:
Apple разрешили выкладывать приложение в App Store в приватном режиме
Устройство render loop
Приложение-органайзер для разработчика
🏎Меня постоянно тянет читать статьи про оптимизацию перфоманса, а на этой неделе их было особенно много.
Перенастраиваем линкер для ускорения запуска
Твиттер-тред с разными советами по оптимизации
Сезон Podlodka iOS Crew про оптимизации перфоманса
👷♀️А теперь ударим в следующую группу – любителей почитать про архитектуру.
Как добавление локализации влияет на кодовую базу
Продолжение цикла про Microapps Architecture
Видео: Интеграция SwiftUI в легаси кодовую базу в PSPDFKit
Нет такой вещи как чистый код
💬Напоминаю, что 11 февраля будет исторический день – в iOS Good Reads появится что-то кроме ссылок на чужие статьи. К нам заглянет Александр Зимин и поотвечает в чате на ваши вопросы про продакт-менеджмент, Бали и NFT стартапы!
👀А если вам хочется читать интересные материалы про что-то кроме iOS, подписывайтесь на мои другие каналы: @leadgr, @droidgr и @qa_channel. Там на этой неделе были вот такие штуки:
У менеджеров есть альтернатива техдолгу – менеджерский долг
Две малоизвестные фичи Charles Proxy
Как тестировать модуль KMM с бизнес-логикой
Поддержите дайджест так, чтобы земля затряслась! Покажите вашу любовь и поставьте самую лучшую реакцибю из тех, что есть у вас под рукой. А если будут идеи, как формат улучшить – пишите в комментариях!
#digest
🔥Лучшие материалы недели:
Apple разрешили выкладывать приложение в App Store в приватном режиме
Устройство render loop
Приложение-органайзер для разработчика
🏎Меня постоянно тянет читать статьи про оптимизацию перфоманса, а на этой неделе их было особенно много.
Перенастраиваем линкер для ускорения запуска
Твиттер-тред с разными советами по оптимизации
Сезон Podlodka iOS Crew про оптимизации перфоманса
👷♀️А теперь ударим в следующую группу – любителей почитать про архитектуру.
Как добавление локализации влияет на кодовую базу
Продолжение цикла про Microapps Architecture
Видео: Интеграция SwiftUI в легаси кодовую базу в PSPDFKit
Нет такой вещи как чистый код
💬Напоминаю, что 11 февраля будет исторический день – в iOS Good Reads появится что-то кроме ссылок на чужие статьи. К нам заглянет Александр Зимин и поотвечает в чате на ваши вопросы про продакт-менеджмент, Бали и NFT стартапы!
👀А если вам хочется читать интересные материалы про что-то кроме iOS, подписывайтесь на мои другие каналы: @leadgr, @droidgr и @qa_channel. Там на этой неделе были вот такие штуки:
У менеджеров есть альтернатива техдолгу – менеджерский долг
Две малоизвестные фичи Charles Proxy
Как тестировать модуль KMM с бизнес-логикой
Поддержите дайджест так, чтобы земля затряслась! Покажите вашу любовь и поставьте самую лучшую реакцибю из тех, что есть у вас под рукой. А если будут идеи, как формат улучшить – пишите в комментариях!
#digest
Apple
Unlisted App Distribution - Support - Apple Developer
Release your apps that aren’t suited for public distribution as unlisted on the App Store, discoverable only with a direct link. Unlisted apps don’t appear in any App Store categories, recommendations, charts, search results, or other listings. In addition…
👏47🔥29👍22👎3🥰2❤1🤩1
Довольно холиварная статья от ВК про то, что использование переборов и сопоставлений – возможный признак плохого кода.
https://habr.com/ru/company/vk/blog/646789/
https://habr.com/ru/company/vk/blog/646789/
Хабр
Почему я против enum
Меня зовут Саша Терентьев, я из команды ленты ВКонтакте. В этой статье поделюсь мыслями о проблемах кода, где используются enum и сопоставления типов. Часто...
👎39💩18👍8🤔5🤮2👏1
Максимально простой инструмент, чтобы проверить, как иконка приложения будет выглядеть на вашем устройстве:
1. Загружаете иконку
2. Сохраняете страницу на рабочий стол
3. Профит!
https://iosfeeds.com/tools/icon-preview
1. Загружаете иконку
2. Сохраняете страницу на рабочий стол
3. Профит!
https://iosfeeds.com/tools/icon-preview
Iosfeeds
App Icon Preview | iOS Feeds
Newest iOS/Swift articles and videos from the community + newsletters & podcasts. Learn something new!
👎8👍5
При работе с асинхронным кодом вопросам управления памятью нужно уделять еще больше времени, чем обычно. Например, легко случайно напороться на неявный захват объекта в каком-то из потоков, и получить утечку памяти. В статье рассматриваются особенности управления памятью при работе async/await и то, как защититься от частых ошибок.
https://swiftbysundell.com/articles/memory-management-when-using-async-await/
https://swiftbysundell.com/articles/memory-management-when-using-async-await/
Swift by Sundell
Memory management when using async/await in Swift | Swift by Sundell
Managing an app’s memory is something that tends to be especially tricky when it comes to asynchronous code, so let’s take a look at how to do just that when using async/await.
👍11🔥1
➡️ Делаем оффер iOS- и Android-разработчикам за один день. Приглашаем в команды Мобильного банка, Тинькофф Инвестиций, Тинькофф Бизнеса и еще трех проектов.
Вы — в течение одного дня общаетесь с нашей командой. Мы — делаем оффер, если работа подойдет вам по условиям, а задачи — по скиллам.
🖇 Все будет онлайн, 19 февраля. Заявки принимаем до 15 февраля включительно. Подробности и регистрация по ссылке: https://l.tinkoff.ru/mobile-onedayoffer
Вы — в течение одного дня общаетесь с нашей командой. Мы — делаем оффер, если работа подойдет вам по условиям, а задачи — по скиллам.
🖇 Все будет онлайн, 19 февраля. Заявки принимаем до 15 февраля включительно. Подробности и регистрация по ссылке: https://l.tinkoff.ru/mobile-onedayoffer
💩10🔥9
Команда Swift уже какое-то время работает над интеропом с C++. Благодаря этому компилятор Swift уже сейчас может импортировать и использовать некоторые плюсовые API, например
На прошлой неделе произошел важный шаг – вокруг проекта по интеропу была сформирована отдельная рабочая группа. Обычно это означает, что направление переходит в разряд фокусных и ему будет уделяться сильно больше внимания. Короче, отличные новости!
Если вам интересно узнать побольше про текущий подход к C++ интеропу, прочитайте этот манифест. А если хотите следить за новостями в этом направлении, то подписывайтесь на эту ветку Swift Forums.
https://forums.swift.org/t/swift-and-c-interoperability-workgroup-announcement/54998
std::vector.
На прошлой неделе произошел важный шаг – вокруг проекта по интеропу была сформирована отдельная рабочая группа. Обычно это означает, что направление переходит в разряд фокусных и ему будет уделяться сильно больше внимания. Короче, отличные новости!
Если вам интересно узнать побольше про текущий подход к C++ интеропу, прочитайте этот манифест. А если хотите следить за новостями в этом направлении, то подписывайтесь на эту ветку Swift Forums.
https://forums.swift.org/t/swift-and-c-interoperability-workgroup-announcement/54998
Swift Forums
Swift and C++ interoperability workgroup announcement
Over the past few years there has been a huge amount of interest in bidirectional interoperability between Swift and C++. Thanks to the hard work of zoecarver, egor.zhdan, gribozavr, Michael Forster, Marcel Hlopko, scentini, and many other contributors, the…
🎉27👍6❤2👎2
В Swift есть 13 различных числовых типов. Понимать их различия – супер важно, потому что от этого зависит, как вы будете выражать в коде доменную модель вашего приложения. В статье рассматривается тип Decimal, его особенности и подходящие юзкейсы.
https://www.jessesquires.com/blog/2022/02/01/decimal-vs-double/
https://www.jessesquires.com/blog/2022/02/01/decimal-vs-double/
Jesse Squires
When should you use Decimal instead of Double?
In Swift there are 13 numeric types. Like most other programming languages, Swift provides signed integers of various sizes, corresponding unsigned integers,...
👍19👎2
Если с Decimal вы разобрались, то можно посмотреть на NSMeasurement – специальный класс для работы с различными единицами измерения, который в паре с соответствующим форматтером еще и хорошо поддается локализации.
https://www.andyibanez.com/posts/using-nsmeasurement-for-working-with-dimensions-and-units/
https://www.andyibanez.com/posts/using-nsmeasurement-for-working-with-dimensions-and-units/
Andy Ibanez - iOS Developer
Using NSMeasurement For Working with Dimensions and Units
Learn how to use NSMeasurement to work with dimensions and units.
👍17❤1
Гайд по использованию и настройке утилиты 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…
🔥8👎1
📱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
🔥10👍2
В 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
💩55👍10🤮6🔥3
В обсуждении подходов к работе с диплинками в 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,...
👍9
Держите памятку с главными шорткатами для Xcode, которые могут полностью заменить собой мышь или тачпад.
https://swiftcraft.io/static/images/xcode-keyboard-only-workflow-print.pdf
https://swiftcraft.io/static/images/xcode-keyboard-only-workflow-print.pdf
👍32🔥25
В открытый доступ выложили все доклады недавней конференции 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
👏10🔥5👍2
Кажется, подошел к концу цикл статей про 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…
👍32👎2❤1🔥1
🔥Начинаем текстовый Q&A с Александром Зиминым (@azimin) про:
- Работу в стартапах
- Запуск своих проектов
- Из iOS-разработчика в продуктовый менеджмент
- NFT, запуск больших проектов
- Жизнь на Бали, жизнь в Лондоне
💬Как принять участие в обсуждении:
1. Пишите любой вопрос комментарием к этому посту
2. Используйте реплаи при дальнейшем общении
📆Заканчиваем в 13 часов, так что не откладывайте!
- Работу в стартапах
- Запуск своих проектов
- Из iOS-разработчика в продуктовый менеджмент
- NFT, запуск больших проектов
- Жизнь на Бали, жизнь в Лондоне
💬Как принять участие в обсуждении:
1. Пишите любой вопрос комментарием к этому посту
2. Используйте реплаи при дальнейшем общении
📆Заканчиваем в 13 часов, так что не откладывайте!
🔥31👍3❤2
Ексей Пантелеев в нашем чате уже рассказывал про то, почему всем 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 с возможностью трудоустройства
💩67👍10👎2🔥1
Если вы любите учиться через изучение кода других проектов, то вот вам куча идей для вдохновения. По ссылке – витрина open source приложений для macOS с возможностью фильтрации по используемому фреймворку: AppKit, SwiftUI, Electron.
https://www.oss.wiki/
https://www.oss.wiki/
🔥30👍6👎1
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.
❤10💩7👍2
Команда 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?
👍6👎5