Раз мы начали день с языковых фичей, давайте ими же и закончим. Представьте, что у вас есть функция, возвращающая какое-то значение. Бывают случаи, когда вам надо просто ее вызвать без дальнейших операций с ее результатом. Если сделать это напрямую – получите варнинг. Чтобы обойти это, используйте аннотацию
https://twitter.com/BarekJaafar/status/1483577815253532676
@discardableResult.
https://twitter.com/BarekJaafar/status/1483577815253532676
Twitter
Jaafar Barek
💡 Swift Tip: If you have a function that has a return value, but in some scenarios you want to ignore it. You can use "@discardableResult" to avoid warnings or the usage of _ Example: #iOS #Swift #iosdev #programming #development
💩29😱17👍11🤔3🔥1
Статья с описанием того, как конкретно DocC преобразует граф символов в статический контент, и как подготовить его к размещению на GitHub Pages.
https://rhonabwy.com/2022/01/28/hosting-your-swift-library-docs-on-github-pages/
https://rhonabwy.com/2022/01/28/hosting-your-swift-library-docs-on-github-pages/
Rhonabwy
Hosting your Swift Library Docs on Github Pages
The beta for Xcode 13.3 dropped yesterday. With it came a released version of Swift 5.6 and a bunch of neat additions that the 5.6 release enables. A feature I was watching closely was two-fold: th…
👍9
iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
Я хочу потестить на канале новый формат – Q&A с классными экспертами в iOS разработке. Как это будет выглядеть – в определенный день эксперт подключается к нашему чату и в течение нескольких часов отвечает на все вопросы, которые прилетают. Потом мы из этого…
Готовимся тестировать новый формат на iOS Good Reads – Q&A с экспертами!
📆Дата: 11 февраля (пятница), с 11 до 13 часов
🙌Гость: Александр Зимин, которого вы знаете по бесконечности докладов, победам в контестах, и запускам крутых продуктов.
💬Формат: В 11 часов в следующую пятницу я запощу пост в канале с напоминанием о старте Q&A. В обсуждениях к нему пишите ваши вопросы к Саше, общайтесь, холиварьте и спорьте! После окончания я все подобью в удобный дайджест, чтобы опоздавшим было попроще поднять контекст.
👀Темы общения:
- Работа в стартапах
- Запуск своих проектов
- Из iOS-разработчика в продуктовый менеджмент
- NFT, запуск больших проектов
- Жизнь на Бали, жизнь в Лондоне
Ставьте ❤️, если придете, и приходите в реплаи к посту закидывать ваши идеи по улучшению формата!
📆Дата: 11 февраля (пятница), с 11 до 13 часов
🙌Гость: Александр Зимин, которого вы знаете по бесконечности докладов, победам в контестах, и запускам крутых продуктов.
💬Формат: В 11 часов в следующую пятницу я запощу пост в канале с напоминанием о старте Q&A. В обсуждениях к нему пишите ваши вопросы к Саше, общайтесь, холиварьте и спорьте! После окончания я все подобью в удобный дайджест, чтобы опоздавшим было попроще поднять контекст.
👀Темы общения:
- Работа в стартапах
- Запуск своих проектов
- Из iOS-разработчика в продуктовый менеджмент
- NFT, запуск больших проектов
- Жизнь на Бали, жизнь в Лондоне
Ставьте ❤️, если придете, и приходите в реплаи к посту закидывать ваши идеи по улучшению формата!
❤66
На Swift Forum активно обсуждается возможность добавления нового сахара для дженериков – дать возможность в параметрах функции вместо переусложненного синтаксиса использовать ключевое слово
https://forums.swift.org/t/pitch-opaque-parameter-types/54914/21
some.
https://forums.swift.org/t/pitch-opaque-parameter-types/54914/21
Swift Forums
[Pitch] Opaque parameter types
Hi all, Opaque result types have been part of the language for a while now. Ever since the early pitches, we've also talked about using some in parameter positions, which came up again in the recent thread on easing the learning curve for introducing generic…
👍10👎5🤔5
Как в iOS устроен render loop, какие проблемы с производительностью могут возникнуть на разных его этапах и как с ними бороться.
https://habr.com/ru/post/647177/
https://habr.com/ru/post/647177/
Хабр
Оптимизация рендера в iOS: frame buffer, Render Server, FPS, CPU vs GPU
Render Loop крутится — кадры мутятся. Доброго времени суток, уважаемые читатели. Здесь я начинаю свой цикл статей о работе с графикой в iOS. В моих планах разобраться с работой базовых механик...
🔥45👍3🤩1
Чистый код – это очень расплывчатое понятие (как и архитектура, кек). В каком бы контексте оно не использовалось, полезно пытаться выделить конкретные качества кода, о которых идет речь: читаемость, переиспользуемость, консистентность, тестируемость. Посмотрите на неплохую статью с критикой термина и пополните свой словарик для комментариев на code review.
https://www.steveonstuff.com/2022/01/27/no-such-thing-as-clean-code
https://www.steveonstuff.com/2022/01/27/no-such-thing-as-clean-code
👏10
Смотрите, нашел классное приложение для мака с набором разных полезных для разработчика штук:
- Форматирование и валидация JSON
- Тестирование регулярок
- Генерация UUID
- JWT генератор
- и еще десяток похожих штук
Все это по отдельности реализовано уже сотню раз, но каждый раз гуглить нужный сервис и вспоминать, а какой из них наименее отвратительный, надоедает. Само приложение платное, но из исходников собрать его вроде довольно просто.
https://github.com/DevUtilsApp/DevUtils-app
- Форматирование и валидация JSON
- Тестирование регулярок
- Генерация UUID
- JWT генератор
- и еще десяток похожих штук
Все это по отдельности реализовано уже сотню раз, но каждый раз гуглить нужный сервис и вспоминать, а какой из них наименее отвратительный, надоедает. Само приложение платное, но из исходников собрать его вроде довольно просто.
https://github.com/DevUtilsApp/DevUtils-app
🥰55🔥8👍3👎1
Меня недавно поругали, что как-то маловато появляется прикладных статей, которые помогают улучшить командные процессы разработки. Давайте попробуем почитать большой материал про фичефлаги: их интеграцию в приложение и влияние на процессы разработки. На мой взгляд, ничего нового нет, но давайте проверим, насколько вам понравится.
https://www.offnotes.org/feature-flags/
https://www.offnotes.org/feature-flags/
👍18
☕️Мы дожили до воскресенья, и это успех! Пора заварить чашечку кофе и нагнать пропущенные за неделю материалы. Помните, что я продолжаю писать дайджесты, только пока получаю публичное одобрение (я вообще зависимый от публичного одобрения человек), поэтому ставьте побольше положительных реакций вроде ❤️, 👍 и 🤩 – и я продолжу это делать!
🔥Лучшие материалы недели:
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