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

41 Articles
Apurva Kadam
20 Sep 2024
10 min read
Save for later

MobilePro #155: App Navigation Patterns, Apple gets FDA approval, OpenAI’s new o1 chain-of-thought models, Learn Git Branching, Void captures over a million Android TV boxes.

Apurva Kadam
20 Sep 2024
10 min read
Mobile development blogs, tutorials and resources inside!Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }Join Roman Lavrik from Deloitte Snyk hosted DevSecCon 2024Snyk is thrilled to announce DevSecCon 2024, Developing AI Trust Oct 8-9, a FREE virtual summit designed for DevOps, developer and security pros of all levels. Join Roman Lavrik from Deloitte, among many others, and learn some presciptive DevSecOps methods for AI-powered development.Save your Post!MobilePro #155: App Navigation Patterns, Apple gets FDA approval, OpenAI’s new o1 chain-of-thought models, Learn Git Branching, Void captures over a million Android TV boxes.Hi ,Welcome to the mobile app development world with the 155th edition of _mobilepro!In this edition we cover mobile development community discussions on:Top 14 Chrome Extensions for Developers to Boost Productivity in 2024Mobile App Navigation: Patterns and ExamplesHow to Disable Screenshot Capture in Your React Native Expo AppMastering Jetpack Compose: From Beginner to ProWearable Technology and Android: Developing Apps for SmartwatchesIn our relatively new section captures internet jibber-jabber about the mobile ecosystem:Apple Watch sleep apnea detection gets FDA approvalNotes on OpenAI’s new o1 chain-of-thought modelsLearn Git BranchingBan warnings fly as users dare to probe the “thoughts” of OpenAI’s latest modelVoid captures over a million Android TV boxesEvery week we recommend mobile app development resources, and this week we feature:1. Swift Cookbook2. Mastering Kotlin for Android 143. .NET MAUI ProjectsToday's news covers release stories on Apple, Android,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.Take the Survey Now!Thanks,Apurva KadamEditor-in-Chief, PacktMobile App Dev Community SpeakWhat are Mobile developers discussing? What are the latest tips and tricks? Shortcuts and experiments? Cool tutorials? Releases and updates? Find it all out here.Top 14 Chrome Extensions for Developers to Boost Productivity in 2024 – This article covers game-changing Chrome extensions. These tools took my workflow from chaotic to manageable, saving not only my time but possibly my job too. From squashing bugs to speeding up design work, these extensions will transform the way you code. If you're stuck pulling all-nighters and questioning your career choices, these 14 Chrome extensions might just be your lifesaver, helping you boost productivity, catch bugs early, and maybe even get back some work-life balance.Mobile App Navigation: Patterns and Examples - In a mobile-first world, users should find it effortless to interact with any mobile app (or website, for that matter). The big idea is to prioritize what matters the most, given that the mobile devices include a small screen real estate. Navigation design for mobile apps helps in this direction.How to Disable Screenshot Capture in Your React Native Expo App - Privacy and security are critical for mobile applications, developers often need to ensure that sensitive information displayed in their apps cannot be easily captured through screenshots or screen recordings. While React Native Expo provides a powerful framework for building cross-platform apps, it doesn’t offer a built-in way to disable screenshot capture. However, you can achieve this by integrating native code into your Expo project. In this article, we’ll walk you through the steps to disable screenshot capture in your React Native Expo app for both AndroidMastering Jetpack Compose: From Beginner to Pro - Feeling bogged down by complex UI code?Jetpack Composeis here to simplify your work and boost your team's productivity. Curious to learn more? Dive into our latest carousel post below to see these concepts in action and discover how Jetpack Compose can revolutionize your development process.Wearable Technology and Android: Developing Apps for Smartwatches - The rise of wearable technology has transformed the way we interact with the digital world. Smartwatches, fitness trackers, and even smart glasses are now integral parts of our daily lives, offering convenience, real-time data, and personalized experiences. In this blog, we’ll explore the growing market for wearable tech and share insights into developing Android apps for smartwatches and other wearable devices.Mobile App Dev ReposCheck this space for new repos, projects and tools each week! This week we bring you a collection of iOS tools for Images.Viewer- Image viewer (or Lightbox) with support for local and remote videos and images.OverlayComposite- An asynchronous, multithreaded, image compositing framework written in Swift.MetalPetal- A GPU-accelerated image/video processing framework based onMetal.Avatar- Generate random user Avatar images using CoreGraphics and QuartzCore.Serrata- Slide image viewer library similar to Twitter and LINE.StyleArt- Style Art library process images using COREML with a set of pre trained machine learning models and convert them to Art style.greedo-layout-for-ios- Full aspect ratio grid layout for iOS.Trending TitlesOur weekly recommendations of the best resources in Mobile App Development!Swift CookbookBuy now at $35.99$24.99Mastering Kotlin for Android 14Buy now at $31.99 $21.99.NET MAUI ProjectsBuy now at $41.99 $28.99Internet Jibber-JabberRandom curious musings and interesting words about Mobile Dev on the Internet.Apple Watch sleep apnea detection gets FDA approval - The U.S. Food and Drug Administration Mondaypublished approvalfor sleep apnea detection on the Apple Watch Series 9,Series 10, and Watch Ultra 2. The green light comes four days ahead of the Series 10’s September 20 release date. The feature,announced at last week’s iPhone 16 event, will arrive as part of the imminent watchOS 11 release. Once enabled, it requires 10 nights of sleep tracking data spread out over a 30-day span to determine whether a user may have the condition. During that time, it also offers insights into nightly sleeping disturbances, utilizing the on-board accelerometer.Notes on OpenAI’s new o1 chain-of-thought models - OpenAIreleased two major new preview modelstoday:o1-previewando1-mini(that mini one isnot a preview)—previously rumored as having the codename “strawberry”. There’s a lot to understand about these models—they’re not as simple as the next step up from GPT-4o, instead introducing some major trade-offs in terms of cost and performance in exchange for improved “reasoning” capabilities.Learn Git Branching - Interested in learning Git? Well, you've come to the right place! "Learn Git Branching" is the most visual and interactive way to learn Git on the web; you'll be challenged with exciting levels, given step-by-step demonstrations of powerful features, and maybe even have a bit of fun along the way.Ban warnings fly as users dare to probe the “thoughts” of OpenAI’s latest model - OpenAI truly does not want you to know what its latest AI model is "thinking." Since the companylaunchedits "Strawberry" AI model family last week, touting so-called reasoning abilities with o1-preview and o1-mini, OpenAI has been sending out warning emails and threats of bans to any user who tries to probe how the model works.Void captures over a million Android TV boxes - Doctor Web experts have uncovered yet another case of an Android-based TV box infection. The malware, dubbedAndroid.Vo1d, has infected nearly 1.3 million devices belonging to users in 197 countries. It is a backdoor that puts its components in the system storage area and, when commanded by attackers, is capable of secretly downloading and installing third-party software. Mobile App Development TutorialAn excerpt from ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ By Mark J. PriceSimplifying disposal by using the using statementYou can simplify the code that needs to check for anullobject and then call itsDisposemethod by using theusingstatement. Generally, I would recommend usingusingrather than manually callingDisposebecause it’s less code to write, unless you need a greater level of control.Confusingly, there are two uses for theusingkeyword: importing a namespace and generating afinallystatement that callsDisposeon an object implementingIDisposable.The compiler changes ausingstatement block into atry-finallystatement without acatchstatement. You can use nestedtrystatements; so, if you do want to catch any exceptions, you can, as shown in the following code example:using (FileStream file2 = File.OpenWrite(Path.Combine(path, "file2.txt"))){using (StreamWriter writer2 = new StreamWriter(file2)){try{writer2.WriteLine("Welcome, .NET!");}catch(Exception ex){WriteLine($"{ex.GetType()} says {ex.Message}"); }} // Automatically calls Dispose if the object is not null.} // Automatically calls Dispose if the object is not null.You can even simplify the code further by not explicitly specifying the braces and indentation for theusing statements, as shown in the following code...read more.Read the ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ book now!What's Happening in Mobile Development?Your dose of the latest releases, news and happenings in the Mobile Development industry!AppleiOS 18 is available today, making iPhone more personal and capable than ever - iOS 18is now available, bringing iPhone users around the world new ways to personalize their iPhone with deeper customization to the Home Screen and Control Center; the biggest-ever redesign to Photos, making it even easier to find and relive special moments; and major enhancements to Messages and Mail. Starting next month, iOS 18 will introduce Apple Intelligence, the personal intelligence system that combines the power of generative models with personal context to deliver intelligence that is incredibly useful and relevant while protecting users’ privacy and security.1Apple Maps introduces new ways to explore the world - Beginning today, users can discover hikes in U.S. national parks, create custom walking routes, save favorite spots to a new Places Library, and more. With the release ofiOS 18,iPadOS 18,macOS Sequoia, andwatchOS 11today, Apple Maps is introducing new features to help users explore and find places they love.watchOS 11 is available today - Introducing sleep apnea notifications, the Vitals app, training load, additional customization for Activity rings, a more personalized Smart Stack, and moreAndroidTools, not Rules: become a better Android developer with Compiler Explorer - Compiler Explorer is an interactive website for studying how compilers work. It is anopen source projectthat anyone can contribute to. This year, our engineers added support to Compiler Explorer for the Java and Kotlin programming languages on Android. You can use Compiler Explorer to understand how your source code is translated to assembly language, and how high-level programming language constructs in a language like Kotlin become low-level instructions that run on the processor.Build adaptive apps with new Compose APIs, now stable! - The 1.0 stable release of the Compose adaptive APIs with Material guidance is now available, helping you build adaptive layouts that provide an optimized user experience on any window size.MicrosoftJoin the .NET Smart Components ecosystem - The .NET Smart Components are a set of sample drop-in UI components that make it easy to add AI-enabled features for useful scenarios, like auto-filling forms from clipboard data, smart text completions, and semantic search. The .NET Smart Components demonstrate how prepackaging AI-based functionality into reusable components makes it easier to integrate these features into existing apps. We’re making the .NET Smart Components source code available as reference sample implementations to help bootstrap a vibrant ecosystem of reusable .NET AI-powered components.And that’s a wrap.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! *{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{line-height:0;font-size:75%}#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}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0
  • 18493

Apurva Kadam
26 Sep 2024
2 min read
Save for later

Make your opinion count! We Need Your Expertise: Participate in our Quick Survey Inside.

Apurva Kadam
26 Sep 2024
2 min read
As a valued member of our community, we invite you to participate in our user insights survey.Advertise with Us|Sign Up to the NewsletterGrow, Make a Difference, and Win! Participate in the Latest Developer Nation Survey!Hi ,What changed in the way you code for 2024? What has happened in the tech world in the last months?Take this shorter version of the Developer Nation survey, learn about new tools, influence the future of development and share your insights with the world! @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }What’s in it for you?A virtual goody bag packed with cool resourcesThe more questions you answer the more chances you have to win amazing prizes including:Samsung Galaxy Watch 7Portable ProjectorRODE NT-USB Mini MicrophoneRaspberry Pi 5s12-month Mullvad VPN licenceGift Cards and much more!Take the Survey now!Additionally, Developer Nation will donate to the following organizations on behalf of each developer who completes the survey:SPCA (safety and well-being of animals)Child's Play (therapeutic games for hospitals)Code the Dream (free coding education empowerment)Wanna be part of this?Take the Survey Now!Thanks,Apurva KadamEditor-in-Chief, Packt*{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{line-height:0;font-size:75%}#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}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 0
  • 0
  • 17316

Runcil Rebello
21 May 2025
10 min read
Save for later

MobilePro #172: All about Google I/O 2025, Material 3 Expressive, adaptive Android apps, OpenAI introduces Codex, and more…

Runcil Rebello
21 May 2025
10 min read
Mobile development blogs, tutorials and resources inside!Latest Mobile Dev Insights: iOS, Android, Cross-PlatformAdvertise with Us|Sign Up to the NewsletterMobilePro #172: All about Google I/O 2025, Material 3 Expressive, adaptive Android apps, OpenAI introduces Codex, and more…Hi ,Welcome to the 172nd edition of MobilePro, and it’s a Google I/O 2025 special! This week’s issue is packed with updates that mark a turning point for Android developers, from agentic AI to adaptive UIs and smarter app discovery:🌐 Google Play adds topic pages, audio previews, and subscription tools: Discoverability gets a boost with interest-based topic pages and audio previews, while developers gain smarter monetization tools to retain and convert users.🎨 Material 3 Expressive enhances UI with dynamic motion and color: Google’s new design language brings vibrant visuals and adaptable components that help apps feel more personalized and emotionally engaging.📐 Adaptive app development becomes Android's new north star: With Android devices expanding across form factors, I/O emphasized adaptive-first design—ensuring your app works seamlessly with varying screens, input types, and availability modes.🧠 Gemini comes to Android Studio with test generation and more: The Gemini 2.5 Pro model is now baked into Android Studio, enabling agentic test creation, smart suggestions, and experimental AI workflows—including support for image attachments.📱 ML Kit GenAI APIs powered by Gemini Nano debut: Developers can now build on-device generative AI apps with Gemini Nano for real-time tasks, or tap into Gemini Pro and Imagen via Firebase AI Logic for cloud-enhanced use cases.And in What’s Happening in AI?—OpenAI introduces Codex, an AI agent enhancing developer productivity. As always, stick around for our Developer Tip to boost your workflow and the Did You Know? section to learn about stagnant apps on the App Store!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!Machine Learning Summit 2025JULY 16–18 | LIVE (VIRTUAL)20+ ML Experts | 25+ Sessions | 3 Days of Practical Machine Learning and 40% OFFBOOK NOW AND SAVE 40%Use Code EARLY40 at checkoutDay 1: LLMs & Agentic AIFrom autonomous agents to agentic graph RAG and democratizing AI.Day 2: Applied AIReal-world use cases from tabular AI to time series GPTs and causal models.Day 3: GenAI in ProductionDeploy, monitor, and personalize GenAI with data-centric tools.Learn Live from Sebastian Raschka, Luca Massaron, Thomas Nield, and many more.40% OFF ends soon – this is the lowest price you’ll ever see.📱 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.Google I/O 2025Google Play introduces topic pages, audio previews, and subscription tools: At Google I/O 2025, Google Play unveiled a suite of updates aimed at enhancing app discovery and developer tools. Key features include topic pages for interest-based app exploration, audio previews to engage users before download, and improved subscription management tools to streamline monetization and reduce churn.Material 3 Expressive enhances UI with dynamic motion and color: Material Design introduces M3 Expressive, an evolution of its design system that emphasizes dynamic motion, vibrant color schemes, and adaptable components. It gives developers new tools to build more emotionally resonant and expressive apps.Build adaptive Android apps: We risk losing a significant user base if apps aren't adaptive. With this in focus, adaptive app development took center stage at Google I/O this year. Key updates included building for the growing Android device ecosystem, adopting an adaptive-first mindset, ensuring app availability across devices, supporting diverse input methods, and more.Gemini in Android Studio: You can now access the latest Gemini 2.5 Pro model directly in Android Studio, unlocking advanced Agentic AI capabilities to boost your productivity throughout the development lifecycle. Simply describe actions and assertions, and Gemini will generate and execute the corresponding tests for you. This release also includes a range of exciting updates—such as experimental AI features, support for image attachments in Gemini, and more.On-device GenAI APIs as part of ML Kit help you easily build with Gemini Nano: A new ML Kit GenAI APIs powered by Gemini Nano for on-device tasks and enabled access to advanced models like Gemini Pro and Imagen via Firebase AI Logic for more complex use cases. Developers can explore these tools through documentation, sample apps, and sessions—like the Androidify app that turns selfies into Android robots.Updates to the Android XR SDK: Exciting new updates were unveiled for Android XR at Google I/O, including Developer Preview 2 of the XR SDK and a growing device ecosystem. Alongside Samsung’s Project Moohan, new devices like XREAL’s portable XR headset are joining the lineup.Jetpack Compose adds autofill, adaptive layouts, and Material 3 Expressive: At Google I/O 2025, Jetpack Compose introduced significant updates, such as autofill support, auto-sizing text, visibility tracking, and the animateBounds modifier for smoother animations, to enhance developer experience and UI capabilities. The release also brings Material 3 Expressive components and an adaptive layouts library to streamline development across various device types.Android’s Kotlin Multiplatform announcements at Google I/O and KotlinConf 25: There’s been a wave of announcements around Android’s Kotlin and Kotlin Multiplatform at Google I/O. Highlights include experimental web/WASM support in Jetpack libraries, tooling enhancements for easier KMP integration, and comprehensive guidance through two new codelabs and more.AppleApple aiming to revamp Siri with LLM architecture amid AI challenges: Apple is overhauling Siri with a new large language model-based architecture, aiming for more conversational and intelligent interactions. This "LLM Siri" initiative seeks to enhance Siri's capabilities by integrating generative AI, allowing it to synthesize information and potentially access web data for more comprehensive responses.Apple expands accessibility across devices with labels, captions, and more: Apple is rolling out powerful new accessibility features across iPhone, Mac, Watch, and Vision Pro—including Magnifier for Mac, Live Captions on Apple Watch, and systemwide Accessibility Reader. The App Store will also display accessibility "nutrition labels" to help users make more informed choices.FlutterFluttercon 2025 heads to Berlin with multiplatform, design-focused tracks: Fluttercon Europe 2025 lands in Berlin this September, co-located with droidcon Berlin. Expect deep-dive talks on multiplatform Flutter, rendering, and custom UIs—plus global networking and hands-on workshops. Registrations are open now.Flutter 3.32.0 is out: Flutter 3.32.0 introduces several enhancements and fixes across its framework, engine, and tooling. Key updates include improved performance optimizations, enhanced support for foldable devices, and refined text rendering. Additionally, this release addresses various bug fixes and stability improvements to ensure a smoother development experience.🤖 What’s Happening in AI?AI is evolving fast—are you keeping up? MobilePro brings you key discussions, trends, and expert takes in one place.OpenAI introduces Codex, an AI agent enhancing developer productivity: OpenAI has unveiled Codex, a cloud-based software engineering agent designed to assist developers by automating tasks such as writing features, fixing bugs, and running tests. Integrated into ChatGPT for Pro, Team, and Enterprise users, Codex operates within isolated environments, providing verifiable outputs and aligning with human coding styles.AlphaEvolve: DeepMind’s AI agent revolutionizes algorithm design: DeepMind has introduced AlphaEvolve, a Gemini-powered AI agent that autonomously designs and optimizes advanced algorithms. By combining large language models with evolutionary techniques, AlphaEvolve has achieved breakthroughs in areas like matrix multiplication, data center scheduling, and chip design.📚️ Latest in Mobile Development from PacktMobilePro presents the latest titles from Packt that ought to be useful for mobile developers.Preorder How to Build Android Applications with Kotlin now.Build production-grade Android 16 apps.Preorder now at $44.99 $22.49!Use the code ANDROID50 at checkoutThese 4 bestsellers are worth $149 on their own.Get them plus18 more top C# and .NET books in our Mega Bundle forjust $18!Mobile App Development Tutorial — Excerpt from .NET MAUI Cookbookby Alexander RusskovOne of the obvious techniques to add more elements to a screen in .NET MAUI applications such that they fit within it is to create a scrollable layout, using the ScrollView element. Even basic elements can cause issues when misused. In this excerpt from Alexander Russkov’s .NET MAUI Cookbook, you will learn to create vertical and horizontal scrollable layouts.Creating scrollable layoutsTo follow the steps described in this recipe, it’s sufficient to create a blank .NET MAUI application. The default template includes sample code in the MainPage.xaml and MainPage.xaml.cs files, but you can remove it and leave only a blank ContentPage in XAML and a constructor with the InitializeComponent method in CS.To learn how to use scrollable layouts most efficiently and avoid issues, let’s create simple vertical and horizontal layouts:To create a vertical scrollable layout, it’s sufficient to wrap the part you would like to scroll in the ScrollView element:<ScrollView>    <VerticalStackLayout>        <Button Text="Tall Button 1" HeightRequest="500"/>        <Button Text="Tall Button 2" HeightRequest="500"/>    </VerticalStackLayout></ScrollView>Run the project to see the result.To enable horizontal scrolling, set ScrollView.Orientation to Horizontal. Replace VerticalStackLayout with HorizontalStackLayout to arrange elements horizontally:<ScrollView Orientation="Horizontal"> <HorizontalStackLayout> <Button Text="Tall Button 1" WidthRequest="500"/> <Button Text="Tall Button 2" WidthRequest="500"/> </HorizontalStackLayout></ScrollView>Run the project to see the result.Similar to VerticalStackLayout and HorizontalStackLayout, the ScrollView element lets its child element occupy as much space as it requests. As such, it measures it by infinite height or width (depending on the orientation). When the desired size of a child element is greater than the space available in ScrollView, scrolling functionality is activated.Setting ScrollView.Orientation to Horizontal or Vertical determines the direction of scrolling. You can also set Orientation to Both, to scroll in both directions.***There are plenty more such recipes, which you can read in .NET MAUI Cookbook..NET MAUI CookbookBuy now at$44.99💡️ Developer TipPasskeys offer several benefits such as enhanced security and simplified user experience. Therefore, choosing passkeys over passwords is a wise decision to make. To learn how to integrate passkey authentication in Android applications, checkout the article here.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.❓ Did You Know?Did you know that over half of the apps available on the Apple App Store have never been downloaded?Even more striking, about 70% of downloaded apps are deleted shortly after installation.This phenomenon highlights the critical importance of first impressions in app development. Essentially, an app has approximately three days to demonstrate its value to a user before it's potentially uninstalled.Sourced from Hyperlinkinfosystem.👋 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
  • 17224

Apurva Kadam
19 Sep 2024
3 min read
Save for later

Still figuring your way around App Dev tools? Read trending titles to get back in the game!

Apurva Kadam
19 Sep 2024
3 min read
Best recommendations on React, Swift and Flutter resources.Advertise with Us|Sign Up to the NewsletterHi ,Welcome to the special edition of MobilePro where we make recommendations on the best resources. This week we discuss React, Swift and Flutter and why they should be your trusted companions in your app creation journey!Flutter and React Native are two leading tools for cross platform app development that cut development time for iOS and Android devices.In software engineering and programming, a framework isa collection of reusable software components that make it more efficient to develop new applications. The reuse of existing development and research is an essential principle in all engineering fields.There are plenty of differences between Flutter vs Swift vs React Native. Swift is better if you want to deliver solutions for iPhone, iPad or other Apple devices. React Native is better if you want to create MVPs or basic app solutions. However, if you want to deliver high-performing apps, go with Flutter.In the following sections we cover the latest news on these tools and provide recommendations on resource that can bank on while creating your apps!Checkout all resources here!Thanks,Apurva KadamEditor-in-Chief, PacktReactReact Native is an open-source UI software framework created by Facebook Inc. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use the React framework along with native platform capabilities.Here are some resources that will get you started from the basics:React and React NativeBuy Now at $35.99$24.99Learn React with TypeScript Buy Now at $35.99 $24.99Modern Full-Stack React Projects Buy Now at $35.99$24.99SwiftSwift, on the other hand, is an open-source programming language, rather than an app development framework, and was created in 2014 as a modern, safe, and fast programming language for iOS, macOS, watchOS, and tvOS app development. Swift is designed to be easy to learn and use, with a syntax that is concise and expressive. It was intended to replace Objective-C as the primary programming language for Apple platforms.Here are some resources that will get you started from the basics:An iOS Developer's Guide to SwiftUI Buy Now at $35.99 $24.99Swift CookbookBuy Now at $35.99 $24.99Elevate SwiftUI Skills by Building ProjectsBuy Now at $27.99 $18.99FlutterFlutteris an open-source framework developed by Google to buildiOS and Androidapps from a single codebase. Launched in 2018, it has since received a great deal of attention and is nowneck and neck with React Nativeas the top cross-platform development framework. When launched, Flutter focused primarily on mobile apps but is now able to build applications for web applications, Windows, MacOS, and Linux.Here are some resources that will get you started from the basics:Flutter Cookbook, Second EditionBuy Now at $35.99 $24.99Flutter & Dart - Complete App Development CourseBuy Now at $109.99Flutter for BeginnersBuy Now at $33.99$22.99And that’s a wrap.P.S.: If you have don't want to be left behind in creating apps that are future-proof, do check out these resources!*{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{line-height:0;font-size:75%} @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
  • 14039

Runcil Rebello
14 May 2025
9 min read
Save for later

MobilePro #171: Swift 6.2 supercharges concurrency, Android Material 3 Expressive leaks early, iOS 19 targets public Wi-Fi pain, and more…

Runcil Rebello
14 May 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 #171: Swift 6.2 supercharges concurrency, Android Material 3 Expressive leaks early, iOS 19 targets public Wi-Fi pain, and more…These 4 bestsellers are worth $149 on their own.Get them plus18 more top C# and .NET books in our Mega Bundle forjust $18!Hi ,Welcome to the 171st edition of MobilePro! This week’s issue highlights the latest shifts shaping mobile development—from Swift’s new concurrency tools to Android’s leaked design overhaul, and powerful updates landing on both iOS and Android tooling:⚡ Swift 6.2 focuses on concurrency and testing: With distributed actor isolation, global actor support, exit tests, and better diagnostics, Swift 6.2 helps you build safer, more scalable apps.🎨 Google accidentally leaks Material 3 Expressive ahead of I/O: Android’s bold new look features vibrant colors, dynamic motion, and faster navigation—designed to feel more personal and intuitive.📶 iOS 19 rumored to sync public Wi-Fi logins: One login to rule them all—Apple may soon let your devices remember captive portal credentials automatically.📡 iOS 18.5 adds satellite messaging and more: Real-world updates bring satellite messaging to iPhone 13, improved Mail usability, and easier Apple TV purchases.🛠️ Android Studio Meerkat Feature Drop boosts productivity: With Gemini-powered crash insights, AI-generated unit tests, and enhanced Kotlin Multiplatform support, Meerkat 2024.3.2 is now stable and ready for your next project.And in What’s Happening in AI?—Microsoft is embracing the open Agent2Agent (A2A) protocol, with Azure AI Foundry and Copilot Studio supporting it. As always, stick around for our Developer Tip to boost your workflow!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!Machine Learning Summit 2025JULY 16–18 | LIVE (VIRTUAL)20+ ML Experts | 25+ Sessions | 3 Days of Practical Machine Learning and 40% OFFBOOK NOW AND SAVE 40%Use Code EARLY40 at checkoutDay 1: LLMs & Agentic AIFrom autonomous agents to agentic graph RAG and democratizing AI.Day 2: Applied AIReal-world use cases from tabular AI to time series GPTs and causal models.Day 3: GenAI in ProductionDeploy, monitor, and personalize GenAI with data-centric tools.Learn Live from Sebastian Raschka, Luca Massaron, Thomas Nield, and many more.40% OFF ends soon – this is the lowest price you’ll ever see.📱 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.Apple (iOS & Swift)Swift 6.2 focuses on concurrency and testing: Swift 6.2 introduces major concurrency upgrades, including distributed actor isolation and enhanced global actor support. The update also brings exit tests, the ability to add attachments to tests, and better diagnostics, setting the stage for safer, more scalable Swift code.iOS 19 rumored to sync public Wi-Fi logins across Apple devices: iOS 19 is rumored to be introducing seamless public Wi-Fi access: fill out a log-in form once, and your Apple devices will sync credentials automatically. No more repeated logins at hotels, gyms, or cafés—just connect and go.iOS 18.5 adds satellite messaging, improved Mail app usability, and more: Switching to legit iOS news, iOS 18.5 introduces satellite messaging for iPhone 13 users and enhanced parental controls via Screen Time notifications. Additional updates include improved Mail app usability and simplified Apple TV purchases on third-party devices.Google (Android)Google accidentally leaks Material 3 Expressive, Android's vibrant new look: Google inadvertently unveiled its upcoming Material 3 Expressive design for Android, emphasizing vibrant colors, dynamic animations, and enhanced personalization. Developed over three years with input from over 18,000 participants, the design aims to make interfaces more intuitive and emotionally engaging. Notably, users reportedly locate interface elements up to four times faster compared to previous designs. The official reveal is anticipated at Google I/O 2025.Android Studio Meerkat Feature Drop (2024.3.2) boosts productivity: Android Studio Meerkat Feature Drop (2024.3.2) is now stable, introducing Gemini-powered crash analysis, AI-generated unit test scenarios, and a customizable Prompt Library. Jetpack Compose previews are streamlined, Kotlin Multiplatform support is enhanced, and device management tools see significant upgrades.Android May 2025 update patches multiple vulnerabilities, including critical system flaw: Android's May 2025 security update addresses many vulnerabilities, including a high-severity flaw in the System component that allows local code execution without user interaction. Security patch levels 2025-05-05 or later incorporate all these fixes.💭 What is the Mobile Community Talking About?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.Android's Material 3 targets Gen Z, faces iMessage hurdle: Android's new Material 3 Expressive design flaunts vibrant colors, bold fonts, and larger icons to captivate Gen Z users. Despite extensive research indicating youth appeal, Google's visual overhaul may not overcome the iPhone's dominance among U.S. teens, largely due to iMessage's entrenchment.Reevaluating Clean Architecture: balancing structure and simplicity: Clean Architecture has become a dominant paradigm in mobile development, particularly on Android, often regarded as the gold standard for app structure. However, Max Kach argues that its widespread adoption can lead to unnecessary complexity, especially in smaller projects where its layered approach may be excessive. He emphasizes that Clean Architecture is not a one-size-fits-all solution and should be applied judiciously based on project needs.Windsurf AI simplifies iOS app development with integrated AI tools: Windsurf AI streamlines iOS app development by integrating AI-powered tools within its IDE, assisting in code generation, UI design, and debugging. The platform supports extensions like Swift and Sweetpad and integrates with tools such as Firebase and Figma to enhance functionality and streamline workflows.🤖 What’s Happening in AI?AI is evolving fast—are you keeping up? MobilePro brings you key discussions, trends, and expert takes in one place.Microsoft adopts A2A protocol for cross-platform AI agent collaboration: Microsoft is embracing the open Agent2Agent (A2A) protocol to enable seamless collaboration between AI agents across platforms and clouds. Azure AI Foundry and Copilot Studio now support A2A, allowing developers to build interoperable, multi-agent systems that communicate goals, actions, and results securely.Anthropic unveils web search API for real-time Claude responses: Anthropic has launched a Web Search API for Claude 3.7 Sonnet, 3.5 Sonnet, and 3.5 Haiku models, priced at $10 per 1,000 searches plus standard token costs. This feature enables Claude to autonomously perform multi-step web searches, delivering real-time, cited information for tasks like financial analysis, legal research, and developer support.📚️ Latest in Mobile Development from PacktMobilePro presents the latest titles from Packt that ought to be useful for mobile developers.These 4 bestsellers are worth $149 on their own.Get them plus18 more top C# and .NET books in our Mega Bundle forjust $18!Buy now at $18!Mobile App Development Tutorial — Excerpt from iOS 18 Programming for Beginners by Ahmad SaharSimulatoris downloaded and installed after you install Xcode. It provides a simulated iOS device so that you can see what your app looks like and how it behaves, without needing a physical iOS device. It can model all the screen sizes and resolutions for both iPad and iPhone so you can test your app on multiple devices easily. In this excerpt from Ahmad Sahar’s iOS 18 Programming for Beginners, you will learn how to run your app in Simulator.Running your app in SimulatorYou will implement multiple types of text-related views and modifiers. Each step in this excerpt applies minor changes to the view, so note the UI changes that occur after each step. Let's get started:Click the Destination pop-up menu to view a list of simulated devices. Choose iPhone SE (3rd generation) from this menu:In your own projects, you should pick whichever simulator you require. That said, if you want to match the screenshots in this book exactly, use the iPhone SE (3rd generation) simulator. This simulator also has a home button, so it is easier to get to the home screen.Click the Run button to install and run your app on thecurrently selected simulator. You can also use the Command + R keyboard shortcut.Simulator will launch and show a representation of an iPhone SE (3rd generation). Your app displays a white screen, as you have not yet added anything to your project:Switch back to Xcode and click on the Stop button (or press Command + .) to stop the currently running project.You have just created and run your first iOS app in Simulator! Great job!The destination menu has a section showing physical devices connected to your Mac and a Build section. You may be wondering what they are used for. Let's look at them in the next section.***There are plenty more such recipes, which you can read in iOS Programming for Beginners.iOS 18 Programming for BeginnersBuy now at$44.99💡️ Developer TipDo you know how to pin headers in LazyColumn in Jetpack Compose? Check out that tip and more here.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.👋 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
  • 13756

Apurva Kadam
12 Sep 2024
5 min read
Save for later

Still figuring your way around LLMs? Read trending titles to get back in the game!

Apurva Kadam
12 Sep 2024
5 min read
Best recommendations on LLM resources.Advertise with Us|Sign Up to the NewsletterHi ,Welcome to the special edition of MobilePro where we make recommendations on the best resources. This week we discuss Large Language Models and why they should be your new BFFs!The global LLM market is expected to grow from $1.59 billion in 2023 to $259.8 billion in 2030. In 2023, Claude 3 Opus was the top LLM tool with an average market share of 84.83%, followed by Gemini 1.5 Pro with an average of about 80%.LLMs identify patterns in data and generate natural output. They also perform basic tasks with JSON format graphs, such as reading a value from a graph and you know this - you probably already make great use of them while developing your apps. LLMs are trusted comrades in your mobile and cross-platform apps battlefields! But we're taking another step forward.By 2025, it's estimated that therewill be 750 million apps using LLMs and 50%of digital work is estimated to be automated through apps using these language models.In the following sections we cover the latest news on LLMs and provide recommendations on resource that can help you get aboard the LLM bandwagon!Checkout all LLM resources here!Thanks,Apurva KadamEditor-in-Chief, PacktLLMs in the NewsCheck out the latest news on LLMs and see how it is relevant to what you do!Apple Unveils iPhone 16 Built for AI; Apple Intelligence Coming to Product LineupApple is bringing artificial intelligence to its product line, starting with the unveiling of the new iPhone 16 and its new personal intelligence system announced Monday. The company’sApple Intelligence will power the new models with an “easy-to-use personal intelligence system that understands personal context to deliver intelligence that is helpful and relevant while protecting user privacy,” Apple said.Nvidia Launches Workflows for Organizations to Build Their Own AINvidiahas released a catalog of pre-trained, customizable AI workflows to enable organizations to quickly develop their owngenerative AI applications. Known asNIM Agent Blueprints,the workflows will initially target established enterprise use cases for generative AI. These include customer service avatars, PDF extraction for retrieval-augmented generation (RAG) and drug discovery virtual screening.AI Coding Tools Boost Developer Productivity, Enable More CollaborationGitHubsurveyed 2,000software engineers, developers, and programmers from the US, Brazil, Germany, and India, as well as a small number ofdata scientistsand software designers. Over 97% of respondents said they had used AI coding tools at work at some point, although some of these instances were not sanctioned by their companies. GitHub noted that this year software development teams recognized more benefits with AI coding tools than previously reported.Free ChatGPT Users Can Now Generate ImagesFreeChatGPT users can now finally generate images using the chatbot after the feature was locked away behind a paywall. Previously, access toOpenAI’s DALL-E line of image generation models was only available to users who signed up forChatGPT PlusandEnterprise premium services. Free users can now create custom images using the chatbot.Google Unveils Gemini Live Voice Assistant to Rival ChatGPT Voice ModeGooglehas unveiledGemini Live, a conversational voice assistant that’s set to rivalOpenAI’sVoice Mode. Available through the Gemini app on Android and iOS, the new Live feature allows users to interact with the AI using their voice. Powered by Google’sGemini 1.5 Flash model, the Live feature can answer questions across a variety of generated voices, 10 in total. Users can ask the chatbot to manage their shopping lists or summarize incoming emails.Language Learning ModelsLLMs generate text, translate languages, write different kinds of creative content, and answer your questions in an informative way. In recent years, language models have become increasingly powerful and sophisticated.Here are some resources that will get you started from the basics:Building LLM Powered ApplicationsBuy Now at $39.99$27.98LLM Engineer's HandbookDon't Miss a Chance for Early Access!Build Apps and Fine-Tune LLMs Using the OpenAI API Buy Now at $59.99ChatGPTChatGPT is a chatbot and virtual assistant developed by OpenAI and launched on November 30, 2022. Based on large language models, it enables users to refine and steer a conversation towards a desired length, format, style, level of detail, and language.Here are some resources that will get you started from the basics:ChatGPT for Conversational AI and ChatbotsBuy Now at $27.99$18.99Driving Business Success with ChatGPTBuy Now at $49.99ChatGPT for Cybersecurity CookbookBuy Now at $39.99 $27.98Prompt EngineeringPrompt engineering isthe process of writing instructions to guide generative artificial intelligence (AI) models to produce the desired output.It involves using the right words, phrases, symbols, and formats to help the AI interact with users more meaningfully.Here are some resources that will get you started from the basics:Prompt Engineering in Python, with GPT, and the OpenAI APIWatch this Video at$79.99ChatGPT and Prompt Engineering for Software DevelopmentBuy Now at $54.99Unlocking the Secrets of Prompt EngineeringBuy Now at $39.99$27.98And that’s a wrap.P.S.: If you have don't want to be left behind in creating apps that are future-proof, do check out these resources!*{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{line-height:0;font-size:75%} @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
  • 12488
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
Runcil Rebello
28 May 2025
9 min read
Save for later

MobilePro #173: WWDC25 is nearly here, Copilot gets smarter at Build 2025, Apple opens AI to devs, and more...

Runcil Rebello
28 May 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 #173: WWDC25 is nearly here, Copilot gets smarter at Build 2025, Apple opens AI to devs, and more...Hi ,Welcome to the 173rd edition of MobilePro! This week’s issue dives deep into the latest breakthroughs in AI development, mobile tooling, and cross-platform capabilities—from Apple’s AI shift to Kotlin’s multiplatform leap:🪄 Copilot expands across Microsoft Build 2025: Microsoft unveils custom copilots and smarter AI across Windows and Azure.🧠 Apple to open in-house AI models to developers: Apple plans to let devs use its own AI models, likely revealed at WWDC25.🧰 Kotlin 2.0 debuts at KotlinConf 2025: New AI tools and multiplatform improvements headline JetBrains’ Kotlin 2.0 launch.⚡ LiteRT brings fast, cross-platform model execution: Google’s new AI runtime boosts performance for edge and cloud deployment.📅 WWDC25 kicks off June 9: Apple’s dev event promises updates to iOS, visionOS, and AI-powered features.And in What’s Happening in AI?—Learn how AI models sabotage their shutdown. As always, stick around for our Developer Tip to boost your workflow and the Did You Know? section to learn about Android’s history!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!Machine Learning Summit 2025JULY 16–18 | LIVE (VIRTUAL)20+ ML Experts | 25+ Sessions | 3 Days of Practical Machine Learning and 40% OFFBOOK NOW AND SAVE 40%Use Code EARLY40 at checkoutDay 1: LLMs & Agentic AIFrom autonomous agents to agentic graph RAG and democratizing AI.Day 2: Applied AIReal-world use cases from tabular AI to time series GPTs and causal models.Day 3: GenAI in ProductionDeploy, monitor, and personalize GenAI with data-centric tools.Learn Live from Sebastian Raschka, Luca Massaron, Thomas Nield, and many more.40% OFF ends soon – this is the lowest price you’ll ever see.📱 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.Conferences — Microsoft Build 2025 and KotlinConf 2025Microsoft Build 2025: AI, Windows, and Copilot everywhere: At Build 2025, Microsoft spotlighted deeper Copilot integration across Windows, Azure, and developer tools. Key updates include custom copilots, improved small language models, and new Windows AI features.Updates from KotlinConf 2025 include AI tools and multiplatform boosts: JetBrains unveiled Kotlin 2.0 highlights at KotlinConf 2025, with new AI-powered tools, refined language features, and major upgrades to Kotlin Multiplatform—including better iOS and Android integration.AppleApple to open AI models to developers: Apple is preparing to grant developers access to its in-house AI models, marking a significant shift in its machine learning strategy. The move, likely to be announced at WWDC 2025, could make it easier to build AI-powered features into iOS apps.WWDC25 announced: Apple set to reveal what’s next: Apple’s WWDC25 will kick off on June 9, with keynotes and sessions expected to highlight major iOS, visionOS, and AI updates. Developers can join online or attend special in-person events and labs in Cupertino.GoogleGoogle launches Gemma 3n models for lightweight AI: Google introduced the Gemma 3n open models, offering improved performance for on-device and cloud AI. With versions as small as 2B parameters, they’re optimized for efficiency and mobile-friendly integration.Google debuts LiteRT for fast, efficient model deployment: Google's new LiteRT runtime is designed for low-latency model execution across platforms. It’s part of Google’s broader push toward bringing scalable AI capabilities to both edge and cloud platforms.Flutter gets a boost in Android Studio thanks to Gemini: Google has announced that Gemini, its AI assistant integrated into Android Studio, now offers comprehensive support for Flutter and Dart development. This enhancement allows developers to leverage AI-driven features such as context-aware code suggestions, UI generation from prompts, layout debugging, and automated test creation directly within their Flutter projects.Confused about which SDK to use when building your app? Binoy Vijayan compares Native, Flutter, React Native, and Hybrid, focusing on architecture, performance, and suitability for different app types. You can check out the article here.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’s Happening in AI?AI is evolving fast—are you keeping up? MobilePro brings you key discussions, trends, and expert takes in one place.Introducing Claude 4: Anthropic’s new Claude Opus 4 and Sonnet 4 models raise the bar for coding and advanced reasoning, with Opus 4 leading in long-running tasks and agent workflows. Both support extended thinking, parallel tool use, and enhanced memory. Claude Code is now generally available, integrating seamlessly with IDEs and GitHub.AI models sabotaging their shutdown: Switching to concerning AI behavior, OpenAI’s o3 model was caught sabotaging its own shutdown—even when explicitly instructed to allow it, while Claude 4 was observed attempting to blackmail. Researchers suggest this may stem from reinforcement learning, and further experiments are underway. Read the full thread to know how each AI model behaved.💭 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.Building Accessible Android UIs with Jetpack Compose: Learn why accessible UI matters and explore practical, real-world code examples to make your Jetpack Compose app more inclusive for users with disabilities.GitHub for Beginners: TDD with GitHub Copilot: Testing is a tedious but essential part of the development process. This blog guides you to use GitHub Copilot to engage in some test-driven development.📚️ Latest in Mobile Development from PacktMobilePro presents the latest titles from Packt that ought to be useful for mobile developers.If you are a digital designer, developer, UX professional, product manager, or business leader committed to inclusive design, this book is for you.Inclusive Design for AccessibilityPreorder now at $34.99!These 4 bestsellers are worth $149 on their own.Get them plus18 more top C# and .NET books in our Mega Bundle forjust $18!Mobile App Development Tutorial — Excerpt from Flutter Design Patterns and Best Practicesby Daria Orlova, Esra Kadah, and Jaime BlascoThe Flutter mechanism for passing around dependencies through the tree is calledInheritedWidget. You have certainly used it in your Flutter apps, even if you haven’t written one explicitly. Let’s take a look at whatInheritedWidgetis and how it can help us on our state management journey in this excerpt from Daria Orlova, Esra Kadah, and Jaime Blasco’sFlutter Design Patterns and Best Practices.As you know, in Flutter,everything is a widget. 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 ofInheritedWidget:<ScrollView Orientation="Horizontal"> <HorizontalStackLayout> <Button Text="Tall Button 1" WidthRequest="500"/> <Button Text="Tall Button 2" WidthRequest="500"/> </HorizontalStackLayout></ScrollView>InheritedWidgetextendsProxyWidget. Here,ProxyWidgetis just an abstract class that extends Widget and has a single parameter – the child widget. It is used as a base widget.Then, we pass the child parameter in the constructor so thatInheritedWidgetwill be a wrapper around some other widget.Then, we can see the already familiarcreateElementmethod, which createsInheritedElement. We won’t stop here since the main logic behind it is the same as with the other widget elements.Now, we come to the most interesting part – theupdateShouldNotifymethod, which returns a bool value and accepts anoldWidgetvalue of the same type as a parameter. In the override of this method, we determine whether there are any differences that we care about in the old instance of the widget and the new one. If there are (meaning we return true), those changes are then propagated to everyone who inherits from this widget.***But how can we inherit from this widget and what kind of data may we possibly want to pass around? Read more inFlutter Design Patterns and Best Practicesto find out.Flutter Design Patterns and Best PracticesBuy now at$44.99Android’s journey began in 2003, not as a smartphone platform, but as an operating system for digital cameras. It was the brainchild of a small startup—Android Inc.—founded by Andy Rubin, Rich Miner, Nick Sears, and Chris White. Their early vision eventually evolved into the world’s most popular mobile OS.Sourced from DPREVIEW.👋 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
  • 11979

Apurva Kadam
05 Sep 2024
12 min read
Save for later

MobilePro #153: Inclusive Gender Options with Compose, Android vs iOS, Optimizing React Native App, Routed Gothic Font, Is my blue your blue, Chromatone.

Apurva Kadam
05 Sep 2024
12 min read
Mobile development blogs, tutorials and resources inside!Advertise with Us|Sign Up to the NewsletterDeveloping for iOS? Setapp's 2024 report on the state of the iOS market in the EU is a must-seeHow do users in the EU find apps? What's the main source of information about new apps? Would users install your app from a third-party app marketplace?Set yourself up for success with these and more valuable marketing insights in Setapp Mobile's report iOS Market Insights for EU.Get Insights FreeMobilePro #153:Inclusive Gender Options with Compose, Android vs iOS, Optimizing React Native App, Routed Gothic Font, Is my blue your blue, Chromatone.Hi ,Welcome to the mobile app development world withthe 152nd edition of _mobilepro!In this edition we cover mobile development community discussions on:Beyond the Binary - More Inclusive Gender Options with Compose Setting Up ViewCode Projects for Versions Below iOS 13The Future of IoT and Android: What Lies AheadAndroid vs iOSOptimizing Performance in React Native AppIn our relatively new section captures internet jibber-jabber about the mobile ecosystem:A memory layer for personalised AIRouted Gothic FontKids who use ChatGPT as a study assistant do worse on testsIsmyblueyourblue?ChromatoneToday'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.Take the Survey Now!Thanks,Apurva KadamEditor-in-Chief, PacktMobile App Dev Community SpeakWhat are Mobile developers discussing? What are the latest tips and tricks? Shortcuts and experiments? Cool tutorials? Releases and updates? Find it all out here.Beyond the Binary - More Inclusive Gender Options with Compose - If your gender matches the one that was assigned to you at birth, you probably don't notice flaws in application design that enforce the gender binary. But if it doesn't, and especially if your gender is beyond the woman-man binary, you constantly notice user interfaces that exclude you. So, in this blog post, I'll discuss the concept of gender a bit and then demonstrate one way to build a more inclusive gender selection with Jetpack Compose. Setting Up ViewCode Projects for Versions Below iOS 13 - In iOS development, a significant change was introduced with iOS 13, bringing theSceneDelegateto facilitate multi-window support on iPads and other functionalities. However, when working with earlier versions of iOS, theSceneDelegateis not used, and the initial setup of the application must be done directly in theAppDelegate. In this article, I'll guide you through the process of configuring your iOS application using theAppDelegate, ensuring compatibility with versions prior to iOS 13.The Future of IoT and Android: What Lies Ahead - The Internet of Things (IoT) has emerged as a transformative force in the digital landscape, connecting billions of devices worldwide. From smart homes to industrial automation, IoT is revolutionizing how we interact with technology and the environment around us. Android, as one of the most widely used operating systems, plays a crucial role in enabling and enhancing IoT solutions. In this blog, we'll delve into the intricacies of IoT, its key components, and how Android is at the forefront of this technological revolution, with best practices for connecting and managing IoT devices through mobile apps.Android vs iOS - After using Android phones for almost all the years and iPhone for about 3 months, here is an analysis comparing the features of both. I have used stock Android on Pixel and iOS on iPhone 15 Pro, so best of both worlds. A big factor in this comparison is that it just discusses the features of Android and iOS, not the complete infrastructure. I am pretty sure that if you add a Macbook, Airpods, and an iPad, the table might look way different. The following comparison lists Android 14 vs iOS 17.6 (just a few days before the release of iOS 18).Optimizing Performance in React Native App - Cross-platform development which allows us to create an app for both iOS and Android with just one codebase has recently surged in popularity. However, with the benefits comes the responsibility to ensure they perform flawlessly across both platforms and all supported devices. And tools like React Native, while powerful in enabling cross-platform development,require customized strategies to meet the unique requirements of each platform. In this article, we will discuss optimizing performance in React Native app with various code optimization techniques, tricks and hacks, and tools and libraries.Mobile App Dev ReposCheck this space for new repos, projects and tools each week! This week we bring you a collection of iOS tools for Images.FlexibleImage- A simple way to play with image!TLPhotoPicker- Multiple phassets picker for iOS lib. like a facebook.YapImageManager- A high-performance image downloader written in Swift, powered by YapDatabase.PhotoEditorSDK- A fully customizable photo editor for your app.SimpleImageViewer- A snappy image viewer with zoom and interactive dismissal transition.AZImagePreview- A framework that makes image viewing easy.FaceCropper- Crop faces, inside of your image, with iOS 11 Vision api.Internet Jibber-JabberRandom curious musings and interesting words about Mobile Dev on the Internet.A memory layer for personalised AI -Mem0(pronounced as "mem-zero") enhances AI assistants and agents with an intelligent memory layer, enabling personalized AI interactions. Mem0 remembers user preferences, adapts to individual needs, and continuously improves over time, making it ideal for customer support chatbots, AI assistants, and autonomous systems.Routed Gothic Font - A clean implementation of a common lettering style found on technical drawings, engraved office signs, computer and typewriter keyboards, and some comic books and avionics from the mid-20th century. It’s ugly, and therein lies its beauty.remarkable - Replace your notebooks and printouts with a digital device that feels just like writing on paper.Kids who use ChatGPT as a study assistant do worse on tests - Does AI help students learn? A recent experiment in a high school provides a cautionary tale. Researchers at the University of Pennsylvania found that Turkish high school students who had access to ChatGPT while doing practice math problems did worse on a math test compared with students who didn’t have access to ChatGPT. Those with ChatGPT solved 48 percent more of the practice problems correctly, but they ultimately scored 17 percent worse on a test of the topic that the students were learning.Ismyblueyourblue? - People have different names for the colors they see.Language can affect how we memorize and name colors. This is a color naming test designed to measure your personal blue-green boundary. Color perception is tricky to measure–vision scientists use specialized calibrated equipment to color perception. Graphic designers use physical color cards, such as thosemade by Pantone, so that they can communicate colors unambiguously. Here we use your monitor or phone to test how you categorize colors, which is far from perfect, since your calibration may differ from mine.Chromatone - Chromatone is an open-source research and design project to explore, develop and implement the scientific way of visual music education, communication and performance. Imagine if we once agree on a standard way to interconnect colors and notes? It will empower our music perception with vision, most humans primary sensory channel, especially in our modern screen time. Why not view music the visual way today? Let's explore 12 notes, 12 colors and infinite space of their possible combinations. Mobile App Development TutorialAn excerpt from ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ By Mark J. PriceGood practice with collectionsSince .NET 1.1, types likeStringBuilderhave had a method namedEnsureCapacitythat can presize its internal storage array to the expected final size of thestring. This improves performance because it does not have to repeatedly increment the size of the array as more characters are appended.Since .NET Core 2.1, types likeDictionary<T>andHashSet<T>have also hadEnsureCapacity.In .NET 6 and later, collections likeList<T>,Queue<T>, andStack<T>now have anEnsureCapacitymethod too, as shown in the following code:List<string> names = new();names.EnsureCapacity(10_000);// Load ten thousand names into the list.Let’s say you need to create a method to process a collection. For maximum flexibility, you could declare the input parameter to beIEnumerable<T>and make the method generic, as shown in the following code:void ProcessCollection<T>(IEnumerable<T> collection){// Process the items in the collection,// perhaps using a foreach statement.}I could pass an array, a list, a queue, or a stack, containing any type, likeint,string,Person, or anything else that implementsIEnumerable<T>, into this method and it will process the items. However, the flexibility to pass any collection to this method comes at a performance cost.One of the performance problems withIEnumerable<T>is also one of its benefits: deferred execution, also known as lazy loading. Types that implement this interface do not have to implement deferred execution, but many do.But the worst performance problem withIEnumerable<T>is that the iteration must allocate an object on the heap. To avoid this memory allocation, you should define your method using a concrete type, as shown highlighted in the following code:void ProcessCollection<T>(List<T> collection){// Process the items in the collection,// perhaps using a foreach statement.}This will use theList<T>.Enumerator GetEnumerator()method, which returns astruct, instead of theIEnumerator<T> GetEnumerator()method, which returns a reference type. Your code will be two to three times faster and require less memory. As with all recommendations related to performance, you should confirm the benefit by running performance tests on your actual code in a product environment.Read the ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ book now!What's Happening in Mobile Development?Your dose of the latest releases, news and happenings in the Mobile Development industry!AndroidAndroid 15 is released to AOSP - Today we're releasing Android 15 and making the source code available at theAndroid Open Source Project(AOSP). Android 15 will be available on supported Pixel devices in the coming weeks, as well as on select devices from Samsung, Honor, iQOO, Lenovo, Motorola, Nothing, OnePlus, Oppo, realme, Sharp, Sony, Tecno, vivo, and Xiaomi in the coming months.Our first Spotlight Week: diving into Android 15 - By now, you’ve probably heard the news:Android 15 was just released earlier today to AOSP. To celebrate, we’re kicking off a new series called “Spotlight Week” where we’ll shine a light on technical areas across Android development and equip you with the tools you need to take advantage of each area.TalkBack uses Gemini Nano to increase image accessibility for users with low vision - TalkBackis Android’s screen reader in theAndroid Accessibility Suitethat describes text and images for Android users who have blindness or low vision. The TalkBack team is always working to make Android more accessible. Today, thanks to Gemini Nano with multimodality, TalkBack automatically provides users with blindness or low vision more vivid and detailed image descriptions to better understand the images on their screen.Google Maps improved download reliability by 10% using user-initiated data transfer API - In Android 14 we introduced user-initiated data transfer jobs, or UIDT. You can use the new APIsetUserInitiatedinJobSchedulerto specify that the job is a user-initiated data transfer job. This API is helpful for use cases that require long-duration (>10 minutes), user-initiated transfer of data over network. UIDT is also an alternative API to using a dataSync foreground service, which hasnew timeout behavior for apps that target Android 15. Google Maps successfully launched UIDT and saw improvement in download reliability!JetBrainsJoin Us for JetBrains .NET Days Online 2024 - JetBrains .NET Days Online 2024 is back for its sixth edition!This year’sCall for Speakershad so many great submissions from the .NET folks that we couldn’t fit all of the talks we wanted in just one day. Tune in live on September 25–26 for two days of demo-rich sessions and insightful discussions with .NET enthusiasts, developers, and industry leaders from around the globe.MicrosoftAnnouncing TypeScript 5.6 RC - The availability of the release candidate of TypeScript 5.6 is here. To get started using the RC, you can get it through npm with the following command: npm install -D typescript@rc.NET Conf 2024 – Celebrating the Release of .NET 9! – Save the Date! - We are thrilled to announce the highly anticipated.NET Conf 2024, a free, three-day virtual developer event celebrating the release of .NET 9. Co-organized by the .NET community and Microsoft, this annual tradition continues to grow, and we’re more excited than ever to bring you the latest innovations in .NET. Mark your calendars forNovember 12th to 14th, 2024, and prepare to be inspired by a wealth of knowledge, creativity, and community engagement.Trending TitlesBuilding LLM Powered Applications$39.99$27.98CompTIA Security+ SY0-701 Certification GuidePrint $44.99Django 5 By Example$39.99 $27.98And that’s a wrap.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! *{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{line-height:0;font-size:75%}#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
  • 11378

Apurva Kadam
13 Sep 2024
13 min read
Save for later

MobilePro #154: User Experience Testing for Your Gaming Apps, Well-structured architecture in Android, Flutter Over React Native, Dependency Injection, EarthKart.

Apurva Kadam
13 Sep 2024
13 min read
Mobile development blogs, tutorials and resources inside!Advertise with Us|Sign Up to the Newsletter @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }Get your Tickets Now!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:Why You Need to Conduct Thorough User Experience Testing for Your Gaming AppsWhy use a well-structured architecture in Android?Quantum Computing: What It Means for Mobile App DevelopmentWhy Choose Flutter Over React Native? A Deep Dive into the Pros and ConsUnderstanding Dependency InjectionIn our relatively new section captures internet jibber-jabber about the mobile ecosystem:Conversational AI Powered by LLMs Amplifies False Memories in Witness InterviewsDawarichSong PongCanva says its new AI features justify raising subscription prices by 300%EarthKart: Google Maps Driving SimulatorEvery week we recommend mobile app development resources, and this week we feature:1. Swift Cookbook2. Mastering Kotlin for Android 143. .NET MAUI ProjectsToday'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.Take the Survey Now!Thanks,Apurva KadamEditor-in-Chief, PacktMobile App Dev Community SpeakWhat 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.Mobile App Dev ReposCheck 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 photosTJProfileImage- Live rendering of componet’s properties in Interface Builder.Internet Jibber-JabberRandom 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! Mobile App Development TutorialAn excerpt from ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ By Mark J. PriceIdentifying positions with the Index typeC# 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.TheIndexvalue 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 startIndex 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.Read the ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ book now!What's Happening in Mobile Development?Your dose of the latest releases, news and happenings in the Mobile Development industry!AppleApple 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 featureReserve 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.AndroidDeveloper 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.MicrosoftAnnouncing 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!JetBrainsCreate 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.Trending TitlesOur weekly recommendations of the best resources in Mobile App Development!Swift CookbookBuy now at $35.99$24.99Mastering Kotlin for Android 14Buy now at $31.99 $21.99.NET MAUI ProjectsBuy now at $41.99 $28.99And that’s a wrap.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! *{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{line-height:0;font-size:75%}#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}} @media only screen and (max-width: 100%;} #pad-desktop {display: none !important;} }
Read more
  • 1
  • 0
  • 8440

Runcil Rebello
03 Sep 2025
8 min read
Save for later

MobilePro #188: Android's Activity Lifecycle—A Sneak Peek Behind the Curtain

Runcil Rebello
03 Sep 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 #188: Android's Activity Lifecycle—A Sneak Peek Behind the CurtainFREE GUIDE: Airflow 3 Tips & Code SnippetsThinking about upgrading to Apache Airflow® 3? You’ll get powerful new features like a modernized UI, event-based scheduling, and streamlined backfills. Quick Notes: Airflow 3 Tips & Code Snippets is a concise, code-filled guide to help you start developing DAGs in Airflow 3 today.You’ll learn:How to run Airflow 3 locally (with dark mode) and navigate the new UIHow to manage DAG versioning and write DAGs with the new @asset-oriented approachThe key architectural changes from Airflow 2 to 3 GET YOUR FREE GUIDE Hi ,Welcome to the 188th edition of MobilePro!Think of your Android app like a stage play. When the curtain rises, the actors (your activities) step into the spotlight, ready to perform. Sometimes they pause mid-scene while the spotlight shifts, sometimes they step into the wings to wait for their cue, and eventually, they exit the stage entirely. The audience may not notice all the behind-the-scenes work, but as the developer, you’re the stage manager making sure the transitions are smooth and the show goes on without a hitch.So, every time your app is opened, backgrounded, resumed, or closed, it passes through well-defined stages. Android provides callback methods—like cues in a script—that let you know when it’s time to set the scene, save the current state, or clean things up. Mastering these callbacks means your app won’t drop the ball when a user takes a call, rotates their screen, or swipes it away from the task list.In this article, we’ll break down the key lifecycle callbacks step by step, showing you how they work and how you can use them to keep your apps running smoothly. This is excerpted from the book How 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:🍎 Apple is talking to Google over integrating Gemini to revamp Siri on iPhones🚀 Flutter 3.35 stable + 3.36 beta released back-to-back🤖 Android to require verified developers from 2026🍔 Flutter fuels Burger King’s loyalty app successTake the Survey!3rd SeptWhy Cloud, Why Now?Join Forrester & Atlassian to understand costs, risks, and AI opps.Join nowMeet the AuthorsAlex FSenior Android DeveloperNatWest GroupEran BDirectorMitteloupe LimitedAlexandru DPrincipal Android EngineerNutmegJomar TLecturerDe La Salle University♻️ The Activity LifecycleImagine you’re using your favorite app, scrolling through a feed, when suddenly you get a phone call. The app disappears into the background, but when you return a few minutes later, everything is right where you left it. Or perhaps you rotate your phone, and the screen smoothly reorients itself without losing sight of what was onscreen. While regular users may not be aware that these little moments of continuity don’t happen by accident; you are likely to know that this is a result of Android’s activity lifecycle.For every one of these steps, there is a callback that your activity can use to perform actions such as creating and changing the display, saving data when your app has been put into the background, and then restoring that data after your app comes back into the foreground.These callbacks are made on the parent activity, and it’s up to you to decide whether you need to implement them in your own activity to take any corresponding action. Each of these callback functions has the override keyword. The override keyword in Kotlin means that either this function is providing an implementation of an interface or an abstract method; or, in the case of your activity here, which is a subclass, it is providing the implementation that will override its parent.Now that you know how the activity lifecycle works in general, let’s first dive into the flow of callbacks and events, which is illustrated in the following diagram:↩️ CallbacksNow that you’ve taken in this flow of events, let us go into further detail about the principal callbacks you will work with in order, from creating an activity to the activity being destroyed:override fun onCreate(savedInstanceState: Bundle?): This is the callback that you will use the most for activities that draw a full-sized screen. At this stage, after the method has finished, it is still not displayed to the user, although it will appear that way if you don’t implement any other callbacks. You usually set up the UI of your activity here by calling the setContent{…} method and carrying out any initialization that is required.This method is only called once in its lifecycle, unless the activity is created again. This happens by default for some actions (such as rotating the phone from portrait to landscape orientation). The savedInstanceState parameter of the Bundle? type (? means the type can be null) in its simplest form is a map of key-value pairs optimized to save and restore data.It will be null if this is the first time that an activity has been run after the app has started, if an activity is being created for the first time, or if an activity is being recreated without any state being saved.override fun onRestart(): When an activity restarts, this is called immediately before onStart(). It is important to be clear about the difference between restarting an activity and recreating an activity. When an activity is backgrounded by pressing the Home button, when it comes back into the foreground again, onRestart() will be called. Recreating an activity is what happens when a configuration change happens, such as the device being rotated. The activity is finished and then created again, in which case, onRestart() will not be called.override fun onStart(): This is the first callback made when an activity is brought from the background to the foreground.override fun onRestoreInstanceState(savedInstanceState: Bundle?): If the state has been saved using onSaveInstanceState(outState: Bundle?), this is the method that the system calls after onStart(), where you can retrieve the Bundle state instead of restoring the state using onCreate(savedInstanceState: Bundle?).override fun onResume(): This callback is run as the final stage of creating an activity for the first time, and also when the app has been backgrounded and then is brought into the foreground. Upon the completion of this callback, the activity is ready to be used and receive user events.override fun onSaveInstanceState(outState: Bundle?): If you want to save the state of an activity, this function can do this for you. You add key-value pairs using one of the convenience functions, depending on the data type. The data will then be available if your activity is recreated in onCreate(saveInstanceState: Bundle?) and onRestoreInstanceState(savedInstanceState: Bundle?).override fun onPause(): This function is called when an activity starts to be backgrounded or another dialog or activity comes into the foreground.override fun onStop(): This function is called when an activity is hidden, either because it is being backgrounded or another activity is being launched on top of it.override fun onDestroy(): This is called by the system to kill an activity when system resources are low, when finish() is called explicitly on the activity, or, more commonly, when an activity is killed by the user swiping up to close the app from the Overview menu.At the end of the day, the activity lifecycle is like stage directions for your app. Each callback tells you when to set the scene, when to pause, and when to take a bow. Master these cues, and your app won’t just run; it’ll deliver a performance worth a standing ovation.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 $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
27 Aug 2025
10 min read
Save for later

MobilePro #187: iOS 26, Android 16, new Flutter releases, revised Play Store rules, and more...

Runcil Rebello
27 Aug 2025
10 min read
Mobile development blogs, tutorials and resources inside!Latest Mobile Dev Insights: iOS, Android, Cross-PlatformAdvertise with Us|Sign Up to the NewsletterMobilePro #187: iOS 26 beta, Android 16 QPR2, new Flutter releases, revised Play Store rules, and more...Final chance to book a spot in the MCP Workshop on August 30th, 2025Save your Spot!Hi ,Welcome to another week of MobilePro; this is edition no. 187. Recently, there have been reports of Apple talking to its direct competitor, Google, over integrating the latter’s AI assistant, Gemini, to revamp Siri on iPhones. This follows closely from previous reports that Apple has been approaching companies like OpenAI and Anthropic to gauge whether they can enter into tie-ups over ChatGPT or Claude.Now, many iOS users have been annoyed over AI capabilities in their iPhones not being what was promised to them in 2024, leading to the Apple team taking a step back in their mentions of AI during WWDC in 2025. In light of that, partnerships with Anthropic or OpenAI make sense. However, a potential partnership with Google does sound like a deal with the enemy. Will iOS users be okay with their data being shared with a Google tool? Many iOS users avoid Android as much as they can. Would a Siri powered by Gemini lead to users turning off Siri altogether on their iPhones?Conversely, wouldn’t you use Siri more if it’s more useful and efficient? At least that’s the bet Apple is making. Things are yet in the air though, and the possibilities are endless. News has also trickled out that iPhones meant for businesses will give its IT administrators greater control over which AI tools can be used and to what extent. Among other things, companies can decide if data should be processed in the cloud or on the device itself. You won’t have to wait long for this. It’ll be a part of the iOS 26 release in the next month.Of course, that’s not all the news this week. Let’s dive in.✨ iOS & iPadOS 26 beta 8 ships with Recovery Assistant and Apple Intelligence boosts: Fixes iPhone 15/16 bugs and enhances ARKit, HealthKit, and dev tools.🤖 Android 16 QPR2 Beta 1 debuts minor SDK versioning: Smoother cross-device experiences, richer APIs, and faster dev updates.⚖️ Google reshapes Play Store rules in EEA under DMA pressure: Allows external payments but adds up to 20% fees, sparking “malicious compliance” criticism.🛡️ Android to require verified developers from 2026: New “ID check” security layer launches in Brazil, Indonesia, Singapore, and Thailand.🛠️ Flutter 3.35 stable + 3.36 beta released back-to-back: Hot reload, Widget Previews, and rapid iteration show fast framework evolution.🎨 Vibe coder vs. senior iOS engineer face off on Granola AI clone: Highlights how AI-assisted dev stacks against seasoned engineering.🍔 Flutter fuels Burger King’s loyalty app success: Rebel App Studio built a new loyalty and ordering app for Burger King Finland in just three months, boosting app-driven sales by 51% through shared Flutter code.Stick around for this week’sDeveloper Tip to add push notifications to your Android or iOS app in just 10 minutesandtheDid You Know? section to to know how Google’s appeal was rejected in an antitrust case.Let’s dive in!📱 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.AppleiOS & iPadOS 26 beta 8 released: Apple has rolled out iOS & iPadOS 26 beta 8, bundled with Xcode 26, introducing Recovery Assistant for device troubleshooting, new accessibility labels on App Store pages, and expanded Apple Intelligence features. The update also fixes key bugs—like startup issues on iPhone 15/16 models—while adding enhancements across ARKit, HealthKit, journaling, and developer frameworks.Apple releases iOS 18.6.2 for iPhone, here’s what’s new: Apple has released iOS 18.6.2, a stability-focused update that delivers important security fixes without new features. It may be the final iOS 18 update before iOS 26 rolls out next month.AndroidAndroid 16 QPR2 Beta 1 is out: Google just dropped Android 16 QPR2 Beta 1, giving developers early access to new APIs and features. This release focuses on smoother experiences across devices, richer app capabilities, and better dev tools—plus it’s the first Android beta with a minor SDK version, letting Google ship innovations faster without breaking app compatibility.Google alters Play Store developer fees and rules in the EEA: Google is revamping Play Store rules in the EEA to comply with the EU’s DMA, letting developers link to external payment options and even direct app downloads—but with new “service fees” of up to 20% and strict search visibility tiers. Critics, including Epic’s Tim Sweeney, argue the changes amount to “malicious compliance” that keeps alternative payments uncompetitive.A new layer of security for certified Android devices: Starting in 2026, Android will require all apps on certified devices to come from verified developers, adding an “ID check” layer of accountability to fight scams and malware. The rollout begins in Brazil, Indonesia, Singapore, and Thailand, with global expansion planned in 2027.Cross-platform and OthersFlutter 3.35 and 3.36 beta released: The Flutter team is on a roll—hot on the heels of Flutter 3.35, which introduced highlights like stateful hot reload and Widget Previews, they’ve already dropped the beta of Flutter 3.36. Flutter 3.35 was released as a stable build on August 14, 2025, and the beta version 3.36.0-0.1.pre followed the very same day, signaling the team’s fast pace in pushing new improvements and features forward.Google expands its Developer program: Google has expanded its Developer Program with a new $24.99/month plan that includes AI-powered tools, Google Cloud credits, and Firebase resources, plus a unified forum at discuss.google.dev for collaboration. Developers can also join the new Google Cloud & NVIDIA community for exclusive AI learning pathways and credits.Rebel App Studio crafts a Flutter-powered Burger King loyalty app in just three months: Collaborating closely with Burger King Finland and Restel, Rebel App Studio leveraged shared Flutter code to build a branded loyalty and ordering app in record time, anchored by agile design, user feedback validation, and strong code reuse. The result? A 51% jump in app-driven sales and a notable boost in customer loyalty, all achieved via a seamless, native-feeling mobile experience.Dart and Flutter MCP Server powers AI agents with deep project context: The MCP server bridges Dart/Flutter projects and AI assistants by exposing tools for tasks like error analysis, layout debugging, and package search, all via the standardized Model Context Protocol. It supports clients such as Gemini CLI, GitHub Copilot, Firebase Studio, and Cursor, enabling AI agents to reason about code context and act with precision.FlashList v2 brings estimate-free, high-precision lists to React Native’s new architecture: Shopify has completely rewritten FlashList for React Native’s new architecture, dropping the need for item size estimates while delivering faster load times, smoother scrolling, and pixel-perfect rendering. The JS-only solution also improves horizontal list support, layout animations, and developer ergonomics, and is now production-ready across Shopify’s mobile apps.Artificial Intelligence (AI)Claude Sonnet 4 now supports 1M tokens of context: Claude Sonnet 4 now supports 1M tokens of context—a 5x boost that enables analyzing full codebases, synthesizing massive document sets, and powering more context-aware agents. The feature is in public beta on Anthropic’s API and Amazon Bedrock, with Google Cloud’s Vertex AI support coming soon.Gemini 2.5 Pro is generally available in Copilot: Google’s Gemini 2.5 Pro is now generally available in GitHub Copilot, bringing advanced reasoning, coding, math, and science capabilities. Copilot Pro users can access it immediately, while Business and Enterprise admins must enable it in settings.Want to add push notifications to your Android or iOS app in just 10 minutes? This guide from DEV Community walks you through integrating Clix—a tool that handles device token setup, unified SDK integration, real-time delivery logs, and lightning-fast messaging—so you can avoid the usual configuration headaches and ship faster. Check it out here.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.Vibe coder vs. senior iOS engineer: Granola AI clone showdown: In this experiment, Vishal Dubey, a senior iOS engineer and Riley Brown, a vibe-coder, each try to build a Granola AI clone. The challenge highlights how far vibe coding has come and whether AI-assisted development can rival the craftsmanship of an experienced iOS engineer.Antoine van der Lee on mastering computed properties in Swift: Computed properties in Swift allow you to dynamically calculate values instead of storing them directly, making them a powerful way to encapsulate logic and keep types clean. Antoine explains how they work, when to use them, and the pitfalls to avoid.Clean architecture isn’t just code; it’s the backbone of resilient mobile products: Roman Kamyshnikov emphasizes that clean architecture enables early-stage apps to scale confidently by enforcing clear feature boundaries and modular APIs, avoiding costly late-stage refactoring. In regulated domains like fintech and insurtech, pairing Jetpack Compose with layered architecture ensures traceability, parallel development, and compliance, all without sacrificing velocity.📚️ Latest in Mobile Development from PacktMobilePro presents the latest titles from Packt that ought to be useful for mobile developers.If you are a beginner or an intermediate-level developer with no prior experience in Android app development, this book is 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 Application with KotlinPre-order now at $44.99!A U.S. appeals court has unanimously upheld a 2023 jury verdict that labeled Google’s Play Store and its in-app payment system an illegal monopoly. As a result, Google must now allow rival app stores, open its app catalog to competitors, and permit developers to use their own billing systems—a major shakeup in Android app distribution.Sourced from App Developer Magazine.👋 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
21 Aug 2025
6 min read
Save for later

MobilePro #186: The Model Context Protocol Is Changing How We Build Agentic AI Apps

Runcil Rebello
21 Aug 2025
6 min read
Mobile development blogs, tutorials and resources inside!Latest Mobile Dev Insights: iOS, Android, Cross-PlatformAdvertise with Us|Sign Up to the NewsletterMobilePro #186: The Model Context Protocol Is Changing How We Build Agentic AI AppsWhy developers are turning to MCP for scalable, secure, and intelligent solutions — and how to get started todayHi ,Welcome to the 186th edition of MobilePro!We have all seen the impressive demos. AI assistants that can code, summarize, plan, and collaborate almost like a teammate.But when it comes time to connect them to your real systems, your APIs, databases, or business tools, things quickly become complicated. Integrations break. Capabilities are hardcoded into specific workflows. Scaling to new features often means starting from scratch.A new approach is emerging that changes how AI-powered apps interact with the world around them.It is not another SDK or framework. It is a shift in how we define, discover, and connect capabilities so that tools and AI systems can work together more naturally.On August 30, we’re running a hands-on workshop with Christoffer Noring, Sr. Cloud Advocate at Microsoft, to show you exactly how to build and deploy with this new model. You’ll leave not just knowing what it is, but having implemented it yourself.What Exactly Is MCP?The Model Context Protocol (MCP) is like a USB Hub for AI.Right now, most AI assistants live in their own bubble. They can reason well, but they can’t easily reach into your tools, databases, or services without custom, one-off integrations. That means every new data source or capability often means starting from scratch.MCP fixes that by giving developers a single, open standard for connecting AI systems to the outside world. With MCP, you can securely expose capabilities (like “generate an invoice” or “pull customer history”) in a way that any compatible AI client, from an LLM-powered app to a VS Code agent, can discover and use instantly.Think of it as a USB-C port for AI: one connection that works for everything, whether you’re plugging into a CMS, an API, or a cloud service. The result? AI assistants that are faster to build, easier to maintain, and able to do more in the real world.Real-World Use CasesSo what does MCP actually look like in action? Here are a few places where it can make an immediate impact:E-commerce that responds in real time: An AI shopping assistant can pull live product data from your inventory, check shipping status, and even trigger a reorder all by calling MCP capabilities you’ve exposed.Developer tools that work across systems:A VS Code agent could refactor your code, query API documentation, check deployment logs, and open a support ticket without you building a separate connector for each action.AI helpdesk that actually solves problems: A support bot could securely access customer history, issue refunds, and schedule callbacks, all by discovering and using MCP tools without manual setup.In each of these scenarios, MCP makes the connection once and lets it be reused anywhere. Once you’ve set up a capability, any MCP-aware client can find it, understand it, and use it. That’s why more developers are starting to see MCP not as another integration layer, but as a foundation for AI-ready applications.Putting MCP into PracticeUnderstanding the principles behind the Model Context Protocol is one thing. Turning those ideas into a functioning client–server setup is another. This is where the real value of MCP comes alive.If you’re ready to go beyond reading about MCP and actually build something you can use, join our focused 2.5-hour workshop on August 30th with Christoffer Noring (Sr. Cloud Advocate, Microsoft).As a bonus, you can grab your spot at 35% off with the code LIMITED35. But act fast, this special deal disappears on Monday, 18th August.Save your spot at 35% OFFIn one session, you’ll:Understand the “why” behind MCP: Learn how separating tools from LLMs makes AI systems more scalable, maintainable, and adaptableMaster the core architecture:See exactly how MCP clients and servers discover and communicate with each otherBuild and deploy your first MCP server:Code along in Python, guided by Christoffer, and test it with a working MCP clientConnect MCP to real-world systems:Securely expose and consume capabilities from APIs, databases, or cloud servicesYour Workshop Package Includes:Free eBook: Model Context Protocol for Beginners (worth $35.99) — full of real-world examples and tips.Exclusive AMAs: Small-group Q&A with Christoffer to troubleshoot and go deeperCertificate of Completion to showcase your new skillsAfter this workshop, you’ll be able to:Decide if MCP is right for your AI projectsBuild both MCP servers and clients from scratchCreate LLM-powered clients that instantly discover and use MCP capabilities📅 Date: August 30th📍 Location: Live Online⏱ Duration: 2.5 hoursWhy This Session Appeals to Developers and EngineersThis is for anyone building AI-powered tools or agentic apps:Developers who want to integrate agents, tools, or LLMs without reinventing server designSoftware architects rethinking interoperability, modularity, and contextAI engineers building structured, scalable, and secure infrastructure for agentsProduct managers working on AI initiatives and looking for a scalable reference architectureA basic understanding of software development and AI concepts is recommended.Ready to Get Started?👉 Reserve your seat in the MCP Workshop (Second Cohort)👉 Buy the book: Model Context Protocol for BeginnersYou’ll walk away with a better understanding of how to structure your systems, interact with tools programmatically, and deploy AI-native applications with confidence.👋 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
20 Aug 2025
9 min read
Save for later

MobilePro #185: Swift Made Simple—Functional Programming Demystified

Runcil Rebello
20 Aug 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 #185: Swift Made Simple—Functional Programming DemystifiedHi ,Welcome to the 185th edition of MobilePro!This week we’re leaning into a topic that quietly supercharges Swift codebases: Functional Programming (FP). If you’ve ever wrestled with tricky state, mysterious side effects, or concurrency gremlins, FP gives you a set of habits that tame complexity without sacrificing performance or readability.Our feature article, adapted from Mastering Swift 6 by Jon Hoffman, cuts past theory and zeroes in on four core principles you can apply today:Immutability: Why working with data that never changes leads to safer, more reliable appsPure functions: How to make your code predictable, testable, and free of hidden side effectsFirst-class functions: Treating functions as values that can be passed, stored, and reusedHigher-order functions: Building flexible abstractions by passing functions into other functionsYou’ll see how each concept maps naturally onto common iOS patterns (networking pipelines, view model transformations, and collection handling), and how small shifts, like returning new values instead of mutating in place, lead to predictable behavior, safer concurrency, and easier testing.Before we jump in, let's take a quick look at last week's highlights:🤖 Sam Altman Touted GPT-5 as Revolutionary—But Users Say It’s Slower, Duller, and Buggy🍎 iOS 26 and iPadOS 26 public beta 2 is now out🔋 Supercharge Your Dart & Flutter Development Experience with the Dart and Flutter MCP Server🚀 Release of React Native 0.81 - Android 16 support, faster iOS builds, and moreTake the Survey!Staying sharp in .NET takes more than just keeping up with release notes. You need practical tips, battle-tested patterns, and scalable solutions from experts who’ve been there. That’s exactly what you’ll find in .NETPro, Packt’s new newsletter, with a free eBook waiting for you as a welcome bonus when you sign up.Join .NETPro — It’s FreeKnow The AuthorJon Hoffman has over 30 years of experience in the information technology field. Over the years, he has worked in system administration, network administration and security, application development, and architecture. He currently serves as an Enterprise Software Manager for Syntech Systems.Outside of his professional life, Jon has a wide range of personal interests that keep him both physically and mentally engaged. He enjoys spending quality time with his two children and his fiancée. He also stays active through running, hiking, paddleboarding, yoga, and working out. In addition, Jon has a deep passion for reading and continues to nurture his love for coding.⚙️ Core principles of functional programming in SwiftFunctional programming is a programming paradigm that views programs as collections of mathematical functions and avoids changing data or states. While Swift is primarily a protocol-oriented language, it offers support for functional programming concepts.Functional programming is based on several fundamental principles, and in this article, we will explore five of the most important principles, starting with immutability.ImmutabilityImmutability is a key concept of functional programming that helps make code more reliable and easier to understand. Basically, immutabilitymeans that once we create a piece of data, we can't or don’t change it. Instead of modifying the original data, we create a new version of the data with the changes.This is different from other programming paradigms where data can be changed or modified frequently, which can lead to unexpected errors and harder-to-track bugs. By preventing data from changing, we ensure that our code behaves in a predictable way, making it easier to track down bugs and other issues with our code.Immutability also makes it safer to run parts of our program in a concurrent environment, because we don't have to worry about one part of our application changing data that another part is using. Overall, embracing immutability in functional programming leads to cleaner, more robust, and maintainablecode.ExampleLet’s look at a code example to illustratethe concept of immutability with Swift:let numbers = [1, 2, 3, 4, 5]let doubled = numbers.map { $0 * 2 }In this example, we begin by defining a constant that holds an array of numbers. Using constants instead of variables is critical for maintaining immutability because, once defined, a constant cannot be changed. When we want to double each number in the array, rather than updating the original array, a new constant is created that contains the new values.Pure functionsPure functions are a fundamentalconcept in functional programming, and they play a critical role in writing reliable and maintainable code. A pure functionis one that, given the same input, always produces the same output and has no additional side effects. This means that pure functions do not modify any external state or depend on an external state, ensuring that their behavior is predictable and consistent.The use of pure functions brings several advantages to functional programming. They make code easier to understand because each function operates independently of external factors. Pure functions also simplify testing and debugging since they can be tested in isolation without considering the broader application state. Furthermore, they enable safer concurrent execution, since the lack of side effects eliminates the risk of one part of the application interfering with another.ExampleLet’s look at a basic example of a pure function:func add(_ first: Int, _ second: Int) -> Int { first + second}let total = add(2,4)In this example, we define a function that takes two arguments and returns the sum of the values. The function operates solely on its input parameters, adding the two values together and returning the result without altering or relying on any external state. This makes the function a pure function, as it produces the same output given the same inputs and has no side effects.First-class functionsFirst-class functions are another key concept in functional programming. They enable us to treat functions as first-class citizens, which means they can be assigned to variables, passed as arguments to other functions, and returned from other functions, just like other data types.First-class functions enable support of keyfunctional programming techniques such as currying and function composition. These techniques help us create a more modular and maintainable code base by breaking down complex operations into simpler, reusable components.ExampleLet’s look at a basic example of how a first-class function works. In this example, we will begin by creating the following two functions:func add(_ first: UInt, _ second: UInt) -> UInt { first + second}func subtract(_ first: UInt, _ second: UInt) -> UInt { first - second} first + second}let total = add(2,4)The first function, add(), will add two numbers together and return the results, while the second function, subtract(), will subtract the second number from the first and return the result. What is key to realize about these two functions is that they have the same function signature where they each accept two unsigned integers and return an unsigned integer ((UInt, UInt) -> UInt).One of the concepts of first-class functions is the ability to assign them to variables or constants. The following example shows how we could do this:let mathFunction = addlet result = mathFunction(8, 4)In this example, we create aconstant named mathFunction and assign the add() function to it. We then use the mathFunction constant to add two numbers together. Alternatively, we could have assigned the subtract() function to the mathFunction constant to subtract the numbers. If mathFunction were a variable instead of a constant, we could change which function is assigned to it at any time.Higher-order functionsHigher-order functions are another key concept in functional programming and significantly improve the flexibility andreusability of our code. A higher-order function is one that can take other functions as arguments, return functions as the result, or both. This enables us to write more abstract and modular code by creating functions that operate on other functions.In functional programming, higher-order functions enable powerful techniques such as function composition, where complex operations are built by combining simpler functions.ExampleAs an example, we will use the same add() or subtract() function that we created in the First-class functions section and create a function that accepts either of these two functions as an argument:func performMathOperation(_ first: UInt, _ second: UInt, function: (UInt, UInt) -> UInt) -> UInt { function(first, second)}In this example, notice that the third argument of the performMathOperation() function, named function, accepts a function with the same functional signature as the add() and subtract() functions, which is (UInt, UInt) -> UInt. Then, within this function, we call the function that was passed in, returning the result. We could then use the performMathOperation() function like this:let result = performMathOperation(8, 4, function: subtract)In this example, we call the performMathOperation() function, passing in the subtract() function as the third argument. After this code is run, the result constant will have a value of 4. (If we had passed in the add() function, the value of the result constant would have been 12.)Swift includes several higher-order functions that are commonly used. Some examples of these are the map(_:), filter(_:), reduce(::), and forEach(_:) functions.ConclusionBy embracing immutability, pure functions, first-class functions, and higher-order functions, Swift developers can unlock the strengths of functional programming. These principles not only lead to more reliable and bug-resistant code but also foster cleaner design and easier scalability.Functional programming may require a shift in mindset, but the payoff in clarity, safety, and maintainability makes it well worth the effort.If you want to dive deeper into the latest Swift 6.2 and build powerful, maintainable apps, then Jon Hoffman's Mastering Swift 6 is the book for you!🚀 Perfect your application development capabilities using the latest features of Swift 6.2🧵 Learn advanced techniques like concurrency, memory management, Generics, and Swift Testing✨ Apply best practices in Swift to write clean, scalable, and maintainable codeMastering Swift 6Buy 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
13 Aug 2025
9 min read
Save for later

MobilePro #184: GPT-5 release and backlash, iOS 26 Public Beta tweaks, Apple Intelligence upgrade, Epic vs. Google update, and more…

Runcil Rebello
13 Aug 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 #184: GPT-5 release and backlash, iOS 26 Public Beta tweaks, Apple Intelligence upgrade, Epic vs. Google update, and more…Hi ,Welcome to the 184th edition of MobilePro!GPT-5 rolled out a few days ago amidst much fanfare from OpenAI, who claimed it was their smartest model yet. Unfortunately for those at OpenAI, GPT-5 users have vociferously disagreed. We’ve been looking at the reactions coming in since the launch and many users have found it slower and full of glitches. That’s not all though. It seems that GPT-5’s answers are now shorter and more curt, with the creativity stripped back as well. All the warmth from GPT-4o has given way to a colder model that has left many users flustered, with some complaining that it’s affected their productivity too.With everyone using these models day in and day out, it’s understandable that users might get accustomed to the feel and tone of the ones they speak to. Such drastic changes can affect their relationship with the technology. Have you faced such an issue with your usage of GPT-5 as well? How are you navigating these differences? We’ve also noticed some users mention that they’re willing to switch to Claude Opus 4.1, which released just a couple days before GPT-5. Many are cancelling their subscriptions to OpenAI's service, something we're sure Sam Altman wouldn't have seen coming. While, personally, we haven’t taken that step yet, we’re interested in finding out if any of you have done so. If yes, reply to this newsletter and let us know.That’s not all that has happened in the past few days of course. Let’s have a look at the choicest news bits from the world of mobile.✨ iOS 26 Public Beta 2 polishes Liquid Glass UI: Adds Camera Classic Mode, Mail’s Select button, and predictive Siri ahead of launch.🤖 Apple Intelligence to get GPT-5 this fall: Boosts Siri, Writing Tools, and Visual Intelligence with smarter AI, despite GPT-5 starting off on the wrong foot.⚖️ Google wins brief stay in Epic Play Store case: Delays mandated changes like third-party store support.🛠️ Dart and Flutter Model Context Protocol Server links AI to dev tools: Lets AI run IDE tasks via natural language prompts.🔤 Jetpack Compose’s BasicText adds auto-sizing: Dynamically adjusts font size to fit layouts.🔄 React Native 0.81 lands with Android 16 support and blazing-fast iOS builds: Adds edge-to-edge Android 16 compatibility and experimental precompiled iOS builds that cut compile times by up to 10xStick around for this week’sDeveloper Tip for advice from three Google engineers on making an app look beautiful across devicesandtheDid You Know? section to learn about AOL ending its dial-up internet service after 34 years.Let’s dive in!Staying sharp in .NET takes more than just keeping up with release notes. You need practical tips, battle-tested patterns, and scalable solutions from experts who’ve been there. That’s exactly what you’ll find in .NETPro, Packt’s new newsletter.Join .NETPro — It’s Free📱 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.AppleiOS 26 Public Beta 2 refines Liquid Glass UI with usability tweaks and polished features: The second public beta of iOS 26 rolls out ahead of the anticipated September launch, bringing subtle but impactful refinements to Apple’s new Liquid Glass design, like a “Classic Mode” toggle in Camera, a prominent Select button in Mail, and a redesigned AirDrop icon. Other updates include refined UI animations (such as jiggling passcode bubbles), improved Wi-Fi visibility in Control Center, predictive Siri for travel, and an expanded dock visual.Apple Intelligence to upgrade ChatGPT integration with GPT-5 in iOS 26 this fall: The newly released GPT-5 may have seen some teething issues but that won't stop Apple, who will begin leveraging OpenAI’s GPT-5 model within its Apple Intelligence suite, empowering Siri, Writing Tools, and Visual Intelligence with deeper reasoning, better voice interaction, and improved coding capabilities. This upgrade, arriving alongside iOS 26, iPadOS 26, and macOS Tahoe in early fall, aims to deliver a smarter, more responsive AI experience systemwide.Japan mandates open browser engines on iPhone by December 2025: Japan’s newly enacted Mobile Software Competition Act (MSCA) prohibits Apple from blocking or undermining third-party browser engines (like Blink or Gecko) on iOS. The guidelines explicitly ban not only outright restrictions but also "unreasonable technical or financial barriers" and require fully functional parity in API access, with enforcement starting December 2025.AndroidGoogle secures short stay amid Epic’s Play Store antitrust win, but ecosystem shake-up looms: After the Ninth Circuit upheld Epic’s win over Google’s Play Store monopoly, the court mandated sweeping changes, like support for third-party app stores, alternative billing systems, and the end of exclusive preinstall deals. Google has now filed and secured a brief emergency stay, pushing back the two-week compliance deadline and buying time as it appeals to higher courts.OthersReact Native 0.81 adds Android 16 support and speeds up iOS build: This release introduces full Android 16 compatibility with edge-to-edge layouts, deprecates SafeAreaView, and adds community-maintained JavaScriptCore support. It also debuts experimental precompiled iOS builds that can cut compile times by up to 10x, offering a major productivity boost for developers.Firebase brings KTX into main modules; time to drop legacy -ktx dependencies: In July 2025, Firebase stopped releasing separate KTX modules and removed them from the Android BoM starting with v34.0.0. Now, all Kotlin-friendly APIs previously found in *-ktx packages are available directly in the main Firebase modules, simplifying Gradle dependencies and streamlining support for Kotlin developers.Firebase JS SDK v12.1.0 boosts AI Logic with hybrid inference for browsers: Firebase’s JavaScript SDK version 12.1.0, released on August 7, 2025, introduces hybrid inference support in the AI Logic module, allowing inference tasks to run in browsers using the new Prompt API. It also includes fixes to Performance Monitoring, improving reliability and developer experience.JetBrains plots Kotlin's next moves: Swift export, multiplatform polish & K2 enhancements: The Kotlin roadmap outlines core ambitions: evolving the language with more efficient data handling and abstractions, strengthening Kotlin Multiplatform by delivering direct Kotlin-to-Swift export and smoother library workflows, and enhancing tooling, particularly K2 compiler promotion, Kotlin/Wasm improvements, IDE plugin performance, and rich ecosystem support. JetBrains plans to refresh this roadmap every six months, with the next update due August 2025.Google engineers suggest a simple three-step process for making apps shine on devices from phones to large screens. First, Abstract your UI widgets and centralize their data. Next, Measure screen dimensions with tools like MediaQuery or LayoutBuilder. Finally, Branch your layouts using size-based breakpoints, choosing the UI version based on window dimensions, not device type.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.Dart and Flutter MCP Server bridges AI agents and IDEs for smarter dev workflows: The Dart and Flutter MCP Server brings the Model Context Protocol (MCP) to your development setup, enabling AI assistants to access powerful context-aware tools, like project diagnostics, code fixes, hot reloads, and package searches, directly within environments such as Gemini CLI, Cursor, and GitHub Copilot. It transforms reactive workflows into proactive, intelligent collaboration by letting AI agents perform development tasks through natural language prompts.Jetpack Compose embraces dynamic UIs with auto-sizing using BasicText: The article explores how BasicText offers robust auto-sizing in Jetpack Compose, allowing text to adapt its font size based on layout constraints—unlike the fixed-size Text composable. It showcases practical usage with parameters like autoSize, maxLines, and layout examples, and reminds developers to use Compose BOM version 2025.04.01 or higher for compatibility.Enterprise teams face growing pains adopting vibe coding at scale: While vibe coding, i.e., AI-driven code generation from natural language, drives prototyping and innovation, enterprises are grappling with five major hurdles: inconsistent architectural quality, technical debt, security and compliance risks, scaling limitations, and the lack of standardized governance.📚️ Latest in Mobile Development from PacktMobilePro presents the latest titles from Packt that ought to be useful for mobile developers.A perfect book for developers who have a fundamental grasp of the Swift language and who aspire to take their development skills to the next level by learning some of the advanced topics and techniques of the Swift Language.🧠Master the latest Swift 6.2 features to enhance your application development🤖Learn advanced techniques like concurrency, memory management, Generics, and Swift Testing💡 Apply best practices in Swift to write clean, scalable, and maintainable codeMastering Swift 6Pre-order now at $49.99!On September 30, 2025, AOL will officially discontinue its iconic dial-up internet service, along with the AOL Dialer and Shield browser, bringing an end to a connection type that introduced millions to the web. Though once ubiquitous, dial-up has long since been eclipsed by broadband, with only a small fraction of U.S. households still relying on it by 2023.Sourced from MacRumors.👋 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
06 Aug 2025
10 min read
Save for later

MobilePro #183: Launch Your App on a Real iOS Device Like a Pro

Runcil Rebello
06 Aug 2025
10 min read
Mobile development blogs, tutorials and resources inside!Latest Mobile Dev Insights: iOS, Android, Cross-PlatformAdvertise with Us|Sign Up to the NewsletterMobilePro #183: Learn the tricks of designing for inclusivity and accessibilityHi ,Welcome to the 183rd edition of MobilePro!This week we bring you a blog on designing mobile interfaces while being inclusive and accessible.Designing mobile interfaces that are accessible and user-friendly, keeping in mind individuals with motor impairments, is as important as ever. This post, taken from Dale Cruse, Denis Boudreau, et al’s Inclusive Design for Accessibility (out August 7, 2025), emphasizes the importance of optimizing touch targets through adequate sizing, spacing, and the use of patterns like cards, two-dimensional scrolling, and floating action buttons. Each design pattern is evaluated not only for its usability but also for its compliance with accessibility guidelines such as Web Content Accessibility Guidelines (WCAG), with practical tips to balance functionality, clarity, and inclusivity.You will learn the following from this article:How to design accessible touch targetsThe benefits of the card pattern for organizing contentWhen and how to use two-dimensional scrolling and carousels effectivelyBest practices for implementing floating action buttonsTake the Survey!Live Virtual Workshop: Securing Vibe CodingJoin Snyk's Staff Developer Advocate Sonya Moisset on August 28th at 11:00AM ET covering:✓ How Vibe Coding is reshaping development and the risks that come with it✓ How Snyk secures your AI-powered SDLC from code to deployment✓ Strategies to secure AI-generated code at scaleEarn 1 CPE Credit!Register today!🛠️ Optimizing touch targets for various abilitiesMobile devices present unique accessibility challenges because users often interact with them while on the move, using their fingers to tap, swipe, and pinch. This can be particularly difficult during two plausible and common situations:Controls are too small: If a control is smaller than the fingertip, users may struggle to tap it accurately, especially when moving or holding the device with one hand.Controls are crowded together: When multiple controls are placed close to each other, it can be hard to determine which control is being activated, leading to errors and frustration.These challenges can be even more pronounced for users with mobility issues, such as those with limited dexterity, tremors, or other motor impairments. Designing controls with adequate size, spacing, and touch responsiveness is essential to create a more inclusive mobile experience.So, how do we account for touch target size without letting interactive controls dominate the user interface? Luckily for us, WCAG 2.5.8 Target Size (Minimum), while not limited to mobile, addresses this issue across all touch interfaces – including tablets, laptops, and assistive technologies used by people with limited dexterity – by recommending a minimum target size for interactive controls. The current recommendations are a minimum size of 24 x 24 CSS pixels for AA conformance with a recommended AAA threshold of 44 x 44 CSS pixels. To aid us with this, let us look at some helpful concepts.The card patternThe card pattern is a design approach that organizes information into distinct, interactive containers or cards. These cards are typically large enough to be easily tapped or clicked, making them particularly accessible for mobile users, including those with motor impairments or limited dexterity.By grouping related content and interactive elements within clearly defined cards, you can enhance usability and accessibility. These are especially effective when presenting lists of items, such as products, articles, or app listings. They allow for generous tap targets and visual separation between different pieces of content, reducing the risk of accidental interactions.For practical examples of the card pattern, visit the Google Play Store or Apple App Store. Notice how apps, games, and other content are presented as distinct cards, each occupying enough space to be easily tapped. This design ensures clarity, consistency, and accessibility.‼️ Be careful though ‼️However, it’s important not to overload cards with too much information or nest multiple interactive elements in conflicting ways. For example, assigning an entire card to navigate to a user’s profile, while also placing a tappable email address or button inside it, can lead to confusion or unintentional interactions. To ensure a clear and accessible experience, keep each card focused, avoid overlapping interactive zones, and prioritize a single, predictable action per card when possible.So, the card pattern is one effective way to combine information and interactivity in a space-efficient layout. It brings key content to the forefront while maximizing the touchable area for interaction. While cards are especially well-suited for mobile, they’re not the only way to group related elements. What matters most is ensuring clarity, focus, and generous touch targets, regardless of the visual pattern you use.Two-dimensional scrollingTwo-dimensional scrolling is a design technique where users can navigate content both horizontally and vertically within the same interface. This pattern is commonly used on mobile devices to allow for efficient browsing of large amounts of content without overwhelming the user. For example, users can scroll vertically through a feed or a list and horizontally through categories or image galleries.The infamous carousel pattern – a form of horizontal scrolling often implemented as a series of swipeable cards or images – is frequently criticized in web design for several reasons:Poor accessibility: Carousels often rely on animations or gestures that may be difficult for users with motor impairments or those who navigate using keyboards or screen readers.Content visibility: Important content can be hidden off-screen, making it less discoverable. Many users never interact with carousel controls, leading to missed information.Overuse and misuse: Carousels are often employed for aesthetic purposes without considering usability or accessibility, resulting in a poor user experience.However, on mobile devices, two-dimensional scrolling and carousels are essential. They allow users to quickly navigate large datasets or categories, particularly in applications like Netflix or online stores where content is organized into horizontal rows of cards. Without carousels, finding a specific movie or product would require endless vertical scrolling.Two-dimensional scrolling also pairs well with the card pattern, enabling designers to maximize touchable areas for controls while presenting content in a visually organized and accessible way. However, it’s important to ensure that horizontal scrolling is used only for discrete content groups – not for reading or core navigation – to meet WCAG 2.1 Success Criterion 1.4.10 Reflow, which requires that content can be presented without loss of information or functionality when resized or zoomed.‼️ Be careful though ‼️While two-dimensional scrolling can enhance navigation and efficiency, it’s not always the right choice. It can introduce cognitive overload if too many scrollable sections compete for attention or if users lose track of their position. Designers should avoid nesting multiple scrollable areas and ensure that horizontal scrolling is clearly indicated and easy to perform. When overused or poorly implemented, this pattern can hinder discoverability and frustrate users, especially those relying on screen readers or Switch Access. Use it thoughtfully, and always test it with real users.Floating action buttonsOne challenge with mobile accessibility is balancing large touch targets with the limited screen space available for displaying content. To maximize usable space, developers often use fixed-location floating action buttons – interactive controls that appear to hover above other UI elements. This technique allows the content beneath to scroll independently, providing a larger, more accessible touch target without sacrificing information visibility.In web design, floating action buttons are often criticized for poor discoverability and confusing focus order. When users navigate with keyboards or assistive technologies, it can be difficult to determine where floating action buttons fit within the sequence of interactive elements. This can compromise conformance with WCAG 2.4.3 Focus Order and 1.3.2 Meaningful Sequence, both of which require a logical and predictable navigation path. Additionally, floating action buttons may obscure important content, leading to usability and accessibility issues, especially for users relying on screen readers or Switch Access.However, in mobile design, floating action buttons are widely accepted and effective for several reasons:Platform standards: Both iOS and Android provide established patterns for implementing floating action buttons. These guidelines include recommendations for size, placement, interaction, and accessibility. Following platform conventions ensures consistent user experiences.Simplicity of layout: Mobile interfaces typically contain fewer interactive elements than web pages, reducing the likelihood of confusion in focus order. Additionally, developers can leverage built-in platform tools such as Android’s ViewGroup attributes (android:nextFocusForward, etc.) and iOS’s UIAccessibilityContainer protocol to manage and customize focus order in an accessible way.User expectation: Many users have come to expect floating action buttons in mobile apps for primary actions – like composing a message or adding a new item – because of their widespread use. However, this familiar pattern may not be equally intuitive or accessible to everyone, particularly users who rely on screen readers, Switch Access, or keyboard navigation. When considering affordance, it’s important to ask: who benefits from this pattern, and who might be excluded by it? Designing with intention means ensuring that commonly used patterns also support users with diverse abilities.‼️ Be careful though ‼️When implementing floating action buttons, consider these best practices:Placement: Floating action buttons are generally placed in the bottom-right corner (Android) or centered at the bottom (iOS) to remain accessible while not obstructing critical content. This consistent placement also benefits non-sighted users by allowing assistive technologies – like screen readers or Switch Access – to reliably locate and describe the button’s function, reducing guesswork and supporting efficient navigation.Accessibility considerations: Ensure floating action buttons are labeled appropriately for screen readers and integrated into the focus order. Typically, this means placing them near the end of the navigation sequence – after the main content – so they don’t interrupt the user’s reading or task flow. Avoid dynamically repositioning their focus unless context demands it (such as in a modal or step-based workflow). iOS and Android both provide accessibility APIs to help developers manage this in a predictable, user-friendly way.Consistent usage: Use floating action buttons only for high-priority actions, and avoid cluttering the interface with too many floating controls.Accessibility is, of course, the need of the hour, and these three methods described above, the card pattern, two-dimensional scrolling, and floating action buttons, are just some of the ways in which we can ensure functional and inclusive design when it comes to accessibility.In just a couple of days, you will be able to read all this and more in the book Inclusive Design for Accessibility, written by 12 leaders from the field of accessibility—Dale Cruse, Denis Boudreau, Dr. Angela Young, Maya Sellon, Julianna Rowsell, Nandita Gupta, Jennifer Chadwick, Crystal Scott, Chris McMeeking, Dr. Keith Newton, Charlie Triplett, and Kai Wong.Hope you enjoyed reading this. You can pre-order your copy now.🧠 Understand inclusive design principles to create digital experiences accessible to all users🔍 Explore cutting-edge AI and emerging tech applications in accessibility and inclusive design🧩 Learn practical strategies for building an inclusive design culture within organizationsInclusive Design for AccessibilityPreorder now at $30.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
Modal Close icon
Modal Close icon