{"id":384,"date":"2020-08-17T09:53:29","date_gmt":"2020-08-17T09:53:29","guid":{"rendered":"https:\/\/dianapps.com\/blog\/?p=384"},"modified":"2020-08-17T09:53:29","modified_gmt":"2020-08-17T09:53:29","slug":"4-simple-steps-to-add-fingerprint-authentication-to-your-android-app","status":"publish","type":"post","link":"https:\/\/dianapps.com\/blog\/4-simple-steps-to-add-fingerprint-authentication-to-your-android-app\/","title":{"rendered":"4 Simple Steps to Add Fingerprint Authentication to Your Android App"},"content":{"rendered":"\n<p>Recently, I\u2019ve spent some time observing the directions in which UI design is heading. I\u2019ve stumbled across a few very creative, promising, and inspiring trends that, in my opinion, will shape UI design in the nearest future.<\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Last year, more than <\/span><b>5,183<\/b><span style=\"font-weight: 400;\"> breach cases were recorded which signified the <\/span>loss of 7.9 Bn user data records. Android and iOS patches were introduced to deal with around 440 different types of security issues. It was unveiled that hackers attack every 39 seconds<span style=\"font-weight: 400;\"> in the mobile app industry.\u00a0<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Such numbers have made it clear that focusing on mobile app security is not merely an Android app development trend. Rather, it has become a crucial element of the development process. This has further made it imperative for business leaders and developers to look for the best security techniques and tools while building their applications. And this way, ensure that users do not see their private and sensitive data compromised and fully enjoy your app services.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">One such technique that has come up as a proven way to deal with a data breach in Android apps is Fingerprint Authentication. Something we will be discussing in detail in this article.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">So, let\u2019s begin with a simple definition of what exactly it is.<\/span><\/p>\n\n\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Fingerprint-Authentication\"><\/span>Fingerprint Authentication<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400;\">Fingerprint Authentication, in simpler terms, is a technique of verifying and validating a user\u2019s identity depending on one or more of their fingerprints. This form of biometric technology has already been considered in the area of criminal justice, border protection, financial services, and digital identity. However, its role in the world of the mobile app development industry is quite new yet effective.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">It is considered by the <\/span><a href=\"https:\/\/dianapps.com\/android-application-development\"><strong>Android app development companies<\/strong><\/a><span style=\"font-weight: 400;\"> to introduce various functionalities and benefits in the environment, a few of which we will cover in the next section of the article.<\/span><\/p>\n\n\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Benefits-of-Adding-Fingerprint-Authentication-in-Your-App\"><\/span>Benefits of Adding Fingerprint Authentication in Your App<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">The foremost advantage of considering fingerprint authentication for security reasons is that human fingerprints are unique. They are not the same even in the case of twins, which implies that no two people can use the same fingerprint for mobile app security.<\/span><\/li>\n<li>One of the biggest challenges associated with a password and other traditional verification practices<span style=\"font-weight: 400;\"> is that users often lose or forget them. However, it is not possible in the case of fingerprint authentication, which eases the process of identity verification.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Unlike voice, face, or other biometric factors, we have ten different fingerprints to employ. This implies that hackers need to experiment nearly ten times to guess the right security key within limited chances offered, which further indicates higher security.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Lastly, using fingerprints for identity validation is quite easy and effective. A user does not need to be in a particular gesture or environment to relish the perks of fingerprint authentication.<\/span><\/li>\n<\/ol>\n\n\n\n<p><span style=\"font-weight: 400;\">Because of such benefits, not only development teams are showing an interest in the fingerprint authentication process, business leaders are also considering it as an imperative factor in the process to hire android app developers. Something that further indicates that it is a must for every developer to be familiar with the process to integrate fingerprint authentication in android application development.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">So, let\u2019s wrap up this article covering the same.<\/span><\/p>\n\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" class=\"wp-image-397 aligncenter\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2020\/08\/Fingerprint-blog-2-01-1024x576.jpg\" alt=\"\" width=\"603\" height=\"332\" \/><\/figure>\n\n\n\n\n\n\n\n<h3><span class=\"ez-toc-section\" id=\"Check-for-Device-Support\"><\/span>Check for Device Support<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n\n\n<p><span style=\"font-weight: 400;\">Before investing your efforts and time into the fingerprint authentication integration process, it is profitable to confirm if the devices used by your target base will be supporting the feature or not.\u00a0<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">So, to ensure that, make a list of devices you are targeting and bring one to your environment. On doing so, call &#8211;<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">BiometricManager.from(context).canAuthenticate()<\/span><\/p>\n\n\n\n\n\n<p><span style=\"font-weight: 400;\">This will result in display of an int value on the screen, which can be &#8211;<\/span><\/p>\n\n\n\n<p class=\"text-left\" style=\"text-align: center;\"><code style=\"font-weight: 400; color: #0000ff;\">public static final int BIOMETRIC_ERROR_HW_UNAVAILABLE = 1;<\/code><\/p>\n\n\n\n<p class=\"text-left\" style=\"text-align: center;\"><code style=\"font-weight: 400; color: #0000ff;\">public static final int BIOMETRIC_ERROR_NONE_ENROLLED = 11;<\/code><\/p>\n\n\n\n<p class=\"text-left\" style=\"text-align: center;\"><code style=\"font-weight: 400; color: #0000ff;\">public static final int BIOMETRIC_ERROR_NO_HARDWARE = 12;<\/code><\/p>\n\n\n\n<p class=\"text-left\" style=\"text-align: center;\"><code style=\"font-weight: 400; color: #0000ff;\">public static final int BIOMETRIC_SUCCESS = 0;<\/code><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Now, if the value for the desired devices is 1, then only proceed for the further process.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Construct-a-BiometricPrompt-instance\"><\/span>Construct a BiometricPrompt instance<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n\n\n\n\n\n\n<p><span style=\"font-weight: 400;\">To encourage your users to use the fingerprint authentication option over other available ones, it is profitable to create a BiometricPrompt instance.\u00a0<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Now, when focusing on the same, it is required to consider three-parameter while building constructor &#8211;<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Fragment or FragmentActivity &#8211; This will be a reference to the client\u2019s activity.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Executor &#8211; This parameter deals with the callback events.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">BiometricPrompt.AuthenticationCallback &#8211; This is an object that focuses on receiving authentication events.<\/span><\/li>\n<\/ul>\n\n\n\n<p><span style=\"font-weight: 400;\">Here, the first two parameters are somewhat direct, while the third one demands more attention.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">For the first argument, you can use the calling FragmentActivity or Fragment. Likewise, for the second one, you can employ the executor that suits your needs. For making this far simple, we will be using main executor.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">But, when it comes to the third parameter, it will receive the authentication results and offer <\/span><span style=\"font-weight: 400;\">android app development<\/span><span style=\"font-weight: 400;\"> companies a CryptoObject related to the authentication. A simple example corresponding to this is &#8211;<\/span><\/p>\n\n\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">val biometricPrompt = BiometricPrompt<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">(<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0this, \/\/ assuming it&#8217;s being called inside an Activity<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0mainExecutor,<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0Callback<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">)<\/span><\/p>\n\n\n\n\n\n<p><span style=\"font-weight: 400;\">For the callback, we can rely upon this command line &#8211;<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">val callback = object : BiometricPrompt.AuthenticationCallback()\u00a0<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">override fun onAuthenticationSucceeded(<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0\u00a0\u00a0result: BiometricPrompt.AuthenticationResult\u00a0<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">)\u00a0<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">{<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0\u00a0\u00a0\/\/ user authenticated<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0\u00a0\u00a0\/\/ now you can allow him to perform that sensible action<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0\u00a0\u00a0someSensibleAction()<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0}<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"color: #0000ff;\"><span style=\"font-weight: 400;\">\u00a0<\/span><span style=\"font-weight: 400;\">\u00a0override fun onAuthenticationError(<\/span><\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0\u00a0\u00a0errorCode: Int,<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0\u00a0\u00a0errString: CharSequence<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0) {<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0\u00a0\u00a0\/\/ called when an unrecoverable error has been encountered<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0\u00a0\u00a0\/\/ and the operation is complete<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0\u00a0\u00a0\/\/ example: user clicked the negative button or<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0\u00a0\u00a0\/\/ tried too many times and is locked up<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0}<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0override fun onAuthenticationFailed() {\u00a0\u00a0\u00a0\u00a0<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\/\/ called when biometric was valid but not recognized<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0\u00a0\u00a0\/\/ example: the user tried to authenticate<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0\u00a0\u00a0\/\/ with a finger that isn&#8217;t registered<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0}<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">}<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">When you enter this code, the dialog box displays the message (errString) automatically. However, in the case of any error, you have to redirect users to some other flow. Also, it is required for all the Android app development companies to keep into consideration that when users tap on the negative button, it leads to an authentication error with <span style=\"color: #0000ff;\">ERROR_NEGATIVE_BUTTON<\/span>.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Develop-the-Authentication-Dialog\"><\/span>Develop the Authentication Dialog<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n\n\n\n\n<p><span style=\"font-weight: 400;\">Using BiometricPrompt.PromptInfo.Builder, you can create an authentication dialogue button &#8211;\u00a0<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">val promptInfo = BiometricPrompt.PromptInfo.Builder()<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0.setTitle(&#8220;Title&#8221;)<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0.setNegativeButtonText(&#8220;Negative Button Text&#8221;)<\/span><\/p>\n\n\n\n<p style=\"text-align: center;\"><span style=\"font-weight: 400; color: #0000ff;\">\u00a0\u00a0.build()<\/span><\/p>\n\n\n\n\n\n<h3><span class=\"ez-toc-section\" id=\"Authenticate\"><\/span>Authenticate<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">When all the aforementioned steps are followed religiously, you will receive two objects. Using the, you can call biometricPrompt.authenticate(promptInfo) and execute the actual authentication. This will display the authentication dialog and send the events to the specified callback.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">With this, we have covered why and how to introduce the functionality of fingerprint authentication into your mobile app. Hope you find this information useful!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last year, more than 5,183 breach cases were recorded which signified the loss of 7.9 Bn user data records. Android and iOS patches were introduced to deal with around 440 different types of security issues.<\/p>\n","protected":false},"author":1,"featured_media":3920,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_wp_applaud_exclude":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-384","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-business"],"featured_image_src":{"landsacpe":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2020\/08\/Fingerprint-1-1140x445.jpg",1140,445,true],"list":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2020\/08\/Fingerprint-1-463x348.jpg",463,348,true],"medium":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2020\/08\/Fingerprint-1-300x106.jpg",300,106,true],"full":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2020\/08\/Fingerprint-1.jpg",1440,507,false]},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.12 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>4 Simple Steps to Add Fingerprint Authentication to Your Android App - Learn About Digital Transformation &amp; Development | DianApps Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dianapps.com\/blog\/4-simple-steps-to-add-fingerprint-authentication-to-your-android-app\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"4 Simple Steps to Add Fingerprint Authentication to Your Android App - Learn About Digital Transformation &amp; Development | DianApps Blog\" \/>\n<meta property=\"og:description\" content=\"Last year, more than 5,183 breach cases were recorded which signified the loss of 7.9 Bn user data records. Android and iOS patches were introduced to deal with around 440 different types of security issues.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dianapps.com\/blog\/4-simple-steps-to-add-fingerprint-authentication-to-your-android-app\/\" \/>\n<meta property=\"og:site_name\" content=\"Learn About Digital Transformation &amp; Development | DianApps Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-17T09:53:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2020\/08\/Fingerprint-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"507\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Vikash Soni\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vikash Soni\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"4 Simple Steps to Add Fingerprint Authentication to Your Android App - Learn About Digital Transformation &amp; Development | DianApps Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dianapps.com\/blog\/4-simple-steps-to-add-fingerprint-authentication-to-your-android-app\/","og_locale":"en_US","og_type":"article","og_title":"4 Simple Steps to Add Fingerprint Authentication to Your Android App - Learn About Digital Transformation &amp; Development | DianApps Blog","og_description":"Last year, more than 5,183 breach cases were recorded which signified the loss of 7.9 Bn user data records. Android and iOS patches were introduced to deal with around 440 different types of security issues.","og_url":"https:\/\/dianapps.com\/blog\/4-simple-steps-to-add-fingerprint-authentication-to-your-android-app\/","og_site_name":"Learn About Digital Transformation &amp; Development | DianApps Blog","article_published_time":"2020-08-17T09:53:29+00:00","og_image":[{"width":1440,"height":507,"url":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2020\/08\/Fingerprint-1.jpg","type":"image\/jpeg"}],"author":"Vikash Soni","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Vikash Soni","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dianapps.com\/blog\/4-simple-steps-to-add-fingerprint-authentication-to-your-android-app\/","url":"https:\/\/dianapps.com\/blog\/4-simple-steps-to-add-fingerprint-authentication-to-your-android-app\/","name":"4 Simple Steps to Add Fingerprint Authentication to Your Android App - Learn About Digital Transformation &amp; Development | DianApps Blog","isPartOf":{"@id":"https:\/\/dianapps.com\/blog\/#website"},"datePublished":"2020-08-17T09:53:29+00:00","dateModified":"2020-08-17T09:53:29+00:00","author":{"@id":"https:\/\/dianapps.com\/blog\/#\/schema\/person\/0126fafc83e42bece2acbfe92f7d0f4f"},"breadcrumb":{"@id":"https:\/\/dianapps.com\/blog\/4-simple-steps-to-add-fingerprint-authentication-to-your-android-app\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dianapps.com\/blog\/4-simple-steps-to-add-fingerprint-authentication-to-your-android-app\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dianapps.com\/blog\/4-simple-steps-to-add-fingerprint-authentication-to-your-android-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dianapps.com\/blog\/"},{"@type":"ListItem","position":2,"name":"4 Simple Steps to Add Fingerprint Authentication to Your Android App"}]},{"@type":"WebSite","@id":"https:\/\/dianapps.com\/blog\/#website","url":"https:\/\/dianapps.com\/blog\/","name":"Learn About Digital Transformation &amp; Development | DianApps Blog","description":"Dianapps","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dianapps.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/dianapps.com\/blog\/#\/schema\/person\/0126fafc83e42bece2acbfe92f7d0f4f","name":"Vikash Soni","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dianapps.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2022\/07\/cropped-vikash-96x96.png","contentUrl":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2022\/07\/cropped-vikash-96x96.png","caption":"Vikash Soni"},"description":"Vikash Soni, the visionary CEO and Co-founder of DianApps. With his profound expertise in Android and iOS app development, he leads the team to deliver top-notch solutions to clients worldwide. Under his guidance, the company has achieved remarkable success, earning a reputation as a leading web and mobile app development company.","sameAs":["https:\/\/www.linkedin.com\/in\/vikash-soni-59726530\/"],"url":"https:\/\/dianapps.com\/blog\/author\/infodianapps-com\/"}]}},"_links":{"self":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/384","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/comments?post=384"}],"version-history":[{"count":0,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/384\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/media\/3920"}],"wp:attachment":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/media?parent=384"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/categories?post=384"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/tags?post=384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}