Feature Discovery highlight in mobile app

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Feature Discovery highlight in mobile app
Medium
from 1 business day to 3 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Implementing Feature Discovery (New Feature Highlighting) in Mobile Apps

User updated the app. New tab appeared in Tab Bar. They don't notice it — because they look where they're used to. Feature discovery solves this: visually attracts attention to new element the moment user first sees updated screen.

What Feature Discovery Is Technically

Animated visual effect above or around target UI element: pulsing badge, expanding ring, flickering border. Fundamentally differs from coach marks by not covering interface — user can interact with other elements. Attention-grabber, not blocker.

Google implemented this in Material Design via FeatureHighlight component in older versions. In current Material3 it's not explicitly present, but pattern remains.

Pulsing Badge and Ring Animation

iOS. Pulsing circle — CALayer with CABasicAnimation on transform.scale and opacity. Key detail: expanding ring created via two layers — inner stays, outer animates from scale 1.0 to 2.5 with opacity 1.0 to 0.0 in infinite loop (repeatCount = .infinity). CAAnimationGroup synchronizes both animations.

let scaleAnimation = CABasicAnimation(keyPath: "transform.scale")
scaleAnimation.fromValue = 1.0
scaleAnimation.toValue = 2.5
let opacityAnimation = CABasicAnimation(keyPath: "opacity")
opacityAnimation.fromValue = 0.8
opacityAnimation.toValue = 0.0
let group = CAAnimationGroup()
group.animations = [scaleAnimation, opacityAnimation]
group.duration = 1.5
group.repeatCount = .infinity
pulseLayer.add(group, forKey: "pulse")

Layer added above target view via targetView.layer.addSublayer(pulseLayer) or in superview.layer if effect needed beyond bounds.

In SwiftUI — withAnimation(.easeOut(duration: 1.5).repeatForever(autoreverses: false)) on Circle().scale() in overlay. Cleaner and declarative, but repeatForever without autoreverses: false gives "there-and-back" effect — not what we need for pulse.

Android Compose. InfiniteTransition + animateFloat:

val infiniteTransition = rememberInfiniteTransition()
val scale by infiniteTransition.animateFloat(
    initialValue = 1f, targetValue = 2.5f,
    animationSpec = infiniteRepeatable(tween(1500, easing = EaseOut), RepeatMode.Restart)
)

Material Design 3 Feature Highlight

Material3 offers FeatureHighlight as part of extended components (not in main library). For full implementation in Google style — material-components-android-compose-theme-adapter library or custom component.

Standard Material3 approach: round FloatingActionButton with extended description appears next to new feature on first screen show, disappears after 4 seconds or on tap. Implemented via AnimatedVisibility with slideInVertically + fadeIn and LaunchedEffect(Unit) with delay(4000L).

Managing Visibility and Persistence

Feature discovery shown once — on first screen appearance after update. Logic:

let key = "feature_new_tab_v2_3_0_shown"
if !UserDefaults.standard.bool(forKey: key) {
    showFeatureDiscovery(for: newTabButton)
    UserDefaults.standard.set(true, forKey: key)
}

Key contains version (v2_3_0) — on next update with new feature change key, users see discovery again. Storing list of shown discoveries in array [String] more convenient than separate key for each feature.

Display delay: 800–1000 ms after viewDidAppear / onAppear. Don't show instantly — user should first see screen as whole.

Combining with Other Mechanics

Feature discovery often paired with badge counter on tab icon: red circle "NEW" until user visits new section. On iOS — UITabBarItem.badgeValue = "NEW", remove on tabBarController(_:didSelect:). In Compose — custom BadgedBox from Material3.

If new feature not in navigation but inside screen — combine feature discovery with Snackbar / Toast with action: "Try new filter →". On tap — scroll to element + pulse animation. UICollectionView.scrollToItem(at:at:animated:) then with 300 ms delay — CALayer pulse.

Timeline: 1–3 days. Single pulse effect on specific element — 1 day. System with discovery queue, version-based config, multiple animation types and show analytics — 3 days.