MobilePro #157: SOLID Principles in TypeScript Framework, KMP for Mobile Development, Mobile Website vs App, Android Virtualization Framework, Drawing Graphics on Apple Vision.
Welcome to the mobile app development world with the 155th edition of _mobilepro!
In this edition we cover mobile development community discussions on:
Applying SOLID Principles in JavaScript and TypeScript Framework
Flutter vs. React Native: Selecting the Right Framework for Your Project
Top AI Tools to Use in 2024 for Developers, Creators, and Innovators
In our relatively new section captures internet jibber-jabber about the mobile ecosystem:
Android 16 will include a Terminal and full Linux VM support with GPU acceleration
FIDO Alliance Working on Making Passkeys Portable Across Platforms
Drawing Graphics on Apple Vision with the Metal Rendering API
Large language models reduce public knowledge sharing on online Q&A platforms
Every week we recommend mobile app development resources, and this week we feature:
2. Mastering Kotlin for Android 14
3.Thriving in Android Development Using Kotlin
Today's news covers release stories on Apple, Android, and JetBrains. 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 and win a free PDF on your Packt account.
Take the Survey Now!
Thanks,
Apurva Kadam
Editor-in-Chief, Packt
Mobile App Dev Community Speak
What are Mobile developers discussing? What are the latest tips and tricks? Shortcuts and experiments? Cool tutorials? Releases and updates? Find it all out here.
Applying SOLID Principles in JavaScript and TypeScript Framework - The SOLID principles form the foundation of clean, scalable, and maintainable software development. Though these principles originated in Object-Oriented Programming (OOP), they can be effectively applied in JavaScript (JS) and TypeScript (TS) frameworks like React and Angular. This article explains each principle with real-life examples in both JS and TS.
10 Reasons to Choose KMP for Mobile Development - When it comes to mobile app development, efficiency and cost-effectiveness are key considerations for startups and businesses alike. Kotlin Multiplatform (KMP) offers a powerful solution to these challenges by allowing developers to share code across Android, iOS, and other platforms without compromising on performance or user experience. In this post, we will explore ten compelling reasons why KMP stands out as the go-to choice for modern mobile development projects.
Mobile Website vs App: Key Differences - Organizations often struggle to decide whether to create a mobile app for users to download or a mobile website. A mobile website is accessed through web browsers, while mobile apps are downloaded from app stores. Both serve the same purpose but provide distinct user experiences. Choosing the best option between a website and an app depends on your target audience, available budget, intended purpose, and required features. Understanding the mobile website vs app difference is crucial for making informed decisions to better engage, connect, and serve users. This article highlights the differences.
Flutter vs. React Native: Selecting the Right Framework for Your Project - In today's digital landscape, choosing the right framework for mobile app development is crucial. Flutter and React Native are two upfront framework options for building cross-platform and hybrid applications. Both offer different useful tools and have unique strengths. But which one is the best fit for your project? Let's examine their features, similarities, and differences and see how they align with today's development needs! Before starting let’s have a look at the definition of React Native and Flutter.
Top AI Tools to Use in 2024 for Developers, Creators, and Innovators - AI technology has revolutionized how we approach creativity, development, and productivity. In 2024, the landscape is evolving even faster, offering cutting-edge tools that can supercharge your workflows, content creation, and technical development. In this blog post, we’re going to explore some of the most exciting AI tools for developers, creators, and anyone looking to leverage the power of artificial intelligence to be more effective, creative, and efficient. Here’s a roundup of the top AI tools to watch for in 2024.
Mobile App Dev Repos
Check this space for new repos, projects and tools each week! This week we bring you a collection of iOS tools for media processing:
SwiftOCR - Fast and simple OCR library written in Swift.
QR Code Scanner - QR Code implementation.
QRCode - A QRCode generator written in Swift.
EFQRCode - A better way to operate two-dimensional code in Swift.
NSFWDetector - A NSFW (aka porn) detector with CoreML.
Trending Titles
Our weekly recommendations of the best resources in Mobile App Development!
Buy eBook now at $35.99 $24.99
Mastering Kotlin for Android 14
Buy eBook now at $31.99 $21.99
Thriving in Android Development Using Kotlin
Buy eBook now at $35.99 $24.99
Internet Jibber-Jabber
Random curious musings and interesting words about Mobile Dev on the Internet.
Android 16 will include a Terminal and full Linux VM support with GPU acceleration - Google is looking to offer a native Terminal app for Android, possibly with Android 16. The Terminal app will allow installation of a Linux VM with full GUI and GPU acceleration along with other sysadmin features including disk resizing, port forwarding, and partition recovery. This is an extension of Google's earlier project of allowing Chrome OS to run on Android using the Android Virtualization Framework.
Understanding the Android Virtualization Framework (AVF) - As the complexity of mobile applications and the sensitivity of the data they handle increase, so does the need for robust security solutions. Enter the Android Virtualization Framework (AVF), a groundbreaking innovation designed to enhance security, efficiency, and flexibility in Android devices. In this blog post, we’ll explore AVF and how its key components work together to create a more secure mobile ecosystem.
FIDO Alliance Working on Making Passkeys Portable Across Platforms - The FIDO Alliance is developing new specifications to enable secure transfer of passkeys between different password managers and platforms. Announced on Monday, the initiative is the result of collaboration among members of the FIDO Alliance's Credential Provider Special Interest Group, including Apple, Google, Microsoft, 1Password, Bitwarden, Dashlane, and others
Drawing Graphics on Apple Vision with the Metal Rendering API - When it comes to rendering, most opt for established game engines like Unity or Apple's high-level APIs like RealityKit. However, there's another option that's been available since the beginning: building your own rendering engine using the Metal API. Though challenging, this approach offers full control over the rendering pipeline, down to each byte and command submitted to the GPU on each frame. This blog covers helps you do just that!
Large language models reduce public knowledge sharing on online Q&A platforms - Large language models (LLMs) are a potential substitute for human-generated data and knowledge resources. This substitution, however, can present a significant problem for the training data needed to develop future models if it leads to a reduction of human-generated content. In this work, we document a reduction in activity on Stack Overflow coinciding with the release of ChatGPT, a popular LLM.
Mobile App Development Tutorial
An excerpt from ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ By Mark J. Price
Lazy loading was introduced in EF Core 2.1, and it can automatically load missing related data. To enable lazy loading, developers must: Reference a NuGet package for proxies and Configure lazy loading to use a proxy.
Let’s see this in action:
In the WorkingWithEFCore
project, add a package reference for EF Core proxies, as shown in the following markup:
<PackageReference Version="8.0.0"
Include="Microsoft.EntityFrameworkCore.Proxies" />
Build the WorkingWithEFCore
project to restore packages.
In NorthwindDb.cs
, at the bottom of the OnConfiguring
method, call an extension method to use lazy loading proxies, as shown in the following code:
optionsBuilder.UseLazyLoadingProxies();
Now, every time the loop enumerates and an attempt is made to read the Products
property, the lazy loading proxy will check if they are loaded. If they’re not loaded, it will load them for us “lazily” by executing a SELECT
statement to load just that set of products for the current category, and then the correct count will be returned to the output.
Run the code and note that the product counts are now correct. But you will see that the problem with lazy loading is that multiple round trips to the database server are required to eventually fetch all the data. For example, getting all the categories and then getting the products for the first category, Beverages
, requires the execution of two SQL commands, as shown in the following partial output:
dbug: 05/03/2022 13:41:40.221 RelationalEventId.CommandExecuting[20100] (Microsoft.EntityFrameworkCore.Database.Command)
Executing DbCommand [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT "c"."CategoryId", "c"."CategoryName", "c"."Description"
FROM "Categories" AS "c"
dbug: 05/03/2022 13:41:40.331 RelationalEventId.CommandExecuting[20100] (Microsoft.EntityFrameworkCore.Database.Command)
Executing DbCommand [Parameters=[@__p_0='1'], CommandType='Text', CommandTimeout='30']
SELECT "p"."ProductId", "p"."CategoryId", "p"."UnitPrice", "p"."Discontinued", "p"."ProductName", "p"."UnitsInStock"
FROM "Products" AS "p"
WHERE NOT ("p"."Discontinued") AND "p"."CategoryId" = @__p_0
Beverages has 11 products. ...
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!
Apple
Apple Unveils New iPad Mini With A17 Pro Chip and Apple Intelligence - Apple announced a significant upgrade to the iPad mini, now featuring an A17 Pro chip and support for the company's new Apple Intelligence system. The refreshed seventh-generation tablet maintains its compact 8.3-inch design while offering notable performance improvements and new capabilities.
Apple debuts the first scripted film captured in Apple Immersive Video and reveals new immersive films for Apple Vision Pro - New episodes, films, series, and concerts captured in Apple Immersive Video are set to debut later this year, with more coming early next year. Apple revealed new episodes, films, series, and music performances captured in Apple Immersive Video that will debut on Apple Vision Pro for free. Apple Immersive Video is a remarkable media format that leverages ultra-high-resolution 3D video and Spatial Audio to put viewers in the center of the action.
Android
Creating a responsive dashboard layout for JetLagged with Jetpack Compose - We’ve heard the news, creating adaptive layouts in Jetpack Compose is easier than ever. As a declarative UI toolkit, Jetpack Compose is well suited for designing and implementing layouts that adjust themselves to render content differently across a variety of sizes. By using logic coupled with Window Size Classes, Flow layouts, movableContentOf and LookaheadScope, we can ensure fluid responsive layouts in Jetpack Compose. Following the release of the JetLagged sample at Google I/O 2023, we decided to add more examples to it. Specifically, we wanted to demonstrate how Compose can be used to create a beautiful dashboard-like layout. This article shows how we’ve achieved this.
Adaptive Android Apps - With Android powering a diverse range of devices, users expect a seamless and optimized experience across their foldables, tablets, ChromeOS, and even cars. To meet these expectations, developers need to build their apps with multiple screen sizes and form factors in mind. Changing how you approach UI can drastically improve users' experiences across foldables, tablets, and more, while preventing tech debt that a portrait-only mindset can create – simply put, building adaptive is a great way to help future-proof your app. The latest in our Spotlight Week series will focus on Building Adaptive Android apps all this week (October 14-18), and we’ll highlight the many ways you can improve your mobile app to adapt to all of these different environments.
A new era of texting has begun - Now that Apple is starting to #GetTheMessage with its adoption of RCS, texting between Android and Apple devices is getting a whole lot better. With RCS, you can text the people you care about with ease and enjoy features like high-res photo and video sharing, typing indicators, and read receipts, regardless of whether they're using iMessage or Google Messages.
Wear Compose 1.4.0 adds default rotary input support for ScalingLazyColumn and Picker, introduces a new Modifier.rotaryScrollable for connecting rotary events, and includes entry animation for SwipeDismissableNavHost and default PositionIndicator display.
Health Connect 1.0.0-alpha01 release enables read and write access to user health and fitness data, with testing support through the jetpack library.
Compose UI 1.7.0 introduces significant enhancements like shared element transitions for smoother animations, Lazy list animations for enhanced visual appeal, and text formatting improvements, along with the Compose compiler being hosted in the Kotlin repository. More details on this blog written by Ben Trengrove.
JetBrains
Join Us for JetBrains Plugin Developer Conf 2024 - JetBrains Plugin Developer Conf 2024, the first-ever virtual event dedicated to plugin development for JetBrains products is here! We invite you to join us on Thursday, November 7 for a full day of engaging sessions and insightful discussions. Register now!
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!