





















































MobilePro #164: What's new in Kotlin, Android 16’s third beta, Claude’s ability to search web, and more…
Hi ,
Welcome to the 164th edition of MobilePro! We hope you are having an amazing week and are ready to explore the world of mobile development. From Apple’s AI-powered Priority Notifications to Kotlin’s newest preview build, Android 16’s Beta 3 milestone, and Lynx, a new cross-platform framework—there’s plenty to explore:
📲 Apple’s iOS 18.4 update enhances Siri, improves Apple Cash virtual cards, and brings security and enterprise updates.
🚀 Kotlin 2.1.20-RC3 is here, bringing major upgrades to multiplatform development and IDE integration.
🤖 Android 16 Beta 3 lands with finalized APIs, Auracast support, and new accessibility features.
🌍 Lynx is redefining cross-platform development, letting devs build native UIs with Rust-based tooling.
That isn’t all. We bring you a new section, What's Happening in AI?, where we glance at all the developments in the world of artificial intelligence, including a look at Claude’s new capability. We also have the Developer Tip section to enhance your workflow and the Did You Know? section, because how else can you plan for the future without knowing your past?
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!
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.
Where do you even begin when making an app for iOS 18? In case you're just starting out and aren't sure, Ahmad Sahar's iOS 18 Programming for Beginners is here to help you out. It is detailed and comprehensive and covers everything while using Swift 6 and Xcode 16. Ahead is an excerpt on how to store a collection of values within dictionaries in Swift:
Creating a dictionary
Imagine that you're creating a Contacts app. For this app, you'll use a dictionary to store your contacts. Just like an array, you can create a new dictionary by declaring it and assigning an initial value to it. Add the following code to your playground and run it:
var contactList = ["Shah" : "+60123456789", "Aamir" : "+0223456789"]
This instruction creates a dictionary variable named contactList. The assigned value, ["Shah" : "+60123456789", "Aamir" : "+0223456789"], is a dictionary literal. It represents a dictionary with two elements. Each element is a key-value pair, with the contact name as the key and thecontact number as the value. Note that since the contact name is the key field, it should be unique.
Since the contactList dictionary is a variable, you can change the contents of the dictionary after it has been created. Both key and value are of type String due to type inference.
Imagine that your app must display the total number of contacts. In the next section, you'll learn how to determine the number of elements in a dictionary.
Checking the number of elements in a dictionary
To find out how many elements there are in a dictionary, use count. Type in and run the following code:
contactList.count
As there are two elements in the contactList dictionary, 2 is displayed in the Results area.
You can check whether a dictionary is empty by using isEmpty. Type in and run the following code:
contactList.isEmpty
Since the contactList dictionary has two elements, false is displayed in the Results area.
It is also possible to see if a dictionary is empty by using contactlist.count == 0 but using contactList.isEmpty offers better performance.
Imagine that you just finished a meeting, and want to add a new contact to your app. As this dictionary was declared using the var keyword, you can add key-value pairs to it. You'll learn how in the next section.
Adding a new element to a dictionary
To add a new element to a dictionary, provide a key and assign a value to it. Type in and run the following code:
contactList["Meena"] = "+0229876543"
contactList
This adds a new key-value pair with the key "Meena" and the value "+0229876543" to the contactList dictionary. It now consists of "Shah" : "+60126789345", "Aamir" : "+0223456789", and "Meena" : "+0229876543". You can see this in the Results area.
Imagine that you want to call one of your contacts, and you want the phone number for that contact. In the next section, you'll see how to access dictionary elements by specifying the key for the desired value.
Accessing a dictionary element
You can specify a dictionary key to access its corresponding value. Type in and run the following code:
contactList["Shah"]
This returns the value for the key "Shah", and +60123456789 is displayed in the Results area.
***
There are many more scenarios captured ahead. Imagine that one of your contacts has a new phone, so you must update the phone number for that contact. How do you go about that?
Well, read Ahmad Sahar’s further thoughts and work in iOS 18 Programming for Beginnersto find out.
Carlos B. is sharing a handy Xcode spacing shortcut—a trick they swear by for keeping code formatting clean and consistent. If you’re all about writing neatly structured code, this tip might just make your workflow smoother. Check out the full breakdown in their post!
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.
MIT is taking no-code app development to the next level with Aptly, an extension of the App Inventor platform that lets users build mobile apps just by describing them in plain language. Powered by large language models, Aptly makes app creation more accessible than ever—whether you’re generating new apps or tweaking existing ones, all it takes is a simple conversation. Check out the complete paper here.
👋 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