今日已更新 133 条资讯 | 累计 37382 条内容
关于我们

标签:#iOS

找到 126 篇相关文章

AI 资讯

WWDC 2026 - What's New in SwiftUI - A Developer's Breakdown

WWDC26 brought a substantial round of updates to SwiftUI — not a ground-up redesign, but a lot of small limitations removed, new APIs that were clearly driven by real-world pain points, and meaningful performance improvements. This post walks through every major announcement so you know exactly what's available and when to reach for it. Look and Feel: Liquid Glass and the 2027 Releases The most immediately visible change costs you zero code. Apps built with SwiftUI automatically pick up the updated Liquid Glass appearance on the 2027 OS releases. The glass tint responds to the new system-level Liquid Glass slider without any changes on your part. On iPad, windows now dim when inactive, reinforcing which window has focus — again, automatic. On Mac, custom interactive Liquid Glass elements respond more fluidly to the mouse pointer. There are a few opt-in refinements available when you want tighter control: Responding to active state — use the appearsActive environment value to reduce opacity on custom elements when the window is inactive: struct SidebarFooterView : View { @Environment (\ . appearsActive ) private var appearsActive var body : some View { MyAccountView () . opacity ( appearsActive ? 1 : 0.5 ) } } Menu bar icons — the menu bar now shows a minimal set of icons by default. Add .labelStyle(.titleAndIcon) to a specific menu item to make its icon visible: CommandMenu ( "Stickers" ) { Button { openStore () } label : { Label ( "Store" , systemImage : "bag.fill" ) . labelStyle ( . titleAndIcon ) } } Resizability on iPhone iPhone apps become resizable on iOS 27, which matters for iPhone Mirroring and running iPhone apps on iPad. Xcode 27's Live Previews now include resize handles so you can test this interactively without running on a device. If your app mixes UIKit and SwiftUI, check the session "Modernize your UIKit app" for specifics around screen geometry, size classes, and orientation handling. Toolbar APIs The toolbar has been a source of friction on smalle

2026-06-11 原文 →
开发者

The App Store is going to add subscription bundles soon

Later this year, you will be able to get bundled subscriptions for iPhone apps, as Apple announced it's expanding App Store bundles so they can include offers from different companies. It's similar to streaming video bundles that have combined offers for Apple TV and Peacock, but it also could put together subscriptions for completely different […]

2026-06-10 原文 →
AI 资讯

5 things I already love from the iOS 27 beta

iOS 27 has only been out for a few hours, and I've been messing around with the developer beta on my iPhone 16 Pro. I was most interested in trying out the new Siri AI, but unfortunately, I'm still on Apple's waitlist for that. In the meantime, I've been poking around a bunch of features […]

2026-06-09 原文 →
AI 资讯

Apple WWDC 2026: The 7 biggest announcements

Apple's keynote at this year's Worldwide Developers Conference was a big one. After months of delays, Apple reintroduced us to its AI-upgraded Siri, which will go beyond what the existing voice assistant can do by offering more personalized help. We also got a look at many other updates coming across the operating systems powering the […]

2026-06-09 原文 →
AI 资讯

WWDC 2026 bonus live blog: Tech Talk with Craig Federighi

Fresh off the WWDC keynote presentation, The Verge has been invited to an "on-the-record technical deep dive into the bold new architecture enabling Apple Intelligence capabilities." Apple SVP of Software Engineering Craig Federighi and his team will be there, and so will we. The revamped Apple Intelligence is at the heart of nearly every update […]

2026-06-09 原文 →
开发者

Apple announces iOS 27

Apple announced its next major iOS update, iOS 27, at WWDC 2026 on Monday. Apple is highlighting performance and design improvements, trust and safety upgrades like a Screen Time redesign, and major upgrades to Siri and Apple Intelligence. The update will be supported all the way back to the iPhone 11. A big change is […]

2026-06-09 原文 →
开发者

WWDC 2026: How to watch and what to expect

Apple's biggest event of the year is nearly here. The company's Worldwide Developers Conference will spotlight updates to iOS, macOS, and all of Apple's other operating systems, and this year's event could also include a major overhaul for Siri. Here's how you can watch along live. When WWDC will happen and where you can watch […]

2026-06-08 原文 →
AI 资讯

Migrating a Real App to Swift 6: Data Races, a Dependency I Had to Evict, and the Compiler That Wouldn't Let Me Lie

Let me start with a confession: I have been writing concurrent code since the only tool in the box was a mutex and a prayer. After a decade of Swift I feel suspicion of any code that touches two threads and claims to be fine. So when Swift 6 showed up promising to prove my concurrency correct at compile time, I had two reactions at once. The grizzled half of me said "sure, kid." The other half — the half that has spent actual weekends chasing a heisenbug that only reproduced on a customer's M1 under sync load — said "...please. Please be real." This is the story of moving Ditto Edge Studio — a SwiftUI debug-and-query tool for the Ditto edge database — to Swift 6's strict concurrency mode. It's a real app: SQLCipher persistence, an embedded MCP server, a SpriteKit presence graph, live sync over Bluetooth and WebSocket. Not a to-do list. The kind of app where concurrency bugs hide in the cracks and wait for a demo. Spoiler: it was worth it. It was also more work than the WWDC talk implied, and the most valuable thing the compiler did happened in the one place I told it to stop looking. Let me show you. First, the Wall: A Dependency That Wasn't Coming to Swift 6 Here's the thing nobody warns you about. Swift 6 language mode isn't really a per-file setting. Your code can be immaculate — every actor isolated, every Sendable accounted for — and you'll still be stuck, because one dependency that isn't Swift 6-ready can hold your entire module hostage. Mine was a code editor. I'd been using a popular SwiftUI editor package for the DQL query editor, and it transitively pulled in a syntax-highlighting library. Both were lovely. Both were also written for a more innocent time, and neither was going to compile under Swift 6 strict concurrency without upstream changes that weren't happening on my timeline. I had the usual three options, and I want to be honest about how tempting the cowardly ones were: Pin the dependency and leave the whole app at Swift 5. Free today, expensive

2026-06-08 原文 →
AI 资讯

Apple WWDC 2026: Rebuilt Siri, the Extensions API, and What Claude on 1.4 Billion iPhones Means for Developers

1.4 billion iPhones. That's how many devices Apple will push Siri 2.0 to this fall—built on a custom 1.2-trillion-parameter Gemini model and an Extensions system that lets users route Siri's AI brain to Claude, ChatGPT, or Google's own Gemini directly. Tim Cook announced all of it at WWDC 2026 on June 8, his final WWDC keynote before handing the CEO role to hardware chief John Ternus in September. The story isn't just a better Siri. Apple is opening iOS as an AI distribution channel—the largest in history—and the developer implications are immediate. The Gemini Deal Apple licensed a custom 1.2-trillion-parameter Gemini model from Google at a reported $1 billion per year. That's eight times the parameter count of Apple's current 150-billion-parameter on-device foundation model. Bloomberg first reported the deal in March 2026; WWDC confirmed it on stage. The private vs. cloud distinction matters here. Apple isn't routing your queries to Google's servers. The custom Gemini model runs on Apple's Private Cloud Compute (PCC) infrastructure—Apple-owned silicon, Apple-controlled software, with cryptographic attestation that prevents even Apple engineers from reading query contents. This is the same architecture Apple built for existing cloud AI features, now scaled up for a model eight times larger. What that means in practice: Siri can answer complex multi-step questions, reason over your personal context (calendar, messages, mail), and execute cross-app actions. None of it touches Google's data centers. The New Siri App Siri in iOS 27 ships as a standalone app. iMessage-style interface, persistent conversation threads, full chat history synced via iCloud. Two modes: quick invocation through the Dynamic Island (a glowing "Search or Ask" prompt) for fast queries, and the full chat app for extended conversations. Chat-mode Siri is a first-party ChatGPT competitor. Persistent threads, file attachments, on-screen awareness. Ask "what does this error mean?" while looking at an

2026-06-08 原文 →
AI 资讯

Indie Hacking the App Store: Navigating Apple's Guidelines for Niche Catholic AI Applications

Indie Hacking the App Store: Navigating Apple's Guidelines for Niche Catholic AI Applications The era of building generic software-as-a-service (SaaS) platforms is shifting. For independent developers and indie hackers, the real opportunity now lies in underserved, highly specific markets. One of the most fascinating and complex niches emerging today is the intersection of artificial intelligence and religious utility. Building a catholic ai application presents a unique set of technical, ethical, and regulatory hurdles. Developers must create highly accurate systems while navigating strict platform guidelines. Unlike general-purpose chatbots, religious applications require absolute precision. A single theological error can ruin user trust. Furthermore, platforms like the Apple App Store have strict rules regarding user safety, privacy, and functionality. This article explores the technical architecture, prompt engineering strategies, and platform compliance steps required to build and launch a successful catholic ai app . Whether you are using Flutter, Swift, or Kotlin, these insights will help you build a robust, secure, and helpful application. Designing a Catholic AI: Aligning with the Catholic Church Stance on AI Before writing a single line of code, developers must understand the domain. Building tools for this community requires respect for established doctrines and traditions. Fortunately, the Vatican has provided clear guidance on this technology. The Catholic Church Stance on AI The Vatican has taken a proactive and surprisingly technical approach to modern computing. Under the leadership of Pope Francis, the Church has introduced the concept of "algorethics"—the ethical development and deployment of algorithms. The catholic church stance on ai emphasizes that technology must always serve human dignity, protect personal privacy, and promote truth. For developers, this means your application must prioritize: Truthfulness: Minimizing errors in theological ou

2026-06-05 原文 →
AI 资讯

What barcode scanning taught me about AI food logging UX

I used to think the best AI food logging flow would be simple: Take a photo, let the model identify the meal, confirm it, done. That works surprisingly well for a lot of meals. But while building MetricSync, I learned the awkward product truth: the best input method changes depending on what is in front of the user. A photo is great for a plate. A barcode is better for packaged food. Text is better when the user already knows what they ate or wants to fix one detail quickly. The mistake is treating one input mode like the whole product. Photos feel magical until the meal gets messy Photo logging is the most impressive demo because it removes the blank search box problem. The user does not need to know the exact database name for “rice bowl with chicken and avocado.” They can just show the app what they ate. But meals are messy. A photo might miss the sauce. It might not know if the drink is diet or regular. It might confuse a small serving with a large one. It might identify the food category correctly but still need a portion correction. That does not make photo logging bad. It just means the UX cannot end at “AI guessed something.” The real product is the correction loop. Can the user fix the meal without starting over? Barcode scanning is boring in the best way Barcode scanning is not as exciting as AI, but it is often the right tool. If someone is logging a protein bar, yogurt, cereal, or a packaged drink, asking an image model to infer the nutrition facts is silly. The barcode is more direct. That changed how I thought about the app. AI should not be the star of every interaction. Sometimes AI should get out of the way. The goal is not “use AI everywhere.” The goal is “make logging the thing in front of me take the least effort.” For packaged foods, that means barcode first. For mixed plates, that means photo first. For quick edits, that means text. Text still matters The more AI features you add, the easier it is to forget text input. But text is still the fas

2026-06-05 原文 →
AI 资讯

Building an unofficial Dumpert client for Apple TV with Swift 6 and SwiftUI

Dumpert is a Dutch video site I've watched for years, but there's never been an Apple TV app, so I built one. DumpertTV is an unofficial, open-source tvOS client. Here's how it's put together and a few things that were more interesting than I expected. Disclaimer up front: this project is not affiliated with Dumpert or DPG Media B.V. It's an independent app that uses the public Dumpert API. The stack Swift 6 with strict concurrency ( complete mode) across every target SwiftUI for all UI, tvOS 18+ XcodeGen so the .xcodeproj is generated from a project.yml and never committed CloudKit , GroupActivities (SharePlay), Vision , AVKit , Swift Testing One actor for the network, one source of truth for the UI The whole networking layer is an actor . That makes per-request state like ETags and retry bookkeeping thread-safe without a single lock: actor DumpertAPIClient { private var etags : [ URL : String ] = [:] func fetch < T : Decodable > ( _ endpoint : APIEndpoint ) async throws -> T { // Exponential backoff on 5xx + network errors; honours 304 Not Modified. try await fetchWithRetry ( endpoint , attempt : 0 ) } } The UI reads from a single @Observable @MainActor repository injected through the SwiftUI environment — no Combine, no view models competing over the same state: @Observable @MainActor final class VideoRepository { private(set) var hotshiz : [ MediaItem ] = [] let apiClient : APIClientProtocol // protocol-backed for testing } ContentView () . environment ( videoRepository ) Views just read repository.hotshiz ; updates flow automatically. With Swift 6's strict concurrency on, the compiler kept me honest about every actor hop. Things that were trickier than expected tvOS focus + a top tab bar. Getting a Netflix-style hero carousel to behave with the focus engine took real care. It also made automating screenshots interesting — scripted remote input doesn't reliably drive the simulator, so I added #if DEBUG launch-argument hooks to jump straight to any tab/category f

2026-06-04 原文 →
AI 资讯

[iOS] Why Passthrough MP4 Export Failed for iPhone Videos

A user picks a video from Photos. The app turns that video into a file the server can accept. Then it uploads the file. On the surface, this sounds like a simple upload flow. In practice, iOS makes you answer a much more specific question: How do you reliably turn a video from the user's Photo Library into an uploadable MP4 file? At first, I used AVAssetExportPresetPassthrough . It looked like the right default. It preserves the original media as much as possible, avoids unnecessary re-encoding, and is fast when it works. No quality loss, less CPU usage, less battery cost. But some videos failed during export. The error was usually in the AVFoundationErrorDomain Code=-11838 family. Apple describes this error as operationNotSupportedForAsset : an operation was attempted that is not supported for the asset. At first, I suspected an iCloud download issue, a Photos permission edge case, or something retryable inside PHImageManager . That was not the real problem. The actual problem was more fundamental: I was trying to write an iPhone MOV asset into an MP4 file using a passthrough export. The Original Flow The original code was roughly shaped like this: PHImageManager . default () . requestExportSession ( forVideo : asset , options : options , exportPreset : AVAssetExportPresetPassthrough ) { exportSession , info in exportSession ? . outputURL = outputURL exportSession ? . outputFileType = . mp4 exportSession ? . exportAsynchronously { // upload } } The intention was reasonable: Ask Photos for an export session for the PHAsset . Use AVAssetExportPresetPassthrough to preserve the original quality. Write the result as an .mp4 file for upload. Many videos exported successfully this way. That is what made the bug confusing. Some videos worked. Some did not. The hidden assumption was: Any iPhone video can become an MP4 file through a passthrough export. That assumption is not always true. iPhone Videos Are Usually MOV Files To a user, it is just "a video." Internally, an iPh

2026-06-03 原文 →
AI 资讯

Escudo

Privacy-First Personal Finance for iOS Your finances. On your phone. Nowhere else. A privacy-first personal finance app that connects your banks, brokerage, and investment accounts into one unified dashboard — entirely on-device, no backend, no account required, no subscription. View on GitHub At a Glance 🏦 Multi-source 🔒 100% On-device 📊 Full picture Banks, Revolut, Trading 212 and more No server. No account. Your data stays in your Keychain. Net worth, spending, investments — all in one place Screenshots Log Insights Budget Transaction Entry Settings About Escudo Built out of two frustrations: every decent finance app costs a monthly subscription, and none of them support Trading 212. Escudo connects your banks, brokerage, and investment accounts and gives you a single view of your net worth, spending, and investments — without your data ever leaving your phone. Key Features Net worth dashboard — aggregated balance across all accounts and investment portfolio P&L Unified transaction log — every account in one feed, auto-categorised Spending insights — breakdown by category and trends over time Budget tracking — per-category budgets with visual progress dials Multi-currency — EUR, GBP, USD with stored exchange rates Recurring transactions — template-based recurring transaction engine Shortcuts support — deep linking via escudo:// URL scheme Integrations Source Method Trading 212 REST API — portfolio, orders, dividends Revolut Enable Banking OAuth 2.0 Bankinter PT Enable Banking OAuth 2.0 SIBS SIBS Open Banking (PT market) CSV import Revolut & Bankinter statements All credentials live in the iOS Keychain — never in UserDefaults, never in iCloud, never on a server. Known Limitations Enable Banking does not expose credit card accounts — only bank accounts and transactions are available through the PSD2 API; credit card balances and transactions are not accessible No token auto-refresh for Enable Banking — manual re-auth when tokens expire Categorisation rules are hard

2026-06-03 原文 →