Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds

MobilePro

49 Articles
Runcil Rebello
15 Oct 2025
11 min read
Save for later

MobilePro #194: Behind Every Connected App—The Power of REST and APIs

Runcil Rebello
15 Oct 2025
11 min read
Mobile development blogs, tutorials and resources inside!Latest Mobile Dev Insights: iOS, Android, Cross-PlatformAdvertise with Us|Sign Up to the NewsletterMobilePro #194: Behind Every Connected App—The Power of REST and APIsHi ,Welcome to the 194th edition of MobilePro!Every app needs data — but not all data is created equal. Some can live quietly inside your codebase, but the moment you need live updates, dynamic content, or anything that changes in real time, you have to reach beyond the app and talk to the web. That’s where REST and APIs step in.In this issue of MobilePro, we’re breaking down the backbone of modern app communication — RESTful APIs — and the formats that make them tick: JSON and XML. You’ll learn how these technologies let your app fetch, send, and process live data seamlessly, without constant code updates or manual refreshes.We’ll cover:How REST and HTTP work together to power modern web communicationThe difference between JSON and XML (and why JSON usually wins)How Kotlin’s Ktor and Serialization libraries make network calls effortlessWhether you’re new to backend interaction or just want a clearer picture of how data actually moves between your app and the web, this guide will get you there — fast.This is excerpted from the bookHow to Build Android Applications with Kotlin, written by Alex Forrester, Eran Boudjnah, Alexandru Dumbravan, and Jomar Tigcal.Before we jump in though, let's take a quick look at last week's highlights:🚀 Introducing the React Foundation🍎 Apple’s Foundation Models framework unlocks new app experiences powered by Apple Intelligence🤖 Introducing apps in ChatGPT and the new Apps SDK💻 Google’s coding agent Jules now works in the command lineTake the Survey!Join Snyk on October 22, 2025 at DevSecCon25 - Securing the Shift to AI NativeJoin Snyk October 22, 2025 for this one-day event to hear from leading AI and security experts from Qodo, Ragie.ai, Casco, Arcade.dev, and more!The agenda includes inspiring Mainstage keynotes, a hands-on AI Demos track on building secure AI, Snyk's very FIRST AI Developer Challenge and more!Save your spot nowMeet the AuthorsAlex FSenior Android DeveloperNatWest GroupEran BDirectorMitteloupe LimitedAlexandru DPrincipal Android EngineerNutmegJomar TLecturerDe La Salle University</> Introducing REST, API, JSON, and XMLData shown to users can be hardcoded (static) or fetched dynamically. Hardcoded data limits flexibility since updates require republishing the app. Dynamic or time-sensitive data, like exchange rates, weather, or asset availability, must be fetched from a server.A common architecture for serving such data is Representational State Transfer (REST).REST and APIsThe REST architecture isdefined by a set of six constraints: client-server architecture, statelessness, cacheability, a layered system, code on demand (optional), and a uniform interface.When applied to a web service application programming interface (API), we get a Hypertext Transfer Protocol (HTTP)-based RESTful API. The HTTP protocol is thefoundation of data communication for the World Wide Web, hosted on and accessible via the internet. It is the protocol used by servers all around the world to serve websites to users in the form of HTML documents, images, style sheets, and so forth.Important noteAn interesting article on this topic can be found at Mozilla. You can learn more about HTTP here: W3Schools.RESTful APIs rely on the standard HTTP methods—GET, POST, PUT, DELETE, and PATCH—to fetch and transform data. These methods allow us to fetch, store, delete, and update data entities on remote servers.The Android platform includes an HttpURLConnection client to execute these HTTP methods. However, it has limited capabilities, so in modern Android projects, we commonly rely on third-party libraries instead. Common libraries for this purpose are Retrofit and Ktor. In this chapter, we will use Ktor. Ktor is an HTTP client and server library that was developed by JetBrains using Kotlin. We will use it to fetch data from web APIs.Most commonly, such data is represented by JSON.JSONJSON is a text-based data transfer format. As the name implies, it was derived from JavaScript. In fact, a JSON string can be used as-is as a valid data structure in JavaScript. JSON has become one of the most popular standards for data transfer, and its most modern programming languages have libraries that encode or decode data to or from JSON.A simple JSONpayload may look something like this:{ "employees": [ { "name": "James", "email": "james.notmyemail@gmail.com" }, { "name": "Lea", "email": "lea.dontemailme@gmail.com" } ]}XMLAnother common data structure used by RESTful services is Extensible Markup Language (XML), whichencodes documents in a human and machine-readable format. XML is considerably more verbose than JSON. The same data structure that was shown in the previous example, but in XML, would look something like this:<employees> <employee> <name>James</name> <email>james.notmyemail@gmail.com</email> </employee> <employee> <name>Lea</name> <email>lea.dontemailme@gmail.com</email> </employee></employees>Processing JSON payloadsWhen obtaining a JSON payload, we essentially receive a string. To convert that string into a data object, we have a few options, with the most popular ones being libraries such as Gson, Jackson, and Moshi. In Java, we also have the built-in org.json package, while in Kotlin, we have Kotlin Serialization. We will be using the Kotlin Serialization library. Like Ktor, it was developed by JetBrains. It is very lightweight and well-maintained.Now that we know what type of data we can commonly expect to use when communicating with network APIs, let’s see how we can communicate with these APIs.Fetching data from a network endpointWe will use The Cat API. This RESTful API offers us vast data about, well… cats.Setting up Ktor and internet permissionsTo get started, we will create a new project. To allow our app to make network calls, we have to grant our app the internet access install-time permission. We can do this by adding the following code to your AndroidManifest.xml file, right before the Application tag:<uses-permission android:name="android.permission.INTERNET" />Next, we need to set up our app so that it includes Ktor. Ktor helps us generate Uniform Resource Locators (URLs), whichare the addresses of the server endpoints we want to access. It also makes decoding JSON payloads into Kotlin data structures easier by providing integration with several parsing libraries. Sending data to the server is also easier with Ktor, as it helps with encoding the requests from Kotlin data structures into JSON.To add Ktor to our project, we need to add the following dependencies to the build.gradle file of our app:"io.ktor:ktor-client-core:(latest version)""io.ktor:ktor-client-cio:(latest version)"The first line adds the main client functionality to our project, while the second line adds the CIO engine. Engines are Ktor’s mechanism for processing network requests. Different engines allow Ktor to run on different platforms. The CIO engine is a good choice for us because it supports Android, as well as Java virtual machines and native Kotlin.With Ktor included in our project, we can set the project up.Making API requests with Ktor and displaying dataTo access an HTTP(S) endpoint, we must start by creating a Ktor HttpClient instance. To create a client, we must provide an engine. The code to create a client with the CIO engine looks like this:val client = HttpClient(CIO)The preceding code is quite self-explanatory and produces a client that we can use to make network requests.In Android, network requests cannot be made from the main thread. This makes sense because waiting for a network request to resolve is an expensive operation, and executing it from the main thread would make an app non-responsive.Ktor solves this problemby using coroutines. This means that network calls using a Ktor client must either be in a suspend function or within a coroutine. For example, to make a call to the https://api.thecatapi.com/v1/images/search endpoint, we can use the following code:suspend fun searchImages(limit: Int, size: String):String = client.get( https://api.thecatapi.com/v1/images/search ) { url { parameter("limit", limit) } }.body()There are a few things to note here. First, you will notice that the searchImages function is a suspend function. This is required to make sure we don’t block the main thread when making a network call. Next, you will notice we call the get function of the client. This performs a GET operation. The get function has several overloads. The one we used here takes two arguments: a URL string and a lambda.The lambda we pass to the get function lets us configure the request. In our case, we use a url block to add a parameter to the request. There are different ways in which we can transfer data to the API. Adding parameters by calling parameter, as we did here, is one such way. It allows us to define values that have been added to the query of our request URL (the optional part of a URL that comes after the question mark). The parameter function takes a key and a value. The key is a string, and the value can be any value. Under the hood, a null value will be ignored, and toString() will be called on any other value before it is added to the query string. Any non-null value passed to parameter will be URL-encoded for us. In our case, we added a limit to the query string.Ktor also provides functions for all other HTTP operations, including post, put, patch, and delete. These are all convenient extension functions that can be used on top of request, which allows you to set the request method explicitly. By providing a lambda to these functions, we can configure the request URL, method, headers, and body.Going back to our example, our final call is to body. This function returns the server response and returns a value of a generic type. To keep things simple at this stage, we accepted the response as a string. We did this by declaring that the return type of searchImage be a string and relying on Kotlin’s ability to infer the type for body.So, where should we implement the Ktor code? In both clean architecture and Google’s architecture (note that the two are not the same), data is provided by repositories. Repositories, in turn, contain data sources. One such data source could be a network data source. This is where we will implement our network calls. Our ViewModel objects will then request data from repositories via use case classes.Important noteIn the caseof Model-View-ViewModel (MVVM), ViewModel is an abstraction of the view that exposes properties and commands.For our implementation, we will simplify the process by instantiating the Ktor client and making the get call in the Activity class. This is not a good practice. Do not do this in a production app. It does not scale well and is very difficult to test. Instead, adopt an architecture that decouples your views from your business logic and data.If you want to learn more about Android and its functions, then How to Build Android Applications with Kotlin is the book for you!🚀Build real-world Android apps with Kotlin and the Jetpack Compose UI framework🧵Leverage the latest libraries to accelerate your Android development✨Overcome development challenges with tips and tricks from experienced Android professionalsHow to Build Android Applications with KotlinPre-order now at $49.99!👋 And that’s a wrap. We hope you enjoyed this new format of MobilePro.P.S.: If you have any suggestions or feedback, help us improve by sharing your thoughts. Click on the survey below.Take the Survey!Cheers,Runcil Rebello,Editor-in-Chief, MobilePro*{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}}
Read more
  • 0
  • 0

Runcil Rebello
22 Oct 2025
8 min read
Save for later

MobilePro #195: React Conf 2025, HeroUI Native alpha 15, Pixnapping, and more…

Runcil Rebello
22 Oct 2025
8 min read
Mobile development blogs, tutorials and resources inside!Latest Mobile Dev Insights: iOS, Android, Cross-PlatformAdvertise with Us|Sign Up to the NewsletterMobilePro #195: React Conf 2025, HeroUI Native alpha 15, Pixnapping, and more…Hi ,Welcome to another week of MobilePro; this is edition no. 195.Apple’s been up to something interesting again, but this time with Swift. They’ve just released Swift Profile Recorder, and it’s a bit of a game changer if you’ve ever tried profiling your backend apps without losing your sanity. Swift Profile Recorder is an open-source in-process sampler that doesn’t need kernel hooks or special privileges; you just flip an environment variable, and it starts recording performance data right inside your app.What I like about it is how it fits neatly into the workflow. It works on both macOS and Linux, and it spits out results in formats developers already use, whether perf, pprof, collapsed stacks, you name it. You can take that data straight into whatever visualization tool you’re comfortable with. The important thing to note is that Apple says they’ve been using it internally for a while now, which adds a bit of confidence that this isn’t just another experimental repo that’ll fade away in six months.Still, I guess it’s worth asking: will this finally make Swift a first-class citizen in the backend profiling space? Does this signal that Swift backend is getting serious enough that your full-stack (!) can now be Swift-end-to-end, with mature tooling? Either way, the fact that Apple’s investing in something this polished tells us that Swift’s server-side ambitions are alive and kicking. Maybe, just maybe, it’s time to give Swift another look beyond your iPhone screen.That’s not all the news this week. Let’s dive in.Ship Faster!Spot bottlenecks early, keep engineers in flow, and deliver up to 30% faster.Get a Demo📱 What's Happening in Mobile Development?If there’s any major news in the world of mobile app dev in the last week, MobilePro has you covered.iOSRelease of iOS & iPadOS 26.1 Beta 3: iOS & iPadOS 26.1 bring refinements like a new slide-to-stop gesture for alarms/timers, background security auto-updates, better iPad multitasking (Slide Over returns!), and tweaks to app layouts and UI elements. Developers are already digging in and testing across betas.New requirement for apps using Sign in with Apple for account creation: Beginning January 1, 2026, developers in South Korea must register a server-to-server notification endpoint for Sign in with Apple so that they receive alerts about account deletions or email-forwarding changes. Heads up, devs: even though this rule is Korea-specific for now, Apple’s emails-and-deletions notifications are available via API, and it’s smart to build support for them proactively.A major evolution of Apple Security Bounty: Apple is supercharging its Security Bounty program. The top award is now $2 million (and can exceed $5 million with bonuses), new exploit categories like one-click WebKit escapes and wireless proximity attacks are added, and a “Target Flags” system lets researchers validate vulnerability severity immediately.AndroidHackers can steal 2FA codes and private messages from Android phones: A newly discovered Android flaw called Pixnapping lets malicious apps silently steal 2FA codes (and even private messages) directly from your screen, no permissions required. Google’s September patch had a workaround, but researchers say the exploit still persists; a fuller fix is expected by December.The Android 16 QPR2 Beta 3 update has gone MIA: Android 16 QPR2 Beta 3 was pulled after some Pixel users reported bootloops. The update had introduced improvements like home-screen shortcut pinning and bug fixes, devs are watching closely for the next safe rollout.Android Studio Narwhal 4 Feature Drop: Android Studio Narwhal 4 is now stable — it adds first-class declarative Wear OS watch face support, lets you set Project view as default, and addresses over 550 bugfixes for a smoother, more stable IDE experience.Jetpack WindowManager 1.5 is stable: Jetpack WindowManager 1.5.0 is now stable, introducing the Breakpoints API, improved embedding support, and more reliable metrics for foldables and large layouts. Devs are buzzing, this version finally feels production-ready for adaptive, multi-window Android apps.Cross-platform & OtherReact Conf 2025 dropped some major upgrades: React 19.2 introduces <Activity />, useEffectEvent, and performance wins with Partial Pre-Rendering and new DevTools profiling. React Native’s 0.82 release pushes the new architecture, modern web-aligned APIs, and experimental Hermes V1 — a confident step into the framework’s next era.Introducing React Native Harness: React Native just got a new testing boost: React Native Harness. It lets you run Jest-style tests directly on real devices or emulators, delivering native-level confidence without the E2E hassle. The devs are excited to try it, as testing native modules has long been a major pain point.Meet the Flutter Extension for Gemini CLI: Flutter just got a fresh tool: a Flutter extension for Gemini CLI. It adds commands for creating, building, testing, and running Flutter projects right from your terminal. Devs are curious to try it, especially since it promises to speed up everyday workflows.Introducing HeroUI Native alpha 15: HeroUI Native alpha 15 just dropped, bringing a sleek new Select component, revamped RadioGroup, Button, and Chip APIs, plus a batch of subtle polish across the board. A quiet yet confident release that refines the library’s core UX, and yes, the new Select even powers a Raycast-style AI model picker.Check out this developer tip on mastering Jetpack Compose recomposition, a must-read if you want smoother UI updates and better performance in your Android apps.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.💭 What is the Mobile Community Talking About?What are mobile app developers discussing? Do you have any concerns, advice, or tutorials to share?MobileProbrings them to you all in one place.Apple details how to manage the context window for on-device foundation models: In this technical note, Apple lays out strategies for handling the limited “context window” (i.e., the span of tokens the model can see) when running models locally, including methods like token prioritization, context trimming, and fallback logic for overflow. It helps developers design more reliable experiences by ensuring the right data stays in scope without overwhelming the on-device AI model.Android’s “Sensors Off” mode offers developers a quick privacy toggle to test sensor behavior: Developers can enable the hidden Sensors Off tile in Developer Options to instantly disable the camera, mic, and motion sensors. It’s a handy way to simulate privacy scenarios, validate permission handling, and ensure graceful fallbacks when sensor access is revoked.SwiftUI’s new glass styles: when and how auto-apply kicks in: In her write-up, Natascha Fadeeva shows how SwiftUI now sometimes auto-applies the .glass style to toolbar buttons and other views by default, and she breaks down how .glass and .glassEffect() differ, one being opinionated with system behaviors, the other flexible for custom use.📚️ Latest in Mobile Development from PacktMobilePro presents the latest titles from Packt that ought to be useful for mobile developers.A perfect book for UX and UI designers who already have a basic understanding of Figma and want to advance beyond the fundamentals.🏗️Level up into a highly sought-after designer through expert techniques and battle-tested workflows📚 Learn faster with a hands-on guide built around practical, recipe-based approach.🤖 Put Al to work in Figma with workflows that speed up content, assets, and cleanup while saving hoursDesign Beyond Limits with FigmaBuy now at $44.99! IBM is partnering with Anthropic to build an AI-powered IDE that embeds Claude models into developer tools — early internal tests showed a 45% jump in productivity.Sourced from Developer.👋 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*{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}}
Read more
  • 0
  • 0

Runcil Rebello
29 Oct 2025
7 min read
Save for later

MobilePro #196: Mission Possible—The Model Context Protocol

Runcil Rebello
29 Oct 2025
7 min read
Mobile development blogs, tutorials and resources inside!Latest Mobile Dev Insights: iOS, Android, Cross-PlatformAdvertise with Us|Sign Up to the NewsletterMobilePro #196: Mission Possible—The Model Context ProtocolHi ,Welcome to the 196th edition of MobilePro!APIs changed how apps talk to each other. Now, a new protocol is changing how apps talk to AI. Imagine asking your assistant to open a GitHub issue, tweak a 3D model in Blender, or fetch a location from Google Maps, all through natural language. No clicks. No complex integrations. Just context.That’s the promise of the Model Context Protocol (MCP), a new open standard that bridges AI models and applications. If REST was built for the web, MCP is built for the AI era. It’s how we move from static APIs to dynamic, conversational systems that understand intent and act intelligently.In this issue of MobilePro, we’ll unpack what MCP is, why it matters, and how it’s reshaping how developers build and connect software. You’ll discover:How we evolved from SOAP → REST → GraphQL → gRPC → MCPWhy standardization is key to AI-powered interoperabilityWhat real-world tools like GitHub, Blender, and Playwright are already doing with itHow MCP lays the groundwork for the agentic future, where AI doesn’t just respond, it actsThis isn’t just another API story, it’s the next leap in how humans, apps, and AI collaborate.This is excerpted from the bookLearn Model Context Protocol with Python, written by Christoffer Noring.Before we jump in though, let's take a quick look at last week's highlights:🚀 Introducing HeroUI Native alpha 15📼 Swift Profile Recorder📱 Hackers can steal 2FA codes and private messages from Android phones🤖 Meet the Flutter Extension for Gemini CLITake the Survey!Meet the AuthorChristoffer Noring is a passionate developer and educator who specializes in modern web technologies and AI integrations and works as an engineer at Microsoft. He’s also a tutor at the University of Oxford and is a published author on Angular, RxJs, generative AI, and now MCP. Christoffer has almost two decades of experience in software development and is a frequent speaker at tech conferences worldwide. According to his manager, his best quality is being able to break down complex technical concepts into simple, understandable terms.🚀 The Model Context ProtocolWe’ve gone from REST to GraphQL to gRPC, but now it’s time for a new mission (should you choose to accept it!). One that isn’t about APIs, but about how apps and AI talk to each other. Imagine controlling GitHub, Blender, or Google Maps through natural language. That’s the Model Context Protocol (MCP), the Mission Possible of the AI era, where seamless connection is no longer fiction.🧠 From SOAP to MCP: The Journey to a Standard for the AI EraIf you’ve been around long enough to remember SOAP (Simple Object Access Protocol), you probably remember the pain. XML everywhere, verbose requests, endless WSDL files. REST (Representational State Transfer) came along and felt like a breath of fresh JSON air, simple, intuitive, and perfect for the web.Then frontend teams started wanting just the data they needed, and GraphQL entered the chat. It made fetching data flexible but brought new headaches: over-fetching, under-fetching, and the infamous N+1 problem.Next up: gRPC (Google Remote Procedure Call). Google’s high-performance framework for microservices, powered by HTTP/2 and Protocol Buffers. Great for speed, not so much for simplicity.Each protocol fixed something but broke something else.Now, in the age of AI and natural language interfaces, we’ve hit a new question: how do we let AI interact with our apps as easily as users do?⚙️ The Need for a Common LanguageAs developers, we’re great at gluing systems together, REST, RPCs, SDKs, you name it. But that flexibility has a cost: complexity.We now live in a world where prompts are becoming the new UI. Users don’t want to click through menus; they want to ask. So how do we make our apps expose their capabilities to AI models in a way that’s standardized and understandable?Enter the MCP (Model Context Protocol), an open standard that lets apps describe what they can do and how to interact with them. Think of it like USB-C for AI applications: plug in, and everything just works.🚀 What MCP EnablesWith MCP, any app can act as a server exposing capabilities, and any client (like an AI model or agent) can use them.Take Blender, for example. There’s already a Blender MCP server that lets you control Blender through prompts. You can:Get scene and object informationCreate, delete, and modify shapesApply or create materials for objectsExecute any Python code in BlenderDownload the right models, assets, and HDRIs through Poly HavenGenerate AI-powered 3D modelsOther big names like GitHub, Playwright, and Google Maps are also adopting MCP (see the full list here).Suddenly, anything can have a natural language interface, not just chatbots, but tools, data, and systems.🤖 We All Get a JarvisIf this sounds like Iron Man’s Jarvis, you’re not far off. The way we build our applications is changing and becoming more standardized. By learning and using MCP, all your apps will be able to communicate with each other and share data in a standardized way. That means you will spend less time worrying about how to connect, or glue, your app to other apps and more time building the features that matter. MCP is what makes the agentic era possible, where AI doesn’t just respond to you but acts on your behalf.Want your assistant to fetch GitHub issues, deploy code, and update docs, just from your prompt? That’s the kind of interoperability MCP is building toward.🏁 The Big PictureMCP isn’t just another API standard. It’s the protocol rewriting the mission brief for developers. Less glue code, more productivity, and endless new possibilities for how software and users interact. In the world of AI, this mission isn’t impossible; it’s just getting started.If you want to learn more about MCP, then Learn Model Context Protocol with Pythonis the book for you!🚀The only resource you'll need to build, test, and deploy MCP servers and clients🧵Take a modern approach toward building, testing, and securing distributed agentic AI apps✨Get clear, professional guidance on developing for both LLM and non-LLM clientsLearn Model Context Protocol with PythonBuy now at $44.99!👋 And that’s a wrap. We hope you enjoyed this new format of MobilePro.P.S.: If you have any suggestions or feedback, help us improve by sharing your thoughts. Click on the survey below.Take the Survey!Cheers,Runcil Rebello,Editor-in-Chief, MobilePro*{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}}
Read more
  • 0
  • 0

Runcil Rebello
05 Nov 2025
9 min read
Save for later

MobilePro #197: Swift SDK for Android, Siri to use Gemini, Android 16 GSI, and more…

Runcil Rebello
05 Nov 2025
9 min read
Mobile development blogs, tutorials and resources inside!Latest Mobile Dev Insights: iOS, Android, Cross-PlatformAdvertise with Us|Sign Up to the NewsletterMobilePro #197: Swift SDK for Android, Siri to use Gemini, Android 16 GSI, and more…Join Microsoft experts Christoffer Noring and Maxim Salnikov for a 1-day MCP Workshop on November 15, 2025Christoffer, a Senior Advocate at Microsoft and Google Developer Expert, and Maxim, a seasoned Microsoft Solution Engineer with 20+ years in software development, will guide you through mastering the Model Context Protocol (MCP), the backbone of next-gen agentic AI applications.Get 40% off your ticket using code MCP40, a limited-time offer for MobilePro subscribers only!Book My Seat!!Hi ,Welcome to another week of MobilePro; this is edition no. 197.Swift on Android is actually happening. Did I think I would be saying that soon? No. But Apple’s Swift team just started rolling out nightly Swift SDKs for Android. For years, Swift was this tightly bound iOS language. Android and Swift lived in different worlds; iOS had a “you do Kotlin, I’ll do Swift” kind of relationship with Android. But now, Swift’s knocking on Android’s door like it’s been saying, in the words of Swift’s popstar namesake, “you belong with me.” The SDK lets you build, test, and even run Swift apps on Android, with interoperability for Java and Kotlin baked in. It’s still early, but this changes how we think about building for both platforms.Imagine writing your shared logic, that is, networking, models, even business rules, in Swift and reusing that code across iOS and Android builds. You’d still have native UI layers, but the engine underneath could stay consistent. That’s where this SDK nudges us: toward more Swift-first cross-platform development, and not through a framework like Flutter or React Native but via native builds powered by a common language. And since the SDK is being updated nightly, tooling, package compatibility, and documentation should mature fast.That said, it’s not all smooth roads just yet. Debugging’s still rough, Android Studio isn’t exactly Swift-friendly, and the Java bridge needs some love. But if you’re already deep in Swift, maybe using it on the backend too, then this might be the next logical step. One toolchain, one mindset, less context-switching. Who knows, maybe in a year or two, “Swift everywhere” won’t sound that crazy anymore, fulfilling the Wildest Dreams of mobile devs everywhere.That’s not all the news this week. Let’s dive in.📱 New Siri to use Google Gemini: Apple’s next-gen Siri, launching in 2026, will use a custom Gemini model hosted on Apple servers, blending AI smarts with Apple’s privacy focus.🔔 iOS 26.1 Update: Adds a toggle for “Liquid Glass,” new alarm gesture, UI tweaks, expanded translation languages, and easier background security updates.🧩 Android 16 GSI Released: Google’s Android 16 GSI is out for developers to test app compatibility on Treble-compliant devices.💻 Compose Multiplatform Milestone: Now supports stable iOS builds and web beta, enabling shared Kotlin UI across all platforms.🤝 Cursor 2.0: Introduces parallel multi-agent support, up to eight AI agents working independently within one workspace.Stick around for this week’sDeveloper Tipto learn how to navigate updating React Native from 0.72 to 0.76 andtheDid You Know?section to learn the findings of a Lead Dev report.82% of data breaches happen in the cloudThe reality is you can’t stop every single attack so survival depends on how fast you can recover.Join us for the Cloud Resilience Summit on December 10th to:Build true cyber resilience by shifting to an “assume breach” strategyGain practical, real-world cloud insightsEnsure rapid business recovery and minimal financial impact with a cloud restoration strategySave My Spot📱 What's Happening in Mobile Development?If there’s any major news in the world of mobile app dev in the last week, MobilePro has you covered.iOSNew Version of Siri to 'Lean' on Google Gemini: Apple’s revamped Siri, due around March 2026, will reportedly use a custom Gemini-based model from Google, hosted on Apple’s own secure servers, to power new AI and web-search features alongside upcoming hardware like a smart home display and new Apple TV. Redditors are split: some see it as a smart, pragmatic upgrade, while others worry it signals Apple’s AI shortcomings and threatens Siri’s privacy-first brand.iOS 26.1 Features: Everything New in iOS 26.1: The iOS 26.1 update introduces refinements such as a toggle for the “Liquid Glass” transparency effect, a new slide-to-stop alarm gesture, and expanded language support for both Apple Intelligence and AirPods Live Translation. It also adds UI tweaks (e.g., left-aligned folder names and settings headers), and makes background security updates easier to install via a new toggle in Settings.AndroidAndroid 16 GSI Release: Google has released the Android 16 Generic System Image (GSI) for developers to test app compatibility on Treble-compliant devices. These experimental builds, created from the same source as Pixel firmware, may contain bugs or missing features and can erase data during installation. The update details known issues and provides flashing instructions for supported devices.Google upgrades Gemini AI for Android enterprise apps: Google has upgraded its Gemini AI capabilities for Android enterprise apps, introducing the new Alpha-release ML Kit GenAI Prompt API which allows on-device AI via the Gemini Nano model, enhancing data privacy, offline functionality, and reducing latency. The update also brings cloud-based enhancements through Firebase, AI-powered features in the Play Console and Android Studio, targeting secure, efficient enterprise application workflows and development.Material 3 Adaptive 1.2.0 is stable: Google has released Material 3 Adaptive 1.2.0, now marked as stable and adding support for Large and Extra-large window size classes, along with two new layout strategies: reflow and levitate, to improve adaptive UI across varied screen sizes.Cross-platform & OtherCompose Multiplatform Marks Two Major Milestones: Stable iOS Support and Web in Beta: Compose Multiplatform has hit two major milestones: it now offers stable iOS support and has introduced a web-beta release, enabling truly shared Kotlin UI code across Android, iOS, desktop and web.Flutter 3.35.7 is out: Google has released Flutter 3.35.7, a minor update that includes two fixes and performance improvements. Developers can review the full details in the Changeolog and share feedback through the official Flutter channels.Artificial Intelligence (AI)Cursor 2.0 enables eight agents to work in parallel without interfering with each other: Cursor 2.0 introduces a new multi-agent interface that enables up to eight AI agents to work in parallel on a single prompt, each in an isolated workspace to avoid conflicts.If you’re planning to upgrade React Native from 0.72 to 0.76 (or beyond), check out this practical post: React Native 0.72 → 0.76: Lessons From the Trenches by Abijith B. It walks through real-world build issues (e.g., Java 17, NDK mismatches, missing module-maps) and offers hands-on fixes and workflow insights. Especially helpful if you’re on Android API 35 or need to refactor native config while keeping your codebase stable.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.💭 What is the Mobile Community Talking About?What are mobile app developers discussing? Do you have any concerns, advice, or tutorials to share?MobileProbrings them to you all in one place.Liquid Glass components now playable in Compose Multiplatform: A deep dive into how modern blur and glass-morphism effects are being brought to Compose MP, with tips on using native iOS blur APIs, fallback modes for older platforms, and modifier-based wrappers to maintain fluid visuals across Android and iOS. The article walks you through real-world patterns and composable setups so you can bring that premium translucent polish to multi-platform UIs.Integrating device camera in SwiftUI apps and how to bridge AVFoundation with SwiftUI: If you’re building camera-powered features (photo capture, scanning, AR) in SwiftUI, this guide walks through using a CameraManager (ObservableObject) + UIViewRepresentable wrapper to connect AVFoundation’s AVCaptureSession, AVCapturePhotoOutput, and preview layer into a SwiftUI view. It highlights the key patterns, such as managing session lifecycles, creating the preview layer in UIKit, and cleanly handling captured images, so you can keep your UI declarative while tackling imperative camera APIs.7 playful micro-interactions every iOS developer should build: This article walks you through how adding small, delightful animations, like button bounce, subtle state changes, and interactive feedback, can bring your SwiftUI apps to life and make them feel vastly more engaging without complex overhaul.Lynx.js: The hybrid mobile framework you haven’t heard of yet: Meet Lynx.js, a new cross-platform framework from ByteDance (yes, the TikTok folks) that uses JavaScript and CSS to build native apps across iOS, Android, and web, with a high-performance, dual-threaded engine for smoother UI. It blends web-dev familiarity with native speed, making it a compelling option for mobile devs looking to target multiple platforms without jumping into Dart or React Native bridges.Mastering SwiftUI Picker: a complete guide for modern iOS apps: This guide walks iOS developers through using SwiftUI’s Picker, from basic bindings, to choosing the correct .pickerStyle(_:) (like inline, segmented, menu, wheel) for your UI, and handling distinctions between Picker, DatePicker, and ColorPicker; it backs up the how with the why so you can pick styles that actually suit your app’s context and user needs.📚️ Latest in Mobile Development from PacktMobilePro presents the latest titles from Packt that ought to be useful for mobile developers.A perfect book for UX and UI designers who already have a basic understanding of Figma and want to advance beyond the fundamentals.Design Beyond Limits with FigmaBuy now at $44.99! A recent LeadDev report found that Cursor has overtaken GitHub Copilot as the most-used AI tool among developers, with 43% using Cursor compared to 37% for Copilot. Most developers now rely on AI for coding, documentation, and learning, while adoption for testing or deployment remains low. Despite productivity gains, many teams are still unsure how to measure AI’s real impact.Sourced from The News Stack.👋 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*{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}}
Read more
  • 0
  • 0
Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at $19.99/month. Cancel anytime
Modal Close icon
Modal Close icon