Tag Archives: application

Is Progressive Web Apps The New Standard for Mobile Search?

is-progressive-web-apps-the-new-standard-for-mobile-search

In the early days, Google has predicted that the world is going to be more mobile. Therefore, they invested heavily to create and promote new method and technology that can deliver a better mobile web search experience. The main idea is to create fast, reliable, and engaging app-like experience via mobile browser. So, if you are a web developer or SEO analyst, this article will help your web works better on mobile.

How Does It Work?

Progressive Web Apps (PWAs) are designed to load “instantly”. They use routing browser through a script, better known as a Service Worker. The script eliminates steps otherwise required to access certain features or information directly from a website. PWAs also use more parameters, examining user behaviors and preference. As the result, the app can deliver personalized messages or webpage content likely to be of interest to a defined user persona.

Moreover, it locates an entire web page to a user’s local storage and places it in an app shell. Your content will only be updated as needed. A “Service Worker” serves all CSS stylesheets, images, JavaScript, pages, etc. It delivers blazing fast performance because most everything needed to render a page is stored locally.

PWAs can be accessed from a browser, no need for downloading or installation involved. Progressive Web Apps, published online, are completely linkable. Moreover, you still can have it works offline, utilizing cached data saved from previous online activity. In fact, many people predict that PWAs might replace the current generation of mobile websites.

Progressive Web App Checklist

Google has put together a set of minimum standards, which they refer to as the baseline, for creating a PWA. There is also a Chrome extension to validate compliance. The checklist mandates:

  • Site is served over HTTPS
  • Pages are responsive on tablets & mobile devices
  • The start URL (at least) loads while offline
  • Metadata provided for Add to Home screen
  • First load fast, even on 3G
  • Site works cross-browser
  • Page transitions don’t feel like they block on the network
  • Each page has a URL

Advantages of Progressive Web Apps

The following are some of the key benefits of PWAs:

  • No Hardware Restrictions
  • Works like a Native Mobile App
  • Improved performance
  • Push Notification

Implications for SEO

It stands to reason that PWAs could now get favorable treatment in the SERPs IF they are both index able and linkable, with the introduction of the mobile first index. Furthermore, these pages will be crawled the same as JavaScript or Ajax. Google has provided developers with a set of best practices to accomplish this. Besides, we also provide another punch list to ensure that all bases are covered. This checklist explains both why and how to:

  • Make your content crawl able
  • Provide clean URLs
  • Specify Canonical URLs
  • Design for multiple devices
  • Develop iteratively
  • Use progressive enhancement
  • Test with Search Console
  • Annotate with Open Graph & Twitter Cards
  • Test with multiple browsers
  • Measure page load performance

One of among so many successful stories that use PWAs is Flipkart. Flipkart is India’s largest e-commerce site. Another example is the Washington Post, owned by Jeff Bezos, founder of Amazon.com where they publish over 1000 articles daily.

PICASSO VS GLIDE (Advantage and disadvantage)

picasso-vs-glide

Currently, mobile developers keep looking for a new method to make image loading run faster. Today, we are going to see the difference between the two most popular image loader library, Picasso and Glide. Both of them may have their own advantage and disadvantage, even though they may look 90% similar. In fact, some resources said that Glide is Picasso-clone. Anyway in details, it is quite different. Especially in several ways below:

Import to Project

dependencies {
 compile ‘com.squareup.picasso:picasso:2.5.1’
}

 

Glide

dependencies {   
compile ‘com.github.bumptech.glide:glide:3.5.2’   
compile ‘com.android.support:support-v4:22.0.0’
}

 

Glide also requires Android Support Library v4, so bear in mind to import support-v4 to your project like above as well. Frankly, you basically need Android Support Library v4 in every single new-age Android project, so it should not be kind of problem for you.

Image’s Quality in Details

The image’s quality between the two may not be too different, but Picasso is better known that is has better image quality. As you can see on the images below, Glide has some hard pixels and is not as smooth as the Picasso one and it is difficult to find the straight way to change image resizing algorithm.

picasso

Disk Caching

In terms of default disk caching concept, Picasso and Glide are quite different. In the experiment below, the same Full HD image is loaded into ImageView with Picasso and Glide. When I checked the cache folder, it appears that Glide cached the ImageView-size (768×432 pixels) while Picasso cached the full size one (1920×1080 pixels).

picasso

If you see closer on the picture above, you will see the hard pixels described above is also there. In addition, if image is loaded in RGB565 mode, the cached image will be also in RGB565.

Moreover, other difference occurs when you try to adjust ImageView to the different sizes. Picasso will cache only single size of image, the full-size one while Glide acts differently, it caches separate file for each size of ImageView. You also need to download an image that has already been loaded if you need to load another size the same image before be resized to the right resolution and then be cached.

Anyway you could use this command to adjust its behavior by let Glide cache both the full-size image and the resized one.

Glide.with(this)            
.load(“http://nuuneoi.com/uploads/source/playstore/cover.jpg”)             .diskCacheStrategy(DiskCacheStrategy.ALL)            
.into(ivImgGlide);

 

The full-size image would be loaded from cache, resized and then cached, the next time image is requested to show on any ImageView. Due to this, Glide can load and show image faster than Picasso, while Picasso may take longer time to load images since it needs to be resized first before it is set to an ImageView.

GIF

Compared to Picasso,  Glide also has an ability to load GIP animation to a simple ImageView which makes it more interesting. However, if you would like to use GIF, you should use it wisely, since it consumes quite a lot of memory. Glide is also able to decode any local video file to a still image.

Furthermore, you can configure the way image appears with an animator (R.animator) while Picasso could do only one animation, fading in.

Encryption and Decryption

encryption and decryption

As a web developer or programmer, one must get acquaintance with encryption. Encryption is the process of converting information so the information can only be read by the intended recipient and incomprehensible to anyone or in the other words, you make a new code to cover the real information which makes the information becomes private to be understood. The opposite action of encryption is decryption. Decryption is the process of transforming encrypted information so that it is intelligible again. A cryptographic algorithm, also called a cipher, is a mathematical function used for encryption or decryption. In most cases, two related functions are employed, one for encryption and the other for decryption.

The ability to keep information encrypted is not depended on the cryptographic algorithm; however it is because of a number called a key that must be used with the algorithm, in order to produce an encrypted result or to decrypt previously encrypted information. It will be difficult to decrypt some information without having the correct key. In fact, it can be impossible to decrypt without any correct key.

There are two types of key encryption, symmetric-Key Encryption and public-Key Encryption.

Symmetric-Key Encryption

Encryption key can be calculated from the decryption key and vice versa with symmetric-key encryption. The same key is used for both encryption and decryption with most symmetric algorithms. By using key encryption, users do not need to experience any significant time delay as implementations of symmetric-key encryption can be highly efficient.

There is also a degree of authentication which causes symmetric key cannot be decrypted by other symmetric key. It is important to be remembered that symmetric key encryption will be effective only if the symmetric key is kept secret by the two parties involved, the confidentially and authentication of your information can be called into doubt if there is another party figures out of the key. People who can decrypt the message can send information as if they came from one of the two parties who were originally using the key. Symmetric-key encryption is widely used for authentication, tamper detection, and encryption over TCP/IP networks.

Public-Key Encryption

Public-key encryption requires a pair of keys-a public key and a private key-associated with an entity that needs to authenticate its identity electronically or to sign or encrypt data. Each public key is published, and the corresponding private key is kept secret.  The only way to encrypt your data is through your private key only. In general, to send encrypted data to someone, you encrypt the data with that person’s public key, and the person receiving the encrypted data decrypts it with the corresponding private key.

Public key encryption is usually not suitable for large amounts for data since public-key encryption requires more computation compared with symmetric-key encryption. However, it’s possible to use public-key encryption to send a symmetric key, which can then be used to encrypt additional data. This is the approach used by the SSL protocol.