iOS дайджест #25: два года с React Native, пишем тестируемый код, вспоминаем основы Computer Science
В выпуске: Swift NIO, лайфхаки, iPhone SDK исполнилось 10 лет, полное руководство по настройке Push уведомлений.
Статьи
Handling storyboard merge conflicts
Советы, как решать конфликты при мерже storyboards.
Xcode’s Secret Performance Tests
Performance тесты в Xcode можно заставить проверять не только длительность выполнения, но объем потребляемой памяти.
Solving a Mysterious Heap Corruption Crash
Увлекательная история о том, как ребята искали креш у себя в приложении, а нашли баг в Swift.
A Lot Can Happen in a Decade
История о том, каким был iPhone SDK 10 лет назад.
Testable interface design with enums
Учимся проектировать код с учетом покрытия тестами.
twitter.com/...status/967652885604450305
Apple уделяют большое внимание accessibility в приложениях. При строительстве The Apple Park они тоже не забыли об этом. Доступ целый тред с фото.
iOS remote push notifications in a nutshell
Полное руководства как настроить пуши. Если делаешь это редко, то можно и забыть какой-то шаг. Полезно иметь под рукой.
Open Source Society University
Неплохая подборка по Computer Science. Алгоритмы, структуры данных, компиляторы, теория игры и многое другое.
Has iOS 11 really affected star ratings?
Исследование о том, насколько изменились рейтинги приложений с новым AppStore.
Firebase Crashlytics graduates from beta
Firebase Crashlytics выходит из беты, а это значит, что старый Crashlytics скоро будет недоступен. Готовимся к переезду.
Apple news & rumors from a developer’s perspective
Новый подкаст о новостях и слухах в мире Apple, но с точки зрения разработчиков. В первом выпуске ребята разговаривают о
A µTutorial on Swift NIO
Apple недавно выпустила фреймворк для бекенда на Swift — SwiftNIO. Как и полагается, у этого инструмента слишком низкоуровневый API. Разбираемся, как написать высокоуровневый API наподобие Express.js.
Best iOS hacks from Twitter: January & February Edition
Очередная подборка лайфхаков из твиттера от Лизы.
Uh Oh! Unified Logs in High Sierra (10.13) Show Plaintext Password for APFS Encrypted External Volumes via Disk Utility.app
Что-то у Apple не ладится с безопасностью. На этот раз писали пароль от вольюма в лог в открытом виде.
Code
Two Years of React Native
Artsy рассказывают о их двухлетнем опыте использования React Native. Также доступна серия других их статей о React Native.
URLRequest debugging
Расширение URLRequest, которое конвертирует запрос для запуска в терминале с помощью cURL. Для дебаггинга весьма полезно.
XCTKVOExpectation for native Swift key paths
XCTKVOExpectation не поддерживает свифтовый keyPath, поэтому можно написать удобное расширение. Помним о том, что тесты должны быть не менее читабельны, чем сам код.
Big List of Naughty Strings
Просто список строк, которые потенциально могут сломать ваше приложение.
TheParallaxView ∙ Illusion of depth by 3D head tracking on iPhone X
3D эффект на iPhone. Лучше один раз увидеть, чем сто раз читать. Реализация доступна на GitHub.
Stealing a User’s Phone Number
Уязвимость, позволяющая узнать номер телефона без запроса каких-либо прав доступа.
Do you often forget [weak self]? Here’s a solution
Синтаксический сахар для предотвращения утечек памяти. Единственная проблема таких штук — приучить всю команду использовать их.
Immutable Model Mutability
Избавляемся от изменяемых моделей.
Preventing views from being model aware in Swift
Отделить UI слой от модели намного проще, чем кажется. И вот отличный пример.
SwiftTips
Еще один набор с короткими советами по Swift.
What’s new in Swift 4.1?
Swift 4.1 включается в себя ряд интересных изменений, с каждым из которых можно ознакомиться с помощью Playground.
CocoaPods 1.5.0 — Swift Static Libraries
Теперь поды можно подключать как статические библиотеки.
Tools & Libs
try! Swift Tokyo 2018 — Introducing Charles for iOS
Charles на iOS уже доступен в AppStore.
An iOS app in assembly
Наконец-то iOS приложения можно писать на ассемблере. Вот теперь заживем.
Resumable Assert
Ассерты, после которых можно продолжать выполнение приложения. Выглядит интересно, но интегрировать в проект я бы не стал.
Zepcode
Zeplin недавно предоставили возможность писать расширения для одноименного приложения и вот уже доступно первое расширение. Кроме стандартных штук, оно позволяют генерировать код для обводок, теней и градиентов.
Exploit11.2
Пару выпусков назад был взлом iOS 11.1.2, теперь доступен новый для iOS 11.2.
ContextMenu
Контекстное меню как в Things 3. Выглядит довольно неплохо.
Peek
Шикарный пример, как нужно продвигать свои библиотеки.
Xcode Releases
Описание, ссылки, release notes для Хcode. Можно даже скачать Xcode 1.
← Предыдущий выпуск: iOS дайджест #24