iOS дайджест #29: лонгриды о Jailbreak, Marzipan, Build System, хаки из Твиттера

В выпуске: разочарование в софте, неправильное использование Reachability, Android для iOS-ников и немного про анимации.

Статьи

Swift in 2018 — The State of Developer Ecosystem Survey in 2018
Статистика по использованию Swift и Objective-C. Интересно, что уже 70% проектов так или иначе используют Swift.

Jailbreaks Demystified
Детальный пост о том, как работает джейлбрейк.

Why We Decided to Rewrite Uber’s Driver App
Uber решили сделать то, что Joel Spolsky советовал никогда не делать, а именно — переписывать приложение с нуля. Не каждый может позволить себе такую роскошь.

Моё разочарование в софте
«Нынешняя ситуация — полное дерьмо». Так автор статьи описывает свое отношение к софту, который не становится лучше с ростом производительности устройств.

iPhone XS: Why It’s A Whole New Camera
Halide (приложение-камера для iOS) написали детальный разбор, чем же камера в iPhone XS лучше, чем в iPhone X.

Why Most Unit Testing is Waste — Tests Don’t Improve Quality: Developers Do
Ой, короче, все эти ваши тесты — это мусор, они никому не нужны (нет).

Building an iOS App Without Xcode’s Build System
Еще один интересный лонгрид о том, как сделать все то, что делает Xcode, но без него. #Xcodeненужен

Shortcuts essentials in Xcode to speed up your workflow
Шорткаты экнономят много временим, поэтому каждый уважающий себя разработчик должен ими овладеть. Еще мой любимый вариант, которого нет в статье, это «Fix all in scope».

An incredibly nerdy deep-dive into the AirPower charging animation
Помните AirPower? А ту анимацию, когда кладешь девайс? Ну если да, тогда можете почитать, как устроена эта анимация.

Download: Google Camera with Night Sight for Google Pixel 3, Pixel 2, and Pixel
Тема немного не про iOS, но вы только посмотрите на эти ночные фотографии. Apple, доколе?

Best iOS hacks from Twitter: September Edition
Моя любимая рубрика от Flawless — лайфхаки из Твиттера. Надеюсь, ребята будут выпускать регулярно.

The Hows and Whys of Pair Programming
Еще раз про парное программирование — когда надо, не надо применять и зачем.

Android for iOS Developers: Kotlin Edition 2018
Адриан выложил свою книгу про Андроид для iOS-разработчиков. Ну что, погнали писать под Андроид.

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

Swift

Async/await in Swift unit tests
Unit-тесты это, конечно, хорошо, но тестирование асинхронного кода — не самая приятная задача. Поэтому Джон предлагает позаимствовать уже привычную во многих языках конструкцию async\await, только придется написать ее самостоятельно.

How Mirror Works
Давно не было хардкора. Майк Эш рассказывает, как устроен Mirror и рефлексия в Swift.

Streamlining tests setup with fixtures in Swift
Продолжаем делать юнит-тесты более читабельными с помощью вынесения создания объектов в отдельные функции.

Hiding Implementation Details Using internal Properties
Хороший пример того, что надо по возможности выносить все модули, и тогда можно будет по назначению использовать internal директиву доступа.

How CaseIterable Works Internally in Swift
Как устроен CaseIterable под капотом.

Capturing Self with Swift 4.2
В Swift 4.2 можно не использовать shadowing, чтобы использовать weak self. К тому же это был баг.

Codable: Tips and Tricks
Недавно нужно было использовать Codable (да, в macOS проектах это не так часто встречается, как в iOS) и нашел неплохие советы. Странно, что часть решений не встроены в Foundation.

The power of key paths in Swift
Сущность KeyPath не такая простая, как кажется, и с помощью нее можно неплохо улучшить читабельность кода.

What’s .self, .Type and .Protocol? Understanding Swift Metatypes
Ну и немного хардкора, чтобы разобраться в метатипах в Swift.

Код

iOS UI Automation Tests at Babylon
Лонгрид о UI тестах. Неплохо описано, как замокать сетевой слой, даже затронуты моменты BDD.

Layout Libraries for iOS. UIKit is Not The Only One
Небольшой обзор библиотек для лайаута. Если UIKit тормозит, то можно взять Texture или LayoutKit.

How to Extend LLDB to Provide a Better Debugging Experience
Инструменты должны работать на вас, поэтому разбираемся, как настроить LLDB под себя и добавить туда свои команды.

Marzipan: Porting iOS Apps to the Mac
Объявили месяц лонгридов, на этот раз про Marzipan. Кто уже пробовал запускать свои iOS приложения на macOS?

Open sourcing swift-html: A Type-Safe Alternative to Templating Languages in Swift
Point Free продолжают делиться своим кодом. На этот раз библиотека для создания HTML-страниц из Swift.

Building iOS dependencies with Carthage
Мне кажется, вопрос о вендоринге зависимостей часто возникает при смене команды. Как это делать с Carthage — тоже вопрос.

Tricky UIViewController transition animations
Про анимации у нас было как-то не много, но вот попался интересный пример с детальным разбором. Ожидание и реальность немного не совпали.

TIL: Boy, Have I Been Misusing SCNetworkReachability
Reachability не такой простой, как кажется, и его нельзя использоваться, чтобы 100% полагаться на наличие интернета. Детальнее можно почитать в обсуждении на GitHub.

Dark Mode and CSS
В последнем обновлении macOS Mojave сайты могут адаптироваться под темную тему системы.

Библиотеки

Gray
Красивая обертка для изменения темы для конкретного приложения. Интересно не столько посмотреть само приложение, как поизучать код приложения под macOS.

Sizes
Посмотреть, как выглядит ваше приложение в разных Size Classes, можно в одном симуляторе в пару кликов с помощью одной библиотеки.

BulletinBoard
Красивые выпадашки в стиле окна статуса AirPods.

wallpapper
В macOS Mojave появились динамические обои, но почему-то не рассказали, как добавить свои обои. По ссылке доступно приложение для создания таких обоев, а также можно почитать, как они устроены.

Voice Overlay
Пример UI для работы со Speech Framework. Лично я, как библиотеку, не стал бы ее использовать. Скорее, как пример реализации.

Smoke Framework
Весьма неожиданно — Amazon выпустила свой фреймворк для бекенда на Swift.

Public Betas
Apple наконец-то разрешила приглашать людей в TestFlight по ссылке, и сразу появился сервис, где можно легко записаться на бета-тест разных приложений.

NSFW
Библиотека, которая находит 18+ контент на фото. Удобно, чтобы воровать чужие фотки. Там еще в issues есть забавное обсуждение.

Pixel
Кому библиотеку-редактор фото на iOS бесплатно, без SMS, с открытым кодом?

Cardslider
Ramotion выпустили еще один UI компонент. Не знал, что у них есть iOS приложение-портфолио.

iOS project template
Если часто создаете новые проекты — эта библиотека может сэкономить вам много времени.

Introducing AloeStackView for iOS
Airbnb поделились своей наработкой — stack view, который отлично подходит для создания формочек. Говорят, что используют ее уже 2 года.

Видео

SwiftConf 18

СI/CD в iOS и Android

try! Swift NYC 2018

CocoaHeads Kyiv #14


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

Похожие статьи:
В рубрике DOU Проектор все желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем...
[Об авторе: Виталий Лаптенок — развивает свои продукты уже порядка 8 лет — начинал с проекта TUT.BY в Беларуси, где построил...
При сдаче сертификации нужны две вещи: собственно, знания предметной области и второе — умение сдавать конкретную...
Мінцифра спільно з Держспецзв’язку та Канцелярією прем’єр-міністра Республіки Польща підписали меморандум про...
Меня зовут Евгений Ласман. Я — DevOps-инженер в компании Provectus. За 12+ лет попробовал себя в роли системного...
Яндекс.Метрика