VIR India

AgilizTech celebrates 72nd Independence Day with VIR India

What does freedom mean?

Does it mean freedom from coercion and slavery? The right to be free of all bonds and chains?

For VIR India, it is a privilege. A privilege that we are able to afford today because of the valiant efforts of freedom fighters 71 years ago, and the bravery displayed by our very own armed forces every single day. VIR India is a client of AgilizTech, an organization commenced with the aim of serving those who serve the nation. AgilizTech, on the occasion of the 72nd Indian Independence Day had organized a Fireside Chat with the team to talk about freedom, independence and their laudable initiative for the Indian Army.

The Fireside Chat

The VIR India team, consisting of Mr. MC Ram Mohan – Founder, Mrs. Aparna Goenka – Vice President, and Ms. Tharuni Priyadarshini – Director, visited our premises for an interactive session with the AgilizTech team. They explained how VIR India was founded in 2015 with the intent of giving back to the Armed and Paramilitary Forces, the respect they deserve. They do this by providing the armed forces community with the VIR Honour Membership, which enables them to avail exclusive offers and discounts on household articles, groceries, electronic gadgets and more at select partner retail outlets, and online platforms.

In the long run they plan to provide additional services such as banking (enabling the beneficiaries to easily apply and obtain credit cards), insurance (for vehicle, home and medical needs), education (for children of fallen comrades), and placement services (upskilling and re-skilling facilities to help them maximize their potential and have a stable income), among others. VIR India also plans to tie up with corporates to take this up as a CSR activity and widen their reach.

VIR India Team

We also had a Q&A session wherein the audience could pose questions and learn more about VIR India. One of the questions posed was an instance of customer delight wherein an army person had benefited from using the VIR India services. Ms Aparna Goenka told us of one of the orders by an army officer stationed in Kashmir who wanted to send flowers to his mother living down south. He used the VIR India services for that and expressed his happiness at being able to be there for her, even while he was serving his country. That was a special moment for the team, as it showed the power of this initiative.

Another question raised was on how VIR India will cater to the needs of those member families who are not digitally savvy and can’t use the mobile and web apps. Ms Aparna and Mr Ram Mohan explained that these days Jawans are more adept at using technology and hence can easily use the VIR India platform to fulfill their family’s needs. Since a section of society is still not well versed with tech, they plan to open call centers where users can call and communicate their needs. They started with the apps first and are slowly looking out for other avenues to reach a wider audience.

The interactive session helped us to understand how users were being benefited and also their roadmap to reach a wider audience in the future.

VIR India – A movement

VIR India is not just a venture, it is a movement aimed to honor, respect and give back to those who lay down their lives for the nation. We, as civilians, are bound to help these brave souls securely and easily integrate back with the society once their service term ends. We can do this by sharing the inspirational work being done by VIR India, and ensure that this initiative is spread virally for maximum exposure.

Let’s support this movement and make sure that the VIRs are made aware of this initiative and are able to reap its benefits.

AgilizTech Third Anniversary Celebrations

AgilizTech third anniversary bash – A day of reminiscence, inspiration and celebrations

We are elated to announce that AgilizTech completed three years of its journey on June 10, 2018. What started as a small aspiration of Mr. Ganesh Babu (MD and CEO of AgilizTech) has taken flight as an upcoming company in the IT services arena. To mark this important milestone, on June 09, 2018, the AgilizTech family congregated at Golden Palms Resort, Bangalore for a day of cheer and celebrations.

It was a cloudy Saturday when we assembled at Golden Palms resort. Set amidst lush greenery, the sights instantly refreshed us from the daily hustle and bustle of the city, and the glowing screens of our laptops. It was with this refreshed mindset and a jolly festive mood that the AgilizTech extended family (the team and their family members) gathered for the celebrations.

Hosted by Ms. Meghana Manjunath and Mr. Surya Saravana Kumar, the day started on a traditional note with a lamp lighting ceremony in which the guests participated.

agiliztech third anniversary

Guests participating in lamp lighting ceremony

Mr. Anand Gangoor, Head – Service Delivery at AgilizTech, welcomed the gathering and introduced the chief guest for the day, Mrs. Arundhati Rao, Director at DXC technology, an industry stalwart and motivational speaker, and the other dignitaries – Mr. Alakappan Sreenivasan and Mrs. Deivanai Alakappan Sreenivasan, Mr. Koilraj Jeyasingh (Solution Architect at TCS) and Mrs. Vijaya Bharathi Ganesh.

The event proceeded, with the organization updates provided by Mr. Ganesh Babu, Mr. Sujeeth Shetty (VP – Sales and Marketing at AgilizTech), Mr. Anand Gangoor (Senior Technical Delivery Manager) and Mr. Karan Singh (Senior Project Manager).

agiliztech third anniversary

Mr. Ganesh providing company updates

 

The speakers touched upon the past year’s performance, projects delivered, new customer acquisitions, new product rollouts and employee performance.

While Mr. Ganesh took us for a stroll down the memory lane and made us familiar with the current company position, and the roadmap, he also gave us the mantra for the year – 3Cs.

Competency Strengthening

Technical, Processes & Customer Focus

Aiming to strengthen our technical skillsets, streamlining process and having a razor-sharp focus on customer experience.

Constantly Innovate

Improve Productivity, Emerging Technologies & Customer Solutions.

Developing innovative solutions using the latest technologies, and reducing repetition and redundancy with a smarter, more productive way of working.

Consistently Grow

With existing Customers, New Customers & New Products

Improve service delivery and enhance customer experience thereby gaining recurring customers.

 

Mr. Sujeeth spoke on the importance of upskilling ourselves to serve customers better and take up more challenging opportunities. Mr. Anand elaborated on the service delivery practice at AgilizTech, bottlenecks and solutions, and Mr. Karan showcased the goodwill enjoyed by AgilizTech among current employees as well as aspirants using Glassdoor statistics.

 

What TAKE stands for…

Next, the chief guest Mrs. Arundhati Rao was called on stage to present her keynote, which was short yet impactful.

Mrs. Rao explained how we should apply the TAKE formula in our professional and personal lives to be successful. According to Mrs. Rao TAKE stands for:

T – ‘T’echnology

Wherein we ought to look at technology as a means to achieve ends. Technology is the great enabler that solves business problems. So, focus on how to end the customer problem, and then pick up a technology that suits the situation.

A – ‘A’spire

Often, people look at jobs as nine to five’s that pay the bills and keep us occupied. Mrs. Rao urged us to seek more from life by aspiring for higher goals. She stressed upon the point of building careers over holding jobs.

K –S’k’ills

In order to aspire and grow, individuals need to acquire and polish skills. In a fast-changing world, where a new technology emerges every other day, it is important to stay updated. While staying put makes one complacent, staying relevant to the industry helps one tap into new opportunities.

E – ‘E’mpower

Mrs. Rao explained that we must all empower ourselves by showing initiative and helming responsibilities even when it is not expected of us. We must not just do a job, we must own it.

It was a very inspiring 45-mins speech that motivated us all to be better employees and individuals. We are sure that these nuggets of wisdom from such experienced professionals would help us move ahead in our careers and lives.

Awards galore at the AgilizTech Third Anniversary celebrations

To recognize the contributions of the employees over the years, AgilizTech presented awards and certificates. The awards were handed over by the guests – Mrs. Arundhati Rao, Mr. Alakappan Sreenivasan and Mrs. Deivanai, Mr. Koilraj Jeyasingh, Mr. Ganesh Babu and his wife Mrs. Vijaya Bharathi.

Awards presented to the AgilizTech team members on the occasion of the third anniversary celebrations.

Posted by AgilizTech on Wednesday, June 13, 2018

 

Time for some fun

A Tabla Tale

Master Arnav, son of Mr. Anand Gangoor, entertained us all with his tabla prowess.

agiliztech third anniversary

Master Arnav on the Tabla

 

Dubsmash – A smash hit among the AgilizTech Team

The Dubsmash craze has swept the whole world and we Agilians aren’t immune either. The AgilizTech Fun Committee had asked the entire team to create dubsmashes and submit. It was quite a new way for everybody to let their hair down and get out of comfort zones. The result was a compilation of downright hilarious videos in a mélange of languages – Hindi, Kannada, Tamil and more. The audience thoroughly enjoyed the videos almost as much as the team did when creating them.

Apart from dubsmash, AgilizTech Fun Committee had also asked the team to create videos expressing their thoughts on AgilizTech’s third anniversary. What resulted was a beautiful compilation of videos where employees conveyed their heartfelt wishes towards the continued success of AgilizTech.

Here’s the video.

 

Cut the Cake!

No anniversary celebration is ever complete without a cake cutting ceremony. And we are not ones to be left behind. We had a beautiful 3Kg White Forest delicacy for the AgilizTech third anniversary celebrations, and the whole team participated in the cake cutting.

agiliztech third anniversary

Cut the cake!

 

Fun in the sun

With that the formal event came to an end and the AgilizTech family was free to enjoy lunch and the splendors of the Golden Palms Resort. The swimming pool was a major attraction as a lot of employees chilled in the blue waters. Later the team moved on to the cricket ground for some friendly matches, wherein individuals showcased their cricketing prowess.

The AgilizTech third anniversary was a day of merriment, motivation and celebration for the entire AgilizTech family. Three years is a very important milestone in our journey, and we will strive to work harder as there are many more miles to go and many, many more summits to climb. We also take this opportunity to thank all our customers, partners and well-wishers who have stood with us throughout this period and provided encouragement and support.

Onward, we march!

Customizing Notification Content in iOS before displaying to user

In this blog post, we piece together the steps involved in customizing notification content in iOS before displaying it to the user. Essentially, we will show how a chat application message can be customized to display a name for the sender’s number.

The need

In certain applications, for example chat apps, the server only saves the user’s numbers only. This is because the server cannot maintain the equivalent name of the mobile number as it is saved differently on each device. For example, the name Mr. Adam Smith can be saved as Adam, Adam Smith, Dad, Adam Smith 2, etc. Therefore, it is not possible for server to retain a name. Hence, it is upon the client, that is, the mobile app needs to display names and numbers appropriately, in notifications sent from server.

Developers can enable the application to find the equivalent name for a phone number that has sent you the message, by customizing the notification content in iOS using service and content extensions.

Let’s explore what extensions are and how to configure them, in the next few sections.

What is an extension?

Extensions are background applications, running independently from the app. They are around even when the app is not in the foreground. Service and Content extensions offer powerful new tools for customizing the notification information.

Service Extension

This object intercepts the push payloads from apps and helps developers to change content in the notification before it is presented.

Content extension

An object that presents a custom interface for a delivered local or remote notification. If you want to customize the UI of your notification you can use the content extension.

Note: Before getting started with notification extensions, the developer must be familiar with creating local and remote push notification.

 

Service Extension Setup

In the User Notifications framework, Apple introduced the Notification Service Extension. It’s a small program running in the background of your device that intercepts payload before notification center presents the push notification. In the Service Extension, you can modify your content with a UNMutablenotificationContent object modifying your content. That can be decrypting an encoded message or grabbing data in the userInfo to modify the content.

Setting up Service Extension

Here are steps to get started with the Service Extension:

  1. To set up the Notification Service Extension, you’ll need a new target in your application. In Xcode, go to File > New > Target.
  2. In the menu box that appears, select iOS. In the list that appears, select Notification Service Extension.

Notification Content in iOS

  1. Click Next and enter the product name. it is a good practice to suffix ServiceExtension to the app name (that gives more clarity) – for example, yourProductName ServiceExtention.

Notification Content in iOS

  1. Click Finish to complete setup.
  2. A dialog box appears seeking permission to activate the Service Extension Click Activate.

Using Service Extension

In the navigator a new group appears, which is the Service Extension. This group contains two files. Select the NotificationService.swift file.

This file consists of two functions and two properties. The core method used is the didReceive (Request: withContentHandler). This method assigns the content handler closure to one of the two properties. The other property, bestAttemptContent is a mutable copy of the push notification’s content. In this method, you change the content for the push notification, loading all that rich content you couldn’t fit in the payload, or do any change to the content you wish.

For example, Apple’s default template changes the title.   You can go ahead and customize your title by changing “bestAttemptContent.title”.

override func didReceive(_request: UNNotificationRequest, withContentHandler contentHandler:
@escaping (UNNotificationContent) -> Void)
{
self.contentHandler = contentHandler
bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)

let contactName = “Surya”
if let bestAttemptContent = bestAttemptContent {

// Modify the notification content here…
bestAttemptContent.title = \(contactName)”
contentHandler(bestAttemptContent)

}
}

 

Making changes in payload

Now that we have made adequate settings in the Service Extension, we will initiate changes in the payload. Ensure that you possess the key value pair in your payload’s aps directory.

 

“mutable-content”:1

Navigate to payload and add this key value pair. The result should look like this:

{
“aps”:{
“alert”:{
“title”:”9909912345″
},
“badge”:1,
“sound”:”default”,
“category”:”notification.category”,
“mutable-content”:1
},
“subtitle”: “How are you??”
}

You can test with this payload by using any 3rd party push testing tool. Here we are using NW pusher.
Notification Content in iOS

Configuring the Service Extension with user info

Follow the steps given below to configure the Service Extension:

  1. In Service Extension, click NotificationServiceExtension.swift file

The file has two functions – didReceive with contentHandler and serviceExtensionTimeWillExpire

  1. Place the custom information in the didReceive function. For example, you can change the notification title by editing this line:
bestAttemptContent.title = “custom Title”

 

  1. Place the custom information into the body, giving a list of the order, and add the subtitle to the subtitle property.

 

Note: You’ll need the userInfo dictionary. Let’s make referring to the dictionary easier by making it a constant in the function, casting it to the JSON dictionary type of [String:Any].

 

Here’s how it is done:

//get the dictionary
let userInfo = bestAttemptContent.userInfo as! [String:Any]

 

  1. Subtitles are user info in a payload but are a property of UNMutableNotificationContent, so they need to be transferred. Since it’s a dictionary entry, we’ll unwrap it and check for nil. If not nil, then we have a subtitle and can update the value. Let’s downcast the value to String when assigning it the subtitle content, since the dictionary has the value as Any.
//change the subtitle
if userInfo[“subtitle”] != nil{
bestAttemptContent.subtitle = userInfo[“subtitle”] as! String
}

 

For Example:

override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler:
@escaping (UNNotificationContent) -> Void) {
self.contentHandler = contentHandler
bestAttemptContent = (request.content.mutableCopy() as?UNMutableNotificationContent)
 
if let bestAttemptContent = bestAttemptContent {
// Modify the notification content here…
// bestAttemptContent.title = “Custom Title”

//Contact number from push payload has been received and the equivalent name of that number should be determined, and that name should be displayed as a notification title

let userInfo = bestAttemptContent.userInfo as! [String:Any]
guard let apsDict = userInfo[“aps”] as? [String:Any] else {return}
guard let alertDict = apsDict[“alert”] as? [String:Any] else {return}

if let contactNumber = alertDict[“title”] as? String {
let notificationTitle = findContactName(phoneNumber: contactNumber)
bestAttemptContent.title = \(notificationTitle)”
}

//change the subtitle
if userInfo[“subtitle”] != nil{
bestAttemptContent.subtitle = userInfo[“subtitle”] as! String
}
bestAttemptContent.subtitle = “How are you??”
contentHandler(bestAttemptContent)
}
}

 

Here findContactName(phoneNumber: contactNumber) is the custom method which retrieves the contact name from our contact list by comparing the mobile number which has been pushed from our payload

 

With this step we are ready with the Service Extension. In the next section, we need to configure info.plist

The Property List

We’ve a few more steps to complete before running the notification:

  1. Go back to Xcode. There one more file in the service extension we’ve yet to look at.
  2. Click on the info.plist and open NSExtension.
  3. Open the NSExtensionAttributes and access the UNNotificationExtensionCategory
  4. Content extensions run on categories, so whatever category this property is, that will be the category of the notification found in content.category. Change it to category.

 

This extension will run for only the notification.category notifications. If an extension has another category, it will not run. Remember to do this. If you forget this, the extension will not work for you.

Run the Notification

You are ready to run the notification. When you add extensions, Xcode often defaults to the run scheme for the extension. Check to make sure you are on your device run scheme for the app.

Results

In our payload we gave phone number and while receiving the notification we are getting the customized name.

Notification Content in iOS

 

References

  1. https://developer.apple.com/documentation/usernotifications/unnotificationserviceextension
  2. https://developer.apple.com/documentation/usernotificationsui/unnotificationcontentextension
  3. https://www.pushwoosh.com/docs/ios-10-rich-notifications-integration