MobilePro #158: Internet Archive breached again, Snapdragon 8, Apple AirPods Pro, Civet, Inspect Element on an Android App, OTF vs TTF, Appium Testing.
Welcome to the mobile app development world with the 158th edition of _mobilepro!
In this edition we cover mobile development community discussions on:
How to Inspect Element on an Android App (Actual App, not Web)
Using Firebase Cloud Messaging (FCM) for Push Notifications in PHP
What Is Appium Testing? And Why Is It A Popular Tool For Mobile Testing
In our relatively new section captures internet jibber-jabber about the mobile ecosystem:
Internet Archive breached again through stolen access tokens
Apple’s AirPods Pro hearing health features are as good as they sound
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, React Native, JetBrains and Microsoft. And if you are currently developing an iOS app, checkout this week's resources on iOS tools. Don’t miss this week’s tutorial from the book ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ .
P.S.: If you have any suggestions or feedback, or would like us to feature your project on a particular subject, please write to us. Just respond to this email!
If you liked this installment in our new series, fill in our survey below 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.
Is One the Future of Web and Mobile Development? - Lately, I’ve discovered there’s One—no, not the meaning of life or the perfect coffee blend—but another framework in the endless ocean of JavaScript and React tools. I know what you’re thinking, "Oh great, another framework?" But hang with me—this one is worth your attention, and no, I’m not just saying that because it’s shiny and new. One might actually make your life as a developer a whole lot easier. One, a universal framework that supports both web and mobile development. And get this—it’s built on Vite (no more Metro headaches) and introduces universal typed file-based routing, kind of like Remix but better suited for modern needs.
How to Inspect Element on an Android App (Actual App, not Web) - If you've ever thought, "How do I inspect an Android app the same way I do with websites?" – you're in the right place. Let's break it down, step by step, for everyone. Although these steps will show you how to inspect elements on an app, keep in mind that this only works for apps that you own or have access to their source code.
OTF vs TTF: Best Font Format for Flutter App Development - A well-designed font plays a vital role in the development of an application because usability and appearance heavily depend on it. The right selection of format for your fonts is important as it may make or break the readability of your application or significantly affect user experience. Understanding the differences between these formats is essential for developers who want to optimize both performance and aesthetics in their apps. In this blog, we’ll compare OTF and TTF fonts, exploring their features, advantages, and how to choose the right one for your Flutter project.
Using Firebase Cloud Messaging (FCM) for Push Notifications in PHP - Push notifications are an essential tool for engaging users and keeping them informed about updates, messages, and other important events. Firebase Cloud Messaging (FCM) is a cross-platform solution that allows you to send notifications to web, Android, and iOS devices for free. In this guide, we'll use the lkaybob/php-fcm-v1 package to set up FCM and send push notifications with PHP.
What Is Appium Testing? And Why Is It A Popular Tool For Mobile Testing - Automation tools like Appium empower development teams to minimize errors and amplify productivity in software development. Appium is an outstanding open-source tool that aims to simplify UI automation across diverse app platforms. In this exploration, we will highlight the advantages of Appium 2.0 migration, highlighting its state-of-the-art features and improvements that enhance UI automation across various platforms.
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:
Reader - PDF Reader Core for iOS.
UIView 2 PDF - PDF generator using UIViews or UIViews with an associated XIB.
FolioReaderKit - A Swift ePub reader and parser framework for iOS.
PDFGenerator - A simple Generator of PDF in Swift. Generate PDF from view(s) or image(s).
SimplePDF - Create a simple PDF effortlessly.
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.
Internet Archive breached again through stolen access tokens - The Internet Archive was breached again, this time on their Zendesk email support platform after repeated warnings that threat actors stole exposed GitLab authentication tokens. Since last night, BleepingComputer has received numerous messages from people who received replies to their old Internet Archive removal requests, warning that the organization has been breached as they did not correctly rotate their stolen authentication tokens.
Snapdragon 8 Elite Mobile Platform - The Snapdragon® 8 Elite Mobile Platform represents the pinnacle of Snapdragon innovation—our industry-leading mobile platform. With Qualcomm Oryon™ CPU debuting in our mobile roadmap, we are delivering unprecedented performance. This significance deserves a new, special, most premium variant of our leading 8 series—Snapdragon 8 Elite.
The open-source AI assistant for work - We are an open and extensible ChatGPT Teams alternative. We work with any Large Language Model, on the infra of your choice, and help you cut subscription costs by up to 82%.
Apple’s AirPods Pro hearing health features are as good as they sound - Apple announced a trio of major new hearing health features for the AirPods Pro 2 in September, including clinical-grade hearing aid functionality, a hearing test, and more robust hearing protection. All three will roll out next week with the release of iOS 18.1, and they could mark a watershed moment for hearing health awareness. Apple is about to instantly turn the world’s most popular earbuds into an over-the-counter hearing aid.
Civet: A Programming Language for the New Millenium - Civet is a programming language that compiles to TypeScript or JavaScript, so you can use existing tooling (including VSCode type checking, hints, completion, etc.) while enabling concise and powerful syntax. It starts with 99% JS/TS compatibility, making it easy to transition existing code bases. Then it adds many features and syntactic sugar, with some highlights below and more comprehensive examples in the reference. See also Civet's design philosophy and changelog.
Mobile App Development Tutorial
An excerpt from ‘C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals’ By Mark J. Price
Inserting entities
Let’s start by looking at how to add a new row to a table:
In the WorkingWithEFCore
project, add a new class file named Program.Modifications.cs
.
In Program.Modifications.cs
, create a partial Program
class with a method named ListProducts
that outputs the ID, name, cost, stock, and discontinued properties of each product, sorted with the costliest first, and highlights any that match an array of int
values that can be optionally passed to the method, as shown in the following code:
using Microsoft.EntityFrameworkCore; // To use ExecuteUpdate, ExecuteDelete.
using Microsoft.EntityFrameworkCore.ChangeTracking; // To use EntityEntry<T>.
using Northwind.EntityModels; // To use Northwind, Product.
partial class Program
{ private static void ListProducts(
int[]? productIdsToHighlight = null)
{
using NorthwindDb db = new();
if (db.Products is null || !db.Products.Any())
{
Fail("There are no products."); return; }
WriteLine("| {0,-3} | {1,-35} | {2,8} | {3,5} | {4} |", "Id", "Product Name", "Cost", "Stock", "Disc."); foreach (Product p in db.Products)
{
ConsoleColor previousColor = ForegroundColor;
if (productIdsToHighlight is not null &&
productIdsToHighlight.Contains(p.ProductId))
{
ForegroundColor = ConsoleColor.Green; }
WriteLine("| {0:000} | {1,-35} | {2,8:$#,##0.00} | {3,5} | {4} |", p.ProductId, p.ProductName, p.Cost, p.Stock, p.Discontinued);
ForegroundColor = previousColor;
}
}
}
Remember that {1,-35}
means left-align argument 1 within a 35-character-wide column, and {3,5}
means right-align argument 3 within a 5-character-wide column.
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
The new iPad mini is available today - Beginning today, the ultraportable new iPad mini, powered by the A17 Pro chip and built for Apple Intelligence, is now available. Starting at just $499 with double the storage of the previous generation, the new iPad mini delivers incredible value and the full iPad experience in an ultraportable design.
Apple expands tools to help businesses connect with customers - For the first time, businesses of all sizes around the world — even those without a brick-and-mortar presence — can manage the way they appear to over 1 billion Apple users using Apple Business Connect. Any verified business can now create a consistent brand and location presence across apps that customers use every day, including Apple Maps, Wallet, and Mail.
Apple celebrates 10 years of Apple Pay - Jennifer Bailey, Apple’s vice president of Apple Pay and Apple Wallet, reflects on a decade of Apple Pay enriching users’ lives, and shares new ways to pay with Apple Pay, including rewards and installments.
Android
CameraX update makes dual concurrent camera even easier - Starting with 1.5.0-alpha01, CameraX will now handle the composition of the 2 camera streams as well. This update is additional functionality, and it doesn’t remove any prior functionality nor is it a breaking change to your existing Dual Concurrent Camera code. To tell CameraX to handle the composition, simply use the new SingleCameraConfig constructor which has a new parameter for a CompositionSettings object. Since you’ll be creating 2 SingleCameraConfigs, you should be consistent with what constructor you use. Nothing has changed in the way you check for concurrent camera support from the prior version of this feature.
Chrome on Android to support third-party autofill services natively - Chrome on Android will soon allow third-party autofill services (like password managers) to natively autofill forms on websites. Developers of these services need to tell their users to toggle a setting in Chrome to continue using their service with Chrome.
Android Studio Ladybug Feature Drop | 2024.2.2 Canary 7 now available - Android Studio Ladybug Feature Drop | 2024.2.2 Canary 7 is now available in the Canary channel. If you already have an Android Studio build on the Canary channel, you can get the update by clicking Help > Check for Updates (or Android Studio > Check for Updates on macOS). Otherwise, you can download it here.
JetBrains
Introducing Mellum: JetBrains’ New LLM Built for Developers - JetBrains launches Mellum, a proprietary large language model (LLM) specifically designed to assist software developers. Currently available only with JetBrains AI Assistant, Mellum provides faster, smarter, and more contextually aware cloud code completion.
React Native
React Native 0.76: New Architecture by default, React Native DevTools, and more – The release of React Native 0.76 is here! This is a major milestone for React Native, as we’re enabling the New Architecture by default, and we’re introducing React Native DevTools. This has been the culmination of 6 years of hard work from our team, together with the support of our incredible community of developers.
New Architecture is here - React Native 0.76 with the New Architecture by default is now available on npm! In the 0.76 release blog post, we shared a list of significant changes included in this version. In this post, we provide an overview of the New Architecture and how it shapes the future of React Native.
Microsoft
.NET Conf 2024 Student Zone - We are excited to announce the return of the .NET Conf Student Zone at this year’s .NET Conf 2024. The Student Zone is a beginner-friendly, virtual event where experts will teach you how to build amazing projects – all using C# and .NET! This year, our experts will walk you through building a portfolio web application and an AI demo project. We’ll also be talking all about career readiness with hiring managers, recruiters, early-in-career engineers, and more! This year, we’re running the event twice to reach you in your time zone. Tune in November 18 at 4:00pm UTC or November 19 at 4:00am UTC!
.NET MAUI Welcomes Syncfusion Open-source Contributions - Syncfusion announced their dedication as contributors to .NET MAUI and released the Syncfusion Toolkit for .NET MAUI, a set of free, open-source controls for .NET MAUI! Syncfusion is a leader in UI controls and components and have some impressive controls for .NET. Today they made 14 of these UI controls freely available for .NET MAUI developers. These controls are available in the syncfusion/maui-toolkit repository on GitHub as well as a NuGet package Syncfusion.Maui.Toolkit which you can use in your .NET MAUI projects today.
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!
Copyright (C) 2024 Packt Publishing. All rights reserved.
Our mailing address is:
Packt Publishing, Grosvenor House,
11 St Paul's Square, Birmingham,
West Midlands, B3 1RB, United Kingdom
Want to change how you receive these emails?
You can update your preferences or unsubscribe