Capawesome September 2025 Update¶
The Capawesome September update is here! This update includes new features and improvements for Capawesome Cloud and our Plugins. Let's take a look at the most important changes.
Capver¶
We have published a new CLI called Capver for managing versions in a Capacitor project across multiple platforms. The CLI helps you set, increment, and synchronize versions in your package.json
, capacitor.config.json
, Info.plist
(iOS), and build.gradle
(Android) files. This ensures that all platforms use the same version number, making it easier to manage and release your app.
First, install the CLI using npm:
After installing, you can use the following commands to manage your app versions:
# Initialize a new Capacitor project with version 0.0.1
npx @capawesome/capver set 0.0.1
# Increment the patch version
npx @capawesome/capver patch
# Increment the minor version
npx @capawesome/capver minor
# Increment the major version
npx @capawesome/capver major
# Increment only the build number
npx @capawesome/capver hotfix
# Check version consistency across platforms
npx @capawesome/capver get
# Synchronize all platforms to use the highest version found
npx @capawesome/capver sync
Check out the documentation to learn more about the CLI and its features.
Cloud¶
Audit Logs¶
You can now view audit logs for your Capawesome Cloud organizations. Audit logs provide a detailed record of actions taken within your organization, including deployments, configuration changes, and user activities. This feature helps you monitor and track changes to your organization for security and compliance purposes. Read more about in our documentation.
Newsletter¶
After a long break, we have finally sent out a new Capawesome Newsletter with some cool updates in offers exclusively for our newsletter subscribers. If you haven't subscribed yet, make sure to sign up to stay updated with the latest news and updates from Capawesome.
Plugins¶
Audio Player¶
We have published a new Audio Player plugin that allows you to play audio files on Android, iOS and Web. Here's a simple example of how to use the plugin to play an audio file:
import { AudioPlayer } from '@capawesome-team/capacitor-audio-player';
import { Capacitor } from '@capacitor/core';
import { Filesystem } from '@capacitor/filesystem';
const play = async () => {
if (Capacitor.getPlatform() === 'web') {
const assetUrl = 'https://www.example.com/audio.mp3';
const response = await fetch(assetUrl);
const blob = await response.blob();
await AudioPlayer.play({ blob, loop: false, volume: 100, position: 0 });
} else {
const { uri } = await Filesystem.getUri({
directory: FilesystemDirectory.Documents,
path: 'audio.mp3',
});
await AudioPlayer.play({ uri, loop: false, volume: 100, position: 0 });
}
};
Check out the documentation to learn more about the plugin and its features.
Bluetooth Low Energy¶
The Bluetooth Low Energy plugin received multiple improvements this month.
Auto Initialization¶
The plugin now automatically initializes itself on the first call to any of its methods. This makes it easier to use the plugin, as you no longer need to call the initialize()
method manually.
Manufacturer Data¶
You can now include manufacturer-specific data when advertising as a peripheral. This allows you to provide additional information about your device that can be used by other Bluetooth devices. Here's an example of how to start advertising with manufacturer data:
import { BluetoothLowEnergy } from '@capawesome-team/capacitor-bluetooth-low-energy';
const startAdvertising = async () => {
await BluetoothLowEnergy.startAdvertising({
manufacturerData: {
0xffff: [1, 2, 3]
},
name: 'MyDevice',
services: []
});
};
Contacts¶
The Contacts plugin now includes a new openSettings()
method that opens the device's settings page for the app. This is useful for prompting users to grant permissions if they have previously denied access to contacts.
import { Contacts } from '@capawesome-team/capacitor-contacts';
const openContactsSettings = async () => {
await Contacts.openSettings();
};
Live Update¶
The Live Update plugin has received small bug fixes. Please check out the CHANGELOG.md for more details.
Speech Recognition¶
The Speech Recognition plugin now supports a taskHint
option for the startListening()
method on iOS. This option allows you to specify the type of speech recognition task you are performing, which can help improve accuracy and performance.
import { SpeechRecognition, TaskHint } from '@capawesome-team/capacitor-speech-recognition';
const startListening = async () => {
await SpeechRecognition.startListening({
taskHint: TaskHint.Dictation
});
};
Check out the TaskHint
enum in the documentation for all available options.
Speech Synthesis¶
The Speech Synthesis plugin now automatically initializes itself on the first call to any of its methods. This makes it easier to use the plugin, as you no longer need to call the initialize()
method manually.
Share Target¶
The Share Target plugin now provides the mimeType
and name
properties for shared files. This allows you to get more information about the files that are shared with your app.
import { Capacitor } from '@capacitor/core';
import { ShareTarget } from '@capawesome-team/capacitor-share-target';
const addListener = async () => {
await ShareTarget.addListener('shareReceived', (event) => {
const firstFile = event.files[0];
console.log('File URI: ', firstFile.uri);
console.log('File MIME type:', firstFile.mimeType);
console.log('File name:', firstFile.name);
});
};