





















































MobilePro #169: Google I/O 2025, Jetpack Compose 1.8, Perplexity’s Voice Assistant on iOS, Xcode 16.4 Beta, and more...
HubSpot’s AI-powered ecosystem presents a global opportunity projected to reach $10.2 billion by 2028. To fuel that growth potential, we are opening up our platform more –introducing an expanded set of APIs, customizable app UI, and tools that better support a unified data strategy.
Hi ,
Welcome to the 169th edition of MobilePro! This week’s issue is packed with updates that highlight the fast-moving world of mobile and AI innovation—from Google I/O’s groundbreaking agenda to Samsung’s widget revolution:
🎤 Google I/O 2025 sessions announced: Nobel laureate Sir Demis Hassabis headlines with a keynote on AI’s future, alongside sessions on Android, Firebase, Flutter, Gemini API, and more.
🛠️ Jetpack Compose 1.8 is live: The latest release brings smarter autofill, composable visibility features, and powerful new animation capabilities to boost your UI workflows.
🔈 Perplexity’s Voice Assistant debuts on iOS: Manage reservations, emails, media, and more with natural voice commands—plus shortcut integration for instant AI help on iPhone.
💬 Dart 3.8.0 changelog revealed: Key language updates are on the horizon, including null-aware elements and a refreshed dart fix experience—setting the stage for a smarter coding future.
🚀 Flurry of updates from Apple: Xcode 16.4 beta arrives with new SDKs for iOS 18.5, macOS Sequoia 15.5, visionOS 2.5, and more, empowering seamless app development across platforms.
And in What’s Happening in AI?—OpenAI’s new gpt-image-1 model powers professional-grade image generation. As always, stick around for our Developer Tip to boost your workflow, and don’t miss the Did You Know? segment!
Let’s dive in!
P.S.: If you have any suggestions or feedback, or would like us to feature your project on a particular subject, please write to us. Just respond to this email!
Whiteswan Identity security is a comprehensive Zero-trust PAM purpose built to secure the massive risk arising from stolen & over-permissioned human and non-human identities. Whiteswan provides Identity security for your entire IT infrastructure and secures on-prem and Cloud environments in a single console.
If there’s any major news in the world of mobile app dev in the last week, MobilePro has you covered.
What are mobile app developers discussing? Do you have any concerns, advice, or tutorials to share? MobilePro brings them to you all in one place.
AI is evolving fast—are you keeping up? MobilePro brings you key discussions, trends, and expert takes in one place.
MobilePro presents the latest titles from Packt that ought to be useful for mobile developers.
The Flutter mechanism for passing around dependencies through the tree is called InheritedWidget. You have certainly used it in your Flutter apps, even if you haven’t written one explicitly. Let’s take a look at what InheritedWidget is and how it can help us on our state management journey in this excerpt from Daria Orlova, Esra Kadah, and Jaime Blasco’s Flutter Design Patterns and Best Practices.
As you know, in Flutter, everything is a widget. So far, we have discussed various UI-related building widgets, such as Stateless, Stateful, and Render, as well as their descendants. However, because these widgets are organized in a tree data structure, it is possible to perform various manipulations with it, such as a tree traversal. This capability is useful when we need to not only render static UI but also pass around shared data.
The Flutter framework includes a widget specifically for this purpose: InheritedWidget. It is the last of the fundamental Flutter widgets. If we examine the framework.dart class and search for an abstract class, we will find only 25 instances in the entire file (as of Flutter 3.10). All of these are in some way related to Stateless, Stateful, Render, or Inherited.
So, let's take a look at the source code of InheritedWidget:
abstract class InheritedWidget extends ProxyWidget {
const InheritedWidget({ super.key, required super.child });
@override
InheritedElement createElement() => InheritedElement(this);
@protected
bool updateShouldNotify(covariant InheritedWidget oldWidget);
In the preceding code, take note of the following:
***
But how can we inherit from this widget and what kind of data may we possibly want to pass around? Read more in Flutter Design Patterns and Best Practices to find out.
Starting out in React Native and wish you had some performance tips handy? Check out these tips by Anubhuti Chopra.
In case you have any tips to share with your fellow mobile developers, do reply to this mail and we’d be glad to feature you in a future edition of MobilePro.
The Digital 2024 Global Overview Report reveals that there are now 5.61 billion mobile phone users and 5.35 billion internet users worldwide. Over 5 billion social media user identities exist, representing 62.3% of the global population. People now spend an average of 2 hours and 23 minutes daily on social media, highlighting the growing dominance of mobile and digital life globally.
Sourced from DataReportal.
👋 And that’s a wrap. We hope you enjoyed this edition of MobilePro. If you have any suggestions and feedback, or would just like to say hi to us, please write to us. Just respond to this email!
Cheers,
Runcil Rebello,
Editor-in-Chief, MobilePro