Mark Gurman reported today that Apple will finally unveil the new Siri this June at its annual WWDC conference.
The post Apple to Unveil the New Siri at WWDC 2026 in June appeared first on Thurrott.com.
Mark Gurman reported today that Apple will finally unveil the new Siri this June at its annual WWDC conference.
The post Apple to Unveil the New Siri at WWDC 2026 in June appeared first on Thurrott.com.
AI engineering has a speed problem, but it is not a shortage of announcements. The hard part is turning research into a useful prototype before the next wave of models, tools, or agent patterns shows up.
That gap matters. AI engineers want to compare quality, latency, and cost before they wire a model into a product. Full-stack teams want to test whether an agent workflow is real or just demo. Platform and operations teams want to know when an experiment can graduate into something observable and supportable.
Microsoft makes that case directly in introducing Microsoft Foundry Labs: breakthroughs are arriving faster, and time from research to product has compressed from years to months.
If you build real systems, the question is not "What is the coolest demo?" It is "Which experiments are worth my next hour, and how do I evaluate them without creating demo-ware?" That is where Microsoft Foundry Labs becomes interesting.
Microsoft Foundry Labs is a place to explore early-stage experiments and prototypes from Microsoft, with an explicit focus on research-driven innovation. The homepage describes it as a way to get a glimpse of potential future directions for AI through experimental technologies from Microsoft Research and more. The announcement adds the operating idea: Labs is a single access point for developers to experiment with new models from Microsoft, explore frameworks, and share feedback.
That framing matters. Labs is not just a gallery of flashy ideas. It is a developer-facing exploration surface for projects that are still close to research: models, agent systems, UX ideas, and tool experiments. Here's some things you can do on Labs:
Play with tomorrow’s AI, today: 30+ experimental projects—from models to agents—are openly available to fork and build upon, alongside direct access to breakthrough research from Microsoft.
Go from prototype to production, fast: Seamless integration with Microsoft Foundry gives you access to 11,000+ models with built-in compute, safety, observability, and governance—so you can move from local experimentation to full-scale production without complex containerization or switching platforms.
Build with the people shaping the future of AI: Join a thriving community of 25,000+ developers across Discord and GitHub with direct access to Microsoft researchers and engineers to share feedback and help shape the most promising technologies.
What Labs is not: it is not a promise that every project has a production deployment path today, a long-term support commitment, or a hardened enterprise operating model.
Spotlight: a few Labs experiments worth a developer's attention
- Phi-4-Reasoning-Vision-15B: A compact open-weight multimodal reasoning model that is interesting if you care about the quality-versus-efficiency tradeoff in smaller reasoning systems.
- BitNet: A native 1-bit large language model that is compelling for engineers who care about memory, compute, and energy efficiency.
- Fara-7B: An ultra-compact agentic small language model designed for computer use, which makes it relevant for builders exploring UI automation and on-device agents.
- OmniParser V2: A screen parsing module that turns interfaces into actionable elements, directly relevant to computer-use and UI-interaction agents.
If you want to inspect actual code, the Labs project pages also expose official repository links for some of these experiments, including OmniParser, Magentic-UI, and BitNet.
The simplest mental model is this: Labs is the exploration edge; Foundry is the platform layer.
The Microsoft Foundry documentation describes the broader platform as "the AI app and agent factory" to build, optimize, and govern AI apps and agents at scale. That is a different promise from Labs. Foundry is where you move from curiosity to implementation: model access, agent services, SDKs, observability, evaluation, monitoring, and governance.
Labs helps you explore what might matter next. Foundry helps you build, optimize, and govern what matters now. Labs is where you test a research-shaped idea. Foundry is where you decide whether that idea can survive integration, evaluation, tracing, cost controls, and production scrutiny.
That also means Labs is not a replacement for the broader Foundry workflow. If an experiment catches your attention, the next question is not "Can I ship this tomorrow?" It is "What is the integration path, and how will I measure whether it deserves promotion?"
What makes Labs useful is not that it shows new things. It is that it gives developers a way to inspect those things through the same three concerns that matter in every serious AI system: model choice, agent design, and observability.
Diagram description: imagine a loop with three boxes in a row: Models, Agents, and Observability. A forward arrow runs across the row, and a feedback arrow loops from Observability back to Models. The point is that evaluation data should change both model choices and agent design, instead of arriving too late.
If you are model-curious, Labs should trigger an evaluation mindset, not a fandom mindset. When you see something like Phi-4-Reasoning-Vision-15B or BitNet on the Labs homepage, ask three things: what capability is being demonstrated, what constraints are obvious, and what the integration path would look like.
This is where the Microsoft Foundry Playgrounds mindset is useful even if you started in Labs. The documentation emphasizes model comparison, prompt iteration, parameter tuning, tools, safety guardrails, and code export. It also pushes the right pre-production questions: price-to-performance, latency, tool integration, and code readiness.
That is how I would use Labs for models: not to choose winners, but to generate hypotheses worth testing. If a Labs experiment looks promising, move quickly into a small evaluation matrix around capability, latency, cost, and integration friction.
Labs is especially interesting for agent builders because many of the projects point toward orchestration and tool-use patterns that matter in practice. The official announcement highlights projects across models and agentic frameworks, including Magentic-One and OmniParser v2. On the homepage, projects such as Fara-7B, OmniParser V2, TypeAgent, and Magentic-UI point in a similar direction: agents get more useful when they can reason over tools, interfaces, plans, and human feedback loops.
For working developers, that means Labs can act as a scouting surface for agent patterns rather than just agent demos. Look for UI or computer-use style agents when your system needs to act through an interface rather than an API. Look for planning or tool-selection patterns when orchestration matters more than raw model quality.
My suggestion: when a Labs project looks relevant to agent work, do not ask "Can I copy this architecture?" Ask "Which agent pattern is being explored here, and under what constraints would it be useful in my system?"
Observability is where prototypes usually go to die, because teams postpone it until after they have something flashy. That is backwards. If you care about real systems, tracing, evaluation, monitoring, and governance should start during prototyping.
The Microsoft Foundry documentation already puts that operating model in plain view through guidance for tracing applications, evaluating agentic workflows, and monitoring generative AI apps. The Microsoft Foundry Playgrounds page is also explicit that the agents playground supports tracing and evaluation through AgentOps.
At the governance layer, the AI gateway in Azure API Management documentation reinforces why this matters beyond demos. It covers monitoring and logging AI interactions, tracking token metrics, logging prompts and completions, managing quotas, applying safety policies, and governing models, agents, and tools. You do not need every one of those controls on day one, but you do need the habit: if a prototype cannot tell you what it did, why it failed, and what it cost, it is not ready to influence a roadmap.
Keep this lightweight and tool-agnostic. The point is not to memorize a product UI. The point is to run a disciplined experiment.
Minimal experiment logger (my suggestion): if you want a lightweight way to avoid demo-ware, even a local JSONL log is enough to capture prompts, outputs, decisions, failures, and latency while you compare ideas from Labs.
import json
import time
from pathlib import Path
LOG_PATH = Path("experiment-log.jsonl")
def record_event(name, payload):
# Append one event per line so runs are easy to diff and analyze later.
with LOG_PATH.open("a", encoding="utf-8") as handle:
handle.write(json.dumps({"event": name, **payload}) + "\n")
def run_experiment(user_input):
started = time.time()
try:
# Replace this stub with your real model or agent call.
output = user_input.upper()
decision = "keep exploring" if len(output) < 80 else "wait"
record_event(
"experiment_result",
{
"input": user_input,
"output": output,
"decision": decision,
"latency_ms": round((time.time() - started) * 1000, 2),
"failure": None,
},
)
except Exception as error:
record_event(
"experiment_result",
{
"input": user_input,
"output": None,
"decision": "failed",
"latency_ms": round((time.time() - started) * 1000, 2),
"failure": str(error),
},
)
raise
if __name__ == "__main__":
run_experiment("Summarize the constraints of this Labs project.")
That script is intentionally boring. That is the point. It gives you a repeatable, runnable starting point for comparing experiments without pretending you already have a full observability stack.
Common pitfalls are predictable here.
Azure AI Foundry Labs matters because it gives developers a practical way to explore research-shaped ideas before they harden into mainstream patterns. The smart move is to use Labs as an input into better platform decisions: explore in Labs, validate with the discipline encouraged by Foundry playgrounds, and then bring the learnings back into the broader Foundry workflow.
If you are curious, start with Microsoft Foundry Labs, read the official context in Introducing Microsoft Foundry Labs, and then map what you learn into the platform guidance in Microsoft Foundry documentation.
Register now and save your spot for the chance to ask questions and share feedback with hundreds of Microsoft executives, engineers, and product leaders. By making your voice heard, your feedback will help shape the technologies that you and countless others use every day.
Plus, you’ll hear from icons of Intelligent Work during inspiring keynotes, sessions, and AMAs, including:
Register today! Don't miss your chance to join the largest M365 focused conference of the year.
Ways to save:
See if you qualify for a deep discount or free pass for Microsoft 365 Community Conference. Small Businesses & Non-profits are eligible to apply for a free pass grant at www.change3e.com/grants (government organizations do not quality).
Read on for more details about what to expect, and we hope to see you there!
*subject to change – check back for updates
Sunday, April 19, 2026 – Workshop Day
Monday, April 20, 2026 – Workshop Day
Tuesday, April 21, 2026 –Conference Session Day
Wednesday, April 22, 2026 – Conference Session Day
Thursday April 23, 2026 – Conference Session Day
April 24, 2026 – Workshop Day
Catch the speakers and sessions that matter most to you, and your customers.
200+ sessions and workshops
If you’re interested in learning how Microsoft is shaping the future of work—there’s a session for you. Join Microsoft experts, MVPs, and community leaders as you find out about the latest product innovations and AI-powered tools. Discover what’s new with Microsoft 365 Copilot, Teams, SharePoint, OneDrive, Copilot Studio, and much more. Check out the full catalog >
Explore sessions by day:
Tuesday, April 21, 2026 – Conference Session Day
Wednesday, April 22, 2026 – Conference Session Day
Thursday April 23, 2026 – Conference Session Day
|
10:55 AM - 11:15 AM | Building AI Agents for Communities: How Viva Engage + Copilot Supercharge Organizational Insight Speakers: Spencer Perry and Ramya Rajasekhar |
|
11:30 AM - 12:15 PM | Featured Session: Your Guide What’s New in Teams: Collaboration, Communication, and Copilot Speakers: Ilya Bukshteyn and Chandra Chivukula |
|
11:30 AM - 12:15 PM | Breaking In, Leveling Up: Navigating Tech Careers with Community Speaker: Heather Cook |
|
11:30 AM - 12:15 PM | OneDrive: Your Hub for Productivity and Collaboration Excellence Speaker: Carter Green and Arvind Mishra |
|
11:30 AM - 12:15 PM | From Chaos to AI-Ready in 30 Days: Meet the SharePoint Admin Agent Speaker: Dieter Jansen and Dave Minasyan |
|
11:30 AM - 12:15 PM | Leveraging SQL database in Fabric to implement RAG patterns using Vector search Speaker: Sukhwant Kaur |
|
11:30 AM - 12:15 PM | How Microsoft Actually Builds Copilot Agents Speaker: Kristina Marko and Clint Williams |
|
11:30 AM - 12:15 PM | AI-Powered Collaboration: Unlocking Your Employee Knowledge Base in Engage Speaker: Ramya Rajasekhar and Allison Michels |
|
11:30 AM - 12:15 PM | From Chaos to AI-Ready in 30 Days: Meet the SharePoint Admin Agent Speaker: Dieter Jansen and Dave Minasyan |
|
11:30 AM - 12:15 PM | From Data to Decisions: How Copilot in VS Code Empowers Research and Enterprise Teams Speaker: Semir Sarajlic and Olesya Sarajlic, PhD |
|
11:30 AM - 12:15 PM | Copilot Studio Governance for Public Sector Speaker: William McLendon and Richie Wallace |
|
1:40 PM - 2:00 PM | Deep dive into Agent insights and content governance across SharePoint and Microsoft 365 Speaker: Nikita Bandyopadhyay |
|
1:45 PM - 2:30 PM | Agent Lifecycle Management and Governance leveraging FastTrack Speaker: Pratik Bhusal and Azharullah Meer |
|
1:45 PM - 2:30 PM | Evolving channels to be the hub for collaboration in M365 Speakers: Roshin Lal Ramesan and Derek Snook |
|
1:45 PM - 2:30 PM | Employee Voice Reinvented: Gathering Insights with Next-Gen Feedback Agents Speaker: Caribay Garcia and Alisa Liddle |
|
1:45 PM - 2:30 PM | Fireside Chat: Being an Effective Leader with AI Speaker: Karuana Gatimu |
|
1:45 PM - 2:30 PM | Inside Microsoft: Reclaiming Engineering Time with AI in Azure DevOps Speaker: Apoorv Gupta and Gopal Panigrahy |
|
1:45 PM - 2:30 PM | Featured Session: OneDrive in Action: Transforming Industries, Empowering Success Speaker: Vishal Lodha, Jason Moore, and Arwa Tyebkhan |
|
1:45 PM - 2:30 PM | Demystifying Copilot and AI experiences on Windows Speaker: Anupam Pattnaik |
|
1:45 PM - 2:30 PM | Work IQ fundamentals Speaker: Ben Summers |
|
1:45 PM - 2:30 PM | Copilot "Employee Agents" Speaker: Kyle Von Haden |
|
2:30 PM - 2:50 PM | FastTrack your M365 Deployment Speaker: Pratik Bhusal and Jeffrey Manning |
|
2:45 PM - 3:30 PM | Protect and govern agents with Microsoft Purview Speaker: Nishan DeSilva and Shilpa Ranganathan |
|
2:45 PM - 3:30 PM | Mission Readiness - Cybersecurity and Copilot in the Public Sector Speaker: Karuana Gatimu |
|
2:45 PM - 3:30 PM | A New Way of Building! Child Agents, Instructions, and Descriptions Speaker: Dewain Robinson and Grant Gieszler |
|
2:45 PM - 3:30 PM | Start your adoption journey with adoption.microsoft.com Speaker: Jessie Hwang |
|
2:45 PM - 3:30 PM | Copilot readiness & resiliency with M365 Backup & Archive Speaker: Sree Lakshmi and Eshita Priyadarshini |
|
2:45 PM - 3:30 PM | Protection in Teams as Modern Threats Evolve Speaker: Srisudha Mahadevan and Harshal Gautam |
|
2:45 PM - 3:30 PM | Meet AI in SharePoint Speaker: Cory Newton-Smith and Julie Seto |
|
2:45 PM - 3:30 PM | Featured Session: Engage everywhere: communities, events, and storylines in Teams, powered by AI Speaker: Jeanette Vikbacka Castaing, Jason Mayans, Steve Nguyen, and Murali Sitaram |
|
3:30 PM - 4:15 PM | Keynote: From Momentum to Movement: Where Community Goes Next Speakers: Heather Cook and Karuana Gatimu |
Friday, April 24, 2026 – Workshop Day
|
9:00 AM - 9:45 AM | Deepening customer connections for your SMB through Teams Speakers: Angela Chin and Prem Mathiyalagan |
|
9:00 AM - 9:45 AM | Cultivating Trust and Leadership Excellence: Strategies for Respect and Empathy in the Workplace Speaker: Heather Cook |
|
9:00 AM - 9:45 AM | Planner, Copilot and Agents: AI Assisted Projects with Work IQ Speakers: Howard Crow and Robyn Guarriello |
|
9:00 AM - 9:45 AM | Microsoft 365 Mergers & Acquisitions Speaker: Vaibhav Gaddam and Subham Dang |
|
9:00 AM - 9:45 AM | Top Wins - Copilot and Agents for Retail Speaker: Karuana Gatimu |
|
9:00 AM - 9:45 AM | Agents are joining the team - build collaborative agents for Microsoft Teams Speaker: Carter Gilliam and Saira Shariff |
|
9:00 AM - 9:45 AM | Prompt to Profit: How Finance Teams Win with M365 Copilot & AI Agents Speaker: Melanie Mayo |
|
9:00 AM - 9:45 AM | Top Wins - Copilot and Agents for Retail Speaker: Danielle Moon and Karuana Gatimu |
|
9:00 AM - 9:45 AM | Microsoft Lists Speaker: Mitalee Mulpuru and Arjun Tomar |
|
9:00 AM - 9:45 AM | Microsoft Purview: AI‑-Powered Data Security for Microsoft 365 Speaker: Aashish Ramdas |
Develop the skills needed to thrive as a Frontier Firm through sessions led by innovators, builders, designers, Microsoft product teams, and MVPs shaping collaboration.
Lightning Talks: Lightning Talks are fast‑paced, 15‑minute sessions happening live at the Microsoft Booth that are designed to deliver practical insights, real‑world tips, and quick wins you can take back to your team right away. Stop by throughout the day to learn something new, get inspired, and catch a few surprises along the way. You can check the event agenda for session details.
Demo Stations: Visit the demo stations in the Microsoft Booth for guided, live walkthroughs led by Microsoft experts who can answer your questions in real time. Each station is designed to support scenario‑based conversations and hands‑on exploration, so you can dive deeper into the tools and solutions that matter most to your organization. The Microsoft Booth will be open anytime the expo hall is open.
Mini LEGO figurines: Build a mini-LEGO figurine as a takeaway after walking through a demo scenario. It is a quick hands-on moment that adds some play and personality to your conference experience and lets you take some fun swag home.
Celebrate 25 years of SharePoint
Tuesday, April 21, 12:30PM – 1:30PM
Celebrate the SharePoint community with the premiere of a new documentary short film at the conference, complete with a true movie‑premiere experience. Designed to honor the impact of SharePoint and Microsoft 365, this special event brings the community together to capture and celebrate the moment in person.
Tuesday, April 21, 5PM – 6:30PM
Microsoft Booth
Join a live panel celebrating 25 years of SharePoint and what is next for the platform and community. Expect reflections, stories, and forward-looking conversations tied to the broader SharePoint at 25 celebration.
Surface + Global Skilling Bar: Get hands on with Surface devices while exploring skilling resources designed to help you level up. This activation is being built to connect Surface experiences with AI skilling guidance, including the AI Skills Navigator. Attendees can experience this hands-on learning in the Microsoft booth during expo hall hours.
Surface giveaways from raffle: Enter the raffle for a chance to win Surface giveaways and other prizes during the event. Winners are selected as part of the community giveaway experience, so check posted instructions onsite and make sure you enter. Each raffle will take place at the close of expo hall hours at the Microsoft Booth
Bring your spirit wear game!
We’re bringing the fun to the show floor with themed Costume Spirit Days all week long! Come by the booth in your best look, show off your costume, and score an extra raffle ticket for our daily prize drawing.
Product Roundtable Discussions
Microsoft wants to hear from you!
The Microsoft User Experience Research team is hosting a series of interactive sessions focused on AI-powered experiences across Microsoft Teams, OneDrive, SharePoint, Planner, and Viva Engage. We invite you to join us to share your perspectives, explore emerging ideas, and influence what’s next.
Customer feedback is at the heart of our innovation process. Your participation helps ensure that the experiences we are building are useful, intuitive, and grounded in real organizational needs.
“At Microsoft, learning from our customers is a privilege and a vital part of our customer-driven innovation process. By sharing your perspectives, you enable us to create solutions that truly meet your needs and enhance your overall experience with Microsoft products.”
– Marcella Silva, Partner Director of User Experience Research
What you can expect:
How to sign up:
Stay tuned! The sign-up form and detailed session descriptions will be available soon.
Don’t miss this opportunity to make a difference in the future of Microsoft 365!
Community meetups
Community meetups are informal, connection‑first gatherings where attendees can meet others who share a role, interest, or identity. Whether you're looking to exchange ideas, grow your network, or find your people within the Microsoft 365 community, these sessions create space for meaningful conversations and authentic connection beyond the conference sessions.
Women in Tech and Allies Lunch Discussion
Grab your lunch and network with peers, discuss progress, and focus on how we can continue to make the Microsoft ecosystem the best in the world for supporting women. All individuals are welcome regardless of gender for an open and compassionate conversation on allyship and inclusiveness.
The discussion will be hosted by Heather Cook, Principal Customer Experience PM and distinguished panelists including:
Get the MVP experience—and don’t forget the photo op!
Microsoft MVPs will be on hand throughout the event to share their real-world experience and practitioner insight directly to you. During sessions, our MVPs will share thoughts and brainstorm solutions to challenges as they share practical, scenario‑driven guidance drawn from hands‑on work with Microsoft 365.
And of course, the program isn’t over without the annual MVP photo!
You’ll find all this and more at Microsoft 365 Community Conference, April 21–23 in Orlando.
Register today and don't miss your chance for the largest M365 focused conference of the year. and don't miss your chance for the largest M365 focused conference of the year.
Ways to save:
See if you qualify for a deep discount or free pass for Microsoft 365 Community Conference. Small Businesses & Non-profits are eligible to apply for a free pass grant at www.change3e.com/grants (government organizations do not quality).
Visit M365Conf.com and follow the action on: X/Twitter: @M365Conf / #M365Con, @Microsoft365, @MSFTCopilot, @SharePoint, @OneDrive, @MicrosoftTeams, @MSPowerPlat, @Microsoft365Dev, and @MSFTAdoption. And on our Microsoft Community LinkedIn and Learning YouTube channel.
Want more information? Check out our library of blogs on topics, speakers, community activities and more:
We hope you will join us in Orlando for an unforgettable week of innovation, inspiration, and community! Get ready to dive into the action with passionate MVPs, Microsoft product leaders, and an incredible lineup of tools like Microsoft 365 Copilot, Teams, SharePoint, OneDrive, Copilot Studio, Power Platform, Planner, and so much more. Let us make memories and shape the future together!
At the Microsoft 365 Community Conference this April 21–23 in Orlando, we’re proud to spotlight a range of experiences created to support, connect, and celebrate women across the tech community—from leadership panels and networking opportunities to professional development sessions designed to help you grow your impact and your career. Join us for the Women in Tech & Allies Lunch on Wednesday, April 22 sponsored by AvePoint and explore Diversity, Equity, Inclusion, and Professional Development sessions throughout the week.
Be sure to register for the conference so you can dive into all of these activations onsite!
A big thank you to the women on the Microsoft 365 Community Conference Community Content Committee, Susan Hanley, Martina Grom who worked on the community session selection for the show.
Calling all women in tech and allies! Join us on Wednesday April 22, for the Women in Tech & Allies Lunch, your opportunity to network with peers, discuss the unique challenges facing women in the field and brainstorm solutions, and celebrate the talent, expertise, and dexterity that is uniquely you.
This community experience, held at the Microsoft 365 Community Conference, April 21–23 in Orlando, is among the most popular moments of the conference year over year, and we want you to be a part of it. This year, we’re splitting the lunch into two segments: we’ll begin with a dynamic executive panel, which will then lead into a networking activation designed to spark connection, allyship, and actionable insights.
The executive panel will be hosted by Heather Cook, Microsoft’s Principal Customer Experience Manager. She'll be joined by a powerhouse lineup of panelists, including:
They will discuss how women are utilizing Microsoft’s solutions to shape the Frontier Firm. Heather and the panelists will discuss the challenges they’ve faced as women in tech, as well as support from allies and how innovations in the field have built a foundation for their growth and the growth of their teams. Wristbands for the Women in Tech & Allies Lunch will need to be picked up on-site.
And of course, there will be ample opportunities for fun, networking, and swag! Attendees will walk away with Women in Microsoft 365 enamel pins, as well as Women in Power stickers and some great raffle prizes. Plus, they’ll have the opportunity to network with other attendees over a good meal.
Insights, solutions, connection, and good times, what more would you want from an afternoon? Register now and be a part of something special April 21–23. Use the SAVE150 code for $150 USD off current registration pricing.
// State to hold the list of selected contacts
var contacts by remember { mutableStateOf<List<Contact>>(emptyList()) }
// Launcher for the Contact Picker intent
val pickContact = rememberLauncherForActivityResult(StartActivityForResult()) {
if (it.resultCode == Activity.RESULT_OK) {
val resultUri = it.data?.data ?: return@rememberLauncherForActivityResult
// Process the result URI in a background thread
coroutine.launch {
contacts = processContactPickerResultUri(resultUri, context)
}
}
}
// Define the specific contact data fields you need
val requestedFields = arrayListOf(
Email.CONTENT_ITEM_TYPE,
Phone.CONTENT_ITEM_TYPE,
)
// Set up the intent for the Contact Picker
val pickContactIntent = Intent(ACTION_PICK_CONTACTS).apply {
putExtra(EXTRA_PICK_CONTACTS_SELECTION_LIMIT, 5)
putStringArrayListExtra(
EXTRA_PICK_CONTACTS_REQUESTED_DATA_FIELDS,
requestedFields
)
putExtra(EXTRA_PICK_CONTACTS_MATCH_ALL_DATA_FIELDS, false)
}
// Launch the picker
pickContact.launch(pickContactIntent)
// Data class representing a parsed Contact with selected details
data class Contact(val id: String, val name: String, val email: String?, val phone: String?)
// Helper function to query the content resolver with the URI returned by the Contact Picker.
// Parses the cursor to extract contact details such as name, email, and phone number
private suspend fun processContactPickerResultUri(
sessionUri: Uri,
context: Context
): List<Contact> = withContext(Dispatchers.IO) {
// Define the columns we want to retrieve from the ContactPicker ContentProvider
val projection = arrayOf(
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME_PRIMARY,
ContactsContract.Data.MIMETYPE, // Type of data (e.g., email or phone)
ContactsContract.Data.DATA1, // The actual data (Phone number / Email string)
)
val results = mutableListOf<Contact>()
// Note: The Contact Picker Session Uri doesn't support custom selection & selectionArgs.
context.contentResolver.query(sessionUri, projection, null, null, null)?.use { cursor ->
// Get the column indices for our requested projection
val contactIdIdx = cursor.getColumnIndex(ContactsContract.Contacts._ID)
val mimeTypeIdx = cursor.getColumnIndex(ContactsContract.Data.MIMETYPE)
val nameIdx = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME_PRIMARY)
val data1Idx = cursor.getColumnIndex(ContactsContract.Data.DATA1)
while (cursor.moveToNext()) {
val contactId = cursor.getString(contactIdIdx)
val mimeType = cursor.getString(mimeTypeIdx)
val name = cursor.getString(nameIdx) ?: ""
val data1 = cursor.getString(data1Idx) ?: ""
// Determine if the current row represents an email or a phone number
val email = if (mimeType == Email.CONTENT_ITEM_TYPE) data1 else null
val phone = if (mimeType == Phone.CONTENT_ITEM_TYPE) data1 else null
// Add the parsed contact to our results list
results.add(Contact(contactId, name, email, phone))
}
}
return@withContext results
}
Check out the full documentation here.
Swift is designed to be the language you reach for at every layer of the software stack. Whether you’re building embedded firmware, internet-scale services, or full-featured mobile apps, Swift delivers strong safety guarantees, performance control when you need it, and expressive language features and APIs.
Swift 6.3 makes these benefits more accessible across the stack. This release expands Swift into new domains and improves developer ergonomics across the board, featuring:
Read on for an overview of the changes and next steps to get started.
Swift 6.3 introduces the @c attribute, which lets you expose Swift functions and enums to C code in your project. Annotating a function or enum with @c prompts Swift to include a corresponding declaration in the generated C header that you can include in your C/C++ files:
@c
func callFromC() { ... }
// Generated C header
void callFromC(void);
You can provide a custom name to use for the generated C declaration:
@c(MyLibrary_callFromC)
func callFromC() { ... }
// Generated C header
void MyLibrary_callFromC(void);
@c also works together with @implementation. This lets you provide a Swift implementation for a function declared in a C header:
// C header
void callFromC(void);
// Implementation written in Swift
@c @implementation
func callFromC() { ... }
When using @c together with @implementation, Swift will validate that the Swift function matches a pre-existing declaration in a C header, rather than including a C declaration in the generated header.
Swift 6.3 introduces module selectors to specify which imported module Swift should look in for an API used in your code. If you import more than one module that provides API with the same name, module selectors let you disambiguate which API to use:
import ModuleA
import ModuleB
let x = ModuleA::getValue() // Call 'getValue' from ModuleA
let y = ModuleB::getValue() // Call 'getValue' from ModuleB
Swift 6.3 also enables using the Swift module name to access concurrency and String processing library APIs:
let task = Swift::Task {
// async work
}
Swift 6.3 introduces new attributes that give library authors finer-grained control over compiler optimizations for clients of their APIs:
@specialize.@inline(always). Use this attribute only when you’ve determined that the benefits of inlining outweigh any increase in code size.@export(implementation). This allows the function to participate in more compiler optimizations.For a full list of language evolution proposals in Swift 6.3, see the Swift Evolution dashboard.
Swift 6.3 includes a preview of Swift Build integrated into Swift Package Manager. This preview brings a unified build engine across all supported platforms for a more consistent cross-platform development experience. To learn more, check out Preview the Swift Build System Integration. We encourage you to try it in your own packages and report any issues you encounter.
Swift 6.3 also brings the following Swift Package Manager improvements:
swift package show-traits command.For more information on changes to Swift Package Manager, see the SwiftPM 6.3 Release Notes.
Swift Testing has a number of improvements, including warning issues, test cancellation, and image attachments.
severity parameter to Issue.record. You can record an issue as a warning using Issue.record("Something suspicious happened", severity: .warning). This is reflected in the test’s results, but doesn’t mark the test as a failure.try Test.cancel(). This is helpful for skipping individual arguments of a parameterized test, or responding to conditions during a test that indicate it shouldn’t proceed.The list of Swift Testing evolution proposals included in Swift 6.3 are ST-0012, ST-0013, ST-0014, ST-0015, ST-0016, ST-0017, and ST-0020.
Swift 6.3 adds three new experimental capabilities to DocC:
--enable-experimental-markdown-output to docc convert.<noscript> tag. This improves discoverability by search engines and accessibility for screen readers without requiring JavaScript. Try it out by passing --transform-for-static-hosting --experimental-transform-for-static-hosting-with-content to docc convert.Code block annotations: Unlock new formatting annotations for code blocks, including nocopy for disabling copy-to-clipboard, highlight to highlight specific lines by number, showLineNumbers to display line numbers, and wrap to wrap long lines by column width. Specify these options in a comma-separated list after the language name on the opening fence line:
```swift, nocopy
let config = loadDefaultConfig()
```
```swift, highlight=[1, 3]
let name = "World" // highlighted
let greeting = "Hello"
print("\(greeting), \(name)!") // highlighted
```
```swift, showLineNumbers, wrap=80
func example() { /* ... */ }
```
DocC validates line indices and warns about unrecognized options. Try out the new code block annotations with --enable-experimental-code-block-annotations.
Embedded Swift has a wide range of improvements in Swift 6.3, from enhanced C interoperability and better debugging support to meaningful steps toward a complete linkage model. For a detailed look at what’s new in embedded Swift, see Embedded Swift Improvements coming in Swift 6.3.
Swift 6.3 includes the first official release of the Swift SDK for Android. With this SDK, you can start developing native Android programs in Swift, update your Swift packages to support building for Android, and use Swift Java and Swift Java JNI Core to integrate Swift code into existing Android applications written in Kotlin/Java. This is a significant milestone that opens new opportunities for cross-platform development in Swift.
To learn more and try out Swift for Android development in your own projects, see Getting Started with the Swift SDK for Android.
Swift 6.3 reflects the contributions of many people across the Swift community — through code, proposals, forum discussions, and feedback from real-world experience. A special thank you to the Android Workgroup, whose months of effort — building on many years of grassroots community work — brought the Swift SDK for Android from nightly previews to an official release in Swift 6.3.
If you’d like to get involved in what comes next, the Swift Forums are a great place to start.
Try out Swift 6.3 today! You can find instructions for installing a Swift 6.3 toolchain on the Install Swift page.