Some Valuable Tips for Mobile Application Developers Part 2

In previous part 1, we have discussed about some distinct observations made in regards to mobile app development. Now, keeping thread continue, we will discuss some other aspects of successful mobile application programming.

Design for All Ages

Unlike web, mobile devices are vary in sizes and processing power as well as have performance issues altogether different than its big sister devices on the web. For instance, small texts are unreadable for middle aged to old aged audience where our team takes help of retina display and somewhat larger fonts as defaults. Scrolling is easy on touch devices so we expand mobile layout vertically instead horizontally.

Same the way image optimization is our prime concern so low capacity mobile processors never feel performance issues and our teen age and toddler audience can enjoy various games and entertainment application in engaging ways. We know the differences in the size of fingers of our audiences so our UI elements focus first on the biggest size fingers when drawing hotspots.

It is true that our younger generation is tech-savvy and quick learner against their elders so we keep these psychological and behavioral aspects during our mobile app designing and programming. We take through research of user experiences prior to and in between the mobile development process. Thus, we assure comfort for the all age people and make app self-learning and easy to operate without losing its charms by experimenting new paradigm for new generation.

Smart Prototyping

Today our mobile apps comes with enough intricacy in features as well as functionality therefore, translating them into drawings is tough and inadequate to understand the whole picture of the app. In due course, our team is banking on latest prototyping tools that allow designing click-through prototypes from the simple hand drawings or make all prototypes on the mobile devices showing all interactivities we want to design. We know excellent wireframing techniques and tools to offer nearly accurate simulation of app for the patrons who are seated faraway places in different time zones.

Balance in Design

Our team never makes extremely simple design that looks flat and boring using bit variations in UI components while we never make too complicated design that users either can’t use or feel frustrations. Our UX professionals spending enough brainstorming over each stage of designing and programming.

Take Gradual Advancements

We offer some special things to our first time users so they find app useful and valuable. Our design also offering some more utilities for the subsequent or repeat users so they stick with app with enough attachments. Moreover, we take regular updates of the mobile app so our loyal users find it contemporary and something latest updated features and functionality. Thus, we never leave our user to see at other apps in app store and fulfil relevant needs with the same app design by us.

Some Valuable Tips for Mobile Application Developers Part 1

Mobile UI at Lujayn
Mobile UI at Lujayn

There are tons of advices floating on the web for the mobile application developers. Despite these all there are plenty of iOS and Android applications registering each day in the marketplaces, which are hard to use, sometime ugly, and many times useless at user perspectives. Today I would like to discuss instead of giving advices regarding to these above mentioned failures.

Honor Fundamental UI Assumptions of the Platform

Today as a mobile developer I have seen that many clients are approaching us for porting mostly from iOS to Android or vice verso. Some of them wish to translate their website or web application in to the mobile app and rest are seeking help to port on other platforms. However, we accept their projects happily, but our tasks becomes difficult when they insist us to replicate either same UIs or user experiences while translating them from one platform to another particularly in case of consumer apps.

It is true that corporate apps have multiple contexts and used on variety of devices therefore, some standardization is must in order to create familiarity in usage, but we can’t implement same for consumer apps where user experiences matter more than rest of expectations to achieve success. Therefore, we have to design UI elements according to the most prevalent practices on the respective platforms. For instance, menu design and menu access are altogether different in iOS than in Android where many things can be controlled by hardware buttons.

In short, our mobile developers studied design conventions regarding to the targeted platforms and niches of the apps. The most challenging part becomes the porting from web to mobile where clients want to translate each feature and functionality on the mobile and that is not possible in sense of user experiences.

Take Advantages of Platforms and Devices

I am working in a team and some of the developers have domain expertise on iOS platform while majority of programmers have Android platform experiences and rest are on Windows and other platforms. Therefore, I have made sharp observations regarding to the properties, peculiarities, and drawbacks of various mobile platforms and devices.

However, iOS has less variation in sense of OS because Apple immediately withdraws backward compatibility when a new version introduce in the market. Same the way iOS devices are not much differ in hardware features except inclusion of some advance features and functionality.

The real challenges for our team appear on Android platform where fragmentation is a rule, not exceptions. Therefore, we especially train our Android team to take advantages of the devices in terms of hardware features like camera, GPS capability, sensors support particularly from third parties. This approach win the heart of our end users hence our patrons because they have hardly idea that we can perform some additional tasks with this device or the latest version of OS of the mobile. Of course, we have to go some extra mile to teach the usage of devices and guide them for new UIs.

Small Steps towards Meeting Mobile App Developer Crunch

Today we are experiencing great demand of mobile app developers in job market as well as for freelancing work. This upsurge of mobile application programmers is not contributing by web and mobile development companies, but also small to big enterprises, which are scrappy to create their landscape on tiny devices.

Everyone Demands Experienced Mobile Programmer

No doubt, we have big pools of web developers across the globe who are kin to jump into the mobile bandwagon, but their training and most importantly opportunities are crucial factors. I have noted in every post in Elance that clients need some sort of previous experiences in their niches or ask for the live examples on the marketplaces of iOS or Android.

Perception of Web Programmers towards Mobile Development

If we digger deep, we will find a big lacunae in the approach of the web developers who are aiming to jump on mobile development platforms. They mostly perceive mobile designing or programming as a miniature of the desktop app or website. Therefore, they treat mobile application programming project as making things smaller or splitting in to the separate screens, just missing the use cases on fragmented devices.

Outsourcing and In-house Team

It is true that training of mobile developer is bit costly in terms to resources and time. For instance, iOS platform demands set of Apple devices, tools, and technologies, whereas Android has altogether different requirements despite being an opensource platform. The mind boggling things gulping Android development companies are fragmentation issues on hardware as well as OS sides.

Thus, establishing mobile team in-house is challenging task and only becomes viable when you have constant requirements on back-to-back app development or for maintenance or updates. Therefore, my advice is to hire in-house mobile developer team whenever you see the threshold in outsourcing, otherwise outsourcing is the best alternative for quality and affordability.

Investment in Training of Mobile Developers

Unlike web developer the training of mobile developers takes bit more time and good trainers. If we are going to see scenario in outsourcing companies you will find a battle field there. Since the demand of skilled mobile programmers are hitting outsourcing provider companies equally, senior developers are changing their job in order to grab fatty packages from talent hungry outsourcing companies. This creates vacuum in field of trainers or experienced developers.

At other facet of the coin, outsourcing companies can’t hike their rates due to stiff competition in the market. Thus, creating a stable and long lasting talented as well as experienced team of mobile developers is a daunting task in itself. Fortunately, attitude of academic institutions to adapt new technologies in their curriculum is morale booster for outsourcing companies.

Thus, we have fresh graduates coming with new domain expertise in their academic belt and ease the work of senior mobile developers or trainers a lot. Thus, HR managers have to check only the project type they have done during graduation and its relevancy with their vacancies.

Diversity in Domain Expertise

One more improvement is visible in job market across the world is new generation of mobile programmers are not sticking with a single domain i.e., either iOS or Android, but take all major platforms as granted to them. Apart from these, they learn essential allied skills such as graphics designing, HTML, CSS, JavaScript, jQuery, Ajax, etc. at working level so they can create highly conductive and supportive development environment in the mobile development company.

In short, modern generation of IT graduates have changed the paradigm entirely by adopting practical attitude towards diverse devices including smartphones, tablets, Google glass, smart iWatch, etc. wearable gadgets.

Be Smart While Optimizing WordPress Website-Sprites

We learned many things regarding to the various WordPress optimization techniques and their ensue at negative side in our previous posts like Be Smart While Optimizing WordPress Website-Object Caching.

Now, we need to think over other performance boosting techniques used by modern WordPress website developers in order to deliver best results in their side. Among these all techniques usage of sprites are highly favourite in web developer community. Smart developers are adding all navigational elements and most of UI elements in to sprite.

Concept of Sprite

The basic concept of sprite is to combine multiple images into one image adding pixels in one code so they load image in progressive manner and save our visitors to abandon the site waiting for full loading of different images. This speed up the process of page loading as well as boosting interactions in dynamic website with dynamic content.

Problems with Sprite

We need to be careful while adding more pixels into the sprite as mobile browsers have some limit to load heavy images or hefty pixel data at one time. Particularly, iOS and Android devices showing problems in loading with excessive sprite data. If you are going to split sprite image in to two or more fractions by calculating the dimension of the image you can load them easily, but it seems weird when they display on the mobile.

Possible Solutions

Thus, the ultimate solution of this problem is to limit the size of image by calculating them using a tool devised by William Malone for Safari browsers. This way you will able to devise new images with different sprite and will save yourself from adjusting CSS code that a big sprite is using in order to split the big image.

Other Techniques

Other WordPress website optimization techniques include the usage of CSS and JavaScript Minification where we have to remove the non-essential characters such as colons, semi-colons, new lines, etc. from the CSS and JavaScript code. This way we can reduce the file size and hence they improve the speed and overall performance. In order to make code more compact many plugins are out in the market.

The problem arises with these plugin usage when they act aggressively and start rearranging CSS selectors or grouping the properties in weird ways. This ultimately breaks the logic of the document code and resulting into unpredictable behaviour of the web page or entire WordPress website.

Therefore, I would like to advice my WordPress developer fellow to avoid such aggressive minification plugins at all and use online FreeFormatter services.

Gzip is an another speed boosting services where you will find all code and components downloading in zip file manner compressed in certain ways. Latest browser can unzip or decompress these Gzip components and reduce load on bandwidth and time in loading. Unfortunately, Gzip demands mod-deflate installed on server and many hosting services are not equipped with it.

Be Smart While Optimizing WordPress Website-Object Caching

In my previous post Be Smart While Optimizing WordPress Website-Reverse Proxies I have discussed important issues regarding to WordPress website performance optimization techniques and tools when we apply reverse proxies. I have torched problems may arise with reverse proxies implementations.

Now, keeping the threads continue I am going to explain the role of object caching or Memcached in modern website performance where hefty database is norm in e-commerce category websites in particular.

Role of Object Caching in WordPress Website Performance

Generally websites with heavy traffic or e-commerce websites are experiencing plenty of request to its database in form of various queries. Therefore, MySQL mechanism is becoming constantly engaging in accomplishments of such queries each time the requests have made. This poses extra load to the server and bandwidth in bonus.

Smart WordPress web developers have analysed the interaction between server-clients and with databases in particular and found out that most of the queries are repeating in nature. Therefore, they have devised object caching mechanism or Memcached system that takes help of RAM at server to store this queries and their output in form of cache and serve that directly when the requests have made instead exploring database each time from the scratch.

Things Go Wrong with Object Caching or Memcached

In most of the cases this Memcached is working beautifully and serving its purposes, but in some odd cases it behaves in weird ways. For instance, in case of badly coded WordPress plugins, which are tending to store huge amount of data like big images. Now, trouble begins because Memcached can store limited data on RAM so it tends to delete the previously stored data in order to store new incoming images. Unfortunately, this process couldn’t finish due to oversize image data and previous data has been deleting in due course.

This way Memcached found empty and adding another service to empting and filling the cache that slow down the processors or RAM and clients instead getting rapid response ending up with slow performance. However, this is not desirable at any cost and we have to either disable the services of that badly coded plugins or Memcached itself.

In short, we have to take smart decisions while optimizing WordPress websites using modern techniques like Memcached and run system survey beforehand to find the possible bottlenecks.

Be Smart While Optimizing WordPress Website-Reverse Proxies

Today we are hard pressed to perform best while website performance is in question while negotiating with clients. Ever shortening waiting period among the new generation of visitors and fragmented devices on the hardware and software fronts making task much daunting, if not impossible.

WordPress Optimization

Among these all, website loading is a primary criterion and dealing effectively with it is a guarantee of success to grab next projects for a WordPress website developer. However, WordPress is designed to offer best performance in this regard, but some other techniques of WordPress optimization for performance are heavily used by modern web developer community. Therefore, I have decided to dive in deep and know all facets of WordPress website optimization techniques in this post.

Smart Implementation of Reverse Proxies

The role of reverse proxies is to stand in between the visitors and server. Fundamentally, when a request for a web page is made by a visitors it triggers some actions on the server and server execute calls to the database to deliver output in form of static and dynamic resources to visualize the page, mostly in form of HTML.

Mechanism of Reverse Proxies

These resources from the database are shipping to the client device and downloading process takes place. Unfortunately, this process is repeating with each request. Thus, server has to work hard frequently or constantly to generate HTML output of the web page or entire website. Here one mechanism plays vital role to avoid repeated output generation process on the server and that is reverse proxy. In fact reverse proxy is caching the output or results generated during the first request. It then delivers these cached results on next requests and saved time and computing resources of server to generate repeated output for the same requests.

Problems Arise Due to Reverse Proxies

At first glance, reverse proxies are looking great as they speed up the loading process and decreasing the computing load on the server, but they also create sever problems if implemented wrong. For instance, in WordPress website we have to implemented additional tweaks to clear the cache correctly as WordPress isn’t natively supporting the reverse proxies at all. This taking cache and clearing cache mechanism demands smart technical implementations.

Technicality of Reverse Proxies

Let’s dig it deeper in technical terms. WordPress has some default hooks (events) in its core that shoot the order to clear the cache made by reverse proxies on the server. These events comprise of major tasks such as doing WordPress updates, adding post, adding comment, deleting post and comments, etc. Thus, whenever these major events taking place reverser proxies updating the cache and reflect the latest changes on the web.
Now, real problems arise when something happens outside these core events that can triggers the purging of cache because it don’t reflect those changes immediately and your WordPress website users have to rely on previously taken cached copies of the web pages.

When Problems Arise Due to Reverse Proxies

During WordPress Core Updates: technically, WordPress puts website in maintenance mode when updates of core (version) taking place. Now if reverse proxies are caching copies during maintenance mode they will come with error reports or stand still in maintenance mode and don’t let users to perform any action until the new cache happens and live pages are serving. Now, how will you tell reverse proxies that your website is in maintenance mode so please don’t cache the copy!
During WordPress Plugin Updates
: during plugin update WordPress generally delete the entire folder of that plugin and add new one with new files. This means plugin and its relevant features as well as functionality are stop or halted temporary and resume again when update of plugin finishing. Now, what if reverse proxies taking cache during inactive state of that plugin and visitors want to use those features or functions on your website? How do you tell reverse proxies that half for some time please as our plugin updates are taking place!

Planning A Well Optimized Mobile E-Commerce Website Part 1

Today we are living in device agnostic era where multi-screen is a norm in industry and it is further becoming complicated with invention of innovative devices with mobility. However, web is a primary carrier and its accessibility is ubiquitous on all such devices without any doubt.

Therefore, to have a website or application based on the web is must have requirements for any business to survive in their fierce competitions. The days have gone when we restricted up to desktop users in mind when our clients approaches us for website development of web application development for our businesses.

Today we web designers and web programmers are facing unprecedented challenges in assumption of our website users, their use cases, and most importantly their behaviour regarding to various factors of our modern life and purchasing. Therefore, in this short series I would like to address what to do when we are going to optimize mobile e-commerce website or app integrated with web services.

Location and Time Periods of Mobile E-Commerce Website Users and Usage

First of all, we will think the locations of the usage of our mobile specific or responsive online storefront. Just imagine the life style of our modern users in urban, semi-urban, rural areas so you will find the most possible locations categories of your mobile e-commerce website and perfect clues for their use cases.

Morning surfing

E-commerce web site surfing begins from the morning, but not in early morning, as our most of users get time to surf the web when they heading towards their workplaces and get some sigh during their commuting. This morning time is mostly devoted to the smartphones as they are very handy device during you are on the go.

Therefore, we can say that our users may be stay in the queue at bus, train, etc. stations. They may be in between the way and either standing or seating during their journey. Sometime morning breakfast table also occupy the moments spending on the web and the same is true for bath or toilet for highly busy executives, but not all.

Working Hours Surfing During Daytime

During working hours on the offices or shops, we think about the large desktops or laptops in many cases to access our e-commerce websites and most of purchasing taking place during this longer period. Therefore, we can’t eliminate big sister devices at all from the our targeted device though we are following mobile first approaches. Here mobiles are now overcoming the desktops or laptops as our modern users are sticking with mobiles or tablets even in their workspace.

If we think deeper, we can see the mix usage of devices during the pick time of working days as our users use mobiles during their lunch or launch breaks, tea-breaks, and breaks during meetings. At this time, colleague or friends are influencing the purchasing rate and decisions so this one is highly typical e-commerce surfing period when we are thinking of mobile e-commerce website optimization.

Evening or Night Surfing

After retuning or during returning from the work our mobile e-commerce visitors use tablets in large numbers to access our e-commerce store. Reasons are varying, but tablets are offering comfortable gestures during seating in common room and watching TV or enjoying company with family members. Many access our online store during commuting in bus, car, or train. Thus, this one is peak period for tablet users and substantial amount of shopping taking place during late evening to early night period.

 

Incorporate Current Trends to Make Your Website Look Fresh and Relevant

In 2005 when I have started web designing and web programming, we all have an awesome platform and it was Micromedia Flash. Yes, Adobe was not on the horizon except for Photoshop.

With Flash, we were creating entire website and lots of animations, splash pages, introductory presentations, etc. Unfortunately, today Flash website or Flash technology itself is considering as antique piece. This indicates that how time is changing fast and trends are changing rapidly. Many new styles comes and many go to disappear in timeline.

Our tastes, standards of likeness, fascinations, and definition of sumptuousness changing ever with the pace of time. Therefore, as successful web designers, we have to keep learning constant, keep our eyes on coming trends and technologies, and most importantly try to experiment new things with some creative thoughts.

 

Website Performance Matters More

Today we can’t think about the Flashy animations, splash pages, or heavy weight images, which can kill time and interest of the ever shortening attentions of our audience. Load fast and place important things in logical yet alluring manner using superb information architecture and content strategy. UX is a new buzzword in the market. Thus, you have to respect the needs of the market and afford UX professional or learn UX fundaments right now.

 

Flat yet Intelligent Web Designs Rocking

Today we need intensive image optimizations in order to make responsive designing or mobile specific web layouts. This directly eliminating usage of excessive Photoshop effects such as rounded corners, drop shadows, reflections, embossing, gradients, and other various filters as they increasing our KBs. The biggest players like Google, Apple, etc. are more banking in flat and sweet designing.

Today our main focus is to deliver message of the website or image effectively therefore, we have to avoid all distracting things from the ways of the eye flow of our audience. Thus, white spaces, judicious style of texts and most importantly simplicity matter more here. We have only one slogan “Go to the point, no disturbance please”.

 

Off-Canvas but Smart Web Designing

However, popups and flyers/fly out windows are prohibited in the beginning of the website as they cause higher bounce rate. We still use popups intelligently in our web and mobile designing. As most of the time we never prefer to let our users to leave their existing page, product page in e-commerce, in particular, therefore, we have to take help of popups or fly out windows to show additional yet temporary information.

Off-canvas approach are desirable in present responsive web designing era as they solve our major problems without creating distractions in user experiences and various iconic designing prefer springing or popups whenever user tap it or hover it.

Finally, learning HTML5, CSS3, JavaScript, jQuery, and other contemporary scripting equip us to accomplish high quality animations, splashing effects, and much more in real-time using Ajax like technologies are our insurance against the success in modern web designing.

 

Inside Out of the Social Logins

Today most of the web applications and all mobile applications, which are interacting with any sort of web services on the web, prefer logins and registration of their users. There are many aspects to go for login besides the security concerns.

Most of the businesses wish to have user data in any form and want to uses either in promotional purposes or in monetise it somehow. Therefore, collecting user data becomes damn easy with signup requirements.

On the other facet of coin, filling up seven to ten data input fields, repeatedly on many sites, is a tedious job for a seasoned tech-savvy Internet user too. Therefore, modern UX designers have device social logins for their ease make life easy for many. Generally, we, almost all, have account on social networking sites like Facebook, Twitter, Google+, etc. and we have already feed tons of personal information during their registration.

With social logins, users need not to fill up exhaustive sign up forms on various websites or in mobile applications and they simply have to give access of their social networking site access. This one-time login totally eliminates lengthy sign up process and remembering various usernames and passwords. For instance, Pinterest and StumbleUpon are offering social logins options besides their traditional e-mail base signup process.

 

At User Point of View

At first hand, social logins have some apparent advantages at user point of view such as:

  • Quicker Signing up
  • A predictable signup process where method is streamlined and uniform
  • Low stress on memory as you have to remember login data of only social networking sites you are using frequently
  • The most important factor is trust or reliability because you don’t know which site is using your sensitive personal data where. While social networking sites have strict privacy policies and they never let to use login data by any suspicious site at all

 

At Web Developer Point of View

  • Web Developers save themselves from setting up authentication system from the scratch, which is quite secure in all terms. Apart from this, if you keep social login at optional level, you have additional verification layer that this person is not dummy and real one living in real world.
  • If you wish to give intensive and exclusive user experiences by personalized your application, you have good opportunity to extract personal data from the social network
  • In some cases, users hesitate to go ahead with an app that have blank welcome screen or that app is newly developed and not have much popularity in the masses. If developer brings social login there, users will put ultimate trust and will sing up promptly.
  • Social logins provide excellent spam protection to your application if you involve them in your logins because they are using the best of the best spam and hacking protection technologies and tools and you can take advantage of them indirectly in your web programming project.
  • Finally, you can take advantage of social posting by taking prior permissions of your users to post the updates and news of your app using social login. This way you can make your application more engaging and viral at marketing point of views.

 

Not to Use Social Logins

If you know, very well that when and where to use the social logins and not to use you can make your web development and mobile development client happy forever.

For instance, you can’t use social logins when privacy concerns are primary issue. Same the way, you should avoid social login when you have to deal with multiple accounts. Of course, you have to restrict in offering of social accounts options as too much options for login may cause decision paralysis in users so two or three options are enough in most of the cases.

Only allocating social login is not enough, and you need to keep track of analytics and check how many percentages of users are using your social login options. If there are fewer numbers, and your brand dilution is visible, you should withdraw social logins immediately and keep traditional protocol.

 

Use White Space as an Active Element in Your Web and Mobile Designing

Once upon a time web designers and even graphics designers for print were considering white spaces a wastage of real estate of the web or printing page. However, it was costing factors that lead print media to use maximum space whereas the size of monitors at that time force web designers to utilize the most available spaces on the small screens.

Today, both have changed and we are living in an user experiences era where we have new parameters to consider the hearts of the readers so let’s take a brief review of the usage of white spaces on the web designing front and their ultimate benefits in order to improve our ROI.

Benefit No. 1—Readability

Yes, we are living in fast-paced era where everyone suffering from time shortage syndromes and its ultimate solution is reading the text as quickly as possible. Now, tell me if you have a paragraph with condensed text and intimidating you grasp the content quickly, what will you do? Definitely, you may prefer to leave it and jump to another para or page, which is rather easier to read.

Now, if you technically deprecate that para you will find that whether the font size of the text is not good enough or the space between the two lines are not adequate to separate them properly and give ways to your eyes to read quickly. There might be some other factors like padding of paragraph margins might not enough and making it clumsy at first look.

Sure, the researchers on the readability have found out that if text font size and line height (space between the two consecutive lines) are not in ratio of 150%, means if font size is 10 then the line height should be 15 pixels. Same the way padding or leading space between the page margins and para should be somewhat more than 10 pixels or appropriate to the font size of the texts. Similarly, usage of bullets and other tricks to make texts scanning easy will prove useful to achieve greater readability.

Thus, judicial usage of white space makes texts easy to read and comprehend. The scientific reason behind it is that people love scanning the texts rather than reading it word-by-word. The same principle is working in case of images where congested typography is prohibited for sake of good user experiences.

Benefit No. 2—Comfort to the Eyes

If you leave enough white space in your image/graphics designing, it will offer a comfort to the onlookers and let them to focus on the main message of the image first. For instance, you wish to evoke a sensation through some graphics, but your typeface and their background is attracting attention first you might lost the delivery of your important message to your audience and visitors will leave image just after reading the text only.

Benefit No. 3—Smooth Eye Flow

This directly teach us that make secondary message subtle and suppress against the first one by offering enough white space in the graphics. Another important usage of white space is to make eye flow of the user smooth this directly leads them to focus on the main parts of the image

Benefit No. 5—Grab Attention

As in above para, we have seen that white space is an active element in the web designing of the content and the graphics designs so we can use the white space in some smart ways such as to grab the attention of the users. For instance, if you want to grab attention of the readers on the call-to-action button or an UI element you have to leave some extra white space around them and make the button prominent in the eyes of the visitors so they focus their thoughts on the message of the button and take appropriate action.

If we make call-to-action button heavy in size and color we can add more flare them by providing more white space around it and grab immediate attention of the customers in many e-commerce websites.

Benefit No. 6—Clustering the UI Elements

Yes, if you want to make some visual groups of texts or UI elements you have very handy arsenal and that is white space, which allows you to formulate groups, or clusters of the elements, which may grab ultimate attention and deliver a well-crafted message to the users of the website or web application.