Oh, alignmentGuide is one of my favorite SwiftUI APIs! This article is a great example of how it can elegantly solve a layout problem without resorting to GeometryReader, offsets, or other workarounds. If you’ve never really used alignmentGuide, this is definitely worth a read! https://nilcoalescing.com/blog/AlignmentGuidesInSwiftUI #SwiftUI

Channel
Readaggregator - iOS, Swift, Apple, Programming, Mobile
@readaggregator
On this record: Growth · Engagement · Posts · Citations · Cite this entry
1,461subscribers
-8 since we began measuring on 6 August 2026
Risers and fallers across the register · movement among entries of 1,000–3,162.
Register entry
| Telegram ID | -1001105306695 |
|---|---|
| Type | Channel |
| Username | @readaggregator |
| Created | Between 1 February 2017 and 30 April 2019— estimated from Telegram’s id allocation, not measured. How this range is calculated. |
| First recorded | 6 August 2026 |
| Last confirmed live | 21 August 2026 |
| Measurements held | 6 |
| Confirmed unchanged | 1 time, most recently 21 August 2026 |
| On Telegram | t.me/readaggregator |
Growth
| Measured (UTC) | Subscribers | Change |
|---|---|---|
| 21 Aug 2026, 15:58 | 1,461 | -3 |
| 18 Aug 2026, 17:04 | 1,464 | +1 |
| 15 Aug 2026, 13:26 | 1,463 | -7 |
| 12 Aug 2026, 00:52 | 1,470 | +1 |
| 6 Aug 2026, 07:46 | 1,469 | no change |
| 6 Aug 2026, 02:27 | 1,469 | first reading |
Engagement
20 posts held, back to 10 March 2026 — the reader has not yet reached the start of this channel’s public history, so older posts may sit further back, unread. Read across 1 pageof Telegram’s post history, 20 posts per page.
- ERR · 30 days
- 22.8%
- avg views ÷ 1,461 subscribers
- Avg views / post
- 333
- 3 posts measured
- Reaction rate
- 1.30%
- reactions ÷ views · ER floor
- Posts in window
- 3
- of 20 held
ERR is average views per post over the last 30 days divided by subscribers, the definition TGStat uses, so this figure is comparable with the one you will see elsewhere. It falls structurally as a channel grows: a high ERR on a small channel and a low one on a large channel describe reach mathematics, not quality. We publish the figure and the sample it came from and pass no verdict on it.
ER is defined industry-wide as (forwards + reactions + comments) ÷ views— note the denominator is views, not subscribers. Telegram’s public web preview carries views and reactions but not forward or comment counts, so the reaction rate above is the reactions term only and is therefore a floor: the true ER for this channel is higher by an amount we have not measured and will not estimate.
| Window | Rolling 30 days · latest post in window 6 August 2026 |
|---|---|
| Posts held | 20 (10 March 2026 – 6 August 2026) |
| Views total | 998 |
| Reactions total | 13 |
| Forwards / comments | not exposed by the public surface — not measured, not estimated |
| Readings taken | 6 Aug 2026, 07:46 UTC |
Views are a single reading per post, taken at the time above. A post published in the last day or two is still accumulating views, which pulls the 30-day average down slightly. That is a property of the standard definition rather than a fault in it, so we keep the definition rather than “correcting” the number into something nobody can reproduce.
Precision. Telegram publishes view counts on its public widget in short form — 8.12K, 3.7M — so any reading at or above 1,000 reaches us rounded to three significant figures, and only counts below 1,000 are exact. Averages and rates derived from them are shown to the same precision rather than to the unit: a figure like 3,701,250 would assert digits nobody measured.
Reaction counts are published per emoji and rounded the same way, so a total below 1,000 is exact and a larger one is a sum that may carry a rounded component from each emoji above 1,000. Because it is a sum, it does not look rounded — read a large reaction total as three significant figures per contributing emoji rather than as the figure it prints.
Recent posts
Apple introduced @ContentBuilder this year, and we’re already seeing developers push it beyond its original use case. My Swift buddy Artem ran an interesting experiment using @ContentBuilder with non-View types. It’s a nice example of how the new builder can be used to create clean DSL-like APIs. https://artemnovichkov.com/blog/using-swiftui-contentbuilder-with-non-view-types #Swift #SwiftUI
If you’re migrating to Swift 6, this is a great short refresher on one of the most confusing concurrency changes. It explains, with simple examples: • how nonisolated behaves with Approachable Concurrency • when execution stays on the caller’s executor • and when @concurrent is actually needed. These are easy details to forget, but they often come up in code reviews and technical interviews. 😉 https://nsvasilev.co…
FYI Apple deprecated canOpenURL(_:) in iOS 27. Instead of checking whether an app is installed, the new recommendation is to simply call open(_:completionHandler:) and handle failures. There’s another change: apps linked against the iOS 27 SDK can now declare only 25 entries in LSApplicationQueriesSchemes (down from 50). https://developer.apple.com/documentation/uikit/uiapplication/canopenurl(_:) #iOS #privacy
If you’re using Tuist, it’s worth trying their new package resolution process - Swifterpm Why did they build it? • Better support for Git worktrees • Faster parallel installs for AI coding agents • A shared package store to avoid duplicate checkouts • Faster dependency resolution and package materialization The benchmark results look very promising. The Tuist team is actively looking for feedback, so if it works …
Apple finally got around to adding this in iOS 27, and somehow I’m still genuinely excited about it. 😄 textSelection() now supports granular text selection. In iOS 26, applying it to a Text view only let you select the entire block. Now you can simply drag to select the exact part you want, just like in any native text view. It took them until iOS 27… but I’ll happily take it. https://x.com/natpanferova/status/207…
If you rushed to install the new Xcode after WWDC, started migrating code to ContentBuilder, and explored the new @State macro… don’t forget to read TN3211. It’s Apple’s guide to understanding why some perfectly valid SwiftUI code from last week suddenly isn’t so valid anymore. https://developer.apple.com/documentation/technotes/tn3211-resolving-swiftui-source-incompatibilities-for-state-and-contentbuilder #SwiftU…
WWDC26 Swift Group Lab Q&A is probably the most valuable Swift Concurrency content from this year’s WWDC. Lots of subtle details: • Does Task {} actually leave MainActor? • What does nonisolated mean in Swift 6.2 now? • When should you use @concurrent? • Is async code really running where you think it is? … turns out the answer is increasingly: “not where you think.” https://antongubarenko.substack.com/p/wwdc26-s…
FYI: starting with Xcode 27, Apple will ignore the UIDesignRequiresCompatibility flag. So if you're hoping to avoid Liquid Glass, your only option will be staying on an older Xcode. The bigger question is how long App Store submissions from older toolchains will remain supported. https://developer.apple.com/documentation/BundleResources/Information-Property-List/UIDesignRequiresCompatibility #Xcode
All SwiftUI changes in one image. https://x.com/shubham_iosdev/status/2064081215788118280?s=46&t=YNy4qFziI3PFPTlrSCXpmA
Time to do some prompt archaeology in the new Xcode https://github.com/artemnovichkov/xcode-27-system-prompts #Xcode #llm
«Ah shit, here we go again» but now in a less scary way. https://x.com/stephancasas/status/2059730171964670086 #Xcode
Showing the 12 most recent of 20 posts we hold for @readaggregator. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.
Citation-graph rank
Citation-graph rank — 411,436 of 1,584,420entries in the measured graph. A weighted position computed from the forward and mention edges below — republished posts weigh more than named mentions — and recomputed periodically, over the whole graph. Published only as this ordinal position, never as a score: a position is a fact, and a score printed beside one channel’s name would read as a verdict this register does not make. The two counts beneath stay separate for the same reason mentions are never summed with forwards anywhere else on this page — a named-by count costs nothing to manufacture. The top 100 by this measure, or how it is computed.
Forward network
Republished by
Channels on the register that have forwarded this channel's posts into their own feed.
Built only from forwarded posts we have actually read, on both sides. Coverage is early and deliberately incomplete: a missing link means we have not read the post that would prove it, never that the relationship does not exist. Counts are distinct forwarded posts observed, so they only ever go up as we read more.
Mentions
Names
Channels on the register whose handles appear in this channel's posts.
A mention is a weaker signal than a forward and is counted separately for that reason — naming a channel is not republishing it, and a handle in a post body is easy to place deliberately. The post counts beside each row below are distinct posts in which the handle appeared, from posts we have read on both sides — the “Named by N registered channels” figure above is a different count, of distinct NAMING CHANNELS rather than posts, and is not the sum of the rows under it.
Cite this entry
A live page changes as we take new readings, so a citation should name the measurement it is based on, not just the URL. The line below cites the subscriber count as measured 21 August 2026 — this entry's latest reading, not the date you are reading this.
“Readaggregator - iOS, Swift, Apple, Programming, Mobile” (@readaggregator), 1,461 subscribers as measured 21 August 2026. Telegram Register, tgregister.com/channel/readaggregator.
Full measurement history, CC BY 4.0. Every reading this register holds for this entry, not just the latest one, as a dated, downloadable record: CSV · JSON. Free to use with attribution to tgregister.com. Each file carries its own generation timestamp, which is the figure to cite for exactly when the data was retrieved.