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 роки.

Відео

SwiftConf 18

СІ/CD у iOS і Android

try! Swift NYC 2018

CocoaHeads Kyiv #14


? Попередній випуск: iOS дайджест #28

Опубліковано: 10/11/18 @ 11:00
Розділ Різне

Рекомендуємо:

Різні способи дебага запитів з Android-пристроїв і емуляторів
Як подолати страх публічних виступів: поради бізнес-тренера
Перегляд бізнес-моделі через 3 дні після старту реклами в Фейсбуці
Предметно-орієнтована архітектура Rails
«У 2016-му моя зарплата з двох шкіл становила 2400 гривень». Як я пройшов шлях від сільського вчителя до програміста