MobilePro #160: React Native Navigation Libraries, Flutter Keys, Forking Flutter, Apple is Killing Swift, 10 years of 20248, fediverse’s TikTok competitor called Loops.
Welcome to the mobile app development world with the 160th edition of _mobilepro!
In this edition we cover mobile development community discussions on:
How to Create the Carousel UIKit in Swift: A Step-by-Step Guide
Creating Receipt Sharing Functionality in a Flutter Fintech App
Enhancing Animation Experience in React Native with Context API
In our relatively new section captures internet jibber-jabber about the mobile ecosystem:
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 reply in the comments!
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.
How to Create the Carousel UIKit in Swift: A Step-by-Step Guide - The Carousel-UIK project is an example of a user interface component developed in Swift, designed to create a carousel for images or any other visual content. In this article, we will guide you through the steps to create the Carousel-UIK in Swift.
PWAs vs. Native Apps and Websites for best UX - As the digital landscape grows, businesses and developers face the challenge of choosing between Progressive Web Apps (PWAs), native apps, and traditional websites. Each has its advantages and challenges, and understanding these can guide the best choice for different user and business needs. This article explores the key aspects of each, including compatibility, cost, accessibility, and user engagement, to help clarify when each approach is most effective.
Creating Receipt Sharing Functionality in a Flutter Fintech App - In today's digital landscape, sharing transaction receipts effortlessly is crucial for any fintech application. Users often need to share transaction details for various reasons, and implementing a receipt-sharing feature can greatly enhance their experience. In this article, we'll explore how to create this functionality in a Flutter app using the screenshot package to capture receipt widgets as images.
Enhancing Animation Experience in React Native with Context API - Creating a dynamic user experience in mobile applications often involves making components react to the user’s scroll behavior. From hiding headers when scrolling down to providing a floating scroll-to-top button and applying smooth fade effects, these interactions enhance usability and create a modern feel. In this guide, we’ll walk through building a centralized scroll management system in React Native using FlatList, react-native-reanimated, and context. We’ll implement the following features: An animated header that hides on scroll and a floating scroll-to-top button that appears when the user scrolls down.
Best React Native Navigation Libraries - When building a React Native app, choosing the right navigation library is crucial for ensuring a smooth and intuitive user experience. This article features some of the best navigation libraries for React Native, each with its strengths and use cases.
Unlocking improved Flutter performance; a case for Keys - The simple act of adding keys to widgets improved performance by: helping the Flutter Engine associate a specific identifier, to the element configured by the widget in the element tree during traversal; thereby preventing unnecessary rebuilds if not marked for a build; and key essentially memoises widget rendering under the right circumstances. This blogpost highlights the importance of keys to flutter widgets, proving them to be key performance improvement tools. The repository containing the refactor resides here.
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:
HaishinKit.swift - Camera and Microphone streaming library via RTMP, HLS for iOS, macOS.
StreamingKit - A fast and extensible gapless AudioPlayer/AudioStreamer for macOS and iOS.
Jukebox - Player for streaming local and remote audio files. Written in Swift.
LFLiveKit - H264 and AAC Hard coding,support GPUImage Beauty, rtmp transmission,weak network lost frame,Dynamic switching rate.
Airstream - A framework for streaming audio between Apple devices using AirPlay.
OTAcceleratorCore - A painless way to integrate audio/video(screen sharing) to any iOS applications via Tokbox.
Trending Titles
Our weekly recommendations of the best resources in Mobile App Development!
Featured: Responsive Web Design with HTML5 and CSS
If you’re tired of static websites that just don’t perform, it’s time to upgrade your skills with Responsive Web Design with HTML5 and CSS—a self-paced course designed to turn you into a responsive web design pro led by Ben Frain, the author of the best-selling book Responsive Web Design with HTML5 and CSS, 4th Edition!
With over 20 years of experience in web development, Ben Frain—currently the UI-UX Technical Lead at bet365—guides you through key techniques to help you build fully responsive websites using HTML5 and CSS.
Watch the 'Responsive Web Design with HTML5 and CSS' Video Now!
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.
We're forking Flutter. This is why - Over the years, Flutter has attracted millions of developers who built user interfaces across every platform. Flutter began as a UI toolkit for mobile - iOS and Android, only. Then Flutter added support for web. Finally, Flutter expanded to Mac, Windows, and Linux. Across this massive expansion of scope and responsibility, the Flutter team has only marginally increased its size. To help expand Flutter's available labor, and accelerate development, we're creating a fork of Flutter, called Flock.
Apple is Killing Swift - Swift was a great language, but it has fallen far from its original vision. Pretty damn far. Today, we’re going to learn how modern programming languages are governed. I’ll explain how Swift’s dictatorial structure is uniquely terrible, and demonstrate to you how bad the situation has become.
Apple unveils the new iMac with M4 – Welcome the new Mac, supercharged by Apple Intelligence and available in fresh colors. The world’s best all-in-one desktop features even more performance, a nano-texture display option, a 12MP Center Stage camera, and Thunderbolt 4 connectivity — all in a strikingly thin design.
10 years of 20248 - 2048 is a simple yet addictive puzzle game where you slide numbered tiles on a board to merge them. The goal is to create a tile with the number 2048. If you run out of moves, the game ends. You can play 2048 in your browser, on your phone, or on your tablet. It’s easy to pick up but challenging to master. How far can you get? play2048.co (formerly gabrielecirulli.github.io/2048) is where 2048 first launched on March 9, 2014, featuring the original version of the game. It now hosts a completely new version of 2048, built by the original creator, Gabriele Cirulli.
The fediverse is getting its own TikTok competitor called Loops - Similar to how Mastodon offers an open source, distributed version of X, the fediverse is getting its own TikTok competitor. This week, an app called Loops began accepting signups on its new platform for sharing short, looping videos. Still in the early stages, Loops is not yet open sourced, nor has it completed its integration with ActivityPub, the protocol that powers Mastodon, Pixelfed, PeerTube, and other federated apps.
Mobile App Development Tutorial
An excerpt from ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ By Mark J. Price
Targeting a named method
Let’s define a method that only includes names that are longer than four characters:
In Program.Functions.cs
, add a method that will return true
only for names longer than four characters, as shown in the following code:
static bool NameLongerThanFour(string name)
{
// Returns true for a name longer than four characters.
return name.Length > 4;
}
In the FilteringUsingWhere
method, pass the method’s name into the Func<string, bool>
delegate, as shown highlighted in the following code:
var query = names.Where(
new Func<string, bool>(NameLongerThanFour));
In the FilteringUsingWhere
method, add statements to enumerate the names
array using foreach
, as shown in the following code:
foreach (string item in query)
{
WriteLine(item);
}
In Program.cs
, comment out the call to DeferredExecution
and then pass names
as an argument to the FilteringUsingWhere
method, as shown in the following code:
// DeferredExecution(names);
FilteringUsingWhere(names);
Run the code and view the results, noting that only names longer than four letters are listed, as shown in the following output:
Michael
Dwight
Angela
Kevin
Creed
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’s new MacBook Pro features the incredibly powerful M4 family of chips and ushers in a new era with Apple Intelligence - Apple today unveiled the new MacBook Pro, powered by the M4 family of chips — M4, M4 Pro, and M4 Max — delivering much faster performance and enhanced capabilities. The new MacBook Pro is built for Apple Intelligence, the personal intelligence system that transforms how users work, communicate, and express themselves, while protecting their privacy. With an advanced 12MP Center Stage camera, Thunderbolt 5 on M4 Pro and M4 Max models, and an all-new nano-texture display option, MacBook Pro gets even more capable and even more pro
Android
Kotlin Multiplatform for sharing business logic across Android and iOS - To make it easier for you to leverage KMP in your apps, we’ve been working on migrating many of our Jetpack libraries to take advantage of KMP. For example, Lifecycle, ViewModel, and Paging are KMP compatible libraries. Meanwhile, libraries like Room, DataStore, and Collections have KMP support, so they work out-of-the-box on Android and iOS. We’ve also added a new template to Android Studio so you can add a shared KMP module to your existing Android app and begin sharing business logic across platforms. Kickstart your Kotlin Multiplatform journey with this comprehensive guide.
Updates to power your growth on Google Play - we’re excited to share the latest product updates to help your business thrive. We’re sharing new ways to grow your audience, optimize revenue, and protect your business in an ever-evolving digital landscape. These updates help you in growing your audience with enhanced discovery features, optimizing your revenue with Google Play Commerce and protecting your business with the Play Integrity API
More frequent Android SDK releases: faster innovation, higher quality and more polish - Android has always worked to get innovation into the hands of users faster. In addition to our annual platform releases, we’ve invested in Project Treble, Mainline, Google Play services, monthly security updates, and the quarterly releases that help power Pixel Drops. Going forward, Android will have more frequent SDK releases with two releases planned in 2025 with new developer APIs. These releases will help to drive faster innovation in apps and devices, with higher stability and polish for users and developers.
Gemini in Android Studio, now helping you across the development lifecycle - AI can accelerate your development experience, and help you become more productive. That's why we introduced Gemini in Android Studio, your AI-powered coding companion. It’s designed to make it easier for you to build high quality Android apps, faster. Today, we're releasing the biggest set of updates to Gemini in Android Studio since launch, and now Gemini brings the power of AI to every stage of the development lifecycle, directly within the Android Studio IDE experience. And for more updates on how to grow your apps and games businesses, check out the latest updates from Google Play.
JetBrains
Ktor 3.0: New Features and Improved Performance – This blog post will give you a solid overview of what’s new and improved in Ktor 3.0.
Compose Multiplatform 1.7.0 Released – Learn more about the release, which brings type-safe navigation, enhanced performance on iOS, and added support for drag-and-drop on desktop platforms.
The Evolution of the Kotlin Language and How You Can Contribute – Find out how the Kotlin Evolution and Enhancement Process (KEEP) works and what you can do to contribute to the further development of the language.
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 in the comments!