Hybrid Apps or Cross-Platform? The right strategy for Retail Mobile Apps in 2021

In the digital world of today, it’s impossible to run any business without a mobile application. But developing multiple apps for different platforms is challenging and expensive. 2020 saw a surge in mobile adoption as consumers went mobile to learn, work, and shop to cope up with the pandemic. The spending on mobile apps touched a whopping $143 million indicating a 20% rise as compared to 2019.

But even before the pandemic, popular Dutch lingerie designer brand Marlies Dekkers saw more than 75% of their revenue through mobile. Brands like Nike and many others had already started diversifying business practices to avert the retail apocalypse. Walmart had begun consolidating multiple apps into a centralized one to bring in greater choice and diversity to consumers. Leading eCommerce major Shopify achieved 10 years’ worth of growth in just 90 days. Retailers are having to roll out new features faster in their mobile app experiences while ensuring feature parity across the different platforms. To meet this challenge, popular brands such as Amazon, Apple, Remote POS, and Baskin Robbins have gone the hybrid way.

Enhancing the experience further with cross-platform

A hybrid app is your best bet if you wish to launch your mobile app quickly. According to a recent report, 74% of the top iOS retail apps are hybrid apps. These statistics might defy the conventional wisdom that was once in the favor of native apps for their superlative performance and the seamless user experience. After perfecting the infrastructure built for the web for several years, it didn’t make much sense to rebuild it for mobile. That would duplicate effort and result in a huge loss of time and resources. But then, the game changed altogether with hybrid apps. While offering total value for your investments, hybrid proved to be a smart choice thanks to low-code development tools. A hybrid app would mean 60-80% savings as compared to a native app with a 234% ROI.

But despite being a time and money savior, hybrid does pose a challenge in achieving the ideal UI and UX. These overheads of having to develop separate native apps for iOS and Android are effectively addressed by cross-platform apps that offer an elegant means to code once for both platforms.

Today, there is a growing inclination towards cross-platform apps that ensure feature parity and work equally well for all platforms such as Android, iOS, and Windows. Hybrid apps followed by cross-platform apps have ushered in so much functionality that both strategies are adopted as needed. The world clearly cannot stop raving about cross-platform apps. So if you are wondering if a cross-platform app is right for your retail business, here’s what you should know.

The shift to cross-platform

The truth is that you get to experience just the tip of the iceberg when you download an app. The infrastructure behind the app is evident only after you start using it as you browse through product catalogs, access purchase history, view shipping information, etc. The modern cross-platform apps now respond and react as quickly as their native counterparts providing users everything they need. With a full-fledged native-quality mobile experience, retailers are now jumping onto the cross-platform app bandwagon.

Experience matters

A bad mobile experience will drive away customers. A cross-platform app offers the perfect solution to the changing needs of businesses. It is a single-codebase app created using tools like Flutter, Kotlin, Xamarin, React Native, etc. and common examples of this app include Facebook Ads Manager, Airbnb, Reddit, and Zipcar. Cross-platform app development is now gaining a lot of momentum allowing hybrid mobile app development companies to create cross-platform apps that deliver exceedingly well on the performance front too.

Benefits for migrating toward cross-platform:

  • Efficient use of developer resources – Developers need to maintain just a single code base when building these apps thereby saving a huge amount of time typically required by native apps
  • Maintain Feature Parity across platforms. Brands can ensure common experience and functionality independent of the platform capabilities
  • Faster Time To Market: Once app development teams learn how to handle the OS differences or platform-specific store publication procedures effectively, the design-to-launch time will drastically reduce. Cross-platform apps also enable simpler and quicker updates, a boon considering the speed with which updates keep coming up.
  • Lower development and maintenance cost – They are easy to create and maintain with simple tools that can be used in-house thereby eliminating the need for hiring new talent for the job.
  • Consistent User experience – Due to the cross-platform approach with just one codebase running on desktop, web, and mobile, redundancies across channels are removed ensuring better design and UX consistency across platforms.

Wrapping up

A mobile app is rarely made for just one platform since users would want to use them across devices and platforms. Unlike a native approach that requires separate apps for each mobile platform and sometimes with very specific customization for tablets and smartphones, the cross-platform approach offers adaptive styling to ensure that the look and feel of your retail app automatically adapts to each platform. It enables retailers to reach out to a wider audience while saving cost and ensuring platform consistency. With immense potential, it serves as the perfect gateway to opportunities for custom mobile app development companies. Accelerating your mobile app development with cross-platform therefore makes a lot of sense.

Build with Trigent

As you re-evaluate your Mobile App strategy to address the scale and speed expected by your consumers, consider the Hybrid & Cross Platform alternatives. We, at Trigent, have powered apps for some of the coolest companies out there. We choose the right architecture, the ideal cloud computing platform, and an appropriate technology stack to ensure that the cost of building and maintaining an app is minimal while the experience is seamless. We also pay a lot of attention to security and compliance testing to ensure you get a secure, high-performing cross-functional app.

Embark on a software development journey with our experts. Contact us today to give your retail business a digital high.

Top 20 iOS 14 features which you cannot ignore

They say patience is a virtue, and the ones who are patient do get rewarded. It stands to be true for many of the iOS aficionados, if not for all. The latest iOS 14 release has unveiled many features that stand out and command attention. Here is a list of the top 20 iOS 14 features that can enhance your mobile experience.

  1. App Clips – The feature allows the user to use micro parts of the app, meaning performing a small task under 10MB without downloading the complete app. An example is purchasing coffee from a coffee shop (Without downloading the entire app) by signing in with Apple/Apple Pay (So, there is no need to create a new account) and get the rewards into the account. The user can download the app if the performance meets the user’s expectations in App Clip.
  2. Picture-in-picture – From this version of iOS 14, all iPhones have picture-in-picture support as part of multitasking. Previously this feature was available only on iPad, not on iPhone.
  3. App Library – Customize the home screen by organizing the folders by categories like Sports, Health & Fitness, Business, Travel, etc., to maintain apps in a single home screen instead of using multiple home screens with swipe gesture navigation.
  4. Widgets Enhancement – A new widget like “Today View” has many more information accommodation facilities and draggable onto the home screen with different sizes as per user’s preferences. A “Smart Stack Widget” is used to organize and swipe through the recent and liked widget.
  5. Siri Interface – Siri interface will appear like a blob at the bottom of the screen instead of occupying the whole screen for Siri functionality and shows the results as rich notifications at the top of the screen.
  6. Message Stack – User can pin nine message chats as favorites, and those pinned conversations will appear in the “Message Stack,” which is relatively easier for fast access to messages.
  7. FaceTime has performance increments, and Memoji has updated with different icons, Augmented Reality and Machine Learning has new efficient tools for better performance.
  8. Keyboard Tweaks – Emoji picker has a search bar to pick out a specific emoji faster.
  9. Camera Improvements
    • Quick Take Video feature is there in all iPhones by the press and holds the shutter button under photo mode to switch into video mode
    • Camera App can change video resolution, frame rate directly instead of using Settings
    • Picture quality and its performance has been enhanced
      Guidance Indicator will show the status of camera shot
  10. Maps Improvements – Maps has new features as well
    • The “Cycling Directions” feature has been added in Maps for the areas such as New York, Los Angeles, San Francisco, Shanghai, and Beijing. Later on, the feature will expand to other areas in upcoming versions
    • “EV Routes” feature has been added to denote the “Electric Vehicle Charging Stops” for charging “Electric Vehicles” along the traveling route, initially supported car companies are Ford and BMW
    • “License Plate Access” feature will show whether that particular vehicle has the privilege to travel for that specific route or not
  11. Default Email and Browsers Customization – User can set their preferred third-party email and browsers as their default email and browser
  12. Translate App – Apple supports the default “Translate App” in landscape mode by splitting the screen in a 50:50 ratio. Hold on the microphone button listens to input the word/sentence to translate in the left pane. Once the microphone button is released immediately, the translated output will get displayed on the right pane. Users can select languages for translation. Currently, it supports only 11 languages.
  13. Privacy Enhancements – iOS 14 majorly concentrated on “Privacy Policy” for data security as follows
    • Permission added to access approximate location instead of sharing the exact location
    • Permission added to access only specific photo instead of providing access to the entire gallery
    • If the Microphone is running, then the status will be indicated on the status bar with a little amber dot
    • If the Camera is running, then the status will be displayed on the status bar with a little green dot, which is easy to track the Background process of an app for security purposes
    • Mandatory addition of “Privacy Policy” in App Store pages to publish the app to show the data collection on the app from the users, which maintains data security
  14. Apple Arcade – Provides quick access to recently played games, and “Game Center Friends Preferred Games” will be stacked here for gaming.
  15. CarPlay – Provides new EV Routing in Maps, Parking, and Food Ordering apps under categories, new development tools have been introduced to integrate audio, text messages, and VoIP apps.
  16. CarKeys – Initiated better-digitized car keys via iPhones with Tesla Manufacturers.
  17. Safari Enhancements
    • Safari can access Privacy Reports of websites
    • Monitors “Saved Passwords” to prevent security breaches
    • Translate the entire webpage by using Apple default Translate App
  18. UIWebView – Deprecated and suggested to use WKWebView. UIWebView usage in the app will block the app publish from December 2020.
  19. Daylight Saving Time Issue – Under iPhone Settings in iOS14, the Automatic time setting has an improper time and timezone. So, suggested setting the time and timezone manually under Settings. Then either restarts the phone (or) Turn ON and Turn OFF Airplane Mode, saving user time to restart the phone. Now, the DST time and timezone issues are fixed.
  20. A new cell registration technique has been introduced where a new configuration API will encapsulate the cell’s contents and background view properties. It works based on “States” to set and update data into the cell. So, the user doesn’t have to use “Cell Identifiers” to register the cell in UICollectionView.

Are you looking at developing a mobile application loaded with the latest features or exploring the best mobility technology platform to create an app that meets your immediate business needs? Explore how our mobility experts can help you grow your returns and influence through contemporary mobility solutions.

Keychain – An effective way of securing sensitive information on iOS mobile apps

Mobile devices are a significant propellant for modern-day digital technology. Mobile devices are compact and the quickest mode to establish instant communication, eclipsing long distances. The underlying element that enables this exchange between individuals using their mobile devices is data. It is data exchanged between two or more devices that make communication or any other activity possible.

The digital mobile technology baseline is a vast data collection, stored either locally or remotely, sharing numerous information fields for multiple purposes. Flexible Image Transport System or FITS is a digital file format useful for storing, transmission, and processing data that in common parlance refers to information or data related to people such as photos, audio, video, text formats, travel itineraries, or shopping details. Private data can never be seen in a silo. It has to coexist with privacy policies that ensure optimal data security.

Mobile devices are inevitable in modern life, and securing mobile data is a critical concern in a digitally-driven world for quite. While there is increasing awareness among individuals to safeguard their data, cybercriminals are always on the lookout for loopholes. There are umpteen safeguards in place to thwart cybercrime, but the slightest of negligence can be an invitation to trouble such as phishing or data theft.

This post is a DIY for iOS developers to enable Keychain wrapper to secure small chunks of data on applications and secure services.

Before we get into the nitty-gritty of setting up a keychain wrapper for your iOS app, here’s what Apple has to say about the keychain wrapper API.

‘The keychain services API helps you solve this problem by giving your app a mechanism to store small bits of user data in an encrypted database called a keychain. When you securely remember the password for them, you free the user to choose a complicated one.

Keychain – An effective way of securing sensitive information on iOS mobile apps

Keychain wrapper can be considered to be one of the most secure technologies to store sensitive data, such as passwords, authentication tokens, or session data. Its security stems from the automatic encryption of data that is enabled before the file is stored in the system without the need of building encryption algorithms.

Following are the details on how to use keychain wrapper in mobile application development.

Install SwiftKeychainWrapper framework either by cocoapods or carthage. Sample code for few of the common usages are as follows

Add data value to keychain:
let saveThe Data: Bool = KeychainWrapper.standard.set(“Some String”, forKey: “myKey”)
Retrieve data value from keychain:
let retrieveTheData: String? = KeychainWrapper.standard.string(forKey: “myKey”)
Removedata value from keychain:
let removeTheData: Bool = KeychainWrapper.standard.removeObject(forKey: “myKey”)

Developers can do the following in Keychain Wrapper:

“Service Name” – used to customize bundle identifier value. By default, app Bundle ID is used to store the data in keychain
Data can be shared between applications using keychain by “Access Group”
By default, all items saved to keychain can only be accessed when the device is unlocked. To change this accessibility, an optional withAccessibility param can be set on all requests to select the accessibility level desired
To access the data in keychain in all the different devices used by the users, we can synchronize the data in iCloud
Unlike “User Defaults” – Data stored in Keychain will not get deleted while app cleared from cache (or) uninstalled from the device

Are you looking at developing an iOS application with robust security features? Trigent’s expert developers with decades of experience in iOS app development can help you with end to end development of secure and robust applications. Here’s a solution that was developed with an emphasis on personal data security.

Five of the Most Popular Databases for Mobile Apps

Mobile OS is growing bigger and bigger and recently Android mobile OS surpassed Windows OS as the most used Operating System in the world. As mobile OS is growing larger and hardware as powerful as any normal computing device, data computation from mobiles is also increasing.

The database is the most common way of storing and managing data. For quite some time now,  databases are handled on server-side or cloud and mobile devices only communicate with them through the network. However, to make applications more responsive and less dependent on network connectivity, the trend of offline usage or less dependency on the network is gaining popularity. Nowadays, applications keep DB locally or make a copy of DB over the cloud onto local devices and sync with it once in a day or whenever there is network connectivity. This will help in faster and responsive applications that are functional even when there is no or limited internet connectivity.

Databases for mobiles need to be:

  • Lightweight as storage is limited on mobile devices.
  • No server requirement.
  • In the form of the library with no or minimal dependency (embeddable) so that it can be used when needed
  • Fast and secure.
  • Easy to handle through code, and the option to make it private or shared with other applications.
  • Low memory and power consumption.

There are lots of mobile databases coming into the market but not all of them satisfy all requirements mentioned in this article. Let us discuss a few of the most popular databases for mobile apps and try to highlight their characteristics, pros, and cons.

Progressive web applications are helping businesses increase their user base. Read how 

SQLite

SQLite is relational DB, a lighter version of SQL designed for mobile. It is an in-process library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. It is an embedded SQL Database engine without any separate server process, unlike any other SQL database.

SQLite supports all the relational database features and is an open-source compact library which is by default, present in two main Mobile OS i.e. Android and iOS, and supported by blackberry and windows phone.

SQLite can be stored both on disk as well as in-memory and each database file is a single disk file and can be used cross-platform. It is very fast and needs very little memory to operate.

Realm DB

The realm is a relational database management system which is like conventional databases, data can be queried and filtered, interconnected, and persisted but also have objects which are life and fully reactive.

Realm DB is developed by Realm and specially designed to run on mobile devices. Like SQLite, Realm is also serverless and cross-platform. It can be stored both on disk as well as in memory.

Realm has so many advantages over native SQLite, like:

  • Objects in Realm are native Objects, You don’t have to copy objects out of the database, modify them, and save them back—you’re always working with the “live,” real object.
  • Objects always stay in sync.
  • The realm is much faster than SQLite. Realm can query up to 57 records/sec, whereas SQLite can do only up to 20 records/sec.
  • Data can be secured with transparent encryption and decryption.
  • Realm has a reactive architecture, which means it can be directly connected to UI, if data changes it will automatically refresh and appear on the screen.
  • It automatically syncs to Realm Object server (if present) when there is network connectivity present.
  • One application can have multiple Realms, both local and remote
  • Can set different permissions for different users.
  • Available for Android, iOS, JavaScript, etc.

ORMLite

ORMLite is a lighter version of Object Relational Mapping which provides some simple functionality for persisting Java objects to SQL databases. It is ORM wrapper over any mobile SQL related DB.

ORMLite is used to simplify complicated SQL operations by providing a flexible query builder. It also provides powerful abstract Database Access Object (DAO) classes.

ORMLite is helpful in big size applications with complex queries because it handles “compiled” SQL statements for repetitive query tasks. It also has support for configuring tables and fields without annotations and supports native calls to Android SQLite database APIs.

But ORMLite does not fulfill all the requirements like it is bulky as compared to SQLite or Realm, slower than SQLite and Realm but faster than most of the other ORMs present in the market.

All in all, ORMLite is a good SQLite replacement if the application is big and complex in terms of DB usage.

Berkeley DB

Berkeley DB is an open-source high performance embedded DB that allows us to handle data in different ways. It was developed by Sleepycat Software but acquired by Oracle in 2006. It provides API for so many languages including Android and iOS.

Berkeley DB can handle data in many ways. It can be in a relational way like SQLite (by replacing SQLite with its own library), or it can be in Key/Value pair data as byte arrays and supports multiple data items for a single key. It also supports java objects as data or it can also be XML documents. Different libraries provide different types of API to handle multiple formats but all packaged Berkeley DB.

Berkeley can work as relational DB as well as NoSQL DB (Depends on which library you are using).

The good thing about Berkeley DB is that the API provided by it are compatible with SQLite. So one can use Berkeley DB without rewriting the whole code again. The combination of Berkeley and SQLite is considered faster and perform better in concurrent and single writing multiple reading operations.

Berkeley is relatively faster than SQLite but because of so many different features, it is bulkier than any other discussed DBs. So if the size of the application is a criterion try to use some other DB, unless you want a feature exclusively provided by Berkeley DB.

Couchbase Lite

Couchbase Lite is a powerful NoSQL embedded JSON database. It is a highly scalable DB with enterprise-level security.

Data in Couchbase Lite is stored as JSON documents. Each document can have one or more attachments which are stored and loaded separately from documents.

Couchbase Mobile is the solution provided by Couchbase Lite for mobile applications. It is comprised of three different components: Couchbase Lite, an embedded NoSQL database, Sync Gateway. Couchbase is an offline-first DB and sync with Cloud is needed or when the network is available.  Couchbase Lite runs locally on the device and persists data as JSON and binary format. All crud operations performed on local DB. The developer does not need to write sync code (if needed) to sync local DB with the cloud, it is handled by Sync Gateway. Couchbase Lite comes with a conflict resolution mechanism that is quite similar to the one used by Git.

Another advantage of Couchbase Lite is that it provided native APIs for Android and iOS and plugins for Xamarin and PhoneGap.

So if there is a requirement of any NoSQL DB in mobile OS, Couchbase lite is the best bet as it is very fast, reliable, and moderate in size.

In the end, it totally depends on the requirements and feasibility for the application to choose which DB will fit in. But every mobile DB should fill most of the above-mentioned requirements if not all.

Our end to end mobile app development services can help ideate, build deploy, update, and maintain your mobile applications without a worry.

How to update Android Apps Outside of Google Play

Here’s a DIY on how to programmatically make your Android phone look like an iPhone.

Having an Android device is beneficial as we can install apps as per our need. Many of us might already be familiar with Google play store which is the app store for Android and have been using it for downloading apps. It is Play Store which is responsible for notifying us of any updates to the installed app. These updates might carry bug fixes, enhancements to existing features or may also include addition of new features.

However, it is up to the users to decide whether to permit Play Store to update these installed apps to the latest version or not. Despite all these facts, Google has not restricted users to get apps from outside its play store. And this is where Google separates itself from other mobile platforms.

The main issue with Google play store updates is the fact that the store takes its own time for updates. To explain further, once the latest application has been uploaded to the store, it lines up all the existing users in a queue and then starts pushing the updates to the users, one by one. Thus, if the number of users are more, it takes more time. If at all, the new application has to reach all the users immediately, then we may have to handle the update programmatically by leaving Google Play store’s auto -update functionality.

Apart from Google play store, there are many other app stores where you can upload the application binaries (apk files).  Even in these stores, users can download the app by sharing app link and also provide updates whenever a latest version of app is available on the store. Some app stores provide free publishing as well.

 Given below are a few such app stores for Android:

  1. Amazon App Store
  2. Mobile Market
  3. Opera Mobile Store

However, this is not the only way you can install an app. You can install apps even without publishing it in any of the above mentioned third-party stores.

 How to programmatically install/update apps?

 Given below are instructions to achieve successful installation/updation of a mobile app without using Google Play store or any other store.

  • For devices, if it is the first time that you are installing any app outside Google Play Store, you can go to Settings and select Applications to check the “Unknown Sources”.
  • Build your app always with a valid version code and version name, and always ensure that manifest file of the app is updated to the next incremental number in version code.
  • <manifest xmlns_android="http://schemas.android.com/apk/res/android"
     package="com.example.app"
     android_versionCode="1"
     android_versionName="1.0" >

    Once the build is ready it can then be either placed in phone storage for installing it and upgrading to the latest build directly by using any file manager. Or can be placed in any webserver or a cloud space provider like dropbox and can use that link for downloading and then installing on the device.

  • The best approach to follow will be in instances where the user gets a notification for new updates using custom GCM push notification. The user can then decide on whether he wants to update the app immediately or later. But once clicked on notification, the code can be put to download the file and then go for installation.
  • Following code can be used to install/update the application after successful download of apk:
    Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://" + appFilelocation.toString()), "application/vnd.android.package-archive"); startActivity(intent);

    AndroidManifest.xml requires following permission:

  • <uses-permission android_name="android.permission.INTERNET" />
     <uses-permission android_name="android.permission.INSTALL_PACKAGES" />
     <uses-permission android_name="android.permission.WRITE_EXTERNAL_STORAGE" />

    User vs System Mobile Apps

    These apps can be just User Apps or System Apps. User Apps are ordinary apps which do not interact with internally restricted features on the device. System apps can be a combination of user apps along with codes written to interact with system restricted features. If your app is System App, then it can change the entire way of downloading and installing the new updates for the device to a whole new level. Instead of asking user permission for updating, it can be coded to an extent that the power of installing the updates is decided by the app itself and can be automatically updated without the user’s notice!

Enjoy Building!! In case you need expert help, reach out to us. Trigent’s mobility experts have decades of experience working on different platforms, tools, and technologies to guide and support your application development.