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-розробників. Ну що, погнали писати під Android.
Про складність програмування 
Коли рішення проблеми займає менше хвилини, а розгорнути оточення і все перевірити займає набагато більше часу. Знайоме?
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, I Have 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 роки.
Відео
? Попередній випуск: iOS дайджест #28 
Опубліковано: 10/11/18 @ 11:00
Розділ  Різне  
Рекомендуємо:
Різні способи дебага запитів з Android-пристроїв і емуляторів
 Як подолати страх публічних виступів: поради бізнес-тренера
 Перегляд бізнес-моделі через 3 дні після старту реклами в Фейсбуці
 Предметно-орієнтована архітектура Rails
 «У 2016-му моя зарплата з двох шкіл становила 2400 гривень». Як я пройшов шлях від сільського вчителя до програміста