×Закрыть

iOS дайджест #31: что такое крутое iOS приложение, читаем документацию правильно и релиз Swift 5

В выпуске: разбираемся с Marzipan, хейтим fastlane, учимся использовать SPM для iOS приложений.

Статьи

A Best in Class iOS App
У каждого из нас наверняка есть свои критерии крутого iOS приложения. И если все подытожить, то получается неплохой такой список. И даже задача «добавить текстовое поле» может занять на порядок больше времени, если соблюдать все эти пункты.

How to read Apple’s developer documentation
Как только возникает вопрос, мы сразу же лезем в Гугл, а оттуда на — Stack Overflow, хотя документация от Apple обычно содержит даже больше информации и дает понимание, а не только решение.

Hiding third-party dependencies with protocols and extensions
Статья о том, что нужно прятать библиотеки в свои обертки. В принципе разумный совет, который часто так лень применять.

The Sad State of Logging Bugs for Apple
Что происходит с багами, когда вы репортите их в Apple? В комментариях один разработчик пишет, что уже 14 лет не фиксят его баг.

Life in the slow lane
Автор набрасывает на fastlane. Один из аргументов — там слишком много emoji🤦♂️🤦♀️.

Grouping elements for better accessibility on iOS
Не забываем про accessibility и про то, как группировка элементов облегчает работу при включенном VoiceOver.

How to find memory leaks in an iOS app
В каждой версии Xcode добавляют все новые инструменты для обнаружения утечек памяти. Так что не лишним будет проверить, нет ли у вас каких-то неочевидных утечек.

Swift

Swift 5 Release Notes for Xcode 10.2
Вышел Xcode 10.2 c поддержкой Swift 5, поэтому самое время освежить в памяти, что там нового.

’archivedData(withRootObject:)’ is not available on macOS 10.10 with Xcode 10.2
Кстати говоря, как только мы начали мигрировать проект под Xcode 10.2, столкнулись с интересным багом. Вот так и поддерживай macOS 10.10.

Handling Future Enum Cases
А при миграции на Swift 5 столкнулись с большим количеством ворнингов, связанных с этим proposal.

Missing Guide on Swift Code Style
Представляете себе мир, в котором все пишут код под iOS в одном стиле?

Dependency Injection in Swift with Protocols
Еще одна вариация на тему Injectable для внедрения зависимостей. Тоже имеет право на жизнь.

Why using isEmpty is faster than checking count == 0
Почему не надо использовать count, чтобы проверить, не пуста ли строка. Спойлер: для больших строк это будет очень долго.

Serialisation of enum with associated type
Сериализация objective-c enum выглядит просто, но что делать, если это swift enum c associated type?

Integration tests in Swift
Если вы в полной мере уже освоили юнит-тесты и думаете, что делать дальше, — вот интеграционные тесты.

Swift Package Manager builds iOS frameworks
Неужели в Xcode 10.2 можно использовать SPM для iOS проектов?

Код

The Many Offline Options for iOS Apps
Приходит заказчик к вам и говорит: «Хочу офлайн режим». И как его делать?

Chris Lattner on the origins of Swift
Если не слушали первый выпуск подкаста Swift Community Podcast, то настоятельно рекомендую к прочтению рассказ от создателя Swift про историю его создания.

Tips and Tricks to run your iOS app on the Mac with Marzipan
По Marzipan все еще мало информации, но надеемся, что на WWDC Apple сделает его публичным.

Bringing iOS Apps to macOS Using Marzipanify
А если вы все же хотите запустить приложение с помощью Marzipan уже сейчас, тогда вот полный гайд.

Importance of isViewLoaded when embedding child controllers
Казалось бы, что такого сложного в view controller containment, но есть ряд ошибок, которые встречаются в 90% проектов.

Two Takes on Adaptive Cell Layout
Ммм, Size classes, это так удобно, теперь легко можно делать UI под разные устройства в одном месте (нет).

UTF-8 String
В Swift 5 строки представлены в UTF-8 вместо UTF-16.

Библиотеки

Bagel
Бесплатный легковесный Charles для iOS приложений. Выглядит очень интересно.

iOS project template
Создать проект с нуля и подтягивать все зависимости всегда напряжно. Если ты делаешь это часто, то это слишком рутинно, а если редко, то можешь что-то забыть. Поэтому можно использовать такой вот шаблон или настроить его под себя.

LayoutInspector
Продолжая тему дебага — теперь легковесный Reveal.

onferences.digital
Просто сокровище для всех iOS разработчиков. Открываешь приложение и смотришь видео со всех конференций.

Attabench
Не уверены, какая реализация работает лучше? Тогда надо просто это измерить.

Swift Log
Наконец-то Apple дала ответ на вопрос «какой логгер использовать?».

Pock
Любопытная штука, которая дублирует док в тач баре.

Посмотреть

Xcode in 20 Seconds
Такие себе Tips&Tricks в формате видео.

ServerSide.swift
Меня очень радует, что уже появляются конференции, посвященные чисто разработке бэкенда на Swift.

Андрей Станкевич — спортивное программирование, Путин, образование / АйтиХайп
Интервью с, уже можно сказать, легендой русского олимпиадного программирования.


← Предыдущий выпуск: iOS дайджест #30

LinkedIn

2 комментария

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Серега, спасибо за подборку!

Подписаться на комментарии