Замечательная статья от инженера, который полтора года работал продактом, а потом снова вернулся к программированию. Прочитайте, чтобы понять, нужен ли и вам такой карьерный переход.
http://artsy.github.io/blog/2020/07/23/from-engineering-to-product-management-and-back-again/
http://artsy.github.io/blog/2020/07/23/from-engineering-to-product-management-and-back-again/
Вышли новые беты всего подряд. Держите release notes.
Xcode: https://developer.apple.com/documentation/xcode-release-notes/xcode-12-beta-release-notes
iOS: https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-14-beta-release-notes
macOS: https://developer.apple.com/documentation/macos-release-notes/macos-big-sur-11-beta-release-notes
Xcode: https://developer.apple.com/documentation/xcode-release-notes/xcode-12-beta-release-notes
iOS: https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-14-beta-release-notes
macOS: https://developer.apple.com/documentation/macos-release-notes/macos-big-sur-11-beta-release-notes
Если вас тоже бесят двухуровневые вкладки в новой бете Xcode, вот как их отключить.
https://www.jessesquires.com/blog/2020/07/24/how-to-fix-the-incomprehensible-tabs-in-xcode-12/
https://www.jessesquires.com/blog/2020/07/24/how-to-fix-the-incomprehensible-tabs-in-xcode-12/
Jesse Squires
How to fix the incomprehensible tabs in Xcode 12
Xcode 12 was released and it includes a change to how tabs and navigation work. In Xcode 12, the tabs have their own tabs. It makes no sense to me. I know we...
Хороший овервью вопросов безопасности iOS приложений от Вадима Дробинина.
https://drobinin.com/talks/2020/ios-security-deep-dive-i/
https://drobinin.com/talks/2020/ios-security-deep-dive-i/
Drobinin
iOS Security: Deep Dive I by Vadim Drobinin
The first part of a thorough introduction into iOS Security, from various pentesting techniques, to possible flaws to use-cases and tools.
Детально про то, как организовано управление ресурсами в swift packages.
https://scorpios.home.blog/2020/07/25/resources-are-coming-to-swift-packages/
https://scorpios.home.blog/2020/07/25/resources-are-coming-to-swift-packages/
Scorpios
Resources are Coming to Swift Packages
Introduction In one of my previous articles, I mentioned how SPM (Swift Package Manager) changed the way I build and maintain my Code. I praised the deep integration Xcode 11 has with Swift Package…
Учимся правописанию
Правильно: Xcode
Неправильно: xCode, XCode, X code
Правильно: iOS
Неправильно: IOs, Ios, iOs, IOS, ioS
Правильно: watchOS
Неправильно: Watch OS, WatchOs, WATCHOs
Правильно: App Store
Неправильно: AppStore, Upstore
Не забудьте переслать этот пост всем знакомым эйчарам и тем самым сделать этот мир чуть менее плохим местом.
Правильно: Xcode
Неправильно: xCode, XCode, X code
Правильно: iOS
Неправильно: IOs, Ios, iOs, IOS, ioS
Правильно: watchOS
Неправильно: Watch OS, WatchOs, WATCHOs
Правильно: App Store
Неправильно: AppStore, Upstore
Не забудьте переслать этот пост всем знакомым эйчарам и тем самым сделать этот мир чуть менее плохим местом.
Продолжение туториала по использованию Swift для создания бэка на AWS Lambda.
https://fabianfett.de/swift-on-aws-lambda-creating-your-first-http-endpoint
https://fabianfett.de/swift-on-aws-lambda-creating-your-first-http-endpoint
Рекламный пост
📱Открытое занятие "Делаем многопоточное приложение Kotlin Multiplatform (iOS и Android)" — это возможность попробовать продвинутый онлайн-курс по iOS Разработке от OTUS.
Вебинар рассчитан на разработчиков iOS/Android, которые хотят познакомиться поближе с SDK для кросс-платформенной мобильной разработки Kotlin Multiplatform.
📍Вы узнаете:
● что из себя представляет SDK Kotlin Multiplatform
● как настроить и подготовить к работе проект Kotlin Multiplatform
● как создать многопоточное приложение на Kotlin Multiplatform под iOS/Android
📅 3 августа в 20:00 по мск
👉🏻 Пройдите вступительный тест, после которого вы будете записаны на пробное занятие: https://otus.pw/0d9r/
📱Открытое занятие "Делаем многопоточное приложение Kotlin Multiplatform (iOS и Android)" — это возможность попробовать продвинутый онлайн-курс по iOS Разработке от OTUS.
Вебинар рассчитан на разработчиков iOS/Android, которые хотят познакомиться поближе с SDK для кросс-платформенной мобильной разработки Kotlin Multiplatform.
📍Вы узнаете:
● что из себя представляет SDK Kotlin Multiplatform
● как настроить и подготовить к работе проект Kotlin Multiplatform
● как создать многопоточное приложение на Kotlin Multiplatform под iOS/Android
📅 3 августа в 20:00 по мск
👉🏻 Пройдите вступительный тест, после которого вы будете записаны на пробное занятие: https://otus.pw/0d9r/
Otus
Разработчик iOS: практическое применение Swift 5, работа в Xсode и Git
Курс Разработчик iOS в OTUS с возможностью трудоустройства
Детальный разбор того, что не так с лэйаутом iOS клавиатуры.
https://grumpy.website/post/0U7PKjY-N
https://grumpy.website/post/0U7PKjY-N
Про исследование проблемы долгого старта приложения у части пользователей и реализацию каскадного удаления объектов в Realm.
https://habr.com/ru/company/dodopizzadev/blog/513096/
https://habr.com/ru/company/dodopizzadev/blog/513096/
Хабр
Сказ о том, как каскадное удаление в Realm долгий запуск победило
Все пользователи считают быстрый запуск и отзывчивый UI в мобильных приложениях само собой разумеющимся. Если приложение запускается долго, пользователь начинает грустить и злиться. Запросто можно...
Скрипт, который позволяет автоматически добавлять в описание коммитов ссылки на PR на GitHub, что сильно упрощает понимание и изучение кода.
https://pspdfkit.com/blog/2020/a-better-way-to-git-log/
https://pspdfkit.com/blog/2020/a-better-way-to-git-log/
Nutrient
A Better Way to Git Log to Understand Changes in a Big Codebase | Nutrient
How git log information may not be enough when developers need to understand changes in a codebase that has evolved over several years.
Не хотите читать длинные гайды по App Store Optimisation? Держите короткую памятку с основными принципами, которых вам с головой хватит.
https://learnappmaking.com/app-store-optimization-basics/
https://learnappmaking.com/app-store-optimization-basics/
Разбираемся с тем, как работают parent-child отношения процессов в macOS.
https://objective-see.com/blog/blog_0x4A.html
https://objective-see.com/blog/blog_0x4A.html
objective-see.org
Low-Level Process Hunting on macOS
understanding complex parent/child process relationships
Как использовать AVFoundation для одновременного захвата нескольких типов данных с камеры.
https://www.bignerdranch.com/blog/multiple-outputs-with-avfoundation/
https://www.bignerdranch.com/blog/multiple-outputs-with-avfoundation/
Big Nerd Ranch
Multiple outputs with AVFoundation
When using AVFoundation you might come by the need to capture multiple types of output from the cameras. You could be collecting depth data while also needing to watch for barcodes. In our case we needed to watch and read barcodes while still returning the…
Forwarded from Tolstoy Live (Egor Tolstoy)
У тимлида есть две мета-задачи – не быть мудаком и помогать своей команде со временем работать лучше. Большинство тимлидов не справляются даже с первой (я и сам такой, чего уж там).
Как определить в себе тимлида-мудака:
1. Вы работаете в режиме черного ящика и оторваны от своей команды. Никто не может точно сказать, чем и почему вы заняты, но щеки вы все равно надуваете и бегаете между сотней митингов.
2. Вы боитесь замарать руки и никогда сами не делаете задач, которыми занимается ваша команда. Типичный сценарий – тимлид, который стал слишком хорош или слишком занят, чтобы попрогать вместе со всеми.
3. Фокусируетесь на решении своих собственных проблем, а не проблем своей команды. Например, настойчиво внедряете условный Scrum, потому что вам ваш босс велел, а не потому, что он команде правда нужен.
4. Внедряете в команду всратые практики, которые не распространяются на вас самих. Хотите, чтобы все вам присылали недельные отчеты? Начните с себя, поживите так пару месяцев, и только потом катите на других людей.
5. Не воспринимаете людей прямо и строите из себя диванного психотерапевта, искренне веря в то, что вы можете понимать их скрытые мотивы.
6. Вы не последовательны в своих решениях и работаете в режиме менеджера-генератора случайных чисел.
7. Подмазываетесь к успехам своей команды, даже если сами руку к ним вообще не приложили, а просто существовали.
Все эти признаки можно свести к одному высокоуровнему – вы настойчиво избегаете здравого смысла и просто работаете, не думая и не анализируя последствия своих решений. Работа тимлида не то чтобы была очень сложной, поэтому постарайтесь соответстовать хотя бы вот этим минимальным ожиданиям и не быть мудаком.
Как определить в себе тимлида-мудака:
1. Вы работаете в режиме черного ящика и оторваны от своей команды. Никто не может точно сказать, чем и почему вы заняты, но щеки вы все равно надуваете и бегаете между сотней митингов.
2. Вы боитесь замарать руки и никогда сами не делаете задач, которыми занимается ваша команда. Типичный сценарий – тимлид, который стал слишком хорош или слишком занят, чтобы попрогать вместе со всеми.
3. Фокусируетесь на решении своих собственных проблем, а не проблем своей команды. Например, настойчиво внедряете условный Scrum, потому что вам ваш босс велел, а не потому, что он команде правда нужен.
4. Внедряете в команду всратые практики, которые не распространяются на вас самих. Хотите, чтобы все вам присылали недельные отчеты? Начните с себя, поживите так пару месяцев, и только потом катите на других людей.
5. Не воспринимаете людей прямо и строите из себя диванного психотерапевта, искренне веря в то, что вы можете понимать их скрытые мотивы.
6. Вы не последовательны в своих решениях и работаете в режиме менеджера-генератора случайных чисел.
7. Подмазываетесь к успехам своей команды, даже если сами руку к ним вообще не приложили, а просто существовали.
Все эти признаки можно свести к одному высокоуровнему – вы настойчиво избегаете здравого смысла и просто работаете, не думая и не анализируя последствия своих решений. Работа тимлида не то чтобы была очень сложной, поэтому постарайтесь соответстовать хотя бы вот этим минимальным ожиданиям и не быть мудаком.
Считаете себя специалистами в свифте? Попробуйте погонять свои знания.
https://apps.apple.com/ru/app/swifty-quiz/id1525844750
https://apps.apple.com/ru/app/swifty-quiz/id1525844750
Про изменения в симуляторе в Xcode 12, которые вы могли не заметить.
https://ashishkakkad.com/2020/07/xcode-12-whats-new-in-ios-simulator
https://ashishkakkad.com/2020/07/xcode-12-whats-new-in-ios-simulator
Ashish Kakkad
Xcode 12 - What's new in iOS Simulator? - Ashish Kakkad
Xcode 12 comes with great changes in the iOS Simulator. Check this blog to explore the updates which came in Xcode 12 beta.
Использовали ли вы когда-нибудь Compression framework? Ловите краткую памятку про то, как и зачем им пользоваться.
https://www.bignerdranch.com/blog/using-apples-compression-framework-on-ios-macos/
https://www.bignerdranch.com/blog/using-apples-compression-framework-on-ios-macos/
Digital product development agency | Big Nerd Ranch
Using Apple's Compression Framework on iOS & macOS
Using Apple's Compression framework with Swift for iOS and macOS
Вспоминаем принципы конкурентности в Swift и дизайним тред-сейфную структуру данных.
https://benoitpasquier.com/atomic-properties-thread-safe-data-structure-swift/
https://benoitpasquier.com/atomic-properties-thread-safe-data-structure-swift/
Benoit Pasquier
Atomic properties and Thread-safe data structure in Swift
A recurring challenge in programming is accessing a shared resource concurrently. How to make sure the code doesn’t behave differently when multiple thread or operations tries to access the same property. In short, how to protect from a race condition?
Как организовать автоматическую проверку локализации на GitHub Actions.
https://drobinin.com/posts/verifying-localisation-in-ios-apps-with-github-actions-the-reinvented-wheel
https://drobinin.com/posts/verifying-localisation-in-ios-apps-with-github-actions-the-reinvented-wheel
Drobinin
Verifying localisation in iOS apps with Github Actions: the reinvented wheel by Vadim Drobinin
By the end of this post we will build a Github Actions workflow to detect broken localisation keys in iOS projects; however this can be easily adapted to other cloud platforms (Travis, CircleCI, etc) and projects (Android, React, etc). Bonus: I will show…