





















































MobilePro #154: User Experience Testing for Your Gaming Apps, Well-structured architecture in Android, Flutter Over React Native, Dependency Injection, EarthKart.
Hi ,
Welcome to the mobile app development world with the 153rd edition of _mobilepro!
In this edition we cover mobile development community discussions on:
In our relatively new section captures internet jibber-jabber about the mobile ecosystem:
Every week we recommend mobile app development resources, and this week we feature:
2. Mastering Kotlin for Android 14
Today's news covers release stories on Android, JetBrains and Microsoft. And if you are currently developing an iOS app, checkout this week's resources on iOS tools. Don’t miss this week’s tutorial from the book ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ .
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 you liked this installment in our new series,fill in our survey below andwin a free PDF on your Packt account.
Thanks,
Apurva Kadam
Editor-in-Chief, Packt
What are Mobile developers discussing? What are the latest tips and tricks? Shortcuts and experiments? Cool tutorials? Releases and updates? Find it all out here.
Why You Need to Conduct Thorough User Experience Testing for Your Gaming Apps - Achieving success in gaming hinges on several crucial factors, with player engagement and satisfaction being top priorities. However, achieving these goals requires careful planning and execution. Captivating visuals, intuitive navigation, and interactive gameplay are essential components that must be seamlessly integrated to ensure players enjoy and become fully immersed in their gaming experience. Conducting thorough user research and asking pertinent questions is instrumental in gaining deep insights into what resonates with your target audience. In this blog, we will discover what user experience testing is and why you must conduct it totest gaming apps.
Why use a well-structured architecture in Android? - The Android Operating System (AOSP) is designed to enhance the user experience by managing system resources efficiently. To maintain optimal performance, it may terminate processes as needed. If it "decides" to kill your process, there's little you can do to prevent it. Therefore, maintaining a consistent architecture is crucial to avoid data loss. Understanding the principle of separation of concerns is essential as you embark on your journey with Android architecture.
Quantum Computing: What It Means for Mobile App Development - The landscape of computing is evolving, and quantum computing is at the forefront of this transformation. Quantum computing, which leverages the strange and powerful principles of quantum mechanics, promises to revolutionize many fields, including mobile app development. As a developer, understanding this technology and its implications can position you to take advantage of the coming quantum revolution. In this blog, we’ll explore what quantum computing is, how it could impact mobile app development, and what you need to know to stay ahead.
Why Choose Flutter Over React Native? A Deep Dive into the Pros and Cons - When it comes to cross-platform mobile development, Flutter and React Native stand out as the two most popular frameworks. Both have large, passionate communities and offer developers the ability to write code once and deploy it across multiple platforms. However, choosing between Flutter and React Native can be challenging, especially for developers or companies that need to make strategic decisions that will affect their product’s future. In this blog, we'll explore why you might want to consider Flutter over React Native, focusing on unique strengths rather than simply declaring one as superior.
Understanding Dependency Injection - Imagine you're working on an app that requires various components to interact seamlessly. You’ve written a class to handle user authentication, but it directly creates instances of several dependencies network services, data storage, and logging utilities. It works well at first, but as the project grows, testing becomes a nightmare. Every time you make a change, you must modify multiple classes, and mocking these dependencies for unit tests feels like a battle. You start to realize that your tightly coupled code is dragging down the entire project. This is whereDependency Injectioncomes to the rescue.
Check this space for new repos, projects and tools each week! This week we bring you a collection of iOS tools for Images.
Paparazzo- Custom iOS camera and photo picker with editing capabilities.
ZImageCropper- A Swift project to crop image in any shape.
InitialsImageView- An UIImageView extension that generates letter initials as a placeholder for user profile images, with a randomized background color.
DTPhotoViewerController- A fully customizable photo viewer ViewController, inspired by Facebook photo viewer.
LetterAvatarKit- A UIImage extension that generates letter-based avatars written in Swift.
AXPhotoViewer- An iPhone/iPad photo gallery viewer, useful for viewing a large (or small!) number of photos
TJProfileImage- Live rendering of componet’s properties in Interface Builder.
Random curious musings and interesting words about Mobile Dev on the Internet.
Conversational AI Powered by Large Language Models Amplifies False Memories in Witness Interviews - This study examines the impact of AI on human false memories--recollections of events that did not occur or deviate from actual occurrences. It explores false memory induction through suggestive questioning in Human-AI interactions, simulating crime witness interviews. Four conditions were tested: control, survey-based, pre-scripted chatbot, and generative chatbot using a large language model (LLM). Participants (N=200) watched a crime video, then interacted with their assigned AI interviewer or survey, answering questions including five misleading ones. False memories were assessed immediately and after one week. Results show the generative chatbot condition significantly increased false memory formation, inducing over 3 times more immediate false memories than the control and 1.7 times more than the survey method.
Dawarich - Dawarich is a self-hosted web application to replace Google Timeline (aka Google Location History). It allows you to import your location history from Google Maps Timeline and Owntracks, view it on a map and see some statistics, such as the number of countries and cities visited, and distance traveled.
Song Pong - Synchronizing pong to music with constrained optimization. In classic pong a ball bounces off of paddles in a steady rhythm. What if we synchronize the bounces to the beat of a song, making the paddles dance? To make this possible we alter the physics of the game so that the ball moves at a constant speed, and paddles can move anywhere on their respective halves of the screen.
Canva says its new AI features justify raising subscription prices by 300% - Your favorite design hack is about to get more expensive. Canva, the popular design platform that launched in Australia in 2012, just instituted price hikes for its “Teams” subscription. And for some users, the price jump is staggering.Canva Teams, which is marketed as the platform’s “all-in-one solution that will help you address design bottlenecks, bloated tech stacks, and collaboration inefficiencies,” is increasing prices for the first time since its 2020 launch—in some cases, by 300%. The Teams plan allows multiple Canva users to access and edit a design all at once.
EarthKart: Google Maps Driving Simulator - You can Drive on Google Maps! Discover the thrill of racing through the world's most iconic locations right from your device! EarthKart is a real-world driving simulator that combines the speed and excitement of kart racing with the revolutionary integration of Google Maps. Experience the ultimate Google Earth driving simulator as you traverse through the urban jungles of New York, glide along the Great Wall of China, or speed through the winding alleys of Marrakech. The entire Earth is your racetrack in this drive on Google Maps Driving Game!
An excerpt from ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ By Mark J. Price
Identifying positions with the Index type
C# 8 introduced two features for identifying an item’s index position within an array and a range of items using two indexes.
You learned in the previous section that objects in a list can be accessed by passing an integer into their indexer, as shown in the following code:
int index = 3;
Person p = people[index]; // Fourth person in array.
char letter = name[index]; // Fourth letter in name.
TheIndex
value type is a more formal way of identifying a position, and supports counting from the end, as shown in the following code:
// Two ways to define the same index, 3 in from the start.
Index i1 = new(value: 3); // Counts from the start
Index i2 = 3; // Using implicit int conversion operator.
// Two ways to define the same index, 5 in from the end.
Index i3 = new(value: 5, fromEnd: true);
Index i4 = ^5; // Using the caret ^ operator.
...read more.
Your dose of the latest releases, news and happenings in the Mobile Development industry!
Apple
Apple introduces groundbreaking health features to support conditions impacting billions of people - Apple Watch delivers new sleep apnea notifications, and AirPods Pro 2 provide the world’s first all-in-one hearing health experience including a clinical-grade, over-the-counter Hearing Aid feature
Reserve your spot for upcoming developer activities:
1. Envision the future: Create great apps for visionOS: Find out how to build visionOS apps for a variety of use cases. (October 2, Cupertino)
2. Build faster and more efficient apps: Learn how to optimize your use of Apple frameworks, resolve performance issues, and reduce launch time. (October 23, Cupertino)
Making ebook actions available to Siri and Apple Intelligence - To integrate your app’s ebook and audiobook capabilities with Siri and Apple Intelligence, you use Swift macros that generate additional properties and add protocol conformance for your app intent, app entity, and app enumeration implementation that Apple Intelligence needs. For example, if your app allows a person to open an ebook, use theAssistantIntent(schema:)macro and provide the assistant schema that consists of the.booksdomain and theopenBookschema.
Making camera actions available to Siri and Apple Intelligence - To integrate your app’s camera capabilities with Siri and Apple Intelligence, you use Swift macros that generate additional properties and add protocol conformance for your app intent and app enumeration implementation that Apple Intelligence needs. For example, if your app allows a person to take a photo or video, use theAssistantIntent(schema:)macro and provide the assistant schema that consists of the.cameradomain and thestartCaptureschema.
Android
Developer Preview: Desktop windowing on Android Tablets - To empower tablet users to get more done, we're enhancing freeform windowing, allowing them to run multiple apps simultaneously and resize windows for optimal multitasking. Today, we're excited to share that desktop windowing on Android tablets is available in developer preview. For app developers, the concept of Android apps running in freeform windows has already existed with solutions like Samsung DeX and ChromeOS. Updating your apps to support adaptive layouts, more robust multitasking, and adaptive inputs will ensure your apps work well on large screens across the Android ecosystem.
Edge-to-edge - A change that will most likely be impacting your app,Edge-to-Edgeare APIs that lays out your app to optimize for screen real estate. It will beenforced for all apps targeting Android 15, making the status bar and navigation bar transparent, for a more high-quality experience. Understand how these changes will affect your app by reading the documentations linked. Learn how to work around these changes by reading theInsets handling tips for Android 15's edge-to-edge enforcement blog post.
Foreground services and a live Android 15 Q&A - Foreground services changesare coming in Android 15, and we’re introducing a new foreground service type, updating the exemption scenarios that allow a foreground service to start from the background, and updating the max duration of certain foreground service types. These changes are intended to improve user experience by preventing apps from misusing foreground service that may drain a user’s battery. Plus we’ll have a live Q&A: you can start submitting questions onXusing #AskAndroid or submit them in the comments in theLinkedIn post, and tune in onYouTube.
Passkeys and Picture-in-Picture - Passkeysenable a more streamlined and secured means of authenticating your users. Learn more about passkeys through oursample codeand about the updates made to further simplify the login process in Android 15. Plus, we're highlighting aPicture-in-Picturesample codethat is applicable to apps with video functionality.
Streamlining Android authentication: Credential Manager replaces legacy APIs - To bring Credential Manager’s benefits to more Android users and simplify developers’ integration efforts, APIs that werepreviously deprecatedwill continue their phased removals and shutdowns. These APIs include: Smart Lock for Passwords API, Credential Saving API, Sign in with Google button API, One Tap Sign-in API, and Google Sign-In for Android (GSI) API.
Jetpack Compose APIs for building adaptive layouts using Material guidance now stable - The 1.0 stable version ofthe Compose adaptive APIs with Material guidanceis out, ready to be used in production. The library helps you buildadaptive layoutsthat provide an optimized user experience on any window size.
Microsoft
Announcing TypeScript 5.6 - The release of TypeScript 5.6 is here! If you’re not familiar with TypeScript, it’s a language that builds on top of JavaScript by adding syntax fortypes. Types describe the shapes we expect of our variables, parameters, and functions, and the TypeScripttype-checkercan help catch issues like typos, missing properties, and bad function calls before we even run our code.
Android Asset Packs for .NET & .NET MAUI Android Apps -We have introduced a new way to generate asset packs for your .NET & .NET MAUI Android applications in .NET 9that you can try out today. What are Asset Packs? Why should you use them? How to get started? Let’s get into it!
JetBrains
Create With Kotlin Multiplatform and Win a Trip to KotlinConf 2025! - To all students and recent graduates: The Kotlin Foundation is excited to announce the launch of the Kotlin Multiplatform Contest! Showcase your creativity and coding skills by building a cross-platform project using Kotlin Multiplatform and win a trip to KotlinConf 2025, the largest Kotlin event of the year.
Our weekly recommendations of the best resources in Mobile App Development!