
Explores where loading state should live in SwiftUI apps, comparing three approaches: keeping it as a local view @State property, embedding it in a generic enum with associated data, or moving it into the store. The author argues that separating loading phase (in the view) from data (in the store) avoids duplicating state and keeps the store as a single source of truth. Concrete code examples show how the success(T) approach and store-based loading state both introduce complexity, especially when handling mutations like addProduct.
Nguồn: https://azamsharp.com/2026/06/24/where-should-loading-state-live-in-swiftui.html. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Apple mua lại Swift Package Index (SPI), công cụ tìm kiếm các gói Swift nguồn mở, và người sáng tạo Dave Verwer sẽ gia nhập Apple để tiếp tục phát triển. SPI vẫn duy trì mã nguồn mở theo giấy phép Apache 2.0, nhưng Apple cam kết đẩy nhanh phát triển, bao gồm ký gói, tính năng nhận dạng, và đặc biệt là loại bỏ sự phụ thuộc lâu nay vào GitHub. SPI hiện lưu trữ hơn 11.000 gói và sẽ chuyển dần sang mô hình registry độc lập với nền tảng lưu trữ nguồn. Một số nhà phát triển lo ngại về việc tài nguyên cộng đồng độc lập rơi vào sự kiểm soát hoàn toàn của doanh nghiệp.
Lập trình viên nên đọc bài này để hiểu cách Apple có thể cải thiện tính độc lập và hiệu quả của hệ sinh thái phát triển Swift bằng cách loại bỏ sự phụ thuộc vào GitHub và xây dựng một nền tảng mở, an toàn hơn cho cộng đồng.
iPhone và iPad tích hợp sẵn trình đọc màn hình VoiceOver, giúp đọc to các yếu tố giao diện như văn bản, nút bấm, menu. Bài viết hướng dẫn ba cách kích hoạt VoiceOver (Settings, Siri, Accessibility Shortcut), năm cử chỉ điều hướng quan trọng cho nhà phát triển, cùng cách điều chỉnh tốc độ và giọng đọc.
Lập trình viên nên đọc bài này để hiểu cách kiểm tra tính khả dụng (accessibility) trên thiết bị iOS thực tế thông qua VoiceOver, giúp phát hiện và cải thiện trải nghiệm người dùng tàn tật trên ứng dụng của họ.
Bài viết hướng dẫn tích hợp mã Rust vào Swift thông qua uniffi-rs, giải thích các khái niệm API cốt lõi như Record, Object, Enum, Option, Result và kiểu tùy chỉnh. Tác giả minh họa bằng ví dụ Rust-Swift, sau đó trình bày trường hợp thực tế là xây dựng hệ thống chứng minh Sudoku zero-knowledge (Groth16 trên BLS12-381) cho iOS bằng cargo-swift, bao gồm thiết lập, bridging xác minh/chứng minh và lưu ý về tương thích phiên bản.
Là một lập trình viên muốn mở rộng ứng dụng iOS với tính năng bảo mật cao như chứng minh không kiến thức (ZKP) mà không phải phụ thuộc vào các thư viện bên ngoài, bài này sẽ giúp bạn hiểu cách dễ dàng kết nối Rust—ngôn ngữ mạnh về hiệu suất—với Swift qua uniffi-rs để triển khai Sudoku ZKP một cách an toàn và hiệu quả.
Ứng dụng iOS giờ đây có thêm một "người dùng" mới là các tác nhân AI như Siri, nhờ cơ chế App Intents và App Entities cho phép tích hợp sâu vào hệ thống. Nhà phát triển có thể expose chức năng ứng dụng để Siri kích hoạt hành động, xử lý đối tượng miền và hỗ trợ hội thoại đa bước, thay vì chỉ dựa vào giao diện người dùng truyền thống.
Lập trình viên nên đọc bài này để hiểu cách tối ưu hóa ứng dụng của mình cho cả người dùng trực tiếp và AI như Siri, từ đó mở rộng khả năng tương tác, cải thiện trải nghiệm và tích hợp công nghệ mới trong thiết kế ứng dụng.
A developer documents two SwiftUI animation bugs encountered during iOS 26/27 development. Bug 1: on iOS 27, SwiftUI's increased frequency of unexpected parent view rebuilds interrupts explicit animations created with withAnimation. The fix involves switching to value-based implicit animation (.animation(_:value:)) and rebuilding the completion callback using the Animatable protocol to defer state changes via DispatchQueue.main.async. Bug 2: using a ternary operator inside an Image view within a List causes animation glitches on iOS 26 because SwiftUI reuses a single view node and swaps the symbol name in place; replacing it with if/else creates distinct structural identities via _ConditionalContent, resolving the issue. The post emphasizes that SwiftUI animation bugs are often version- and context-specific, and that systematic instrumentation and comment-based isolation remain essential debugging tools.
Developer Yeo Kheng Meng built a Swift development environment that targets the Apple II platform, covering the original 1977 model through the IIe. Since the Apple II runs a 1 MHz 6502 CPU, the approach compiles Swift to bytecode executed by a virtual machine running on the 6502. The setup requires a 48 KB RAM upgrade but otherwise targets stock hardware. Claude Code and GPT 4.5 Codex assisted in piecing the project together.
Swift Package Index (SPI) has joined Apple, signaling a major step toward a trustworthy, official Swift package registry with improved discovery, signing, and distribution. Separately, the Swift compiler is moving toward self-hosting by dropping the requirement to build using only a C++ toolchain — core components like the Parser, AST, and Type Checker can now be written in Swift. The newsletter also highlights: a Swift-like environment running on an Apple II with a 1 MHz 6502 CPU, a WebAssembly-based OTA update system for native Swift iOS apps using WasmKit, deep dives into SwiftUI's attribute graph internals, SwiftUI toolbar API improvements from WWDC 26, a private UIKit _UIPortalView component for live mirroring effects, and an iOS Simulator camera extension tool for testing camera-dependent features.
Swift tự động sinh ra memberwise initializer cho struct, giúp giảm thiểu code lặp. Từ Swift 6.4 (SE-0502), các thuộc tính private có giá trị mặc định sẽ bị loại khỏi initializer sinh tự động, tránh trường hợp toàn bộ initializer trở thành private. Những thuộc tính private không có giá trị mặc định vẫn xuất hiện trong initializer. Struct public vẫn cần explicit public initializer.
Lập trình viên nên đọc bài này để hiểu cách optimize và quản lý tính riêng tư trong Swift khi thiết kế structs, tránh phải viết lại initializers thủ công và tối ưu hóa hiệu suất cho các trường hợp sử dụng thuộc tính riêng tư có giá trị mặc định.