





















































MobilePro #159: Meet Flock, Appium vs. XCTest (UI) for iOS App Testing, Web Page Responsiveness, FTC's rule banning fake online reviews, Swarm, DeskPad.
Hi ,
Welcome to the mobile app development world with the 158th 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:
Today's news covers release stories on Apple, Android, React Native, 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.
Stop Relying on MediaQuery for Sizing in Flutter! Here's What to Use Instead - MediaQuery is not the best tool for responsive design in Flutter. Actually, it's far from it. I know, it’s tempting to scale widgets based on the percentage of screen size and call it a day. But using MediaQuery for sizing, while seemingly simple, is a slippery slope that often leads to weird and problematic layouts. Unfortunately, many beginners fall into the trap of using fractional sizing because it seems like an easy solution at first. But if you’re serious about creating responsive apps, it’s time to reconsider how you approach this.
Flutter is Getting a Makeover! Meet Flock, the New Community-Driven Framework Set to Change Everything - Flutter has empowered millions of developers to build seamless, cross-platform apps, but as demand grows, cracks are beginning to show. Despite its popularity, the Flutter team is stretched too thin, facing backlogs that can leave bugs and feature requests unresolved for too long. This bottleneck frustrated users across the community and led to the birth of a new solution: Flock — a fork of Flutter developed by the community for the community. Flock represents a community-driven effort to overcome the limitations Flutter currently faces. With a more agile review process, enhanced support, and a welcoming approach to contributions, Flock aims to provide a more responsive alternative to Flutter, shaped by those who use it the most.
12 Top Flutterflow App Development Agencies for Any Use Case - This article is intended for everyone interested in Flutterflow app development. It will help you navigate this market segment and provide insights on how to choose the right partner for bringing your project to life. I will give a detailed overview of the top agencies specializing in Flutterflow app development and what makes them unique.
A Comprehensive Guide to Choosing Between Appium and XCTest (UI) for iOS App Testing - Popular testing frameworks for iOS apps with distinctive features and functionalities include Appium and XCTest (UI). For developers and testers, choosing which one to employ might be a difficult process. This blog highlights the comparison between Appium and XCTest (UI) and helps you choose the right tool for your iOS app testing needs. The blog also details the features, pros, and cons of each framework and provides insights into which one is best suited for different types of iOS app testing scenarios.
How to fix the error: DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead - In Xcode 15, Apple made a modification to the variable that points to the default toolchain location, replacing from $DT_TOOLCHAIN_DIR to $TOOLCHAIN_DIR. If your project or target relies on the previous variable, you should update it to use $TOOLCHAIN_DIR. To perform this replacement, you can add the following code snippet at the end of your project’s Podfile. This error was on a MacOS v14 (Sonoma), XCode 15.4, Swift 5.0 regarding the Firebase and Firebase Analytics Pods.
How to make your Web Page Responsive - A good well-designed responsive web page makes sure that the user has an optimal view experience and a uniform user experience irrespective of the device the user is using. Responsiveness not only enhances the user experience but also plays a major role in the SEO ranking of the website. And when it comes to adding responsiveness, the first thing that comes in mind is the media queries. In this blog, we will go through what are media queries, and how you can use them to make your web page responsive.
Check this space for new repos, projects and tools each week! This week we bring you a collection of iOS tools for media processing:
PSPDFKit- Render PDF, add/edit annotations, fill forms, add/edit pages, view/create digital signatures.
TPPDF- Generate PDF using commands and automatic layout.
FastPdfKit- A Static Library to be embedded on iOS applications to display pdf documents derived from Fast PDF.
UIImagePlusPDF- UIImage extensions to simply use PDF files.
Our weekly recommendations of the best resources in Mobile App Development!
If you’re tired of static websites that just don’t perform, it’s time to upgrade your skills with Responsive Web Design with HTML5 and CSS—a self-paced course designed to turn you into a responsive web design pro led by Ben Frain, the author of the best-selling book Responsive Web Design with HTML5 and CSS, 4th Edition!
With over 20 years of experience in web development, Ben Frain—currently the UI-UX Technical Lead at bet365—guides you through key techniques to help you build fully responsive websites using HTML5 and CSS.
Random curious musings and interesting words about Mobile Dev on the Internet.
FTC's rule banning fake online reviews goes into effect - A federal rulebanning fake online reviewsis now in effect. The Federal Trade Commissionissued the rulein August banning the sale or purchase of online reviews. The rule, which went into effect Monday, allows the agency to seek civil penalties against those who knowingly violate it.
Swarm- An educational framework exploring ergonomic, lightweight multi-agent orchestration managed by OpenAI Solution team. Swarm is currently an experimental sample framework intended to explore ergonomic interfaces for multi-agent systems. It is not intended to be used in production, and therefore has no official support. (This also means we will not be reviewing PRs or issues!) The primary goal of Swarm is to showcase the handoff & routines patterns explored in theOrchestrating Agents: Handoffs & Routinescookbook. It is not meant as a standalone library, and is primarily for educational purposes.
DeskPad – DeskPad is a virtual monitor for screen sharing. Certain workflows require sharing the entire screen (usually due to switching through multiple applications), but if the presenter has a much larger display than the audience it can be hard to see what is happening. DeskPad creates a virtual display that is mirrored within its application window so that you can create a dedicated, easily shareable workspace.
The Internet Archive is under attack, with a breach revealing info for 31 million accounts - A pop-up message said the online archive has suffered ‘a catastrophic security breach,’ as its operators say the site has been DDoS’d for days. HIBP refers toHave I Been Pwned, a website where people can look up whether their information has been published in data leaked from cyberattacks. HIBP operator Troy Huntconfirmed toBleepingComputerthat he received a file containing “email addresses, screen names, password change timestamps, Bcrypt-hashed passwords, and other internal data” for 31 million unique email addresses nine days ago and confirmed it was valid by matching data with a user’s account.
GroupTrack - Stay connected, Anywhere! - Welcome to GroupTrack, an open-source Flutter application designed to enhance family safety 👫 through real-time location sharing and communication features. GroupTrack aims to provide peace of mind by ensuring the safety of your loved ones while facilitating seamless communication regardless of their location. GroupTrack adopts a declarative UI approach with Flutter and utilizesflutter riverpodfor state management. This architecture promotes a clear separation of concerns, making the codebase more maintainable, scalable, and testable. Flutter’s widget-based system allows for the creation of highly responsive UIs, while flutter riverpod ensures efficient state handling across different components, leading to a smooth and intuitive user experience.
An excerpt from ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ By Mark J. Price
Deleting entities
You can remove individual entities with theRemove
method.RemoveRange
is more efficient when you want to delete multiple entities.
Let’s see how to delete rows from a table:
InProgram.Modifications.cs
, add a method to delete all products with a name that begins with a specified value (Bob
in our example), as shown in the following code:
private static int DeleteProducts(string productNameStartsWith)
{
using NorthwindDb db = new();
IQueryable<Product>? products = db.Products?.Where(
p => p.ProductName.StartsWith(productNameStartsWith));
if (products is null || !products.Any())
{
WriteLine("No products found to delete.");
return 0;
}
else
{
if (db.Products is null) return 0;
db.Products.RemoveRange(products);
}
int affected = db.SaveChanges();
return affected;
}
InProgram.cs
, comment out the statements to update the product, and then add statements to callDeleteProducts
, as shown in the following code:
WriteLine("About to delete all products whose name starts with Bob.");
Write("Press Enter to continue or any other key to exit: ");
if (ReadKey(intercept: true).Key == ConsoleKey.Enter)
{
int deleted = DeleteProducts(productNameStartsWith: "Bob");
WriteLine($"{deleted} product(s) were deleted."); } else { WriteLine("Delete was canceled.");
}
Run the code, pressEnter, and view the result, as shown in the following partial output:
1 product(s) were deleted.
If multiple product names started withBob
, then they would all be deleted. As an optional challenge, modify the statements to add three new products that start withBob
and then delete them.
Your dose of the latest releases, news and happenings in the Mobile Development industry!
Apple
Apple’s all-new Macmini is more mighty, more mini, and built for AppleIntelligence - Apple today unveiled the all-newMac minipowered by the M4 and new M4 Pro chips, and redesigned around Apple silicon to pack an incredible amount of performance into an even smaller form of just 5 by 5 inches. With M4, Mac mini delivers up to 1.8x faster CPU performance and 2.2x faster GPU performance over the M1 model.1
Apple Intelligence is availabletoday on iPhone, iPad, andMac - Users can now tap into Apple Intelligence to refine their writing; summarize notifications, mail, and messages; experience a more natural and capable Siri; remove distracting objects from images with Clean Up; and more
Android
Compose Runtime 1.7.0enhances composition locals with computed defaults, optimizes state object accessibility and composable function generation, and improves lambda invalidation and callback ordering.
Compose Material 3 Adaptive 1.0.0provides tools and components to build adaptive Android UIs for different screen sizes and devices.
Compose Material 1.7.0stabilizes BottomDrawer, ModalBottomSheet, and BackdropScaffold components, migrates to new ripple APIs, and improves performance by optimizing MutableInteractionSource usage.
Compose Foundation 1.7.0significantly boosts performance in key modifiers, introduces a new Indication API for efficiency, refines clickable components, and adds new features for text, layout, and animations.
Compose Animation 1.7.0introduces new shared element transition APIs for smoother animations, improves existing APIs with features like custom content alignment and deferred target animation, and stabilizes several APIs including AnimatedVisibilityScope and LookaheadScope.
Collection 1.4.3enhances performance, particularly for ScatterMap and ScatterSet, and addresses a data corruption bug in those collections.
Camera 1.5.0-alpha01introduces new APIs for dual camera video capture configuration and audio control in recordings, along with bug fixes for crashes and black screen issues.
Media3 1.4.1addresses various issues, including handling preload callbacks asynchronously, allowing playback even with loading failures, fixing errors in MP3 and TTML handling, resolving DRM issues on API 31+ devices, and improving media control and session management.
JetBrains
IDE Services Cloud Release and Floating License Server End-of-Life Announcements - JetBrains IDE Services, the enterprise suite of products dedicated to improving developer productivity across an entire organization, is now available in the cloud! By offering a JetBrains-managed service, IDE Services Cloud simplifies license management, enhances security, and provides seamless scalability, ensuring that organizations can focus more on development and less on administration.
Microsoft
Introducing Microsoft.Extensions.VectorData Preview - We are excited to introduce the Microsoft.Extensions.VectorData.Abstractions library, now available in preview. Just as theMicrosoft.Extensions.AI librariesoffer a unified layer for working with AI services, this package provides the .NET ecosystem with abstractions that help integrate vector stores into .NET applications and libraries.