Разбираться в том, как работают балансировщики нагрузки, может быть полезно не только бэкендерам. Ребята из BuildBuddy, распределенного кэша для Bazel, рассказали, с помощью каких алгоритмов балансировки они решали задачу распределения билдов между агентами.
А если вы захотите погрузиться в тему сильнее, вот отличный выпуск Подлодки про устройство балансировщиков нагрузки и алгоритмы под капотом.
А если вы захотите погрузиться в тему сильнее, вот отличный выпуск Подлодки про устройство балансировщиков нагрузки и алгоритмы под капотом.
www.buildbuddy.io
Distributed Scheduling for Faster Builds | BuildBuddy
The distributed scheduler that powers BuildBuddy remote execution
Разбор двух модных способов организации навигации: решения от Badoo и библиотеки RouteComposer. Интересно даже не само сравнение, а выбранные автором критерии. Ну и прочитайте отдельно комментарий к статье от автора Route Composer, где он сильно не соглашается с обзором.
Хабр
Обзор решений для навигации в iOS
Всем привет! Меня зовут Тимур, я – iOS разработчик в hh.ru . В этой статье поговорим о фреймворкинге навигации в iOS. Я расскажу кулстори о популярных и не очень решениях и их преимуществах, а еще о...
NSPersistentCloudKitContainer – доступный с iOS 13 фреймворк для бесшовной синхронизации базы Core Data между устройствами. В статье разбираются не очень хорошо документированные особенности:
📌Отслеживание событий изменения данных
📌Типы и коды ошибок
📌Синхронизация с приложением и компликейшнами на Apple Watch
📌Обновление в бэкграунде
📌Подгрузка новых транзакций
📌Работа с различными экстеншнами
📌Отслеживание событий изменения данных
📌Типы и коды ошибок
📌Синхронизация с приложением и компликейшнами на Apple Watch
📌Обновление в бэкграунде
📌Подгрузка новых транзакций
📌Работа с различными экстеншнами
Crunchy Bagel
General Findings About NSPersistentCloudKitContainer
This article contains our findings when converting Streaks to use NSPersistentCloudKitContainer.
Lookin – альтернативный Reveal и Xcode View Debugger инструмент для просмотра и дебага иерархии вьюшек. Главные отличия от альтернатив в том, что он бесплатный и опенсорсный, и в том, что его можно запускать прямо на телефоне. Исходники тут.
GitHub
GitHub - hughkli/Lookin: Free macOS app for iOS view debugging.
Free macOS app for iOS view debugging. Contribute to hughkli/Lookin development by creating an account on GitHub.
Язык программирования iOS приложений (на котором вы пишете большую часть кода своих iOS проектов)
Anonymous Poll
91%
Swift
10%
Objective-C
1%
C++
2%
Kotlin
1%
JavaScript/TypeScript
2%
Dart
2%
Objective-C++
1%
Другое
6%
Посмотреть результаты
Начинаем исследование State of iOS Toolchain 2022! Ближайший месяц каждый день я буду выкладывать опрос про то, какими инструментами в определенной категории вы чаще всего пользуетесь. В итоге мы получим цельную картинку того, какой стек чаще всего выбирают в современной iOS разработке. После окончания исследования я обязательно ее оформлю в отдельную статью!
Если вам интересно поконтрибьютить в вопросы – оставляйте комментарии к этому доку.
Если вам интересно поконтрибьютить в вопросы – оставляйте комментарии к этому доку.
Google Docs
State of iOS Toolchain 2022
Во всех вопросах – мультивыбор. ✅ Основной язык программирования (на котором вы пишете большую часть кода) Swift Objective-C C++ Kotlin JavaScript/TypeScript Dart Другое ✅ Архитектура MVC MVVM VIPER MVP Redux TCA MVI CleanSwift RIBs Свой собственный подход…
Работа со строками – это весело! В статье рассказывается про особенности Unicode и работу в Swift с characters и scalars. Если после прочтения вам захочется сильнее погрузиться в тему кодировок, то начинайте копать отсюда:
1️⃣Серия статей про боли работы с разными кодировками текста
2️⃣Нетленочка Joel Spolsky про то, что каждый программист должен знать про работу с текстом
1️⃣Серия статей про боли работы с разными кодировками текста
2️⃣Нетленочка Joel Spolsky про то, что каждый программист должен знать про работу с текстом
Medium
Understanding Swift Strings, Emoji, Characters, and Scalars
Learn how Swift works with characters, using emoji as a fun and easy example
Если вы в основном дебажите свой код принтами, то выделите немного времени на изучение возможностей lldb. Это сэкономит вам тонны часов в будущем. Начать можно с того, как работает команда po (print object), которая помимо прочего позволяет исполнять Swift код прямо в дебаггере.
Вопрос #2 из State of iOS Toolchain 2022. Какие IDE вы используете чаще всего при разработке iOS приложений?
Anonymous Poll
94%
Xcode
4%
AppCode
16%
VSCode
8%
Sublime
3%
Vim
14%
Swift Playgrounds
2%
Другое
4%
Посмотреть результаты
Текст про историю создания и развития протокола JSON. Пара фактов для затравочки:
📌Ключи в JSON помещаются в кавычки по историческим причинам – чтобы при скармливании его интерпретатору JavaScript не возникало коллизий по зарезервированным словам.
📌Великолепная цитата автора JSON в ответ на набросы про то, что он переизобрел XML: «The good thing about reinventing the wheel is that you can get a round one».
📌Ключи в JSON помещаются в кавычки по историческим причинам – чтобы при скармливании его интерпретатору JavaScript не возникало коллизий по зарезервированным словам.
📌Великолепная цитата автора JSON в ответ на набросы про то, что он переизобрел XML: «The good thing about reinventing the wheel is that you can get a round one».
twobithistory.org
The Rise and Rise of JSON
Apple обеспечивает безопасность App Store во многом за счет вертикальной интеграции всех своих сервисов. Им принадлежит вся цепочка – начиная от контроля железа в телефоне, на котором запускается приложение, заканчивая каналом загрузки этих приложений в стор и механизмами их верификации. Сейчас идет много разговоров о том, что Apple вынудят разрешить установку альтернативных сторов на свои устройства. В статье детально разбирается, почему такое решение существенно ухудшит безопасность для конечных пользователей.
TidBITS
Apple’s App Store Stubbornness May Be iOS’s Greatest Security Vulnerability
Apple’s App Store helped make iPads and iPhones the most secure consumer-focused computers ever created. But Apple’s opaque policy enforcement and payment restrictions are now motivating regulators and courts to get involved, which will likely force changes…
Хотите получить оффер в крутую команду и бонусом к нему доп. зарплату на старте уже в эти выходные?
Тогда поспешите подать заявку до 22 апреля на Weekend Offer для мобильных разработчиков в команду мессенджера VK Teams.
Узнайте подробнее в видеоприглашении о продукте и задачах, которые вас ждут, и не упускайте свой шанс!
Тогда поспешите подать заявку до 22 апреля на Weekend Offer для мобильных разработчиков в команду мессенджера VK Teams.
Узнайте подробнее в видеоприглашении о продукте и задачах, которые вас ждут, и не упускайте свой шанс!
Вопрос #3 из State of iOS Toolchain 2022. Какие Git-клиенты вы используете?
Anonymous Poll
46%
Терминал
18%
Встроенный в IDE
29%
Fork
2%
GitUp
39%
SourceTree
5%
GitKraken
4%
Tower
8%
Другой клиент
0%
Не использую
4%
Посмотреть результаты
В Swift 5.6 появилась новая фича, расширяющая возможности автоматического вывода типов компилятором: type placeholders. Благодаря ей, в дженериках иногда можно использовать
_
вместо указания конкретного типа. За примерами кода – в статью.Swift by Sundell
Type placeholders in Swift | Swift by Sundell
New in Swift 5.6: We can now use type placeholders to select what generic types that we want the compiler to infer. Let’s take a look at how those placeholders work, and what kinds of situations that they could be really useful in.
Неочевидный совет – если в вашем приложении есть какой-то контент в WebView, то вы можете его дебажить с помощью специальных инструмента Safari – Web Inspector. С его помощью можно изучать иерархию DOM, менять CSS-свойства нод, выполнять произвольный JS и дебажить код.
Bendodson
Web Inspector on iOS devices and Simulators
How to debug HTML and JS in Safari iOS, SFSafariViewController, and WKWebView using Web Inspector on macOS.
Вопрос #4 из State of iOS Toolchain 2022. Где вы хостите свои репозитории?
Anonymous Poll
64%
GitHub
41%
GitLab
27%
Bitbucket
1%
JetBrains Space
9%
Локально
4%
Другое
6%
Посмотреть результаты
На SwiftUI уже написано достаточно много кода и приложений, чтобы можно было выделять часто встречающиеся антипаттерны. В статье разбирается несколько групп ошибок, ведущих к ухудшению фактического и воспринимаемого перфоманса приложений.
martinmitrevski
SwiftUI performance tips
Optimizing performance is definitely one of the most interesting topics, not only on iOS, but software development in general. There are many thought provoking challenges, accompanied with a detect…
На прошлой неделе я выкладывал статью про weak self в Swift. Держите еще один материал по теме, предлагающий три правила по работе с self в замыканиях:
1️⃣A strongly-retained
2️⃣A weakly retained
3️⃣Upgrade
1️⃣A strongly-retained
self
isn’t always a retain cycle2️⃣A weakly retained
self
will never be a retain cycle3️⃣Upgrade
self
to strong at the top of closures to avoid weird behaviorВопрос #5 из State of iOS Toolchain 2022. Что вы используете на сетевом слое своих приложений?
Anonymous Poll
61%
URLSession
15%
Moya
43%
Alamofire
0%
Siesta
0%
Twitter Network Layer
3%
Другую готовую библиотеку
16%
Свою библиотеку
9%
Посмотреть результаты
Если вы привыкли использовать функцию
addSubview
для добавления вьюшек в иерархию, в SwiftUI вам надо будет переучиваться на использование transitions, которые обрабатывают добавление/удаление вьюшек автоматически. Держите подробную статью от objc.io про Transitions в SwiftUI, с хорошими схемами и примерами кода.www.objc.io
Transitions in SwiftUI
Simple but powerful