⚡️ Сообщество CocoaHeads приглашает всех на круглый стол про IDFA в iOS 14
Ребята обсудят изменения, которые внесла Apple, что они значат для всех нас, и как с этим жить дальше. Если не понимаете о чем речь – приходите, все доступно расскажут. Если понимаете, тоже приходите, будет обсуждение последствий и как подготовить приложение к iOS 14.5
📆 Трансляция будет в этот четверг, 8 апреля в 19:00, ссылка будет в @cocoaheads
Ребята обсудят изменения, которые внесла Apple, что они значат для всех нас, и как с этим жить дальше. Если не понимаете о чем речь – приходите, все доступно расскажут. Если понимаете, тоже приходите, будет обсуждение последствий и как подготовить приложение к iOS 14.5
📆 Трансляция будет в этот четверг, 8 апреля в 19:00, ссылка будет в @cocoaheads
Основы JavaScript для небольших правок контента в WKWebView. Делать свой блокировщик рекламы уже поздно, но пригодится, чтобы авторизацию пробрасывать и для других хаков.
https://nemecek.be/blog/92/javascript-basics-for-ios-developers
https://nemecek.be/blog/92/javascript-basics-for-ios-developers
nemecek.be
JavaScript basics for iOS developers
What you need to know to manipulate content in WKWebView, how to make Swift & JavaScript talk to each other, how to call JavaScript functions and more.
Встроенные форматтеры, о которых вы возможно даже не слышали. Например RelativeDateTimeFormatter, который может отдавать “Вчера” или “Сегодня” для описания даты. Или ListFormatter с почти очевидным назначением.
https://www.swiftbysundell.com/articles/exploring-some-of-the-lesser-known-formatter-types/
https://www.swiftbysundell.com/articles/exploring-some-of-the-lesser-known-formatter-types/
Swift by Sundell
Exploring some of the lesser-known, built-in Formatter types | Swift by Sundell
Let’s explore some of the lesser-known Formatter subclasses that ship as part of Apple’s platforms, and how those formatters can be really useful in certain situations.
Про написание UI тестов с использованием паттерна PageObject. Его стоит использовать чтобы разделять “что” и “как” мы тестируем.
https://swiftwithmajid.com/2021/03/24/ui-testing-using-page-object-pattern-in-swift/
https://swiftwithmajid.com/2021/03/24/ui-testing-using-page-object-pattern-in-swift/
Swift with Majid
UI Testing using Page Object pattern in Swift
We talked a lot about different design patterns, which help us maintain the codebase by solving various issues. But what about testing? What can we do to keep our UI tests in a maintainable and consistent state? This week we will talk about the Page Object…
ScaledMetric позволяет автоматически подстраивать в отступы или другие величины в верстке в зависимости от размеров динамического шрифта.
https://useyourloaf.com/blog/the-scaledmetric-property-wrapper/
https://useyourloaf.com/blog/the-scaledmetric-property-wrapper/
Наконец-то подробно описанное впечатление от SwiftUI при построении приложения в продакшн сразу на 4 платформах. О плюсах я думаю все уже наслышаны, а из минусов generics и новая layout система, которую не так просто понять глубоко.
https://kean.blog/post/swiftui-experiment
https://kean.blog/post/swiftui-experiment
kean.blog
The SwiftUI Experiment
Wrapping up the series on Pulse development
Погружение в структуру View в SwiftUI. Как происходит определение статических и динамических элементов.
https://fivestars.blog/swiftui/swiftui-graph.html
https://fivestars.blog/swiftui/swiftui-graph.html
FIVE STARS
A sneak peek into SwiftUI's graph | FIVE STARS
Let's explore how SwiftUI knows what and when to observe view-specific publishers at any given time!
Сравнение инструментов для создания Privacy Policy для своего приложения. Интересный факт - по закону текст политики конфиденциальности нельзя копировать, так как он защищен авторским правом.
https://www.revenuecat.com/blog/creating-a-privacy-policy-for-your-app
https://www.revenuecat.com/blog/creating-a-privacy-policy-for-your-app
Revenuecat
Creating a Privacy Policy for Your App
There are a few different ways to create a Privacy Policy and Terms of Use for your app, each with their own benefits and drawbacks. Like it or not, Apple and Google will reject your app if it doesn't contain both of these documents.
Теперь доступен новый официальный пакет с дополнительными коллекциями: Deque, OrderedSet, OrderedDictionary.
https://swift.org/blog/swift-collections/
https://swift.org/blog/swift-collections/
Swift.org
Introducing Swift Collections
I’m thrilled to announce Swift Collections, a new open-source package focused on extending the set of available Swift data structures. Like the Swift Algorithms and Swift Numerics packages before it, we’re releasing Swift Collections to help incubate new…
В день в AppStore и GooglePlay попадает больше 100 тысяч приложений. Через несколько месяцев что-то из них будет приносить создателям сотни тысяч долларов прибыли, но большую часть никто и никогда не скачает. В чем разница между первыми и вторыми? Бюджет на маркетинг.
Gamesboost42 предоставляет финансирование на рост вашего приложения или игры без скрытых комиссий и лимитов. Чем больше вы зарабатываете — тем большее маркетинговый бюджет и меньше комиссия. GamesBoost42 - единственное решение под ключ на рынке финансирования мобильных игр и приложений 😎
Пишите в бота GamesBoost42_bot или оставляйте заявку на сайте GamesBoost42.com
Gamesboost42 предоставляет финансирование на рост вашего приложения или игры без скрытых комиссий и лимитов. Чем больше вы зарабатываете — тем большее маркетинговый бюджет и меньше комиссия. GamesBoost42 - единственное решение под ключ на рынке финансирования мобильных игр и приложений 😎
Пишите в бота GamesBoost42_bot или оставляйте заявку на сайте GamesBoost42.com
Telegram
GamesBoost42
GamesBoost42 - marketing funding for mobile apps and games
==
или ===
отсутствуют для замыканий, потому что это не позволило бы компилятору делать некоторые оптимизации с захватом параметров и телом функций. В общем, не стоит пытаться сравнивать ссылки на функции и замыкания.https://www.jessesquires.com/blog/2021/04/05/why-swift-closures-are-not-equatable/
Jesse Squires
Why Swift closures are not Equatable
Despite the fact that closures (and functions) are reference types in Swift, they cannot be compared using == or ===. But why?
Encode и decode JSON’ов в enum с ассоциируемым типом, когда внутри лежат разные сущности.
https://www.donnywals.com/splitting-a-json-object-into-an-enum-and-an-associated-object-with-codable/
https://www.donnywals.com/splitting-a-json-object-into-an-enum-and-an-associated-object-with-codable/
Donny Wals
Splitting a JSON object into an enum and an associated object with Codable – Donny Wals
Decoding data, like JSON, is often relatively straightforward. For a lot of use cases, you won't need to know or understand a lot more than what I explain in this post. However, sometimes you need to…
В iOS 14 появился нативный способ ограничить перемещения пользователя внутри WKWebView. Достаточно прописать домены в Info.plist и использовать
https://useyourloaf.com/blog/app-bound-domains/
isDomainAllowed
в делегате.https://useyourloaf.com/blog/app-bound-domains/
Use Your Loaf
App Bound Domains
Apple introduced App Bound Domains in iOS 14 to make it easier to restrict in-app web content to a limited number of domains.
Как реализовать современный способ распространения платных лицензий на macOS не через App Store - цифровые подписи.
https://swiftrocks.com/creating-a-license-system-for-paid-apps-in-swift
https://swiftrocks.com/creating-a-license-system-for-paid-apps-in-swift
Swiftrocks
Creating a licensing system for paid apps in Swift
The easiest way is to create a paid macOS app is to simply put a price tag in the App Store, but it's a common practice nowadays to provide a free download that can later be upgraded to a pro version. In this article, we'll use our knowledge of serial numbers…
Полный гайд по тому, как создавать темплейты файлов в Xcode.
https://www.andyibanez.com/posts/xcode-new-file-templates/
https://www.andyibanez.com/posts/xcode-new-file-templates/
Andy Ibanez - iOS Developer
Xcode New File Templates
Learn how to create your own Xcode File Templates and save time in your development flow.
Еще один софт скилл в копилку senior разработчика - умение выходить за рамки зоны комфорта. И выражается это не только в работе с новыми технологиями, но и в эмпатии.
https://apptractor.ru/info/articles/4-oshibki-kotorye-ya-sdelal-kak-programmist-no-mne-prishlos-stat-tehnicheskim-direktorom-chtoby-uvidet-ih.html
https://apptractor.ru/info/articles/4-oshibki-kotorye-ya-sdelal-kak-programmist-no-mne-prishlos-stat-tehnicheskim-direktorom-chtoby-uvidet-ih.html
AppTractor
4 ошибки, которые я сделал как программист, но мне пришлось стать техническим директором, чтобы увидеть их
«Быть хорошим программистом» - это не только технические навыки. Еще важнее понять, какую ценность вы можете принести компании и как это сделать.
Realm теперь стал мультиплатформенным и его можно смело использовать под капотом KMM приложений.
https://blog.jetbrains.com/kotlin/2021/04/realm-kotlin-multiplatform-sdk/
https://blog.jetbrains.com/kotlin/2021/04/realm-kotlin-multiplatform-sdk/
The JetBrains Blog
Realm Kotlin Multiplatform SDK | The Kotlin Blog
Nabil Hachicha, Android Engineer, from MongoDB Realm shares their story of creating a pure Kotlin-first SDK for use by developers. Realm is an open-source, easy-to-use local database that helps mobil
Разбираем базовые сущности Combine, на примере запаковки нативных библиотек в Future, Deferred и PassthroughSubject.
https://swiftwithmajid.com/2021/04/07/designing-api-using-combine-framework/
https://swiftwithmajid.com/2021/04/07/designing-api-using-combine-framework/
Swift with Majid
Designing API using Combine framework
Combine framework provides a declarative Swift API for processing values over time. It allows you to chain, transform and reduce multiple operations. This week we will learn how to design our APIs using the Combine framework to leverage all the data processing…
13 мая - демо-занятие «Machine Learning в iOS с помощью CoreML и CreateML: изображения, текст, звук»
На уроке Ексей Пантелеев (iOS Team Lead в Утконос) будет говорить:
- об основных архитектурах нейронных сетей и их оптимизированных версиях под мобильные устройства
- о возможностях CoreML 3 и 4, обучении на iOS устройстве
- о самостоятельном обучении классификатора изображений с помощью CreateML и использовании его с Vision
- об использовании обученных моделей для работы с текстом и звуком в iOS
Регистрация: https://otus.pw/ky4e/
Вебинар является частью курса «iOS Developer. Professional»
На уроке Ексей Пантелеев (iOS Team Lead в Утконос) будет говорить:
- об основных архитектурах нейронных сетей и их оптимизированных версиях под мобильные устройства
- о возможностях CoreML 3 и 4, обучении на iOS устройстве
- о самостоятельном обучении классификатора изображений с помощью CreateML и использовании его с Vision
- об использовании обученных моделей для работы с текстом и звуком в iOS
Регистрация: https://otus.pw/ky4e/
Вебинар является частью курса «iOS Developer. Professional»
Крутой кейс для знакомства с Automator. Короткий скрипт для подсчета слов в GUI вместо консоли.
https://ericasadun.com/2021/04/14/crafting-a-custom-word-count-service/
https://ericasadun.com/2021/04/14/crafting-a-custom-word-count-service/
Erica Sadun
Crafting a custom word count service
I just happened to need to do a lot of word counts today so I put together a service to make my life easier. While, I performed my initial work on Mojave but the same approach works all the way to …