Newsletter
REAL HACKER NEWS
  • Home
  • REVIEWS
  • SECURITY
  • GAMING
  • SMARTPHONES
  • CAMERA
  • COMPUTERS
    • LAPTOP
  • APPLICATIONS
  • AUDIO
No Result
View All Result
  • Home
  • REVIEWS
  • SECURITY
  • GAMING
  • SMARTPHONES
  • CAMERA
  • COMPUTERS
    • LAPTOP
  • APPLICATIONS
  • AUDIO
No Result
View All Result
REAL HACKER NEWS
No Result
View All Result
Home APPLICATIONS

Flutter Accessibility: Getting Started | Kodeco, the new raywenderlich.com

Real Hacker Staff by Real Hacker Staff
November 17, 2022
in APPLICATIONS
0
189
SHARES
1.5k
VIEWS
Share on FacebookShare on Twitter


Learn to enhance the accessibility of your Flutter app by offering extra semantic particulars for display readers and following different objects from Flutter’s accessibility guidelines.

Constructing a high-quality app is just not solely about its options and appears but additionally about how accessible it’s to customers, together with folks with incapacity.

On this tutorial, you’ll add accessibility options to a Flutter meals recipe app. Within the course of, you’ll:

  • Study accessibility and its significance in cell apps.
  • Differentiate between varied accessibility wants.
  • Perceive the built-in Flutter accessibility options.
  • Run by an accessibility guidelines instructed by Flutter’s documentation.
  • Add accessibility assist to a production-ready app referred to as Mealize.

Are you able to dive in?

Getting Began

Obtain the starter undertaking by clicking the Obtain Supplies button on the prime or backside of the tutorial.

Then, open the starter undertaking in VS Code 1.70 or later. You may also use Android Studio, however you’ll should adapt the directions beneath.

Use Flutter model 3 or above. VS Code will immediate you to get dependencies. Click on to take action.

If VS Code doesn’t get the dependencies mechanically, open pubspec.yaml and click on Get Packages within the prime proper nook or run flutter pub get from the built-in terminal.

On this article, you’ll add accessibility options to Mealize, a Flutter app that lets you get a random recipe for cooking. You may also save recipes for later.

Exploring the Starter Mission

Right here’s a fast rundown of the undertaking setup:

  • predominant.dart: Normal predominant file required for Flutter initiatives.
  • area.dart: Incorporates the enterprise logic and corresponding class definitions.
  • knowledge.dart: Incorporates the courses that work together with storage and permits for higher knowledge dealing with.
  • app: A folder with the app widget and in addition a helper file with colours outlined by the model pointers.
  • presentation: Incorporates completely different folders that construct the app’s UI:

    • cubit defines a cubit that handles saved meals.
    • pages accommodates the 2 pages — meal_detail_page.dart and saved_meals_page.dart.
    • widgets accommodates customized widgets.

Construct and run the undertaking.

Related articles

Why can’t I use my iPhone as a webcam on my Apple TV?

Why can’t I use my iPhone as a webcam on my Apple TV?

April 1, 2023
Happy Birthday Apple – these are iMore’s favorite products of all time

Happy Birthday Apple – these are iMore’s favorite products of all time

April 1, 2023

Right here’s what you’ll see:

Notice: As a result of accessibility options are solely obtainable on bodily units, you’ll want to make use of a bodily Android or iOS system. The tutorial principally showcases a Pixel 4 Android telephone.

As a result of Flutter has accessibility in-built, the app has some accessibility assist. However, there’s room for enchancment — and that’s what you’ll do on this tutorial.

However earlier than you begin your modifications, it’s essential to grasp why your Flutter app needs to be accessibile.

Why Accessibility is Essential

Typically, it may appear inconvenient so as to add accessibility to your app. For instance, in case your app is already revealed, or if you wish to get it to market as quickly as doable, accessibility won’t be on the prime of your record.

However, there are a number of convincing causes for making your app accessible. Right here’s a brief record you’ll be able to consult with the following time it’s important to decide:

  1. Ethical causes: Growing apps with out accessibility limits your app to solely folks with none type of incapacity. Meaning you’re excluding sure folks out of your product though your intentions won’t be malevolent. So, you should design and develop your apps in order that anybody can use them, no matter bodily or cognitive talents.
  2. Authorized causes: Because the United Nations established the Conference on the Rights of Individuals with Disabilities in 2007, a number of international locations have put rules in place to make sure that people with disabilities have equal entry to infrastructure, jobs, training and digital providers. In Norway, as an example, industrial web sites can’t deny these with impairments equal entry. Buyer safety legal guidelines requiring most public web sites to satisfy accessibility requirements had been enforce in Austria in 2006. 10,982 ADA Title III lawsuits had been filed within the US in 2020 alone. So, it’s most likely greatest to make sure your cell app is accessible to keep away from the chance of authorized motion.
  3. Enterprise causes: Greater than 1 billion folks dwell with some type of incapacity. Including accessibility assist to your app will enhance your attain and enhance your model’s fame. Additionally, there are about $6.9 trillion causes from a enterprise sense.
  4. High quality causes: Since common usability pertains to accessibility, you get extra human-centered, pure and contextual interactions together with your app. That ends in larger product high quality and a higher, a lot richer person expertise.

The Constructed-in Flutter Accessibility

Flutter has nice built-in accessibility assist. By making an app with Flutter, you get:

  • Compatibility with massive fonts.
  • Response to scale issue adjustments.
  • Help for display readers.
  • Nice shade distinction defaults: Each materials and cupertino have widgets with colours which have sufficient distinction when rendered.

As well as, the Flutter Staff compiled an accessibility launch guidelines so that you can think about as you put together your launch. Within the subsequent sections, you’ll assessment this guidelines for Mealize.

Making Interactions Seen

It’s time to begin including accessibility to Mealize.

Construct and run. Faucet Random Meal to open a meal. Then, faucet the Bookmark+ icon button to put it aside for later. Subsequent, faucet the Bookmark icon:

Animated GIF showing there are missing active interactions in Mealize

Did the actions full? In that case, when did each end? May you inform if an motion ended even in the event you couldn’t see the display?

See the issue but?

A lot of these interactions may be invisible to folks with visible issues. The truth is, the one technique to discover that you just saved a meal for later is to pay shut consideration to the bookmark icons.

The app ought to inform the person what occurred once they tapped the button. You’ll work on this primary.

Open lib/presentation/widgets/meal_appbar.dart and substitute the code in _onSaveMealForLater with the next:


last messenger = ScaffoldMessenger.maybeOf(context);
// TODO add directionality and semanticsLabel fields
await context.learn<DetailCubit>().bookmarkMeal();

messenger?.clearSnackBars();
messenger?.showSnackBar(SnackBar(
  conduct: SnackBarBehavior.floating,
  content material: Textual content('Saved $mealName for later.'),
));
// TODO: Add Semantics for iOS.

With the code above, you show a floating Snackbar when saving a meal for later. This improves the interplay for impaired customers and the person expertise.

You additionally added two TODO remarks you’ll deal with later within the tutorial. For now, ignore them.

Now do the identical for _onRemoveMeal — substitute the code inside it with the next traces:


last messenger = ScaffoldMessenger.maybeOf(context);
// TODO add directionality and semanticsLabel fields
await context.learn<DetailCubit>().removeBookmark();

messenger?.clearSnackBars();
messenger?.showSnackBar(SnackBar(
  conduct: SnackBarBehavior.floating,
  content material: Textual content('Eliminated $mealName from Saved Meals record.'),
// TODO: Add undo harmful actions.
));

// TODO: Add Semantics for iOS.

Just like the earlier code, the code exhibits a snackbar while you take away a meal from the saved meals record.

Restart the app. Discover each snackbars while you save a meal for later or take away it from the saved record:

Animated GIF showing active interactions via SnackBars, improving the Flutter app's accessibility

Nice job! You added your first little bit of accessibility options to your Flutter app.

Testing With a Display Reader

The following step is to do display reader testing. To get an concept of how your app may really feel for somebody with imaginative and prescient impairments, you want to allow your telephone’s accessibility options. If enabled, you’ll get spoken suggestions concerning the display’s contents and work together with the UI through gestures.

Flutter takes care of the heavy load because it permits the display reader to grasp a lot of the widgets on the display. However, sure widgets want context so the display reader can precisely interpret them.

Introducing The Semantics Widget

The Semantics widget offers context to widgets and describes its youngster widget tree. This lets you present descriptions of widgets in order that Flutter’s accessibility instruments can get the that means of your app.

The framework already implements Semantics within the materials and cupertino libraries. It additionally exposes properties you should use to offer customized semantics for a widget or a widget subtree.

However, there are occasions while you’ll want so as to add your personal semantics to offer the proper context for display readers. For instance, while you wish to merge or exclude semantics in a widget subtree, or when the framework’s implementation isn’t sufficient.

Enabling the Display Reader

To allow your system’s display reader, go to your telephone’s settings and navigate to Accessibility. Then, allow TalkBack or VoiceOver in the event you’re utilizing an iOS system.

Give the display reader permission to take over the system’s display.

By enabling TalkBack/VoiceOver, your navigation and interplay with the cell phone will change. Right here’s a fast rundown of methods to use the display reader:

  • Faucet as soon as to pick out an merchandise.
  • Double-tap to activate an merchandise.
  • Drag with one finger to maneuver between objects.
  • Drag with two fingers to scroll (use three fingers in the event you’re utilizing VoiceOver).

Scorching reload the app. Attempt utilizing the app by opening a random meal and saving a few meals for later. Shut your eyes if you wish to expertise complete blindness whereas utilizing the app. Right here’s a preview:

Right here’s what you’ll have skilled:

  • When within the Saved Meals For Later display, it’s not clear what Random Meal does.
  • When within the Meal Element display, the display reader refers to Save Meal for Later and Take away From Saved Checklist icons as button. That is complicated.
  • When within the Meal Element display, after tapping the Save Meal for Later icon button, VoiceOver (iOS) doesn’t learn the snackbar.
  • When in Meal Element display, after tapping the Take away From Saved Checklist icon button, VoiceOver (iOS) doesn’t learn the snackbar.

Including Help for Display Readers

OK, it’s time so as to add some Semantics. Open lib/presentation/widgets/random_meal_button.dart and
in construct wrap FloatingActionButton in Semantics like beneath:


return Semantics(
  // 1
  button: true,
  enabled: true,
  // 2
  label: 'Random Meal',
  // 3
  onTapHint: 'View a random meal.',
  onTap: () => _openRandomMealDetail(context),
  // 4
  excludeSemantics: true,
  youngster: FloatingActionButton.prolonged(
    onPressed: () => _openRandomMealDetail(context),
    icon: const Icon(Icons.shuffle),
    label: const Textual content(
      'Random Meal',
    ),
  ),
);

Right here’s what’s taking place within the code above:

  1. This tells display readers that the youngster is a button and is enabled.
  2. label is what display readers learn.
  3. onTapHint and onTap permits display readers to know what occurs while you faucet Random Meal.
  4. excludeSemantics excludes all semantics offered within the youngster widget.

Notice: it’s important to present onTap when implementing onTapHint. In any other case, the framework will ignore it.

When you’re utilizing VoiceOver (iOS), you’ll discover there’s no change. That’s as a result of iOS doesn’t present a technique to override these values and thus it’s ignored for iOS units. Additionally, onTap supersedes onPressed from FloatingActionButton. So, you don’t have to fret about _openRandomMealDetail executing twice.

Restart the app. Then, use the display reader to give attention to Random Meal and spot how the display reader interprets the app:

You could do one thing comparable with MealCard. See in the event you can implement Semantics by your self this time. Yow will discover MealCard in lib/presentation/widgets/meal_card.dart.

Need assistance? Open the spoiler beneath to learn the way.

[spoiler title=”Solution”]


return Semantics(
  button: true,
  label: meal.title,
  onTapHint: 'View recipe.',
  onTap: onTap,
  excludeSemantics: true,
  youngster: Materials(...),
);

[/spoiler]

Utilizing Semantics With Customized Widgets

Typically, you utilize Semantics to offer details about what position a widget performs, permitting display readers to grasp and behave accordingly.

You’ll use that for the meal heading. So, open lib/presentation/widgets/meal_header.dart, wrap Column with Semantics and set header to true like so:


return Semantics(
  header: true,
  youngster: Column(
    ...
  ),
);

This tells display readers that the contents inside Column is a header.

Scorching reload. Navigate to MealDetailPage utilizing the display reader. Affirm that the display reader identifies it as a header. Right here’s how the app is coming collectively:

Notice: Whilst you’re creating, it’s useful to activate Flutter’s Semantics Debugger. Set showSemanticsDebugger to true within the app’s top-level MaterialApp. Semantics Debugger exhibits the display reader’s interpretation of your app.

Utilizing SemanticsService to Fill the Gaps

Now, to complete including display reader assist, open lib/presentation/widgets/meal_appbar.dart. Change // TODO: Add Tooltip for Take away Meal with this line of code:


tooltip: 'Take away from Saved Meals',

Do the identical with // TODO: Add Tooltip for Save Meal for Later — substitute it with this:


tooltip: 'Save for Later',

As you may’ve identified, tooltips in IconButtons function semantic labels for display readers. Additionally they pop up when tapped or hovered over to provide a visible description of the icon button — considerably bettering your app’s accessibility and person expertise.

Scorching reload. Navigate to a meal and choose the Save Meal for Later icon. Right here’s what you’ll expertise:

Now the display reader is aware of acceptable labels for these buttons.

Making SnackBars Accessible on iOS

There’s nonetheless one problem you want to deal with, and it’s a platform-specific downside. For VoiceOver customers, the snackbars aren’t learn once they seem on the display.

There is a matter about this on Flutter’s Github explaining causes behind this conduct for iOS units. For now, it’s secure to say you’ll want to make use of an alternate: SemanticsService.

SemanticsService belongs to Flutter’s semantics package deal, and also you’ll use it to entry the platform accessibility providers. You shouldn’t use this service on a regular basis as a result of Semantics is preferable, however for this particular case, it’s OK.

First, substitute // TODO add directionality and semanticsLabel fields in _onRemoveMeal with the next:


last textDirectionality = Directionality.of(context);
last semanticsLabel="Eliminated $mealName from Saved Meals record.";

Second, substitute // TODO add directionality and semanticsLabel fields in _onSaveMealForLater with:


last textDirectionality = Directionality.of(context);
last semanticsLabel="Saved $mealName for later.";

Don’t overlook so as to add the corresponding imports on the prime of the file:


import 'package deal:flutter/basis.dart';
import 'package deal:flutter/semantics.dart';

Flutter’s accessibility bridge wants context concerning the system’s textDirectionality. That’s why you obtained it from the present context.

Subsequent, change Textual contents in each _onRemoveMeal and _onSaveMealForLater snackbars to the next, respectively:


Textual content(
  'Eliminated $mealName from Saved Meals record.',
  semanticsLabel: semanticsLabel,
),

and


Textual content(semanticsLabel),

Then, substitute // TODO: Add Semantics for iOS. on the backside of _onRemoveMeal with the code beneath:


if (defaultTargetPlatform == TargetPlatform.iOS) {
  SemanticsService.announce(
    semanticsLabel,
    textDirectionality,
  );
}

Lastly, do the identical with _onSaveMealForLater:


if (defaultTargetPlatform == TargetPlatform.iOS) {
  SemanticsService.announce(
    semanticsLabel,
    textDirectionality,
  );
}

SemanticsService.announce will use the platform-specific accessibility bridge in Flutter to learn out semanticsLabel. Then, you present the system’s textDirectionality to it because the bridge wants that. This ensures the display reader pronounces the snackbar message on iOS in each circumstances.

Scorching reload the app. When you’re utilizing VoiceOver, you’ll now hear each snackbars when saving or eradicating a meal:

When you’re utilizing TalkBack, you received’t discover any variations.

Nice job! Android and iOS display readers can now interpret Mealize. It was a problem, however you knocked it out of the park. Congratulations!

Contemplating Distinction Ratio and Colour Deficiency

Individuals with imaginative and prescient impairments typically have issue studying textual content that doesn’t distinction with its background. This may be worse if the particular person has a shade imaginative and prescient deficiency that additional lowers the distinction.

Your duty is to offer sufficient distinction between the textual content and its background, making the textual content extra readable even when the person doesn’t see the complete vary of colours. It additionally works for people who see no shade.

The WCAG customary means that visible presentation of textual content and pictures of textual content have a distinction ratio of at the least 4.5:1. Massive-scale textual content and pictures can have a distinction ratio of at the least 3:1.

Whenever you open the meal element web page, you see the meal’s title and its picture within the header. There’s no distinction administration. So relying on the meal, it is likely to be troublesome to see the meal’s title. To make issues worse, the font isn’t that legible:

Screenshot showing contrast issues in Meal Card

You’ll repair distinction points now.

Open lib/presentation/widgets/meal_card.dart and substitute // TODO: Enhance shade distinction. with the next code:


colorFilter: const ColorFilter.mode(
  Colours.black45,
  BlendMode.darken,
),

Within the code above, you added a black45 filter to the images, considerably bettering distinction and making the textual content readable.

Scorching reload. Do you see your adjustments? It’s now simpler to learn the meal’s title:

Screenshot showing better contrast in meal card

Responding to Scale Issue Adjustments

Most Android and iOS smartphones will let you enlarge the textual content and show. This function is superb for individuals who’ve hassle studying small fonts or figuring out objects on the display.

However that presents a problem for you because the developer since you want to make sure the UI stays legible and usable at very massive scale components for textual content dimension and show scaling.

Now, it is likely to be tempting so as to add overflow: TextOverflow.ellipsis, or maxLines: 2, to your Textual contents all all through your app, however do not forget that this can solely disguise info from the person and stop them from accessing the textual content.

Permitting horizontal scrolling is an alternative choice. This enables the person to learn the textual content however doesn’t deal with the difficulty of hidden info. In response to James Edwards, a stable rule of thumb is to by no means use textual content truncation. With regard to accessibility, vertical scrolling and not using a mounted header is an efficient answer.

You could put together your app’s format and widgets to develop in dimension when wanted. This ensures that texts stay seen to all and that customers can work together with them.

Testing Mealize’s Responsiveness

OK, time to check Mealize’s responsiveness to scale adjustments. Go to your system’s settings and max out the font scale and show scale (if there’s one):

  • In Android, open Settings, then go to Accessibility, discover and faucet on Textual content and show. Discover Font Measurement and faucet on it. Then set the slider to the best. Now return to the earlier menu and do the identical with Show Measurement.
  • In iOS, go to Settings, then faucet Accessibility. Discover Bigger Textual content and faucet on it. Then set the slider on the backside of the display to probably the most.

Reload the app and test if it’s nonetheless usable:

Animated GIF showcasing text scale changes to increase the Flutter app's accessibility

Notice: If you wish to see the dynamic font dimension in motion, use the Accessibilty Inspector on iOS or the Accessibility Scanner on Android. You’ll be able to check the font scaling with the iOS simulator or Android emulator. However beware that giant font sizes can utterly destroy the format of your app.

Mealize makes use of a ConstrainedBox with a minimal top to make MealCard‘s top adjustable. It additionally makes use of a ListView when displaying the meal’s recipe to permit scrolling with out worrying about textual content dimension.

Notifying Customers on Context Switching

Subsequent, within the accessibility guidelines, guarantee nothing adjustments the person’s context and not using a affirmation motion, particularly if the person is typing info. Examples you may run into embody opening a special app through a deep hyperlink or altering screens when typing info.

In Mealize, there’s one instance of context switching with out affirmation. Whenever you faucet Watch Video, you exit the app and open through deep hyperlink a separate app with the video (like YouTube or an online browser). This occurs with out giving a warning to the person, which isn’t a great expertise. Have a look:

Animated GIF showing context switch to YouTube without warning

To repair this, open lib/presentation/widgets/watch_video_button.dart and discover the definition for _openVideoTutorial. Change the physique to the next:


showDialog<void>(
  context: context,
  builder: (dContext) => AlertDialog(
    title: const Textual content('Are you certain?'),
    content material: const Textual content('You'll exit Mealize and open an exterior hyperlink.'
        'Are you certain you wish to proceed?'),
    actions: [
      TextButton(
        onPressed: () => Navigator.pop(dContext),
        child: const Text('Cancel'),
      ),
      TextButton(
        onPressed: () => launchUrl(
          Uri.parse(videoUrl),
        ),
        child: const Text('See Video'),
      )
    ],
  ),
);

Reload. Use the app to open the element web page of any recipe, then faucet Watch Video below the header. If the meal doesn’t have a Watch Video button, discover one other recipe by going again to the record and tapping Random Meal.

It is best to see this dialog:

Animated GIF showing confirmation dialog before switch to YouTube

Undoing Essential Actions

Unsteady fingers and visible disabilities can have an effect on customers in a giant manner. Think about the frustration of tapping a delete button with out realizing it’s there. That’s why customers ought to be capable to undo essential actions.

Within the app, eradicating a meal from the saved meals record shows a snackbar, but it surely doesn’t enable the person to undo the motion. You’re going to repair that now.

Open lib/presentation/widgets/meal_appbar.dart and find _onRemoveMeal. Change the SnackBar to incorporate motion by changing // TODO: Add undo harmful actions. with the next code:


motion: SnackBarAction(
  label: 'Undo',
  onPressed: () => context.learn<DetailCubit>().bookmarkMeal(),
),

This can add an Undo button to the snackbar, which can resave the meal for later.

Scorching reload. Test that tapping Undo works as anticipated. Allow the display reader once more and spot that it pronounces the snackbar for eradicating a meal. Right here’s what it seems to be like:

You’ll discover two issues:

  1. The snackbar now not mechanically dismisses.
  2. The display reader doesn’t learn the Undo button.

The primary problem is by design — customers with visible impairments won’t discover an motion. So, the person has to dismiss snackbars with actions.

The second downside is a way more complicated subject. Suffice it to say that Flutter ignores SnackBarAction when defining Semantics. So, you’ll want to offer an alternate answer.

Change semanticsLabel on _onRemoveMeal to this:


last semanticsLabel="Eliminated $mealName from Saved Meals record."
 'Undo Button. Double faucet to undo this motion.';

Because the framework ignores SnackBarAction, by offering a customized semanticsLabel you’re overriding what the display reader will announce. Additionally, since SnackBar and SemanticsService use semanticsLabel, TalkBack and VoiceOver appropriately learn it aloud.

Scorching restart. Whereas utilizing the display reader, observe that the Undo button is now talked about when the snackbar exhibits.

You’ve added additional options to assist accessibility in your Flutter app and ensured it stays suitable with display readers. Nice work!

The place to Go From Right here

Obtain the finished undertaking recordsdata by clicking the Obtain Supplies button on the prime or backside of the tutorial.

Flutter already has nice documentation on accessibility and studying sources so that you can take a look at. It will even be nice for you to try the Flutter Accessibility Widgets Catalog.

You may also see this oldie however goodie video recorded in the course of the Flutter Work together some time again. In it, you’ll see actual person accessibility points that the Flutter workforce needed to deal with in its showcase app.

We hope you loved this tutorial. When you’ve got any questions or feedback, please be part of the discussion board dialogue beneath!



Source link

Tags: AccessibilityFlutterKodecoraywenderlich.comstarted
Share76Tweet47

Related Posts

Why can’t I use my iPhone as a webcam on my Apple TV?

Why can’t I use my iPhone as a webcam on my Apple TV?

by Real Hacker Staff
April 1, 2023
0

OK, so hear me out. Wouldn't it be pretty cool if you could use your iPhone as a webcam for...

Happy Birthday Apple – these are iMore’s favorite products of all time

Happy Birthday Apple – these are iMore’s favorite products of all time

by Real Hacker Staff
April 1, 2023
0

Today, on April 1, back in 1976, Apple was founded by Steve Jobs and Steve Wozniak, which eventually led to...

Microsoft Fixes New Azure AD Vulnerability Impacting Bing Search and Major Apps

Microsoft Fixes New Azure AD Vulnerability Impacting Bing Search and Major Apps

by Real Hacker Staff
April 1, 2023
0

Apr 01, 2023Ravie LakshmananAzure / Active Directory Microsoft has patched a misconfiguration issue impacting the Azure Active Directory (AAD) identity...

Cacti, Realtek, and IBM Aspera Faspex Vulnerabilities Under Active Exploitation

by Real Hacker Staff
April 1, 2023
0

Apr 01, 2023Ravie LakshmananCyber Attack / Vulnerability Critical security flaws in Cacti, Realtek, and IBM Aspera Faspex are being exploited...

Millions of Sites at Risk!

Millions of Sites at Risk!

by Real Hacker Staff
April 1, 2023
0

Apr 01, 2023Ravie LakshmananWeb Security / Cyber Threat Unknown threat actors are actively exploiting a recently patched security vulnerability in...

Load More
  • Trending
  • Comments
  • Latest

eSIMs Will Transform the Way You Think About Mobile Data and Security

March 7, 2023

XMOS Launches XVF3800 High-Performance Voice Processor for Enterprise and Consumer Voice Conferencing Platforms

March 7, 2023

Sennheiser Starts Shipping EW-DX Digital Wireless Microphone Series

November 22, 2022

Chinese Hackers Using Russo-Ukrainian War Decoys to Target APAC and European Entities

December 7, 2022

Hello world!

0
US Commodities Regulator Beefs Up Bitcoin Futures Review

US Commodities Regulator Beefs Up Bitcoin Futures Review

0
Bitcoin Hits 2018 Low as Concerns Mount on Regulation, Viability

Bitcoin Hits 2018 Low as Concerns Mount on Regulation, Viability

0
India: Bitcoin Prices Drop As Media Misinterprets Gov’s Regulation Speech

India: Bitcoin Prices Drop As Media Misinterprets Gov’s Regulation Speech

0
Poll: Which upcoming foldable phone are you looking forward to in 2023?

Poll: Which upcoming foldable phone are you looking forward to in 2023?

April 1, 2023
It’s April Fools’ Day, Here Are The Best Gaming Gags We’ve Seen

It’s April Fools’ Day, Here Are The Best Gaming Gags We’ve Seen

April 1, 2023
Save up to 35 percent on Logitech’s G PRO X Gaming Headset and more

Save up to 35 percent on Logitech’s G PRO X Gaming Headset and more

April 1, 2023
Always be prompting | TechCrunch

Always be prompting | TechCrunch

April 1, 2023

Recent News

Poll: Which upcoming foldable phone are you looking forward to in 2023?

Poll: Which upcoming foldable phone are you looking forward to in 2023?

April 1, 2023
It’s April Fools’ Day, Here Are The Best Gaming Gags We’ve Seen

It’s April Fools’ Day, Here Are The Best Gaming Gags We’ve Seen

April 1, 2023

Categories

  • APPLICATIONS
  • AUDIO
  • CAMERA
  • COMPUTERS
  • GAMING
  • LAPTOP
  • REVIEWS
  • SECURITY
  • SMARTPHONES
  • Uncategorized
REAL HACKER NEWS

We bring you the best news on Internet new gadgets hacking and technology from around the world

  • Contact
  • Cookie Privacy Policy
  • Terms and Conditions
  • Privacy Policy
  • Disclaimer
  • DMCA

© 2003 Real Hacker News

No Result
View All Result
  • Home
  • REVIEWS
  • SECURITY
  • GAMING
  • SMARTPHONES
  • CAMERA
  • COMPUTERS
    • LAPTOP
  • APPLICATIONS
  • AUDIO

© 2003 Real Hacker News

Go to mobile version