830
This channel aggregates interesting information from many resources. So If you are interested in Swift, iOS, Apple and so on - welcome! Check the open-source projects: https://github.com/Otbivnoe Leave a feedback: @otbivnoe
Thomas discusses about AttributedString in SwiftUI: what is good, what is bad, what would be great to improve. He also prepared a helper that simplifies the life when working with texts.
p.s. now it's a little confusing when dealing with attributed strings. I really hope that Apple will take this problem into account and improve it soon. But this "soon" isn't really soon for us, unless you only support the latest version. 🥲
https://dimillian.medium.com/swiftui-attributedstring-is-not-there-yet-63d49e9f9c16
#SwiftUI
Oh, such an amazing repo with tons of animations using SwiftUI from different apps for inspiration and practice.😍
https://github.com/GetStream/purposeful-ios-animations
#SwiftUI #animations
Didn't pay attention to the improved Xcode code completion, but it seems to be awesome.
https://twitter.com/peterfriese/status/1554905178314158082
#Xcode
Such a detailed post about new Grid layout in SwiftUI. Highly recommended.
https://swiftui-lab.com/eager-grids/
#SwiftUI #Layout
Discovered something great today I want to share with you! How many times defining a custom decodable initializer, for instance, have you lost the ability to use the automatically generated memberwise initialize, umm? Oh, I've faced it so often, especially in tests. So the solution is easy - just define this initializer in an extension, and that's it.
https://danijelavrzan.com/posts/2022/07/how-to-test-custom-codable/
#swift
Let's figure out what's new in the Xcode Previews.
At least I hope they have become more reliable and don't crash every 5 minutes. 🤞
https://useyourloaf.com/blog/whats-new-in-xcode-14-previews/
#Xcode
If you’re already rewriting all your regex-strings in a new modern way using Regex Builder - this online generator will simplify your life a lot by far!
https://paiv.github.io/swift-rxbgen/
#swift #regex
Recently I posted about publishing a DoсC documentation as a static website. But with Swift 5.6 there's a Swift DoсС Plugin that simplifies this process a little more.
https://www.createwithswift.com/using-the-swift-package-manager-command-plugin-for-swift-docc/
#Swift #DoсC
Really interesting dive into how containers such as List, Stacks work under the hood using VariadicView to modify individual children. A nice addition that you can use the same approach for build your own containers.
https://movingparts.io/variadic-views-in-swiftui
#SwiftUI
As you all know, Apple presented their own CI/CD system at last WWDC - Xcode Cloud. While it's still in beta, a developer can submit an access request to play around though.
To simplify this process an author prepared two articles (so far):
- how to enable Xcode Cloud, test and distribute apps
- more advanced article about the use of custom build scripts and environment variables.
If you're already familiar with Xcode Cloud, just skip the first post and dive into the second one. I'm sure this will help you to avoid some of the non-obvious pitfalls and save your time.
#Xcode #xcode_ci #CI
Apple prepared online sessions with experts to get your questions answered about the latest App Store features: product pages, subscription experiences, custom offer codes, and in-app events.
https://developer.apple.com/news/?id=z83vywin
#Apple #AppStore
Precise calculation? Should you use Double or Decimal? It really depends. So Jesse asked the community in twitter to figure it out.
https://www.jessesquires.com/blog/2022/02/01/decimal-vs-double/
#Swift
Apple finally released unlisted apps that are discoverable only with a direct link. These apps don’t appear in any App Store categories, recommendations, charts, search results, or other listings.
https://developer.apple.com/support/unlisted-app-distribution/
#Apple #AppStore
Haven't posted for a while something interesting about build time optimization, so here it is.
The article describes the various aspects:
- collecting the build data from developer machines by XCLogParser
- analyzing the compilation process using Swift compiler flags
- getting and interpreting build.trace files by using New Build System tricks
- and of course, the possible solutions
https://medium.com/gojekengineering/reducing-our-build-time-by-50-835b54c99588
#Xcode #optimization
Apple now lets developers configure custom offer codes in App Store Connect.
Offer codes can be used in a variety of ways:
- Send an email sharing the latest features and recently added content with an offer code to current or lapsed subscribers, so they can experience your service for a limited time.
- Distribute flyers that include custom codes to promote your service to event attendees.
- Partner with another company on a marketing initiative or referral campaign to help promote your app.
- Provide a code to a subscriber with a customer service issue to compensate for the issue and encourage retention.
- Distribute one-time-use codes within an app that you’re sunsetting as a way to transition current subscribers to your new app and promote your service.
https://developer.apple.com/news/?id=9sjl5wuv
#Apple #subscriptions
Long read about the presentation changes in iOS and iPadOS 16
• When the presenting view controller is in a regular-width environment on iPad, form sheets are slightly bigger than on previous iPadOS versions. This changed in beta 4. (If the presenting view has compact width, a form sheet presentation will adapt and fill the width, just like on iPhone.)
• The height of the navigation bar in a non-full-screen, non-popover, modally-presented view controller is smaller than before (12 points smaller on iPhone and 6 points smaller on iPad), but this has not (yet?) changed in SwiftUI. This change has only just occurred in beta 5.
• Non-full-screen modally-presented double and triple column style split view controllers have a different appearance compared to iPadOS 13 to 15.
https://hacknicity.medium.com/view-controller-presentation-changes-in-ios-and-ipados-16-474c82c9ed2e
#UI #iOS
We all know that Meta collects everything about us, no surprises. Every step is being watched. More accurate advertising - more money. For this reason, Felix prepared an investigation on how their in-app browser tracks us. In case you use in-app browser rather than the built-in Safari, just read this article.
https://krausefx.com/blog/ios-privacy-instagram-and-facebook-can-track-anything-you-do-on-any-website-in-their-in-app-browser
#privacy
It turns out that in SwiftUI you can finally hide the home indicator without UIKit hacks.
https://danielsaidi.com/blog/2022/08/01/removing-the-home-indicator-in-swiftui
#SwiftUI
Apple has prepared an online meeting with App Store experts to cover the following topics:
- Get started with TestFlight
- Get started with app discovery and marketing
- Explore Family Sharing for in-app purchases
- Optimize subscriptions for success: acquisition
- Get started with in-app events
- Get started with custom product pages
- Get started with product page optimization
https://developer.apple.com/events/app-store/
#Apple
iOS 16 comes with great improvements in app launch time. For apps like Lyft or Airbnb launching almost twice as fast.
And more in-depth posts as well:
- Speeding up protocol conformance checks
- Reducing the amount of data loaded from disk
#iOS #optimization
What’s new in iOS 16 about Format Styles:
https://ampersandsoftworks.com/posts/iOS-16-formatstyle/
Gorgeous documentation about all styles in one place 🔥:
https://goshdarnformatstyle.com/
#iOS #formatters
Oh, great! If you've ever needed to compare Any values in Swift, now it's easier and more elegant to achieve it.
https://nilcoalescing.com/blog/CheckIfTwoValuesOfTypeAnyAreEqual/
#swift
Xcode 13.3 is finally here.
Some of the features I’m happy to see:
- Xcode can now build documentation from your Swift code in executable targets, like apps and command-line tools.
- The build system and Swift compiler have a new mode that better utilizes available cores, resulting in faster builds for Swift projects (need to enable it manually)
- Swift Packages now support build tool plugins. This allows packages to define plugins that can specify tools that should run during a build operation, for example to generate source code.
- You can now write inverted availability conditions using the new #unavailable keyword
- ... more Swift 5.6 feature
https://developer.apple.com/documentation/xcode-release-notes/xcode-13_3-release-notes
#Swift #Xcode
As DoсC gains popularity these days, we may see more great articles on that subject. It's also worth mentioning that Xcode 13.3 will allow writing documentation even for usual apps, not only for packages. Starting with Swift 5.6, it adds the official support for transferring docs to static hosting options, such as Github Pages, which the author talks about in this article.
https://www.createwithswift.com/publishing-docc-documention-as-a-static-website-on-github-pages/
#DoсC #documentation
There're many excellent articles about TaskGroup, but most of them cover some common scenarios. Marin, the author of Modern Concurrency in Swift prepared a more detailed post by revisiting his slides from iOS Conf SG 2022. So if you know the basics of TaskGroup, this fictional example will surely improve your concurrency skills.
https://trycombine.com/posts/swift-concurrency-task-group-workflow/
#Swift #concurrency
Some of the SwiftUI modifiers are not really obvious to developers, so to comprehend them properly need to play around with it a bit. Jordan saved us some time and explained the behavior of the fixedSize modifier with a few useful examples.
https://www.swiftjectivec.com/swiftui-modifier-monday-fixedsize/
#SwiftUI
Github Action is a super simple CI system to integrate and maintain. It's very attractive to indie developers and small organizations due to its decent price as well (2000 free minutes per month). So an author enjoying this tool decided to dive into some tips and tweaks to make the most of it.
https://benoitpasquier.com/tips-tweaks-github-action-ios/
#CI #github_action
Oh, looks like worth mentioning - Apple's unofficial localization glossary. It will be very helpful to those who want to replicate the localization behavior for their own applications.
https://applelocalization.com
#Apple #localization
Oh, missed the official statistics of iOS and iPadOS usage. Given that all devices with iOS 13 are able to update to the latest os, this numbers will be changed soon.
#Apple #statistics
Apple released several tech talks:
- custom product page with its optimization
- some tips from the App Review team for avoiding common review issues
- how apps can use CloudKit to share records with others
- best practices with StoreKit 2 and App Store Server API
- and more...
https://developer.apple.com/news/?id=c63z27o8
#apple