Вопрос #9 из State of iOS Toolchain 2022. Как организован код у вас в проекте?
Anonymous Poll
32%
По слоям
36%
По фичам
30%
По компонентам
21%
Все вперемешку
3%
Другое
15%
Посмотреть результаты
👎24👍3
MockingKit – это Swift библиотека для создания удобных динамических моков протоколов и классов. В отличие от моков, создаваемых вручную, в этом случае не придется реализовывать внутреннюю логику руками. Моки автоматически будут записывать, кто и сколько раз к ним обратился, и какую информацию передал.
👍17🔥2
Environment в SwiftUI работает как словарь, в котором каждому ключу соответствует определенный тип данных. Например,
isEnabled
гарантированно содержит Boolean, а font
– Optional<Font>.
Держите Gist с реализацией аналогичной структуры данных, и статью про особенности ее использования.Gist
Code for my article "A heterogeneous dictionary with strong types in Swift" https://oleb.net/2022/heterogeneous-dictionary/
Code for my article "A heterogeneous dictionary with strong types in Swift" https://oleb.net/2022/heterogeneous-dictionary/ - HeterogeneousDictionary.swift
👍6💩2🤔1
Вопрос #10 из State of iOS Toolchain 2022. Какие языки вы используете для скриптинга и автоматизации своих задач?
Anonymous Poll
44%
Bash
26%
Python
31%
Ruby
32%
Swift
2%
Kotlin
5%
JavaScript/TypeScript
3%
AppleScript
3%
Другое
16%
Не использую никаких
14%
Посмотреть результаты
Любое приложение, которое делает https запросы, спамит в консоль логами вида
[boringssl] boringssl_metrics_log_metric_block_invoke(151) Failed to log metrics
. Автор статьи раскапывает причину их появления с помощью дизассемблера и находит способ, как их можно заглушить.Хабр
[boringssl] Failed to log metrics
Наверное, каждый iOS разработчик сталкивался с этой проблемой. Любое приложение, которое делает https запросы, получает в лог эти мистические сообщения от boringssl : [boringssl]...
🔥46👍6
SwiftNIO в ближайшем релизе дропают поддержку CocoaPods, с рекомендацией всем пользователям переходить на SPM. Основная причина – релиз в CocoaPods довольно трудоемкий, требует поддержки кучи podspec и постоянного разбора проблем подов. Кажется, первая ласточка того, что использование библиотеками CocoaPods будет постепенно снижаться.
Swift Forums
SwiftNIO is dropping support for CocoaPods
Hi NIO users, The next set of NIO releases will be the final set for which we publish CocoaPods. The final version of each package supporting CocoaPods will be: SwiftNIO 2.40.0 SwiftNIO HTTP/2 1.21.0 SwiftNIO SSL 2.19.0 SwiftNIO Transport Services 1.12.0…
❤26🤮11👍8💩3😢2🎉2
Вопрос #11 из State of iOS Toolchain 2022. Какие Proxy клиенты вы используете?
Anonymous Poll
51%
Charles
28%
Proxyman
5%
Другое
21%
Не использую
9%
Посмотреть результаты
👍1
Интересный кейс поэтапной проработки архитектуры SwiftUI приложения со сложным лэйаутом из нескольких таблиц, данные которых зависят друг от друга.
Medium
SwiftUI Case Study: Data modelling of Brotherhood Alchemist
SwiftUI is relatively new and many of us in the iOS development community are still adapting to this declarative language. There are many…
👍19
Два неожиданных факта про отзывы к приложениям:
1️⃣Их количество и оценки значимо влияют на поисковые позиции в сторе.
2️⃣При использовании системного API для предложения оценить приложение, показ алерта не гарантирован – iOS сама решает, показывать его или нет.
Твиттер-тред с деталями.
1️⃣Их количество и оценки значимо влияют на поисковые позиции в сторе.
2️⃣При использовании системного API для предложения оценить приложение, показ алерта не гарантирован – iOS сама решает, показывать его или нет.
Твиттер-тред с деталями.
Twitter
Ryan McLeod
On March 29th I released an update for @blackboxpuzzles. New ratings shot up massively overnight all thanks to a very small change. Having lots of ratings is a nice vanity metric but can also impact search rank, conversions, etc so… 🧵 A cautionary thread…
😱11👍2😁1
Мы в канале регулярно вспоминаем Realm, который недавно обрел вторую жизнь, став мультиплатформенным. Несмотря на то, что Core Data закрывает большинство потребностей по работе с данными, Realm прочно держит свою нишу, и иметь свое собственное представление о его работе – очень полезно. Чтобы разобраться в деталях, подключайтесь к воркшопу который проведет Антон Марунько, iOS Team Lead в Kupibilet, где расскажет, как с помощью Realm можно работать с данными в простом приложении и поотвечает на вопросы.
На вебинар стоит заглянуть и тем, кто только планирует вкатываться в iOS разработку. Помимо технической части, на нем поговорят и про актуальность профессии и перспективы в текущей обстановке новых ограничений от Apple.
На вебинар стоит заглянуть и тем, кто только планирует вкатываться в iOS разработку. Помимо технической части, на нем поговорят и про актуальность профессии и перспективы в текущей обстановке новых ограничений от Apple.
Otus
Курс разработчик iOS, базовый уровень
Научитесь разрабатывать приложения для мобильных устройств Apple без знаний программирования
💩50👍6
Вопрос #12 из State of iOS Toolchain 2022. Какие линтеры/форматтеры вы используете для Swift кода?
Anonymous Poll
3%
swift-format
13%
SwiftFormat
76%
SwiftLint
1%
Другое
15%
Не использую
8%
Посмотреть результаты
🤔2🤮2
Bazel – это альтернативная билд система, которая относительно распространена среди Android разработчиков, но засматривается и на iOS. Ее основные плюсы – инкрементальная сборка из коробки и отвязанность от xcodeproj файлов.
Держите туториал по тому, как затащить Bazel в существующий iOS проект, подключить инкрементальную сборку и кеширование скомпилированных модулей.
Держите туториал по тому, как затащить Bazel в существующий iOS проект, подключить инкрементальную сборку и кеширование скомпилированных модулей.
Medium
Building iOS apps faster using Bazel
Learn how to build iOS apps without Xcode and faster
💩31👍12❤5🤔4
Вопрос #13 из State of iOS Toolchain 2022. Как вы отлаживаете iOS приложения?
Anonymous Poll
68%
Принты
84%
Брейкпойнты
13%
os_log
48%
Команды lldb
60%
Xcode View Debugger
7%
Reveal
7%
Другие инструменты
8%
Посмотреть результаты
Практически любую проблему можно решить добавлением в проект еще одной зависимости. Этот подход очень распространен среди JS проектов, но и в iOS им любят злоупотреблять. Но зависимости не даются бесплатно, у них есть своя цена:
📌Сложности с управлением их версиями
📌Необходимость проверять и поддерживать их изменения при апдейте версии
📌Увеличение билд тайма
📌Необходимость закапываться в исходники библиотеки при появлении проблем
📌Влияние на архитектуру проекта
📌Общий рост размера кодовой базы
📌Потенциальные дыры в безопасности
📌Усложнение онбординга новых разработчиков
В статье неплохо раскладываются все эти проблемы. Подойдет, чтобы скинуть вашему коллеге, который в очередной раз затащил в Podfile что-то странное.
📌Сложности с управлением их версиями
📌Необходимость проверять и поддерживать их изменения при апдейте версии
📌Увеличение билд тайма
📌Необходимость закапываться в исходники библиотеки при появлении проблем
📌Влияние на архитектуру проекта
📌Общий рост размера кодовой базы
📌Потенциальные дыры в безопасности
📌Усложнение онбординга новых разработчиков
В статье неплохо раскладываются все эти проблемы. Подойдет, чтобы скинуть вашему коллеге, который в очередной раз затащил в Podfile что-то странное.
Jason Zurita
The Hidden Costs of Your Dependencies
👍20💩3
Вопрос #14 из State of iOS Toolchain 2022. С какими сетевыми протоколами чаще всего работают ваши приложения?
Anonymous Poll
93%
JSON
6%
XML
11%
Protobuf
3%
Другое
6%
Посмотреть результаты
🤯6👍5💩4
Как бы вы поступили, если бы вам надо было придумать способ сериализовать AttributedString? Скорее всего, реализовали бы какую-нибудь структуру, в которой ставили бы в соответствие рейнджу символов определенное свойство. И такой подход быстро сломался бы. Про то, почему так произошло бы, и как подходить к такой залаче правильно – в статье.
Ole Begemann
AttributedString’s Codable format and what it has to do with Unicode
Don’t store string indices or offsets if possible. They aren’t stable over time or across runtime environments.
👍7💩4
Иметь стандартизированный подход к определению версий приложений – очень полезно. Это упрощает коммуникации между командами, триаж багов, предсказуемость объема релиза. В статье разбирается несколько подходов к определению версий мобильных приложений.
Runway
How — and why — to think about mobile app versioning | by Runway
Like everything in software engineering, there's actually a concrete set of considerations and standards to follow that will help you to decide how to version your apps and get the most out of versioning for your team.
👍4
Вопрос #15 из State of iOS Toolchain 2022. Какими сервисами для CI/CD вы пользуетесь?
Anonymous Poll
29%
GitHub
40%
GitLab
4%
CircleCI
2%
TravisCI
28%
Jenkins
15%
TeamCity
3%
Xcode Cloud
11%
Другое
16%
Посмотреть результаты
Админ нашего чата Евгений Елчев, известный многим как Джон Фир, закончил записывать свой бесплатный курс по Dart и Flutter. Все космические 102 урока доступны на Youtube, смотрите их и подписывайтесь на Женю, он крутой!
🔥147👍12💩12❤5👎1
Apple выкатили детали про то, какие именно приложения подлежат удалению из App Store:
📆Не обновлялись последние три года
🫙За последний год практически не скачивались
На то, чтобы отреагировать на уведомление и обновить приложение, разработчикам будет даваться 90 дней.
📆Не обновлялись последние три года
🫙За последний год практически не скачивались
На то, чтобы отреагировать на уведомление и обновить приложение, разработчикам будет даваться 90 дней.
Apple
Clarifying criteria & new timing extension for App Store Improvements process - Latest News - Apple Developer
User trust in quality apps is the basis for all we have done in building and running the App Store.
Back in 2016, to ensure a great user experience and at the suggestion of developers, we launched the App Store Improvements process to remove apps that no…
Back in 2016, to ensure a great user experience and at the suggestion of developers, we launched the App Store Improvements process to remove apps that no…
👍22🤔13❤1🤬1