<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sanchit Gupta</title>
    <description>The latest articles on DEV Community by Sanchit Gupta (@iamsanchitgupta).</description>
    <link>https://dev.to/iamsanchitgupta</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201304%2F52e29b7f-cdc6-45c0-befe-1dc248a33ca8.jpg</url>
      <title>DEV Community: Sanchit Gupta</title>
      <link>https://dev.to/iamsanchitgupta</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iamsanchitgupta"/>
    <language>en</language>
    <item>
      <title>Top 8 cost deciding factors of React Native App development</title>
      <dc:creator>Sanchit Gupta</dc:creator>
      <pubDate>Sun, 29 Mar 2020 22:05:57 +0000</pubDate>
      <link>https://dev.to/enappd/top-8-cost-deciding-factors-of-react-native-app-development-29ld</link>
      <guid>https://dev.to/enappd/top-8-cost-deciding-factors-of-react-native-app-development-29ld</guid>
      <description>
&lt;p class="graf graf--p graf-after--figure"&gt;React Native was developed during the hackathon project of Facebook by their team of developers. Later it turned out to be one of the most popular and trending frameworks for mobile app development these days. It is considered as the most powerful framework based on JavaScript used for cross-platform app development.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p is-selected"&gt;Easy-to-use UI, speed and efficiency are some of the top reasons what has made it one of the top mobile app development frameworks to choose from. This technology adopts some of the modern and traditional methods for the development of a hybrid mobile app.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;It was not so long ago when if one thought about app creation on both Android and iOS then one would need to think of two entirely different native apps or create a hybrid app using an HTML5-based framework. The downsides were that they came with severe cost and usability issues.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Mobile apps, by the year 2023, are predicted to generate more than 935 billion U.S. dollars in revenue via in-app advertising and paid downloads (&lt;a href="https://www.statista.com/statistics/269025/worldwide-mobile-app-revenue-forecast/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;source&lt;/a&gt;). That’s quite encouraging and there is no wonder why there’s a gold rush to mobile application development using the globally-recognized app framework — React Native.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--81AC7etM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Aj2mN9tL_ULO4f6RTh3WIRw.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Some of the world-famous apps have opted for this framework- Skype, UberEATS, Instagram, Tesla, Airbnb, Tencent QQ, Walmart, SoundCloud Pulse, Baidu Mobile, etc. are some of the apps that are built on React Native framework.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The React Native app development frameworks enable developers to speed up the process by giving them a skeleton framework to work on.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Most of the businesses get started with React Native due to its flexibility and cross-platform mobile app development feature. By using this open-source framework, you can have effective mobile apps build for both Android and iOS platforms.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;How Much Does React Native App Cost: The Contributing Elements&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--_Jy-H4ke--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AzaFRTK7Wy-P2d97QJx2xng.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;React Native framework is one of the most cost-effective frameworks present in the market. If you are on a tight budget and want to have an app, then React Native is the best option.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;React Native development cost varies depending upon the complexity of the apps and the requirement. The developer experience also plays an essential role in this decision.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Some of the factors that one should consider while opting for a React Native app development are:&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;App complexity&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;User authorization&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Add-ons&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;App design&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Developer Experience&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Location of dev agency&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;App distributions&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;App maintenance and support&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="graf graf--h3 graf-after--li"&gt;&lt;strong class="markup--strong markup--h3-strong"&gt;1. App Complexity&lt;/strong&gt;&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--TzZf_Fcj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AA-R74ZiEkKw8vflkL2Iaeg.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;What you expect from your React Native app project will decide the deliverables, project phases and the amount of time needed to complete it. Generally, mobile app development can take about a week to six month time for completion. A simple app will come at a lower budget and will get completed within a shorter timeline. While the complex one with many features and updates will take a long time to complete and will come at a higher budget. Every app present in the stores can be divided into three segments — Low Complexity, Medium Complexity, and High Complexity Apps. The segmentation depends on six factors:&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Deployment Architecture Model — When it comes to Backend development, there are two options — Custom or BaaS. In the Custom option, clients get their own architecture while in case of BaaS, they work around a readymade backend architecture.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Admin Panel Development — It is the part which help entrepreneurs manage the app — keep track of app activity, view statistics, and update content without involving developers. The more feature-rich the admin panel, the more an app rises in the complexity chart.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Third-Party Integration — In order to be truly user friendly, your app needs to interact with other app’s functionality to ease processes like login and payment. These integrations are slightly more complex in case of React Native as compared to Native development process.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;In-App Purchase — Although a good percent of apps active in the industry today have the in-app purchase functionality in one form or another, its inclusion is not easy. So the more in-app purchase options you give, the more complex your app would become.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Use of Device’s In-Built Features — The modern day range of smartphones and tablets come packed with a number of features such as Bluetooth, GPS, Nearby, Barometers, etc. which can be linked with an application to better its performance.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Integration with the Enterprise/Legacy System — Do you need an app that is standalone (means it works independently without any integration to your system) or the one that you want to integrate with any of your enterprise systems? A stand-alone app will cost a bit lesser than the integrated app because the integrations are costly. The extensions, third-party APIs, host system app modifications, etc. are involved when you consider integration with the enterprise system. These applications type by default fall under medium to high complexity scale.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 class="graf graf--h3 graf-after--li"&gt;&lt;strong class="markup--strong markup--h3-strong"&gt;2. User Authorization&lt;/strong&gt;&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--fh6misHp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Ayc1XFXH1M6i7aYTIF5oO7A.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;If you are designing an app that doesn’t require any kind of logins or authorization, then the cost of an app will be relatively less. But the apps which require these functionalities will cost a little more as it requires the process of role-based checks that are usually set by developers. The efforts are needed from both enterprise system development team and app development team to ensure that the apps are developed and deployed perfectly.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;3. Add-ons&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--UhPaY169--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AZiVKfDDwmBbqzFsQNmTo7Q.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;If you are planning to build a customer-centric app, then you may wish to integrate your app with social media channels and also extend some add-ons for it. These custom add-ons are an essential facet in the pricing and cost — the in-app purchases are an extra add-on. The apps can be as vast as possible and as small as a single-page app.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;4. App Design&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--KMVwAVIX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AchpoeXmadcCsOJBBxULPeA.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Mobile app design encompasses both the user interface (UI) and user experience (UX). An effective mobile app enables a targeted group of users to carry out a specific set of related tasks. What will keep your users engaged in your application? An app that has smooth transitions to move from one screen to another, efficient user flow and well-timed animation will help for starters. The designing of screens and user experience could be easily associated with costs.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;5. Developer Experience&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--L2uvQ8ob--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AnWQ_U5NKEfNeGCTfh_2-Mw.gif"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Developers with varied experience years are present in the market. This is a very important factor, if you want an experienced developer to work on your project, then you have to invest a good amount of money. If you are okay with a medium or less experienced developer working on your app, then the pricing will be less. The experience is going to be a major price altering factor here. Also, if you are faced with making a choice-based decision between freelancers vs. development companies — a general thumb-rule would be to consider choosing a freelancer if you have a simple project in hand with a flexible completion deadline and less budget. However, if your project is complex and you have a specific time frame, then you should consider a React Native development company.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;6. Location of dev agency&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Mxp5iHom--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AN_EJyH7ZxVCtMGsDpG1frA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;In the context of mobile app development cost, location plays a significant role. When it comes to hiring React Native app developers, you may find that Eastern countries charge lesser than agencies in USA or Australia. So you may prefer outsourcing your project to reduce costs.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;7. Distributions of App&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--2LCTPaY5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A5w1DojCtjZ75gRur6Xc0wg.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;There are so many distribution channels where you can deploy your app. These stores have a fixed set of pricing. The commercial stores like App Store or Google Play store will charge around $100 for developer license costs. Apps will also require permission from the host to make sure that the standards and security policies are met.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;8. App Maintenance&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--IPq8l7pv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AGjwJcwdzcujz1cRJgaWeJQ.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;It is unquestionable that the expenses do not end at app launch. You will have to regularly update it to keep up with users’ expectations, which cascades to user retention and engagement levels. And hence one has to consider this factor while estimating the cost. It is better to hire a company on retainer basis for some months so that everything falls in place. After that, you can just hire them to push out the updates from time to time. This will cost a lot less. When we talk about app maintenance, we mainly talk about three individual processes –&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;App updates&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Design changes&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;App bug fixes&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="graf graf--p graf-after--li"&gt;The app maintenance cost estimate is usually calculated yearly as 20% of the complete app development project.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;App Templates: a middle ground cost-saving solution&lt;/h3&gt;
&lt;a href="https://store.enappd.com/product-category/react-native/" class="graf-imageAnchor" rel="noopener"&gt;&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--AceYswKJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AF1tznNhfBwRT-ocX1OQ_Yw.jpeg"&gt;&lt;/a&gt;&lt;p class="graf graf--p graf-after--figure"&gt;A collective experience of several app development agencies says that the majority of the app development is a repeat process. This is especially relevant in today’s age where startups are often found building an ‘Uber for something’, or an ‘Instagram of something’. Even the apps which are not exactly clones are actually using similar components in them. This inevitably calls for modularization of the app development process. App templates are ready-made source-code (sometimes also called app starters), which gives a head start in app development. To know more about app templates check out this article: &lt;a href="https://enappd.com/blog/future-of-app-development-why-you-should-build-your-apps-from-templates/5/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Future of App development — Why you should build your apps from templates.&lt;/a&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Orjvi-sz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Arp063EGC2wgpfaUEPB1Iug.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;a href="http://enappd.com" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Enappd&lt;/a&gt; delivers high-quality app templates, themes, and add-ons. It helps startups to make a jump start and take their business to the next level. To know more about the development process and stringent quality measures taken at Enappd, check out this link here: &lt;a href="https://enappd.com/blog/enappd-store-iosandroid-app-templates/119/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Enappd Store: biggest inventory of best quality iOS/Android App Templates.&lt;/a&gt;&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Conclusion&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3 graf--trailing"&gt;These days most of the companies are moving forward with their projects by choosing React Native framework for the swift development of their apps. If you have a low budget and want to develop your app quickly then React Native would be the best choice. React Native app development has a definite edge in terms of the development of your app in a low budget. In this article, we get to know eight factors which decide the final price of React Native app development cost. Armed with this info one can make an informed monetary decision in all aspects of app development.&lt;/p&gt;

&lt;h3 class="graf graf--h3 graf--leading"&gt;Next Steps&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Now that you have learned various aspects of pricing a React Native app, you can also try the following:&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;&lt;a href="https://enappd.com/blog/react-native-life-cycle-hooks/79" class="markup--anchor markup--li-anchor" rel="noopener nofollow noopener"&gt;React Native life cycle hooks&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;How To integrate in React Native — &lt;a href="https://enappd.com/blog/pick-images-from-camera-gallery-in-react-native-app/78" class="markup--anchor markup--li-anchor" rel="noopener nofollow noopener"&gt;Image picker&lt;/a&gt;| &lt;a href="https://enappd.com/blog/intergrate-firebase-in-react-native-app/73" class="markup--anchor markup--li-anchor" rel="noopener nofollow noopener"&gt;Integrate Firebase&lt;/a&gt;
&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;a href="https://enappd.com/blog/guide-on-react-native-full-app/53" class="markup--anchor markup--li-anchor" rel="noopener nofollow noopener"&gt;Create Awesome Apps in React Native&lt;/a&gt; using Full App&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/firebase-push-notifications-in-react-native/81/" class="markup--anchor markup--li-anchor" rel="noopener nofollow noopener"&gt;Firebase Push notifications in React Native Apps&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://medium.com/enappd/10-awesome-react-native-ui-component-libraries-you-should-know-bd7b6bb7e38d?source=friends_link&amp;amp;sk=0050c628050ec2c19f12e63786f6d68c" class="markup--anchor markup--li-anchor"&gt;10 Awesome React Native UI Component Libraries You Should Know&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;You can consider making your next app in React Native by making use of the following templates:&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;a href="https://store.enappd.com/product/react-native-full-app/" class="markup--anchor markup--p-anchor" title="https://store.enappd.com/product/react-native-full-app/" rel="noopener"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native Full App&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;a href="https://store.enappd.com/product/react-native-grocery-shopping-starter/" class="markup--anchor markup--p-anchor" title="https://store.enappd.com/product/react-native-grocery-shopping-starter/" rel="noopener"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native Grocery Shopping Starter — Enappd&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;a href="https://store.enappd.com/product/spotify-style-music-app-starter/" class="markup--anchor markup--p-anchor" title="https://store.enappd.com/product/spotify-style-music-app-starter/" rel="noopener"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Spotify style app / Music streaming app starter (React Native) — Enappd&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;a href="https://store.enappd.com/product/react-native-taxi-booking-app-template/" class="markup--anchor markup--p-anchor" title="https://store.enappd.com/product/react-native-taxi-booking-app-template/" rel="noopener"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native Taxi / Cab Booking app Template&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p graf--trailing"&gt;&lt;a href="https://store.enappd.com/product/react-native-ecommerce-app-template/" class="markup--anchor markup--p-anchor" title="https://store.enappd.com/product/react-native-ecommerce-app-template/" rel="noopener"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native Ecommerce App Template&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>hybrid</category>
      <category>cost</category>
      <category>development</category>
    </item>
    <item>
      <title>Enappd Store: biggest inventory of best quality iOS/Android App Templates</title>
      <dc:creator>Sanchit Gupta</dc:creator>
      <pubDate>Sun, 29 Mar 2020 20:30:05 +0000</pubDate>
      <link>https://dev.to/enappd/enappd-store-biggest-inventory-of-best-quality-ios-android-app-templates-24i4</link>
      <guid>https://dev.to/enappd/enappd-store-biggest-inventory-of-best-quality-ios-android-app-templates-24i4</guid>
      <description>
&lt;p class="graf graf--p graf-after--figure is-selected"&gt;Enappd delivers high-quality app templates, themes, and add-ons for you to jump-start your startup, or take your business to the next level with an awesome app while saving thousands of dollars and weeks of time. Our mission is to enable everyone to be able to create beautiful apps. If you are a developer, you don’t need to waste time on UI. Just pick your app starter from Enappd and jump-start your development.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--l2rAS-Rq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A9nj142zVkodRa5U9z-jeXQ.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;A collective experience of several app development agencies says that the majority of the app development is a repeat process. This is especially relevant in today’s age where startups are often found building an ‘Uber for something’, or an ‘Instagram of something’. Even the apps which are not exactly clones are actually using similar components in them. With the growing rise in app-based startups, it is imperative for developers to use a modular way of app development which costs least time and money. That is where app templates/starters come in.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;An app template is simply the UI of the app made in a particular language. This can be Android, iOS or hybrid technology. A starter, on the other hand, includes features more than UI, e.g. A Taxi booking app which allows you to create a booking and accept booking on the Driver side, is not just a template, it is a starter.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--V_6YNwhI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AqoutEbKSPNpJfjwJGqQ63g.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Following are the major advantages of using an app template from Enappd Store:&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;Cheaper&lt;/strong&gt; — You save thousands of dollars spent in UI development. This is a crucial phase where a majority of startups end up spending most of their time and money. Designing a feature from scratch is not worth if you can just pick the feature off the shelf in a fraction of the price&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;Faster&lt;/strong&gt; — You save weeks (if not months) of time which you would otherwise spend on designing and developing your app’s UI. Faster time to market is often the deal maker for an app startup.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;Keep your team smaller&lt;/strong&gt; — If you are an early-stage startup, and the co-founders are not developers, it is not wise to hire separate developers for UI designing, and then UI development on different devices. Using a hybrid app (same technology for both iOS and Android) halves your problem, but you would still love to have an off-the-shelf template. This way you can jump to feature integration directly and keep your team smaller&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;Standard and Bug-free&lt;/strong&gt; — One of the biggest advantages of using Enappd’s app template is the standard feature and code structure. It is often found that the founding team develops the app with whatever they know. This results in a badly written (although working) code. Instead, you can purchase an off-the-shelf code written with proper standards, and mostly bug-free. You cut costs, save time and get better quality code.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;Standard features &lt;/strong&gt;— Other than great code standards, you get standard features already working and device tested in Enappd templates. For example, tinder card format has been a popular layout for the past many years. Creating the layout on your own from scratch is not worth if you can just pick it up from an app template, such as &lt;a href="https://store.enappd.com/product/ionic-4-full-app/" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic 4 Full App&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="graf graf--p graf-after--li"&gt;Imagine you are set out to build an ‘Uber for something’, and you get the full app UI off the shelf. You can then plug in your logic, your product, and your back-end into the app and get it ready for the app store. This way you save a ton on your development cost.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;At Enappd we build app templates using ❤, also there is a lot more to find out about Enappd. So, let’s dive right in:&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Process&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--7RAP2er7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AobtYjj5TJHPqTkql-YN5XQ.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;The process followed at Enappd is SDLC (Software Development Life Cycle). It consists of the following activities:&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Planning: The most important parts of software development, requirement gathering or requirement analysis is usually done by the most skilled and experienced software engineers in the organization. After the requirements are gathered as per the market research, a scope document is created in which the scope of the project is determined and documented.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Implementation: The software engineers start writing the code according to the requirements documented.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Testing: This is the process of finding defects or bugs in the created Template.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Documentation: Extensive setup and usage documentation for major starters is provided along with the product.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Deployment: The app template is made available on Enappd store after it gets approved in review for release by another senior developer from a different team.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 class="graf graf--h3 graf-after--li"&gt;Platforms&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--HR0u7lUJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2APIYa448f9c7Xvq9g2BFk8w.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Currently, the templates/starters at Enappd are available in three technologies i.e Ionic, React Native and Flutter framework. All three technologies &lt;strong class="markup--strong markup--p-strong"&gt;allow you to build mobile apps for both iOS and Android. &lt;/strong&gt;All three are great frameworks because they allow developers to quickly prototype and publish apps on multiple platforms with single source code. The first great thing is — you can publish apps without the need to learn Swift, Objective-C, Java or Kotlin! Instead, you’ll use JavaScript (for React Native, and Ionic) and Dart (for Flutter). Hence you’re able to create native apps for both platforms with one language instead of two — this obviously reduces the learning effort you have to take to build your mobile app by a lot!&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;All these frameworks are best at their own. While choosing a framework for your cross-platform app development, you need to analyze many factors like budget, time, application size, platforms, and so on.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Hybrid apps have been the sensation in recent years and for a good reason. With their ease of development, powerful performance and versatile usage possibility, Hybrid apps beat Native apps at many frontiers.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Automated Testing&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ii9OKJF---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Akfy2iRs7jSxR-go08KIPbg.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Since we are dealing with app starter that uses lots of ever-changing technologies like ionic, react native, etc. and their dependencies, it becomes imperative for us to ensure that the starters remain bug-free for a long time. Changing dependencies have always caused issues to developers, and it is almost impossible to keep track of every changing dependencies, even with npm or yarn. To make sure we keep the starters bug free, we have implemented an &lt;strong class="markup--strong markup--p-strong"&gt;Automated Test Routine &lt;/strong&gt;using Jenkins Server and &lt;strong class="markup--strong markup--p-strong"&gt;Continuous Integration (CI) &lt;/strong&gt;methodology. In simple words, our server will test the products &lt;strong class="markup--strong markup--p-strong"&gt;Every Day, &lt;/strong&gt;yes, every day. And it will report to us and all website users in real-time if the starter is passing the test. Amazing, right? Following image displays the process in a nut-shell&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--EWW3-7yV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AYMUlXvfZ3dJDQtRgy4Aw5w.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;We have implemented this to assure our users that our products are built with the highest quality standards, and changing technology effects are being tested regularly.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;How can I believe it is a valid test ?&lt;br&gt;&lt;/strong&gt;We display a build passing image in the PRODUCT STATUS widget, right next to product description. It looks something like this&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--AYHW4hGy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ABhGbLFBihWS1hfSC7zSi4Q.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This is the same notation every major code repository on Github uses to show their build status. E.g. REACT NATIVE uses the same process to display the status of their Github repository.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Automated build testing ensures:&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;The code clears all linting criteria&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;The starter code is bug-free&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;The starter code is able to create a &lt;strong class="markup--strong markup--li-strong"&gt;Store Deployable Android APK&lt;/strong&gt;
&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Users and Enappd developers get real-time information of the product status so that a bug-free product can be maintained&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;MNOP tested&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;iOS 6, X tested&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;However, all our products are also tested for Android M, N, O, P version as well as iOS 6, 10.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Support&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--HlhbfVpK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AhZwgnDsVgzbAEaAsa1CRgQ%402x.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;At Enappd we care for our users and so we have put Live Chat support on our site. It helps people to clear even tiny size doubts before putting their money on making the purchase. I am sure people who have interacted with us on Live Chat would agree that what bliss in life this facility is, they get to solve their queries and lots of heavy geeky doubts over here. We either troubleshoot their issues right away or we direct them to in-detailed articles of Enappd and other super awesome tutorials. And it's obvious now, that we provide mail support as well. You can reach out to us on the medium of your preference. Be assured of prompt response, i.e. no forever long waiting times.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Videos&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wjlwo7AE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AsAL4LOfYiGbZ2DIboa9Q4w.png"&gt;&lt;br&gt;Screenshot of videos on our Ionic 4 Full App Starter&lt;p class="graf graf--p graf-after--figure"&gt;Videos explaining the flow in a very quick fashion can be found on the product page of most major templates/starters. Thviis video helps you to see the product right in the action in a very quick way. You can also share this video easily with someone and get a quick review before making the purchase. Also, in some products, you get Mac/Windows installation videos too.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Tech Specs&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--mczNqsRj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AUOA0YT6IGSSDLUg4SmU8SA.png"&gt;&lt;br&gt;Tech Specs on Ionic 4 Netflix App Template on Enappd&lt;p class="graf graf--p graf-after--figure"&gt;The tech specs in which the particular app template/starter functions in a flawless manner is listed on all products page. Refer to it for a hassle-free speedy execution.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Free Upgrades&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Regular updates are made to the app templates/starters as soon as the new version of the tech is released. This update is provided free of cost, a new zip file is uploaded in the user’s Enappd account. Also users are informed about the updated zip file in their account through mail. If some drastic or big changes are made in the tech then it is not possible to make it work just by making some minor changes, it requires app to built from scratch again and user might have to purchase a new product in that case.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Documentation&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--yBtq6HmT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ADwkUeMp_Z3Dk0yP1EitdyQ.gif"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;It is one of the most important part, proper step by step instructions are quintessential, it saves time and stop unnecessary waste of energy in figuring out things i.e. it prevents reinventing the wheel from the scratch.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Demo&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--_J1NIHeo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AVBLOvznE-8gx-83MYTvFMQ.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;You can download demo APK from the product page and run the app in your own mobile phone before making the purchase. For React Native templates/starters you also get the option to scan the QR code from the Expo app and it just runs right there. It is as smooth as it can get. You can interact with the app and visit all the pages and see for yourself the craftsmanship that has been put into the product.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Blog&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--_jnY5OSh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AaTUqPCDe-bqOkPP7h_ar9g.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;In-detailed articles on all the latest techs, their various types of integration, form the very basic to very advanced. In advanced articles, you will find reference of articles explaining simple basic steps, all those steps where you can get stuck are covered in our exhaustive list of articles. All the articles are updated regularly with the new emerging technologies to make them stay meaningful and helpful with changing times.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Freebies&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--TNS-AYue--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A5yhtBtgYUlQEAXX4jDQG3Q.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Enappd provides free starters for beginners and experts to jump-start their development. Play around with them, make your own changes and see how they fare out. These all are high-quality starter app templates and you can integrate them in your own Ionic 4 Apps to enhance their functionality in no time. You will find blog links along with many of them which offer pro-level understanding.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Conclusion&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3 graf--trailing"&gt;Whether you are a freelancer or an app development agency, these starters are going to save you thousands of dollars in each project. There is no denying that the app development world is changing, and we as a company is evolving as well. Enappd is soon launching a marketplace, keeping the developers in mind. At marketplace you will be able to upload your templates and start earning right from your first step. Enappd’s mission is to bring together the developer community on a single platform where they can achieve higher goals by working coherently towards a unified vision.&lt;/p&gt;

</description>
      <category>ionic</category>
      <category>reactnative</category>
      <category>ios</category>
      <category>android</category>
    </item>
    <item>
      <title>Ionic vs React Native: Which one is better?</title>
      <dc:creator>Sanchit Gupta</dc:creator>
      <pubDate>Sun, 29 Mar 2020 20:10:55 +0000</pubDate>
      <link>https://dev.to/enappd/ionic-vs-react-native-which-one-is-better-4554</link>
      <guid>https://dev.to/enappd/ionic-vs-react-native-which-one-is-better-4554</guid>
      <description>
&lt;p class="graf graf--p graf-after--figure"&gt;While looking to develop mobile apps with other than the native toolsets, I found myself evaluating Ionic and React Native as two of the most common alternatives. Both have a large community of passionate developers, are used heavily in large enterprises, and can lay claim to many popular consumer apps.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;In this post, I will try to compare — Ionic and React Native framework. Both technologies &lt;strong class="markup--strong markup--p-strong"&gt;allow you to build mobile apps for iOS as well as Android. &lt;/strong&gt;After extensive research, I would say these two are great frameworks because they allow developers to quickly prototype and publish apps on multiple platforms with single source code.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The reason why I am writing this is that it is often asked — “What platform should I select for my enterprise app development?”. Though it is for most of the time very specific, we can still layout (or at least try!) some general guidelines to better decide.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The first great thing is — you can publish apps without the need to learn Swift, Objective-C, Java or Kotlin! Instead, you’ll use JavaScript for React Native and Ionic. Hence you’re able to create native apps for both platforms with one language instead of two — this obviously reduced a lot of learning effort for me to build my mobile apps.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Great! So how do these technologies differ, which one is the best choice for your next mobile project? Let’s take a look…&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;What is Ionic 4?&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--0QG-paDs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AJ1g22b6Qw0pX0jBY9hGfrw.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic&lt;/strong&gt; is a complete open-source SDK for hybrid mobile app development created by &lt;a href="https://medium.com/u/a76fa51de1ba?source=post_page---------------------------" class="markup--anchor markup--p-anchor"&gt;Max Lynch&lt;/a&gt;, &lt;a href="https://medium.com/u/14b1be5c1354?source=post_page---------------------------" class="markup--anchor markup--p-anchor"&gt;Ben Sperry&lt;/a&gt; and Adam Bradley of Drifty Co. in 2013. Ionic provides tools and services for developing hybrid mobile apps using Web technologies like CSS, HTML5, and Sass. Apps can be built with these Web technologies and then distributed through native app stores to be installed on devices by leveraging Cordova.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;So, in other words — If you create Native apps in Android, you code in Java. If you create Native apps in iOS, you code in Obj-C or Swift. Both of these are powerful but complex languages. &lt;strong class="markup--strong markup--p-strong"&gt;With Cordova (and Ionic) you can write a single piece of code for your app that can run on both iOS and Android &lt;/strong&gt;(and windows!), that too with the simplicity of HTML, CSS, and JS.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;What Is React Native?&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--zMlwuo9e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A0lbEBYItH0XwsRYuJEt5fQ.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;React Native is a JavaScript framework for writing real, natively rendering mobile applications for iOS and Android. It’s based on React, Facebook’s JavaScript library for building user interfaces, but instead of targeting the browser, it targets mobile platforms. In other words: web developers can now write mobile applications that look and feel truly “native,” all from the comfort of a JavaScript library that we already know and love. Plus, because most of the code you write can be shared between platforms, React Native makes it easy to simultaneously develop for both Android and iOS.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Similar to React for the Web, React Native applications are written using a mixture of JavaScript and XML markup, known as JSX. Then, under the hood, the React Native “bridge” invokes the native rendering APIs in Objective-C (for iOS) or Java (for Android). Thus, your application will render using real mobile UI components, not webviews, and will look and feel like any other mobile application. React Native also exposes JavaScript interfaces for platform APIs, so your React Native apps can access platform features like the phone camera, or the user’s location.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;React Native currently supports both iOS and Android and has the potential to expand to future platforms as well. In this blog, we’ll cover both iOS and Android. The vast majority of the code we write is cross-platform. And yes: you can really use React Native to build production-ready mobile applications! Some example: &lt;a href="http://bit.ly/1YipO7A" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Facebook&lt;/a&gt;, &lt;a href="http://bit.ly/1PPEiZH" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Palantir&lt;/a&gt;, and &lt;a href="http://bit.ly/1PPEjNg" class="markup--anchor markup--p-anchor" rel="noopener"&gt;TaskRabbit&lt;/a&gt; are already using it in production for user-facing applications.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Hybrid Mobile Apps vs. Native Apps: A Popular Debate&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;Before we start, here’s something important you should consider. Ionic is a framework for hybrid mobile app development and React Native is a cross-platform framework to build native apps.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Native apps are built in a specific language for a specific platform. For example, when you write code in Objective C for the iOS platform or use Java for Android, then the application is called as a native app. The main advantage of native app development is superior performance. Contradictory to this, hybrid applications are web applications that use web technologies such as HTML, CSS, and JavaScript to develop an application. To provide native experience and access to native features of Android, iOS, or any other platform, it uses PhoneGap/Cordova platforms.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Parameters&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;To decide which one is better for Cross-Platform Mobile App Development, I chose to define some parameters, on the basis of which I will try to make a clear comparison. And, those are:&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Language Stack&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Do not repeat yourself(DRY)&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Rich pre-styled Component Library&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Performance&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;User Interface&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ecosystem / Third-Party Libraries&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Market and Community&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Accessing Native Device Features&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Supported Platforms&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Popular Apps&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Pricing&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Maintainability&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 class="graf graf--h4 graf-after--li"&gt;1. The Language Stack&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;With this metric, I want to explore which framework utilizes which programming languages and offer what benefits:&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native:&lt;/strong&gt; It utilizes JavaScript which is at present one of the most popular, dynamic and high-level programming language. It combines the advantages of JavaScript and React.JS and is backed by Facebook.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The solid side of React Native that makes it best among the other three frameworks in terms of PL is that it allows writing a few components in Swift, Objective-C or Java when developers require them. Utilizing native modules and libraries in React Native applications, you can manage computationally heavy operations like video handling or image editing.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic framework:&lt;/strong&gt; It uses HTML5, CSS, and JS to develop and run applications, and requires Cordova wrapper to access native platform controllers. Utilizing IONIC, you can also use TypeScript that improves the quality of the code.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Here is how you can rank these frameworks based on the advantages offered by their programming languages:&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;React Native (React)&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ionic Framework (Angular)&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 class="graf graf--h4 graf-after--li"&gt;2. Do not repeat yourself (DRY)&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;With this metric, I want to explore how much of the code we write can be re-used for both platforms.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic:&lt;/strong&gt; Awesome re-usability! The “wrapped web app” concept ensures that you can easily re-use your code — you’re just building a wrapped web app in the end. The great component library of adaptive components (i.e. automatically styled for the platform the app runs on) also helps.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native:&lt;/strong&gt; Also compiles to native defaults but only provides a basic set of components to start with. You have to style most of them on your own, hence more work is required to achieve appropriate styles on both platforms. Generally, code can be re-used though (since you still only use one language and libraries like &lt;a href="http://redux.js.org/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Redux&lt;/a&gt; need no adjustment).&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Here is how you can rank these frameworks based on the Code Reusability&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Ionic Framework&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;React Native&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 class="graf graf--h4 graf-after--li"&gt;3. Rich pre-styled Component Library&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;How easy is it to build beautiful UIs? Do you have to create and style a lot of components (UI elements) on your own or do you have a rich suite of pre-built ones? Are the components adapting to the underlying platform automatically? That’s what this metric is about.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic:&lt;/strong&gt; Ionic in its core is a big set of pre-built (and pre-styled) components. The compiler/ toolchain which yields a native app is also part of the Ionic package (handled via its CLI) but it utilizes other packages like &lt;a href="https://cordova.apache.org/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Cordova&lt;/a&gt; or &lt;a href="https://capacitor.ionicframework.com/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Capacitor&lt;/a&gt;. The components provided by Ionic automatically adapt to the platform the app runs on and therefore, Ionic makes the creation of beautiful, native-looking apps a breeze!&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native:&lt;/strong&gt; A decent set of built-in components is provided but a lot of them need to be styled by you. And they’re non-adaptive, instead — just as with Flutter — you get alternatives for both operating systems. That requires adjustments in your code, where you have to choose, use and style widgets conditionally.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Here is how you can rank these frameworks based on the pre-styled Component Library&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Ionic Framework&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;React Native&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 class="graf graf--h4 graf-after--li"&gt;4. Performance&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This metric is the most important one and speaks for itself — how do the apps made in different frameworks perform from a run-time performance perspective?&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native:&lt;/strong&gt; The performance it provides is very similar to native applications as it renders code elements specifically to the native APIs. React additionally allow developers to use native modules written in native languages to write code for complicated operations. However, they can’t be reused across two platforms; their main purpose is to provide higher performance.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic:&lt;/strong&gt; In terms of performance, Ionic loses the game. Its performance isn’t as similar to React Native or flutter offers since it utilizes web technologies to render an application. This approach significantly decreases the speed. Also, it doesn’t utilize native components and tries to create a native look and feel by using web technologies.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The upside of Ionic is its quick testing process that runs instantly in a browser that streamlines the development process.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Ionic offers a poorer performance among these 3 as it’s a wrapped web app in the end. &lt;strong class="markup--strong markup--p-strong"&gt;But this is often misunderstood!&lt;/strong&gt; “Worse” sounds extremely bad but “worse” doesn’t actually mean “horrible” or even “bad”. Instead, you got worse performance than with the other approaches. In fact, on the devices we got these days, your app will probably run more than smooth! If you only (imaginary!) got 100fps instead of 105fps — would you notice a difference? You wouldn’t, so &lt;strong class="markup--strong markup--p-strong"&gt;keep Ionic in your mind for your next app!&lt;/strong&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Here is how you can rank these frameworks based on the performance they offer:&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;React Native&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ionic&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 class="graf graf--h4 graf-after--li"&gt;5. User Interface&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;Users judge apps within the first few seconds of usage and that’s why GUI of an app must be engaging while being easy — let’s see what these frameworks offer:&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native:&lt;/strong&gt; React Native modules associated with native UI controllers, which gives amazing user experience that is very close to native apps. It additionally utilizes the ReactJS library with extensive UI elements and streamlines the UI development.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic:&lt;/strong&gt; Ionic UI doesn’t utilize native elements at all and renders everything in HTML and CSS. Then it applies Cordova to give native mobile experience. Angular components that accompany the framework also enable Ionic apps look like the native ones.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Here is how you can rank these frameworks based on the UI they offer:&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;React Native&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ionic&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 class="graf graf--h4 graf-after--li"&gt;6. Ecosystem / Third-Party Libraries&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;What does the ecosystem look like? Is it easy to find help (on &lt;a href="https://stackoverflow.com/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Stackoverflow&lt;/a&gt; etc) and are there enough third-party libraries available to add that one feature your app needs?&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic:&lt;/strong&gt; Ionic uses JavaScript for its logic — and whilst you can use it with any (or no) JavaScript framework, it provides especially great support for Angular. Therefore, you benefit from these ecosystems. And the JavaScript, as well as the Angular ecosystem, is huge! Thousands of threads on &lt;a href="https://stackoverflow.com/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Stackoverflow&lt;/a&gt; and packages on &lt;a href="https://www.npmjs.com/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;npm&lt;/a&gt; help you solve your problems.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native:&lt;/strong&gt; It uses JavaScript and React, hence you got those ecosystems available. Additionally, React Native on its own has quite a vibrant ecosystem and community, hence you find many threads on Stackoverflow and a lot of third-party packages that add missing functionalities. A downside is that you often need to rely on the ecosystem (like plugins, starters etc.) since only core features are included in React Native itself. React Native’s ecosystem in not as strong as others, and often keeps changing or the third-party plugins can’t keep pace with changing React Native&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Here is how you can rank these frameworks based on the Ecosystem / Third-Party Libraries&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Ionic&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;React Native&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 class="graf graf--h4 graf-after--li"&gt;7. Market and Community&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;Having a dynamic ecosystem is something worth being thankful for — but it matters how popular is an option? Let’s see:&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native:&lt;/strong&gt; React Native is the king when it comes to market and community recognition. The network of its developers is quickly growing and as of now has many experienced React Native Engineers. This makes it easy to kick start a React project. It utilizes an amazingly popular library (React) and the most essential web development language (JavaScript) and provides real native applications. These qualities make it a strong platform and are the reasons behind its fame.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic:&lt;/strong&gt; It is the second most popular framework after React. It empowers developers to build native mobile apps in the fastest possible way. Ionic has a huge community support, as well as a &lt;a href="https://market.ionicframework.com" class="markup--anchor markup--p-anchor" rel="noopener"&gt;great marketplace&lt;/a&gt; where you can find a lot of starters and templates to jump start any app from &lt;a href="https://market.ionicframework.com/starters/taxi-booking-complete-platform-ionic-4" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Uber&lt;/a&gt; to &lt;a href="https://market.ionicframework.com/starters/ionic-4-spotify-pwa-and-app-starter" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Spotify&lt;/a&gt;.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Here is how you can rank these frameworks based on their industry recognition and reliability:&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;React Native&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ionic&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 class="graf graf--h4 graf-after--li"&gt;8. Accessing Native Device Features&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;Your mobile apps most likely need access to some native device feature like the camera or GPS. How easy is it to get that access? And how easy is it for relatively new features (e.g. AR APIs provided by Android/ iOS)?&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic:&lt;/strong&gt; Ionic uses Cordova or its own solution, Capacitor, to give you access to native device features. It provides a &lt;a href="https://ionicframework.com/docs/native/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;very decent set of packages&lt;/a&gt; to access common native device functionalities like the camera. You can also write your own wrappers around native functionalities and then include them in your code of course. Also, Ionic/Cordova and/or Angular plugins are very stable, and update readily with platform updates.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p is-selected"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native:&lt;/strong&gt; Being the most popular solution, you find a rich set of third-party packages as well as some built-in APIs for accessing native platform functionalities. Relying on third-party packages (which you mostly have to do) of course has the disadvantage that the core maintainers of that package might quit, hence the support is not on the same level as it is with Ionic or NativeScript.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Here is how you can rank these frameworks based on the Accessing Native Device Features :&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;React Native&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ionic&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 class="graf graf--h4 graf-after--li"&gt;9. Supported Platforms&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native:&lt;/strong&gt; Android 4.1+ , iOS 8+&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic:&lt;/strong&gt; Android 4.4+ , iOS 8+ , Windows 10&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;10. Popular Apps&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native:&lt;/strong&gt; Facebook, Instagram, UberEats, Airbnb (they later removed RN from usage. Read More here — &lt;a href="https://softwareengineeringdaily.com/2018/09/24/show-summary-react-native-at-airbnb/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Why Airbnb left React Native&lt;/a&gt;)&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic:&lt;/strong&gt; JustWatch, Pacifica, Nationwide and many more.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;11. Pricing&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;React Native:&lt;/strong&gt; Completely open-source frameworks. Engineers can utilize this system and their libraries for free.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic:&lt;/strong&gt; It is a free open source framework for developing cross-platform mobile applications. But, the organization offers its Pro Development Environment which is paid. The company guarantees that Ionic Pro accelerates the development process.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;12. Maintainability&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;With React native any 3rd party library that you might use could get outdated or become incompatible with your updated codebase. Hence, maintainability remains a big issue.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;As opposed to React native, you would only require maintaining one single app in Ionic(you had to maintain iOS and Android builds in React native).&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;However, the biggest challenge with the maintainability of Ionic apps is that the framework itself is undergoing continuous changes with frequent release cycles on Ionic and Cordova.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Conclusion&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;If it requires you to deliver high performing apps which are closed in giving the native performance of users, then React Native will be the best option for you. On the other hand, if your project requirement allows you to deliver a decent performing app which looks like native to users then you can always go with the Ionic framework. It all depends on the project requirement. In case of any further questions, feel free to comment or get in touch.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Next Steps&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Now that you have learned the major differences between Ionic framework and React Native for mobile app development, you can consider going through some of the topics below:&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;How To in React Native — &lt;a href="https://enappd.com/blog/pick-images-from-camera-gallery-in-react-native-app/78" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Image picker&lt;/a&gt;| &lt;a href="https://enappd.com/blog/intergrate-firebase-in-react-native-app/73" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Integrate Firebase&lt;/a&gt; | &lt;a href="https://enappd.com/blog/react-native-firebase-crud-image-upload-and-phone-authentication/86" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Push notifications&lt;/a&gt; | &lt;a href="https://enappd.com/blog/geolocation-geocoding-react-native-apps/84" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Geolocation&lt;/a&gt; | &lt;a href="https://enappd.com/blog/react-native-life-cycle-hooks/79" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Life cycle hooks&lt;/a&gt;
&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;How To in Ionic — &lt;a href="https://enappd.com/blog/image-picker-in-ionic-4-app/67/" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Image picker&lt;/a&gt;| &lt;a href="https://enappd.com/blog/how-to-integrate-firebase-in-ionic-4-apps/23/" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Integrate Firebase&lt;/a&gt; | &lt;a href="https://enappd.com/blog/implement-ionic-4-firebase-push/34/" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Push notifications&lt;/a&gt; | &lt;a href="https://enappd.com/blog/using-geolocation-geocoding-and-reverse-geocoding-in-ionic-4/45/" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Geolocation&lt;/a&gt; | &lt;a href="https://enappd.com/blog/adding-video-player-in-ionic-4-app/64/" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Video Player&lt;/a&gt;| &lt;a href="https://enappd.com/blog/rtl-right-to-left-use-in-ionic-4/50/" class="markup--anchor markup--li-anchor" rel="noopener"&gt;RTL&lt;/a&gt;
&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;a href="https://enappd.com/blog/guide-on-react-native-full-app/53" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Create Awesome Apps in React Native&lt;/a&gt; using Full App&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;a href="http://enappd.com/blog/ionic-4-full-app-how-to-make-ionic-4-apps-from-the-super-template/14/" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Create Awesome Apps in&lt;/a&gt; IONIC 4 using Full App&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;If you need a base to start your next Ionic 4 app, you can make your next awesome app using &lt;a href="https://store.enappd.com/product/ionic-4-full-app/" class="markup--anchor markup--p-anchor" rel="noopener nofollow noopener noopener nofollow noopener noopener nofollow noopener noopener noopener noopener noopener noopener noopener"&gt;Ionic 4 Full App&lt;/a&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--IFbNjPgI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A2BzL8TesnBHuazHr3VA4SQ.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;If you need a base to start your next React Native app, you can make your next awesome app using &lt;a href="https://store.enappd.com/product/react-native-full-app/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;React Native Full App&lt;/a&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--CF89hkbC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AsWyEeAfCMk7ULOkLUCdSug.jpeg"&gt;

</description>
      <category>ionic</category>
      <category>reactnative</category>
      <category>hybrid</category>
      <category>comparison</category>
    </item>
    <item>
      <title>Ionic 4 Netflix Clone Video Streaming App Template: Features Overview</title>
      <dc:creator>Sanchit Gupta</dc:creator>
      <pubDate>Sun, 29 Mar 2020 20:06:18 +0000</pubDate>
      <link>https://dev.to/enappd/ionic-4-netflix-clone-video-streaming-app-template-features-overview-1je4</link>
      <guid>https://dev.to/enappd/ionic-4-netflix-clone-video-streaming-app-template-features-overview-1je4</guid>
      <description>
&lt;p class="graf graf--p graf-after--figure"&gt;The days of having to tune in live or buy expensive discs in order to watch your favorite shows and movies are gone. Now, you can simply boot up one of the best streaming services, and watch your favorite movies and shows on-demand. One of the most popular service overall is Netflix, offering an excellent selection of TV shows, movies and original programming.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;TeeVee — An Ionic 4 Video streaming App Template &lt;/strong&gt;is a mobile app theme/template with Netflix style UI. With this template kit, you can build a complete working video-streaming and downloading application to provide the streaming services to people at an extremely convenient way. With this template, you can create &lt;strong class="markup--strong markup--p-strong"&gt;video streaming &lt;/strong&gt;apps like Netflix, Amazon Prime, Zee5, Hotstar, etc.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;This template is the front-end part, which means the screens and user interfaces (screens) are ready. You can easily change the screens, styles, and logics to suit your requirements. To make it a live app like Netflix, Amazon Prime, Zee5, Hotstar, etc. you just need to add a back-end to the app, and load your data in the back-end.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--z_peUQRJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A74hQzVxfUtdhNJyTFp2kFQ.gif"&gt;&lt;br&gt;Netflix….and Chill!&lt;p class="graf graf--p graf-after--figure"&gt;You can use the screens coded in this app, navigation between the screens and specific functions applied to buttons, etc. This saves your 100% cost and time in front-end UI development. You can simply add a back-end/server to this app template, and replace the demo data with data coming from your server. This way, you only spend time and money on back-end development and a bit on front-end data integration.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--bQsFGtlG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AZLJYkTCCue9hJrrYRQ3G4w.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This template is made in Ionic 4 language. With Ionic 4, you can&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Create iOS and an Android app (and a Progressive Web App as well) with a single source code&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Cut your project cost and time in half (or further if you are making a PWA)&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ensure exact same UI in iOS and Android, while following the standard UI norms&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Saves you from doing separate updates for each app (iOS and Android) in future, hence saves time&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="graf graf--h3 graf-after--li"&gt;Features of this template&lt;/h3&gt;
&lt;h4 class="graf graf--h4 graf-after--h3"&gt;Screens&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--D3U72_FR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2ATX0o8ZUOjaBGjToqsVFIsA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Login&lt;br&gt;&lt;/strong&gt;This page can be accessed from the Signup page as the app loads. By clicking on the sign-in button at the top right of the header, after the required entries in the input field, it redirects you to the home page.The login page can be used to perform login action with username/email and password. Currently, the login is only for demo purposes.The login page also contains “Need Help” and “Signup” page navigations.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Signup — Load&lt;br&gt;&lt;/strong&gt;This page can be accessed as the app loads. By clicking on the “Join Free For A Month” button it redirects you to the Plan page. The signup page can be used to register a user with a username/email and password. Currently, the signup is only for demo purposes. The signup page also contains “Login page “ page and “Help” page navigations.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Signup — Choose a Plan&lt;br&gt;&lt;/strong&gt;This page can be accessed from the signup loading page by clicking on the Join Free For a Month button at the bottom of the page. This page navigates to the Plan List page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Signup — Plan List&lt;br&gt;&lt;/strong&gt;This page can be accessed from the choose a plan page by clicking on the set the plan button at the bottom of the page.&lt;br&gt;This page navigates to the Create an account page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--TF0vJvt---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AAK_os8j01utJjpF7WmeI9w.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Signup — Create an account&lt;br&gt;&lt;/strong&gt;This page can be accessed from the select a plan List page by clicking on the set the plan button at the top of the page and after selection by clicking on the continue button at the bottom of the page.&lt;br&gt;This page navigates to the Payment setup page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Signup — Payment setup page&lt;br&gt;&lt;/strong&gt;This page can be accessed from the create an account page by clicking on the continue button at the bottom of the page. This page contains the payment methods for the subscription of the application.&lt;br&gt;This page navigates to the Home page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Home&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed from the Payment setup page by clicking on the Start Membership button at the bottom of the page, or if you login to the app directly from &lt;strong class="markup--strong markup--p-strong"&gt;Login screen&lt;/strong&gt;. This page contains the previews, Top Picks, and many other categories in the vertical direction. This layout is similar to Netflix’s latest layout. Each category contains multiple types or categories in the horizontal direction and is scrollable. This page navigates to the Previews, Full video, Movie details, TV Shows, Movies and My List pages. Home page contains the nested segments and tabs in the page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--rTK6qoJI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2A1-FFcav7wWXXAxAcu1uULg.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Home — Previews&lt;br&gt;&lt;/strong&gt;This page can be accessed from the Home page by clicking on each of the preview cards image arranged in the horizontal line as scrollable content on the home page. This page contains videos previews in a story format, very similar to Netflix, Whatsapp and Instagram stories. &lt;br&gt;This page navigates to the movie information page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Home — Categories&lt;/strong&gt;&lt;br&gt;This is the first tab of the app. This page can be accessed after a successful login or sign up. this page contains multiple categories of video streaming arranged in horizontal rows. Each row contains scrollable items in the horizontal rows.&lt;br&gt;By clicking on any item of any particular category navigates you to the detailed information of the movie page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--I_2NcgoT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AiggiWb4gfIa52XQ-2oS3lA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Home — Categories — Movie information&lt;br&gt;&lt;/strong&gt;This page can be accessed from the first tab of the application by clicking on any item of any particular categories.&lt;br&gt;This page contains the complete information of the movies or shows streaming on TEEVEE.&lt;br&gt;This page contains segments including &lt;br&gt;1. EPISODES&lt;br&gt;2. TRAILER&lt;br&gt;3. MORE LIKE THIS&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Home — Categories — Movie information — EPISODE&lt;br&gt;&lt;/strong&gt;This page contains all the episode of the particular season of the series or TV shows. This page also has a share icon which can be used to share the page content among the network of yours.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Home — Categories — Movie information — TRAILERS&lt;br&gt;&lt;/strong&gt;This page contains all the upcoming movies or TV Shows trailers of the particular season of the series or TV shows. By clicking on any of the trailers, this will navigate to the video player.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Home — Categories — Movie information — More Like This&lt;br&gt;&lt;/strong&gt;This page contains the recommended video or episodes related to your search or preferences in the application. By clicking on any recommended card, it will navigate to the movie information page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ioqFAC3A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2Ap4EuhSJwoACXrk5eRwAhZw.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Search — Popular Searches&lt;br&gt;&lt;/strong&gt;This is the second tab of the application. This page contains random searches in the application. By clicking on the image of a particular item it navigates to that search item details and by clicking on the play icon of the particular image of the item it navigates to the video player.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Search — Custom Search&lt;br&gt;&lt;/strong&gt;This page can be accessed from the second tab of the application by writing more than three words in the search box. By clicking on any item of the page will navigate to the movie or show information page.&lt;br&gt;Here this is only UI demonstration but you can integrate back-end and make it dynamic.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Coming Soon&lt;br&gt;&lt;/strong&gt;This is the third tab of the application. This tab contains all the upcoming movie trailers and short videos. By clicking on any of the movies it plays the video.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Downloads&lt;br&gt;&lt;/strong&gt;This is the fourth tab of the application. This tab contains the list of downloaded videos, movies or TV Shows in the application. If you don’t have any video downloaded then this will contain a button to navigate you to the downloadable contains.&lt;br&gt;This page contains a smart downloadable toggle to enable and disable smart download service.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--zGEYLLTO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2A1BUn7Txkx1djfmTovci-hA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Downloads — Smart Downloads&lt;br&gt;&lt;/strong&gt;This page can be accessed from the downloads tab by clicking on the “&lt;strong class="markup--strong markup--p-strong"&gt;Smart Download ON&lt;/strong&gt;” button in the header of the page. &lt;br&gt;This page contains detailed information about the smart download.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;More&lt;br&gt;&lt;/strong&gt;This is the fifth and last tab of the application. This tab contains all the functions of the app including: —&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Manage Profiles&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Refer a Friend&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Notifications&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;My List&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;App Settings&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Help&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Sign Out&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="graf graf--p graf-after--li"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;More — Manage Profiles&lt;br&gt;&lt;/strong&gt;This is the fifth tab and the first content of this application. This page contains the currently available users for the application. Here a user can edit the user details by clicking on any of the user profile delete the user from the application.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;More — Manage Profiles — Edit profile&lt;br&gt;&lt;/strong&gt;This page can be accessed from the applications fifth tab by clicking on the manage profile and inside manage profile click on any user to edit details. Here a user can edit his/her own or other users detail in the application can save that.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--eG2x9MIG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AM874T7bthwSC6YFmR0-QAA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;More — Notifications&lt;br&gt;&lt;/strong&gt;This can be accessed from the more page by clicking on the notifications.&lt;br&gt;This page contains the notifications of upcoming movies or episodes or Tv Series. This page contains the notification as list items in the vertical direction of the page. By clicking on any item in the navigations it will redirect you to the notified item details. To enable and disable mobile notifications, you will first need a Push notifications system in your back-end. If you are using Firebase — implementing, enabling and disabling push notification is very easy compared to a custom back-end. Read more about Firebase- Ionic push notification&lt;a href="https://enappd.com/blog/implement-ionic-4-firebase-push/34" class="markup--anchor markup--p-anchor" rel="noopener"&gt; here&lt;/a&gt;. You will first need a Push notifications system in your back-end. If you are using Firebase — implementing, enabling and disabling push notification is very easy compared to a custom back-end. Read more about Firebase- Ionic push notification &lt;a href="https://enappd.com/blog/implement-ionic-4-firebase-push/34" class="markup--anchor markup--p-anchor" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;More — My List&lt;br&gt;&lt;/strong&gt;This page can be accessed from the more page in the application by clicking on the “&lt;strong class="markup--strong markup--p-strong"&gt;My List&lt;/strong&gt;”. This page contains the selected or shortlisted movies, shows, series or any item within the application shortlisted by the user.&lt;br&gt;By clicking on the list item it will navigate to the item details page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;More — App Settings&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the&lt;strong class="markup--strong markup--p-strong"&gt; settings&lt;/strong&gt; on the more page. In any app, settings page plays an important role in setting user’s preferences and requirement, here user can set the preferences for &lt;a href="https://enappd.com/blog/implement-ionic-4-firebase-push/34" class="markup--anchor markup--p-anchor" rel="noopener"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Push Notification&lt;/strong&gt;, &lt;strong class="markup--strong markup--p-strong"&gt;Email Notifications&lt;/strong&gt;, &lt;/a&gt;download quality, device, storage, account, data usage and many more. This page allows you to toggle some preferences and navigates to other pages to select choices. This page allows the user to select Cellular Data Usage, Allows Notifications Toggle, and download video quality. We can select and set any setting from the list of settings arranged in the vertical direction. This is the only UI for the demo purpose.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;More — Help&lt;br&gt;&lt;/strong&gt;This page can be accessed from the more page by clicking on the “Help”. This page contains all the help regarding the application account cancellation, payment method update, connection issues, etc.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--3s7A6wO_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AEYEQqiBsnroYDUHzrnkYXA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Social Sharing&lt;br&gt;&lt;/strong&gt;Providing Social Sharing features is where you can share using your app. This template does have a &lt;a href="https://ionicframework.com/docs/native/social-sharing" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Social Sharing plugin &lt;/a&gt;functionality but only for demo purpose. You can enter your own share URLs, text, images etc to share whatever you want.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Video Player&lt;br&gt;&lt;/strong&gt;This feature allows us to watch the video in ionic 4 apps very easily. It gives us the facility to play/pause, seek, show/hide controllers and many more. In our app, we have implemented video rotate functionality — if you want to watch the video in landscape mode, you would only need to click on the rotate icon in the video screen.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Payments&lt;br&gt;&lt;/strong&gt;You can implement the payments by using any one or multiple of the following for TeeVee subscription.&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;&lt;a href="https://enappd.com/blog/payment-gateway-solutions-in-ionic-4-paypal-apple-pay-stripe-and-others/6" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic PayPal&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ionic Stripe&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/payment-gateway-solutions-in-ionic-4-paypal-apple-pay-stripe-and-others/6" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic in-app purchase&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ionic Apple Pay and Android Pay&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/how-to-integrate-razorpay-in-ionic-4-apps-and-pwa/20" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic Razorpay&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;PhonePe&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;GooglePay&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;AmazonPay&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="graf graf--h3 graf-after--li"&gt;Conclusions&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3 is-selected"&gt;In this article, we got to know in quick fashion about all the screens and features of “Ionic 4 Netflix style video streaming app template -TeeVee” from Enappd. Speedier internet connections and an abundance of video streaming devices have accelerated the decline of traditional cable. More and more viewers are cutting the cord entirely in favor of dedicated streaming alternatives. This starter can be a very useful and time-saving starting point for freelancers and so provide great value at a fraction of the price if one goes for the custom development from scratch.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;em class="markup--em markup--p-em"&gt;— — — — — — — — — — — — — — — — — — — — — — — — — — -&lt;/em&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;&lt;em class="markup--em markup--p-em"&gt;Buy “&lt;/em&gt;&lt;/strong&gt;&lt;a href="https://store.enappd.com/product/ionic-4-netflix-style-video-streaming-app-template/" class="markup--anchor markup--p-anchor"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic 4 Netflix style video streaming app template -TeeVee&lt;/strong&gt;&lt;/a&gt;&lt;strong class="markup--strong markup--p-strong"&gt;”&lt;em class="markup--em markup--p-em"&gt; today!!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p graf--trailing"&gt;&lt;em class="markup--em markup--p-em"&gt;— — — — — — — — — — — — — — — — — — — — — — — — — — -&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ionic</category>
      <category>netflix</category>
      <category>video</category>
      <category>streaming</category>
    </item>
    <item>
      <title>Ionic 4 Car Pooling App Starter — Features Overview</title>
      <dc:creator>Sanchit Gupta</dc:creator>
      <pubDate>Sun, 29 Mar 2020 19:07:15 +0000</pubDate>
      <link>https://dev.to/enappd/ionic-4-car-pooling-app-starter-features-overview-1b94</link>
      <guid>https://dev.to/enappd/ionic-4-car-pooling-app-starter-features-overview-1b94</guid>
      <description>
&lt;p class="graf graf--p graf-after--figure is-selected"&gt;Carpooling is the sharing of car journeys so that more than one person travels in a car, and prevents the need for others to have to drive to a location themselves. Growing population lead to more vehicles on the road thus increasing traffic congestion and pollution.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Carpool &lt;/strong&gt;is carpooling or ride-sharing app template built in Ionic 4. With this template, you can create apps like BlaBla Car, UberPool, Ola Share, etc. With this starter kit, you can build a full working cab booking and sharing application to provide services to the people at an extremely convenient way, You only have to integrate a back-end server to make it fully functional.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--KVNiNGop--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AQPwHCJUelG1xy-yPK5DmUg.gif"&gt;&lt;h3 class="graf graf--h3 graf-after--figure"&gt;How can I use this template&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;This template is a ready-made front-end template for a carpooling and ride-sharing App. You can use the screens coded in this app, navigation between the screens and specific functions applied to buttons, etc. This saves your 100% cost and time in front-end UI development. You can simply add a back-end/server to this app template, and replace the demo data with data coming from your server. This way, you only spend time and money on back-end development. You can easily change the screens, styles, and logics to suit your requirements. To make it a live app like BlaBla Car, UberPool, ToGo, Uber Eats, and Ola Share, etc. you just need to add a back-end to the app, and load your data in the back-end.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--r_UULYik--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2At2brU6K3ognGtSQXodLRKA.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This template is made in IONIC 4 language. With IONIC 4, you can&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Create iOS and an Android app with a single source code&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Cut your project cost and time in half&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ensure exact same UI in iOS and Android, while following the standard UI norms&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Saves separate updates for each app in future&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="graf graf--h3 graf-after--li"&gt;Features of this template&lt;/h3&gt;
&lt;h4 class="graf graf--h4 graf-after--h3"&gt;Screens&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--NZJWO2GZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2A7OflEcKyHqSy0eocSJ69uw.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Landing&lt;br&gt;&lt;/strong&gt;You will get this screen as the app loads successfully after the splash screen timeout. Here you are provided with two options on this screen one is log in and another one is signup. If a user already exists then he/she may opt for login or if he/she has no account on this application then the user will have to create an account by clicking on the signup button.&lt;br&gt;This page navigates you to the login page and signup page. Here this page only UI for demo purpose but you can make it a fully working application by integrating backend to it with the help of a good backend developer.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Login&lt;br&gt;&lt;/strong&gt;This page can be accessed from the Landing page as the app loads. By clicking on the login button after the required entries in the input field it redirects you to the home page. The login page can be used to perform login action with username/email and password. Currently, the login is only for demo purposes. The login page also contains “Forgot Password” and “Signup” page navigations.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Signup&lt;br&gt;&lt;/strong&gt;This page can be accessed as the app loads. By clicking on the signup button it redirects you to the Home page. The signup page can be used to register a user with a username/email and password. Currently, the signup is only for demo purposes. The signup page also contains “Login page “ page navigations.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Forgot Password&lt;br&gt;&lt;/strong&gt;This page can be accessed from the “Login” page. Forgot Password page can be used to send a reset password URL or OTP to the user’s email or any other way you want to use. Currently, this page is only UI. The email sent to the user can be verified from their mail and the user may be asked to provide a new password.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--d7JgTM79--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AMkWE7Y6pX0CuSKbm4mK3TA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Home&lt;br&gt;&lt;/strong&gt;This is the first tab of the application. This page can be accessed after a successful login by a registered user for the application. Home page contains two segments “CURRENT ” and “HISTORY” at the top of the page after the header. The current segment has options to &lt;strong class="markup--strong markup--p-strong"&gt;OFFER A RIDE&lt;/strong&gt; and &lt;strong class="markup--strong markup--p-strong"&gt;FIND A RIDE &lt;/strong&gt;options for a user. The history segment has the details of all the rides taken in the past. By clicking on any one options in the current segment, it will navigate to the Offer a ride page or Find a ride page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;History&lt;br&gt;&lt;/strong&gt;This is the first tab’s second segment of the application. This page can be accessed by clicking on the second segment “History” in the application. This page contains all the information about previous rides.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Offer Ride — Pick-up&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on&lt;strong class="markup--strong markup--p-strong"&gt; offer a ride&lt;/strong&gt; button on the home page. Here you can search for a pickup location of your choice or bu clicking on use current location to access your current location with the help of Ionic geolocation plugin.&lt;br&gt;This page navigates you to your pickup location’s view on the pickup map page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Offer Ride &amp;gt; Pick-up &amp;gt; Map&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on any of the locations in pickup page. This page depicts the exact pick-up location on the map. This page navigates to the drop-off page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--wOMtopOX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AtjDxgwEqTzhQ-9H0zZy66g.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Offer Ride — Drop-off&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the arrow forward button on the pick-up-map page. Here you can select your drop location same as the pickup location. This page navigates to drop-off map view page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Offer Ride — Drop-off — Map&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on any of the locations in drop-off page. This page depicts the exact drop location on the map. This page navigates to the add stopover page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Add Stopover&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the arrow forward button on the drop-off-map page. Here you can select your stopover in-between the journey. This page navigates to map view page of your complete ride.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Add Stopover — Complete journey on the map&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the confirm button on the &lt;strong class="markup--strong markup--p-strong"&gt;Add Stopover &lt;/strong&gt;page. This page shows the map view of the journey.&lt;br&gt;This page navigates to the calendar page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--lmBI3hbR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2A8e9I8MwODh1Y2-uI6ExYXQ.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Calendar page&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the Good for me button on the journey map view after the stopover selection. Here we can select the date of departure for your ride.&lt;br&gt;This page navigates you to the &lt;strong class="markup--strong markup--p-strong"&gt;Select Time&lt;/strong&gt; page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Select time page&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the arrow-forward button on the select date page. Here we can select the time of departure for the ride.&lt;br&gt;This page navigates to the comfort page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--d14sQwBi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AjEu7SDpUO4aKTfTJKkUlEQ.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Comfort page&lt;br&gt;&lt;/strong&gt;This page can be accessed after the pickup time selection. this page navigates you to the total no of carpool passenger’s page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Total passengers&lt;br&gt;&lt;/strong&gt;This page can be accessed after comfort page by clicking on any button on that page. Here you can select the total number of passengers that you can take with you for the ride.&lt;br&gt;This page navigates you to the permission page to verify either passenger booking instantly or not ?.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Permission to book by Passengers instantly&lt;br&gt;&lt;/strong&gt;This page can be accessed after total passengers page by clicking on the arrow-forward button at the right end of the page.&lt;br&gt;This page navigates you to the recommended price per se seat page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Recommended price per seat&lt;br&gt;&lt;/strong&gt;This page can be accessed after the permission page.&lt;br&gt;This page navigates to the don’t agree or confirmation price page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--2nj_hAtu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AAlsR29H7bTCx8SiLzRB9EQ.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Price Edit&lt;br&gt;&lt;/strong&gt;This page can be accessed after the recommended price page. This page navigates to the edit price page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Price Amount Enter&lt;br&gt;&lt;/strong&gt;This page can be accessed from the don’t agree page. Here you can edit the price of the journey. This page navigates you to the return trip page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Return Trip Plan&lt;br&gt;&lt;/strong&gt;This page can be accessed from the edit price page. This page navigates to the return journey plan Calender.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Return Trip Plan date selector&lt;br&gt;&lt;/strong&gt;This page can be accessed from the return trip plan confirmation page. Here you can select the return date of the journey. This page navigates to the return time page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--vpuX6aDS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2ASAqSCCPTLivfLtPOm9iWJA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Select return time&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the arrow-forward button on the select return date page. Here we can select the return time of pick for the ride.&lt;br&gt;This page navigates to message for the passenger’s page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Message for the passengers&lt;br&gt;&lt;/strong&gt;This page can be accessed after the return time page. Here on this page, the user can add some messages or instructions about his/her ride. This page navigates to the ride confirmation page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Offer Ride Confirmation&lt;br&gt;&lt;/strong&gt;This page can be accessed after complete ride information. This page navigates to the Home page current segment.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--rratMro---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AvfAgnUvdtBn8wdfUkHcKNw.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Home Page — Current segment — offered rides&lt;br&gt;&lt;/strong&gt;This page can be accessed after filling and selecting all the details from the “&lt;strong class="markup--strong markup--p-strong"&gt;OFFER A RIDE&lt;/strong&gt;” to “&lt;strong class="markup--strong markup--p-strong"&gt;RIDE CONFIRMATION&lt;/strong&gt;”. This page contains the navigation to journey and stops page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Home Page — Current segment — offered rides — Journey and Stops&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the card in the home page.&lt;br&gt;This page navigates to:-&lt;br&gt;1. Journey &amp;amp; Stops&lt;br&gt;2. Passenger contribution&lt;br&gt;3. Passenger Options&lt;br&gt;4: Delete Offered Journey&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Offered Rides — Journey and Stops — Journey &amp;amp; stops details&lt;br&gt;&lt;/strong&gt;This page can be accessed from the Journey &amp;amp; Stops. this page contains the details of the offered journey.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Offered Rides — Journey and Stops — Passenger contribution&lt;br&gt;&lt;/strong&gt;This page can be accessed from the Journey &amp;amp; Stops. This page contains the details of the price offered for the journey. Here you can edit the price and save that.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--wViCmR-G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Ak6zKiFyd2dkjGXVXRIddCg.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Offered Rides — Journey and Stops — Passenger options&lt;br&gt;&lt;/strong&gt;This page can be accessed from the Journey &amp;amp; Stops. This page contains the details of the passengers offered for the journey. Here you can edit the number of passengers and message for the passengers and save that.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Offered Rides — Journey and Stops — Delete Offered Journey&lt;br&gt;&lt;/strong&gt;This page can be accessed from the Journey &amp;amp; stops page by clicking on the delete button at the bottom of the page. This page navigates to the first tab’s first segment.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--6YLge0Ph--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AwmtEMwUPsiJeh89hYv8E1w.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Find a ride&lt;br&gt;&lt;/strong&gt;This is the second tab of the application. This page navigates to the: —&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Destination location&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Pickup Location&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Date and time selection&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Find a ride — Pickup Location&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the &lt;strong class="markup--strong markup--p-strong"&gt;Pickup location&lt;/strong&gt; in the second tab of the application. In this page, we can select the pickup location of our’s using google place prediction.&lt;br&gt;This page navigates back to find a ride page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Find a ride — Destination Location&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the&lt;strong class="markup--strong markup--p-strong"&gt; Destination location&lt;/strong&gt; in the second tab of the application. In this page, we can select the destination location of our’s with the help google place prediction.&lt;br&gt;This page navigates back to find a ride page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ_jQEvQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AlIgza91OjVgm7TCbYtjiEQ.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Find a ride — Date and Time&lt;br&gt;&lt;/strong&gt;These pages can be accessed by clicking on the Date and Time button on the Find a ride page to select the date and time for the ride. This page navigates back to find a ride page. In find ride page after selecting all the information this page navigates to the available rides page by clicking on the search.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Tj8lTtBy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AKrG0d50YwAYl_Pha3LFKUw.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Find a ride — Available rides&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the search on the second tabs of the application after filling/selecting all the required details of the ride. By selecting any ride it navigates to the ride details page.&lt;br&gt;Find a ride — Available rides details&lt;br&gt;This page can be accessed by clicking on any card in the available rides page. The page contains detailed information about the available ride. This page navigates to the total riding passenger’s page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Find a ride — Total passengers count&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the “&lt;strong class="markup--strong markup--p-strong"&gt;CONTINUE&lt;/strong&gt;” at the bottom of the available ride details page.&lt;br&gt;This page navigates to the “&lt;strong class="markup--strong markup--p-strong"&gt;Book&lt;/strong&gt;” page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--hR_ruH28--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2ATnQY9nVYQ3WRzKeFJrNPyQ.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Find a ride — Book ride page&lt;br&gt;&lt;/strong&gt;This page can be accessed from the total passenger’s count by clicking on the arrow-forward button at the bottom right most of the page. This page navigates to the “&lt;strong class="markup--strong markup--p-strong"&gt;Booking confirmation&lt;/strong&gt;” page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Find a ride — Booking confirmation&lt;br&gt;&lt;/strong&gt;These pages can be accessed from the “&lt;strong class="markup--strong markup--p-strong"&gt;Book ride&lt;/strong&gt;” page. This page processes the progress for booking confirmation.&lt;br&gt;This page navigates to the ride booked confirmation page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Find a ride — Ride Booked&lt;br&gt;&lt;/strong&gt;This is the last page of the find a ride flow. This page navigates back to the find ride page after successful ride booking.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ozizeyr2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2Ax6WSHA-NFGJJ6zbrvL239A.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Inbox&lt;br&gt;&lt;/strong&gt;This is the fourth tab of this application. This page contains the nesting of tabs and segments. This page has two segments at the top of the page below the header as “MESSAGES” and “NOTIFICATION”.This is the first segment of the inbox tabs.&lt;br&gt;This page navigates to the Chat page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Inbox — Messages-Chat&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on any chat contact in the “MESSAGES” segment. Messages page contains the chat application for direct interaction to the carpool customer service. Here chat is only UI and for demo purpose.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Inbox — Notification&lt;br&gt;&lt;/strong&gt;This is the second segment of the inbox tabs. This page contains the notification as list items in the vertical direction of the page. To enable and disable mobile notifications, you will first need a Push notifications system in your back-end. If you are using Firebase — implementing, enabling and disabling push notification is very easy compared to a custom back-end. Read more about Firebase- Ionic push notification&lt;a href="https://enappd.com/blog/implement-ionic-4-firebase-push/34" class="markup--anchor markup--p-anchor" rel="noopener"&gt; here&lt;/a&gt;.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;You will first need a Push notifications system in your back-end. &lt;a href="https://enappd.com/blog/implement-ionic-4-firebase-push/34" class="markup--anchor markup--p-anchor" rel="noopener"&gt;If you are using Firebase — implementing, enabling and disabling push notification is very easy compared to a custom back-end. Read more about Firebase- Ionic push notification here.&lt;/a&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--I1ScZaFS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AuZmeTNpu74f8ZG-kCUrwAQ.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Profile&lt;br&gt;&lt;/strong&gt;This is the fifth tab and the first segment of this application. This page contains the nesting of tabs and segments. This page has two segments at the top of the page below the header as “DETAILS” and “ACCOUNTS”. This is the first segment of the profile tabs. This segment has a list of actions in vertical direction. All the action executes as…&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Mini Biography&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Add my preferences&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Verify my id&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Verify mobile number&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;verify email&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Add a car&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="graf graf--p graf-after--li"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Profile — Mini Biography&lt;br&gt;&lt;/strong&gt;This page can be accessed from the “Profile” page. The options available can be chosen to edit user name, email address, update password, address, contact, Gender, DOB, Bio, and etc as per your requirement and update all those. Back button takes you back to the “Profile” page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Profile — Add my preferences&lt;br&gt;&lt;/strong&gt;This page can be accessed from the “Profile” page by clicking on the “Add my preferences”. Here you can edit your preferences and update that. The save preferences button will update your data in the database and navigate back to the profile tab. Here this is only UI for demo purpose.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Profile — Verify my ID&lt;br&gt;&lt;/strong&gt;This page can be accessed from the “Profile” page by clicking on the Verify my id”. This page will navigate to update document details.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--xqAg-xQF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AlFXSYn5h5zksJ0ZdTPYgJw.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Profile — Update Document&lt;br&gt;&lt;/strong&gt;This page can be accessed from the “Verify my id” page by clicking on the “Driving License”. This page will navigate to the camera. Here this is only UI and for demo purpose. You can make it in a fully functioning app by integrating back-end with the help of a back-end developer.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Profile — Verify mobile number&lt;br&gt;&lt;/strong&gt;This page can be accessed from the “Profile” page first segment. &lt;strong class="markup--strong markup--p-strong"&gt;Verify mobile numbers &lt;/strong&gt;page can be used to authenticate a user to check a user is registered or not. After entering the registered mobile number it navigates the user to the OTP verification page which a user receives after entering his/her mobile number.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Profile — OTP Verification&lt;br&gt;&lt;/strong&gt;This page can be accessed after entering the phone number in with phone number page. In this page, received OTP on user’s mobile gets verified for letting the user to access the home page. On clicking “CONTINUE” it navigates back to the apps profile tab.&lt;br&gt;This page here is only the UI but you can make it a fully working app by integrating a suitable backend by a developer.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--L_E32e4L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AdjCRgIBx-Ivi_p7sLWti6w.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Profile — Verify email&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the &lt;strong class="markup--strong markup--p-strong"&gt;verify email &lt;/strong&gt;in the profile page.&lt;br&gt;Here you can control the emails you want to get either all of them, just the important stuff or the bare minimum. Here you have the options to enable and disable email notifications.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;You will first need a Push notifications system in your back-end. &lt;a href="https://enappd.com/blog/implement-ionic-4-firebase-push/34" class="markup--anchor markup--p-anchor" rel="noopener"&gt;If you are using Firebase — implementing, enabling and disabling push notification is very easy compared to a custom back-end. Read more about Firebase- Ionic push notification here.&lt;/a&gt;&lt;br&gt;Here this is only the UI for demo purpose.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Profile — Add a car&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the Add a car in the profile page.&lt;br&gt;This page navigates to the add new vehicle page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Profile — Add a car — Add new vehicle&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the Add button at the very bottom in the Add a car page of the profile page. Here the items are listed in a list view in the vertical direction. Each item contains a dropdown menu to select the matching item from them.&lt;br&gt;By clicking on the “&lt;strong class="markup--strong markup--p-strong"&gt;COMPLETE&lt;/strong&gt;” button it will navigate back to the add car page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Features&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Yat5dRlQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2Aed9ABs0s9nzl38iHkNj2Zw.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Geolocation&lt;br&gt;&lt;/strong&gt;This can be accessed by clicking on the pickup page or drop-off page on the find ride page. This allows the app to get your current location by clicking on the current location button.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Google Map&lt;br&gt;&lt;/strong&gt;Google map shows us the current location of the app by clicking on the current location or by filling the input field in the pickup or drop location. This shows us the exact point of our location on the map.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Google Place Prediction&lt;br&gt;&lt;/strong&gt;As mentioned earlier in the geolocation, by filling the input text in the set pickup page or drop-off page, this will show you some predicted locations according to your filled entries in the text input field. By selecting any predicted location it will store that location and show that on Find a ride pages’ pickup and destination location individually.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Payments&lt;br&gt;&lt;/strong&gt;You can have a payment page like above for the payments of the rides with the help of some developer. You can implement the payments by using any one or multiple of the following for your rides…&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;&lt;a href="https://enappd.com/blog/payment-gateway-solutions-in-ionic-4-paypal-apple-pay-stripe-and-others/6" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic PayPal&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/payment-gateway-solutions-in-ionic-4-paypal-apple-pay-stripe-and-others/6" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic Stripe&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/payment-gateway-solutions-in-ionic-4-paypal-apple-pay-stripe-and-others/6" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic in-app purchase&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/payment-gateway-solutions-in-ionic-4-paypal-apple-pay-stripe-and-others/6" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic Apple Pay and Android Pay&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/how-to-integrate-razorpay-in-ionic-4-apps-and-pwa/20" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic Razorpay&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;PhonePe&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;GooglePay&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;AmazonPay&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 class="graf graf--h4 graf-after--li"&gt;Conclusion&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;In this article, we get to know in quick fashion about all the screens and features of Ionic 4 Carpooling App Starter from Enappd. Carpooling is one of the most booming and trending app based business opportunities. Keeping in mind the positive environmental benefits of this model, more people are getting inclined towards carpooling services, it is also pocket-friendly at the same time. This starter can be a very useful and time saving starting point for freelancers and so provide great value at a fraction of the price if one goes for the custom development from the scratch.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;em class="markup--em markup--p-em"&gt;— — — — — — — — — — — — — — — — — — — — — — — — — — -&lt;/em&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;&lt;em class="markup--em markup--p-em"&gt;Buy “&lt;/em&gt;&lt;/strong&gt;&lt;a href="https://store.enappd.com/product/carpool-app-starter/" class="markup--anchor markup--p-anchor"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic 4 Carpooling App Starter: Carpool&lt;/strong&gt;&lt;/a&gt;&lt;strong class="markup--strong markup--p-strong"&gt;”&lt;em class="markup--em markup--p-em"&gt; today!!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p graf--trailing"&gt;&lt;em class="markup--em markup--p-em"&gt;— — — — — — — — — — — — — — — — — — — — — — — — — — -&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ionic</category>
      <category>ridesharing</category>
      <category>carpooling</category>
    </item>
    <item>
      <title>10 Awesome React Native UI Component Libraries You Should Know</title>
      <dc:creator>Sanchit Gupta</dc:creator>
      <pubDate>Sun, 29 Mar 2020 18:51:12 +0000</pubDate>
      <link>https://dev.to/enappd/10-awesome-react-native-ui-component-libraries-you-should-know-6of</link>
      <guid>https://dev.to/enappd/10-awesome-react-native-ui-component-libraries-you-should-know-6of</guid>
      <description>
&lt;p class="graf graf--p graf-after--figure is-selected"&gt;With the increase in the demand for mobile applications, a large number of enterprises are shifting their focus towards mobile app development. Introduction of new technologies, platforms, and frameworks is allowing mobile app developers to create revolutionary mobile apps. Cross-Platform App Development has gained a lot of popularity in recent times as it enables developers to develop apps for multiple platforms like Android, iOS, Windows with a single code base.&lt;br&gt; &lt;br&gt; React Native is one of the most famous Cross-Platform for mobile app development introduced by Facebook and it has one of the largest active developers community. With the growing popularity of React and the rise of native mobile app development (and PWA), it’s not surprising that React-Native is getting more adoption in the community every day.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Much like React itself, React Native encourages you to build your UI using isolated components. Component libraries and UI toolkits help you save time and build your applications faster, using a pre-made set of components.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;REACT FEATURES&lt;/strong&gt;&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;Components −&lt;/strong&gt; It’ll assist you to maintain your code while working on large-scale projects. React is all about components.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;Unidirectional data flow and Flux −&lt;/strong&gt; React implements unidirectional data flow using Flux which is an application architecture that helps to keep your data unidirectional.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;Here is a list of useful (maintained) React-native UI libraries to get you started. The list does not rank any framework and is listed in a random fashion. Feel free to comment and add your own suggestions!&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Tip&lt;/strong&gt;: Use Enappd to get your hands on ready to use elegant App Templates build by expert UI/UX developers. Enappd has build world’s largest inventory of app templates, just name your need and chances are that you will be able to find a template built for it. Demo apk of all the app templates is available to download for free, check it out.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;1. React Native Elements&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;At over 17k stars react-native-elements is a highly customizable cross-platform UI toolkit built entirely in Javascript. The library’s authors &lt;a href="https://medium.com/react-native-training/introducing-react-native-elements-e3d78389b7ea" class="markup--anchor markup--p-anchor" rel="noopener"&gt;state that&lt;/a&gt; “&lt;em class="markup--em markup--p-em"&gt;The idea with React Native Elements is more about component structure than actual design, meaning less boilerplate in setting up certain elements but full control over their design”&lt;/em&gt;, which should make it appealing for both new developers and seasoned veterans. Here’s &lt;a href="https://react-native-training.github.io/react-native-elements/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;an example Expo app&lt;/a&gt; that shows all the components in action. Feel free to jump in.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--OKJLd-qB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AkAnSi9mss4MDiRB1efeJ1A.gif"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Link to this library can be found over &lt;a href="https://github.com/react-native-training/react-native-elements?source=post_page-----71d2a8e33312----------------------" class="markup--anchor markup--p-anchor"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;2. NativeBase&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;At 12k stars and over 1.5k forks NativeBase is a widely popular UI component library providing dozens of cross-platform components for React native. When using NativeBase, you can use any native third-party libraries out of the box and the project itself comes with a rich ecosystem around it, from useful &lt;a href="https://reactnativeseed.com/?utm_source=nativebase%26utm_medium=website%2Bfold%26utm_campaign=nativebase" class="markup--anchor markup--p-anchor" rel="noopener"&gt;starter-kits&lt;/a&gt; to &lt;a href="https://nativebase.io/nativebase-customizer" class="markup--anchor markup--p-anchor" rel="noopener"&gt;customizable theme templates&lt;/a&gt;.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--qvg-FEgw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AQa9Ih-heAjNFAoEb8GuC6A.gif"&gt;&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--uPsov2Ed--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AmGICsXWBil8ZKzRi5-tTTg.gif"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Link to this library can be found over &lt;a href="https://github.com/GeekyAnts/NativeBase?source=post_page-----71d2a8e33312----------------------" class="markup--anchor markup--p-anchor"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;3. Lottie wrapper for React Native&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;With nearly 12k stars and 1.2k forks, lottie-react-native enables developers to ship beautiful animations in their apps without the pain of recreating them. Lottie is a mobile library that parses Adobe After Effects animations natively on mobile.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--W6HbJTLH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AqZMz2abxuSdvi6YQOFkLVg.gif"&gt;&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s---Oicfwfv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ASMS-J6ZnK05LFzWAuHvQ6g.gif"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Link to this library can be found over &lt;a href="https://github.com/react-native-community/lottie-react-native" class="markup--anchor markup--p-anchor"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;4. REACT NATIVE VECTOR ICONS&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;With nearly 12k stars and 1372 forks, this library is, well, a set of customizable icons for React native with support for NavBar/TabBar/ToolbarAndroid, image source and full styling. Unsurprisingly, it’s extremely useful and used by thousands of applications as well as other UI component libraries (like react-native-paper). The library provides pre-made bundled icon sets out of the box, and here are &lt;a href="https://oblador.github.io/react-native-vector-icons/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;full examples&lt;/a&gt; of all the icons in the library. These vector icons are easy to extend and easy to integrate in your app project.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--jKxv02yd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AP_ytQ3swhMHEW8E20Tf9Rw.png"&gt;&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ynZQdxEl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A9Q7gENX2tlohsQbBGJ3H_w.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Link to this library can be found over &lt;a href="https://github.com/oblador/react-native-vector-icons" class="markup--anchor markup--p-anchor"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;5. REACT NATIVE MAPS&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;With over 10k stars and 3297 forks, react-native-maps offers map components for your Android or iOS application. The kit offers different types of component API such as MapView, Marker, Callout, Polygon, Polyline, Circle, Overlay.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--TcUs-wd---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AhsFUoNPwLtOO2jvCtcaeQg.gif"&gt;&lt;br&gt;Draggable Markers&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--9vFZzZrW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Aoh9KOeNO0U1274PAv1wwiA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Link to this library can be found over &lt;a href="https://github.com/react-native-community/react-native-maps" class="markup--anchor markup--p-anchor"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;6. REACT NATIVE GIFTED CHAT&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;With nearly 8k stars and 2354 forks, react-native-gifted-chat is the complete chat UI solution for your application. It offers fully customizable components, multiline text input, avatars, copying messages to the clipboard, attachment options etc.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--cW4866fb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2APZ8VD_NoJ2k60Y3I_rG5oA.gif"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Link to this library can be found over &lt;a href="https://github.com/FaridSafi/react-native-gifted-chat" class="markup--anchor markup--p-anchor"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;7. REACT NATIVE UI KITTEN&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;With nearly 5k stars and 606 forks, React Native UI Kitten is a mobile framework offering easily customizable elements. Although there are a lot of standalone components available but there are very fewer frameworks available that offer the commonly used components as a single package with the same UI design. UI Kitten aims to fill this gap and boost mobile app development so that you can focus more on business and less on view composition. The library is based on Eva Design System which brings consistency and scalability in the design and development process. It contains a set of general purpose UI components styled in a similar way. And the most awesome thing: the themes can be changed in the runtime, with no need to reload the application.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8c2ypGNI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AxuA-UGl3M9TkFUvpUkqiVg.jpeg"&gt;&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--W5KDsNQT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AD7KB41-U1xvLAP6AuNxhoA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Link to this library can be found over &lt;a href="https://github.com/akveo/react-native-ui-kitten" class="markup--anchor markup--p-anchor"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;8. Shoutem&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;At 3.5k stars Shoutem is a React Native UI Kit which consists of 3 parts: &lt;a href="https://github.com/shoutem/ui" class="markup--anchor markup--p-anchor" rel="noopener"&gt;UI components&lt;/a&gt;, &lt;a href="https://github.com/shoutem/theme" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Themes&lt;/a&gt; and component &lt;a href="https://github.com/shoutem/animation" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Animation&lt;/a&gt;. The library provides a set of cross-platform components for iOS and Android, and all components are built to be both composable and &lt;a href="http://github.com/shoutem/theme" class="markup--anchor markup--p-anchor" rel="noopener"&gt;customizable&lt;/a&gt;. Each component also has a predefined style that is consistent with the rest, which makes it possible to build complex components without manually defining complex styles.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--CzGFbAGg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A7ajlV8ZctPUeo26OXn62QA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Link to this library can be found over &lt;a href="https://shoutem.github.io/ui/?source=post_page-----71d2a8e33312----------------------" class="markup--anchor markup--p-anchor"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;9. React Native Paper&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;At nearly 1.5K stars React Native Paper is a cross-platform UI component library which follows the material design guide lines, with &lt;a href="https://callstack.github.io/react-native-paper/theming.html" class="markup--anchor markup--p-anchor" rel="noopener"&gt;global theming support&lt;/a&gt; and an optional babel-plugin to reduce bundle-size. Here’s an &lt;a href="https://expo.io/%40satya164/react-native-paper-example" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Expo example app&lt;/a&gt; to help you quickly get the idea.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ChgOpzTs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AbvGnFH_KYAVSTol9KYvitg.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Link to this library can be found over &lt;a href="https://github.com/callstack/react-native-paper?source=post_page-----71d2a8e33312----------------------" class="markup--anchor markup--p-anchor"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;10. NACHOS UI KIT&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;With 1752 stars and 103 forks, Nachos UI Kit for React Native offers pre-coded 30+ UI customizable components ready to use, which also work on the web thanks to &lt;a href="https://github.com/necolas/react-native-web/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;react-native-web&lt;/a&gt;. The components are fully customizable according to your requirement. Different component offered by Nachos UI Kit includes Badge, Bubble, Button, Card, Carousel, Checkbox, Input, Slider, Spinner and many more. With jest snapshot testing, prettier and yarn support this carefully crafted library offers a spicy design and a global theme manager.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--I6le_tZm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A8SvXGBq7fsuzxOxNe9kD6w.png"&gt;&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--foT463c---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1200/1%2AfphDJA-1NjQJ66EjM2qmMA.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Link to this library can be found over &lt;a href="https://github.com/nachos-ui/nachos-ui" class="markup--anchor markup--p-anchor"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Conclusion&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;These are the some of the best available UI components libraries handpicked for your quick reference. Consider using them in your next project and let me know how it fared out in the comments below. Stay awesome!!&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Next Steps&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Now that you have learned about some awesome React Native UI component libraries, here are some other topics you can look into&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;&lt;a href="https://enappd.com/blog/react-native-life-cycle-hooks/79" class="markup--anchor markup--li-anchor" rel="noopener"&gt;React Native life cycle hooks&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;How To in React Native — &lt;a href="https://enappd.com/blog/pick-images-from-camera-gallery-in-react-native-app/78" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Image picker &lt;/a&gt;| &lt;a href="https://enappd.com/blog/intergrate-firebase-in-react-native-app/73" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Integrate Firebase&lt;/a&gt; | &lt;a href="https://enappd.com/blog/react-native-firebase-crud-image-upload-and-phone-authentication/86" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Push notifications&lt;/a&gt; | &lt;a href="https://enappd.com/blog/geolocation-geocoding-react-native-apps/84" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Geolocation&lt;/a&gt; | &lt;a href="https://enappd.com/blog/react-native-life-cycle-hooks/79" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Life cycle hooks&lt;/a&gt; | &lt;a href="https://enappd.com/blog/pick-images-from-camera-gallery-in-react-native-app/78" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Image Picker&lt;/a&gt; | &lt;a href="https://enappd.com/blog/redux-in-react-native-app/92" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Redux implementation&lt;/a&gt; | &lt;a href="https://enappd.com/blog/react-native-firebase-crud-image-upload-and-phone-authentication/86" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Firebase CRUD&lt;/a&gt;
&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Authentication — &lt;a href="https://enappd.com/blog/google-login-in-react-native-android-apps-with-firebase/90" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Google Login&lt;/a&gt;| &lt;a href="https://enappd.com/blog/facebook-login-in-react-native-apps/89" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Facebook login&lt;/a&gt; | &lt;a href="https://enappd.com/blog/react-native-firebase-crud-image-upload-and-phone-authentication/86" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Phone Auth&lt;/a&gt;
&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;a href="https://enappd.com/blog/guide-on-react-native-full-app/53" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Create Awesome Apps in React Native&lt;/a&gt; using Full App&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;If you need a base to start your next React Native app, you can make your next awesome app using &lt;a href="https://store.enappd.com/product/react-native-full-app/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;React Native Full App&lt;/a&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--CF89hkbC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AsWyEeAfCMk7ULOkLUCdSug.jpeg"&gt;

</description>
      <category>reactnative</category>
      <category>ui</category>
      <category>libraries</category>
    </item>
    <item>
      <title>What’s new in Angular 8!</title>
      <dc:creator>Sanchit Gupta</dc:creator>
      <pubDate>Thu, 26 Mar 2020 17:08:24 +0000</pubDate>
      <link>https://dev.to/enappd/what-s-new-in-angular-8-k6g</link>
      <guid>https://dev.to/enappd/what-s-new-in-angular-8-k6g</guid>
      <description>
&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Angular 8 was just released!&lt;/strong&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;As planned, there were no surprises: the update of the framework and CLI can be done by using &lt;em class="markup--em markup--p-em"&gt;ng update&lt;/em&gt; and the new features are a welcome addition in line with the motto “evolution instead of revolution”.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;In this article, I will cover the most important new features of Angular 8 and the corresponding Angular CLI 8.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;TypeScript 3.4&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3 is-selected"&gt;Angular 8.0 now supports TypeScript 3.4, and even requires it, so you’ll need to upgrade.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;You can checkout out what &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-3-3/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;TypeScript 3.3&lt;/a&gt; and &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-3-4/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;TypeScript 3.4&lt;/a&gt; brings on the Microsoft blog.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Breaking change in ViewChild and ContentChild&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;There is a breaking change in the usage of &lt;em class="markup--em markup--p-em"&gt;ViewChild&lt;/em&gt; and &lt;em class="markup--em markup--p-em"&gt;ContentChild,&lt;/em&gt; which unfortunately didn’t always show a consistent behavior in the past. While they were used in earlier versions for a component to request an element not inside a structural directive like &lt;em class="markup--em markup--p-em"&gt;ngIf&lt;/em&gt; or &lt;em class="markup--em markup--p-em"&gt;ngFor&lt;/em&gt;, the query result was already available in &lt;em class="markup--em markup--p-em"&gt;ngOnInit. &lt;/em&gt;Otherwise, the program code could access it at the earliest in &lt;em class="markup--em markup--p-em"&gt;ngAfterViewInit&lt;/em&gt; (or&lt;em class="markup--em markup--p-em"&gt; ngAfterContentInit &lt;/em&gt;for&lt;em class="markup--em markup--p-em"&gt;ContentChild&lt;/em&gt;). For elements that were only loaded into the DOM at a later time due to data binding, the program code had to insert &lt;em class="markup--em markup--p-em"&gt;ngAfterViewChecked&lt;/em&gt; or, respectively, &lt;em class="markup--em markup--p-em"&gt;ngAfterContentChecked&lt;/em&gt;.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;As this behavior was confusing, the component must now specify when the resolution should take place:&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;code class="markup--code markup--p-code u-paddingRight0 u-marginRight0"&gt;@ViewChild('info', { &lt;strong class="markup--strong markup--p-strong"&gt;static&lt;/strong&gt;: &lt;strong class="markup--strong markup--p-strong"&gt;false&lt;/strong&gt;&lt;/code&gt; &lt;code class="markup--code markup--p-code"&gt;})&lt;/code&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;code class="markup--code markup--p-code"&gt;paragraph: ElementRef;&lt;/code&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;If &lt;em class="markup--em markup--p-em"&gt;static&lt;/em&gt; has the value &lt;em class="markup--em markup--p-em"&gt;true&lt;/em&gt;, Angular tries to find the element when initializing the component. This only works if it is not in a structural directive. When using &lt;em class="markup--em markup--p-em"&gt;static: false, &lt;/em&gt;the resolution takes places after initiating or refreshing the view.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The command &lt;em class="markup--em markup--p-em"&gt;ng update&lt;/em&gt; automatically tries to enter the correct value here. If that is not possible, it adds a comment with a TODO in its place.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Queries with the related decorators &lt;em class="markup--em markup--p-em"&gt;ViewChildren&lt;/em&gt; and &lt;em class="markup--em markup--p-em"&gt;ContentChildren&lt;/em&gt; are not affected by this change. They have always exhibited a dynamic behavior in the sense of &lt;em class="markup--em markup--p-em"&gt;static: false&lt;/em&gt;.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Differential loading&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Your Angular 8 apps will now be automagically more performant, thanks to differential loading.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Until now, it was common to compile applications to good old ECMAScript 5, since this “JavaScript of our fathers” runs almost anywhere today. This means that both IE 11 and the web crawler behind the Google search engine can execute the program code.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;However, the new ECMAScript 2015 and its subsequent versions are more efficient: these versions allow more compact bundles and the browser can also interpret them more efficiently. Since it was previously common to retreat to ECMAScript 5 as the smallest common denominator, other modern browsers, unfortunately, couldn’t use these advantages.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;This ends now: starting with version 8, the CLI includes a feature that is named differential loading. The idea behind it is to provide two groups of bundles: one is based on ECMAScript 5 and addresses older browsers, the other is based on a younger ECMAScript version, e.g. ECMAScript 2015, and offers modern browsers the mentioned advantages.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;There isn’t much you need to do in order to activate differential loading: all that is necessary is to set an upper and a lower bar for the ECMAScript versions to be supported. The upper bar is entered in the &lt;em class="markup--em markup--p-em"&gt;tsconfig.json&lt;/em&gt; as follows:&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;code class="markup--code markup--p-code"&gt;"target": "es2015"&lt;/code&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The lower bar, on the other hand, is defined by a browserslist. It is a file that identifies many browsers to be supported, according to certain criteria like market shares. They can be stored e.g. in the file &lt;em class="markup--em markup--p-em"&gt;browserslist&lt;/em&gt;, which the CLI meanwhile creates in &lt;em class="markup--em markup--p-em"&gt;projectroot&lt;/em&gt; when generating a new project:&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;code class="markup--code markup--p-code"&gt;&amp;gt; 0.5%&lt;/code&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;code class="markup--code markup--p-code"&gt;last 2&lt;/code&gt; &lt;code class="markup--code markup--p-code"&gt;versions&lt;/code&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;code class="markup--code markup--p-code"&gt;Firefox ESR&lt;/code&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;code class="markup--code markup--p-code"&gt;not dead&lt;/code&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;code class="markup--code markup--p-code"&gt;IE 9-11&lt;/code&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;In the illustrated case, the &lt;em class="markup--em markup--p-em"&gt;browserslist&lt;/em&gt; points to ECMAScript 5 browsers with the entry IE 9–11. Thereby, the CLI determines the lower bar as this version. If the CLI receives the instruction to create a build (&lt;em class="markup--em markup--p-em"&gt;ng build&lt;/em&gt;), compiling and bundling processes will take place for both versions:&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--qHrs7eMU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/600/0%2AUq4k3kRkWey0rg_F.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Build for differential loading&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The disadvantage of this process becomes obvious here: the time required for the build process is doubled.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The different browsers can now decide which version of the bundles to load. For this, they receive the &lt;em class="markup--em markup--p-em"&gt;script&lt;/em&gt;references in the &lt;em class="markup--em markup--p-em"&gt;index.html &lt;/em&gt;additions: those pointing to ECMAScript 5 bundles receive the addition &lt;em class="markup--em markup--p-em"&gt;nomodule. &lt;/em&gt;This prevents browsers with support for ECMAScript modules, and thereby ECMAScript 2015 and newer, from ignoring the reference. The ECMAScript 2015+ bundles, on the other hand, are implemented by the CLI via &lt;em class="markup--em markup--p-em"&gt;type=”module”.&lt;/em&gt; Thus, older browsers will ignore these script tags:&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;code class="markup--code markup--p-code"&gt;&amp;lt;script src="main-es2015.js"&lt;/code&gt; &lt;code class="markup--code markup--p-code"&gt;type="module"&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;code class="markup--code markup--p-code"&gt;&amp;lt;script src="main-es5.js"&lt;/code&gt; &lt;code class="markup--code markup--p-code"&gt;nomodule&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;In contrast to &lt;em class="markup--em markup--p-em"&gt;ng build&lt;/em&gt;, all other CLI commands use only (!) the upper bar. In the illustrated case, that is ECMAScript 2015. This happens, among others, for efficiency reasons: especially during debugging and testing, developers want to see a result as soon as possible without being required to wait for a second build.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;You don’t have to do anything special to benefit from differential loading, the &lt;code class="markup--code markup--p-code"&gt;ng build&lt;/code&gt; command with the &lt;code class="markup--code markup--p-code"&gt;--prod&lt;/code&gt; flag will take care of bundling everything so that differential loading is working out of the box:&lt;/p&gt;
&lt;pre class="graf graf--pre graf-after--p"&gt;&lt;code class="markup--code markup--pre-code"&gt;$ ng build --prod&lt;/code&gt;&lt;/pre&gt;
&lt;h3 class="graf graf--h3 graf-after--pre"&gt;Ivy&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Ivy is obviously a huge part of this release, and it took most of the effort from the team these last month. There is so much to say about Ivy that I wrote a &lt;a href="https://blog.ninja-squad.com/2019/05/07/what-is-angular-ivy/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;dedicated article about it&lt;/a&gt;.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;TL;DR: Ivy is the new compiler/runtime of Angular. It will enable very cool features in the future, but it is currently focused on not breaking existing applications.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Angular 8.0 is the first release to officially offer a switch to opt-in into Ivy. There are no real gains to do so right now, but you can give it a try to see if nothing breaks in your application. Because, at some point, probably in v9, Ivy will be the default. So the Angular team hopes the community will anticipate the switch and provide feedback, and that we’ll catch all the remaining issues before v9.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;We tried it on several of our apps and already caught a few regressions, so we would strongly advise to not use it blindly in production 😄.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;If you feel adventurous, you can add &lt;code class="markup--code markup--p-code"&gt;"enableIvy": true&lt;/code&gt; in your &lt;code class="markup--code markup--p-code"&gt;angularCompilerOptions&lt;/code&gt;, and restart your application: it now uses Ivy! Check &lt;a href="https://blog.ninja-squad.com/2019/05/07/what-is-angular-ivy/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;our article&lt;/a&gt; and the &lt;a href="https://angular.io/guide/ivy" class="markup--anchor markup--p-anchor" rel="noopener"&gt;official guide for more info&lt;/a&gt;.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--DlR0zoVq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/600/0%2APvBPsMwNc0zyU0LP.png"&gt;&lt;br&gt;Bundle Size&lt;h3 class="graf graf--h3 graf-after--figure"&gt;Bazel Support&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;One of the new features of Angular 8 is the possibility to (more easily) build your CLI application with Bazel.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;a href="https://bazel.build/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Bazel&lt;/a&gt; is a build tool developed and massively used by Google, as it can build pretty much any language. The Angular framework itself is built with Bazel.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The key advantages of Bazel are:&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;the possibility of building your backends and frontends with the same tool&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;the incremental build and tests&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;the possibility to have remote builds (and cache) on a build farm&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="graf graf--h3 graf-after--li"&gt;Service worker&lt;/h3&gt;
&lt;h4 class="graf graf--h4 graf-after--h3"&gt;Registration strategy&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;The service worker registration has a new option that allows to specify when the registration should take place. Previously, the service worker was waiting for the application to be stable to register, to avoid slowing the start of the application. But if you were starting a recurring asynchronous task (like a polling process) on application bootstrap, the application was never stable as Angular considers an application to be stable if there is no pending task. So the service worker never registered, and you had to manually workaround it. With the new &lt;code class="markup--code markup--p-code"&gt;registrationStrategy&lt;/code&gt; option, you can now let Angular handle this. There are several values possible:&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;
&lt;code class="markup--code markup--li-code"&gt;registerWhenStable&lt;/code&gt;, the default, as explained above&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;code class="markup--code markup--li-code"&gt;registerImmediately&lt;/code&gt;, which doesn’t wait for the app to be stable and registers the Service Worker right away&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;code class="markup--code markup--li-code"&gt;registerDelay:$TIMEOUT&lt;/code&gt; with &lt;code class="markup--code markup--li-code"&gt;$TIMEOUT&lt;/code&gt; being the number of milliseconds to wait before the registration&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;a function returning an Observable, to define a custom strategy. The Service Worker will then register when the Observable emits its first value.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;For example, if you want to register the Service Worker after 2 seconds:&lt;/p&gt;
&lt;pre class="graf graf--pre graf-after--p"&gt;&lt;code class="markup--code markup--pre-code"&gt;providers: [&lt;br&gt;  ServiceWorkerModule.register('/ngsw-worker.js', {&lt;br&gt;    enabled: environment.production,&lt;br&gt;    registrationStrategy: 'registerDelay:2000'&lt;br&gt;  }),&lt;br&gt;  // ...&lt;br&gt;]&lt;/code&gt;&lt;/pre&gt;
&lt;h4 class="graf graf--h4 graf-after--pre"&gt;Bypass a Service Worker&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;It is now also possible to bypass the Service Worker for a specific request by adding the &lt;code class="markup--code markup--p-code"&gt;ngsw-bypass&lt;/code&gt; header.&lt;/p&gt;
&lt;pre class="graf graf--pre graf-after--p"&gt;&lt;code class="markup--code markup--pre-code"&gt;this.http.get('api/users', { headers: { 'ngsw-bypass': true } });&lt;/code&gt;&lt;/pre&gt;
&lt;h4 class="graf graf--h4 graf-after--pre"&gt;Multiple apps on sub-domains&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;Previously, it was not possible to have multiple applications using&lt;code class="markup--code markup--p-code"&gt;@angular/service-worker&lt;/code&gt; on different sub-paths of the same domain, because each Service Worker would overwrite the caches of the others… This is now fixed!&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Forms&lt;/h3&gt;
&lt;h4 class="graf graf--h4 graf-after--h3"&gt;markAllAsTouched&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;The &lt;code class="markup--code markup--p-code"&gt;AbstractControl&lt;/code&gt; class now offers a new method &lt;code class="markup--code markup--p-code"&gt;markAllAsTouched&lt;/code&gt;in addition to the existing &lt;code class="markup--code markup--p-code"&gt;markAsDirty&lt;/code&gt;, &lt;code class="markup--code markup--p-code"&gt;markAsTouched&lt;/code&gt;, &lt;code class="markup--code markup--p-code"&gt;markAsPending&lt;/code&gt;, etc. &lt;code class="markup--code markup--p-code"&gt;AbstractControl&lt;/code&gt; is the parent class of &lt;code class="markup--code markup--p-code"&gt;FormGroup&lt;/code&gt;, &lt;code class="markup--code markup--p-code"&gt;FormControl&lt;/code&gt;, &lt;code class="markup--code markup--p-code"&gt;FormArray&lt;/code&gt;, so the method is available on all reactive form entities.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Like &lt;code class="markup--code markup--p-code"&gt;markAsTouched&lt;/code&gt;, this new method marks a control as &lt;code class="markup--code markup--p-code"&gt;touched&lt;/code&gt; but also all its descendants.&lt;/p&gt;
&lt;pre class="graf graf--pre graf-after--p"&gt;&lt;code class="markup--code markup--pre-code"&gt;form.markAllAsTouched();&lt;/code&gt;&lt;/pre&gt;
&lt;h4 class="graf graf--h4 graf-after--pre"&gt;FormArray.clear&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;The &lt;code class="markup--code markup--p-code"&gt;FormArray&lt;/code&gt; class now also offers a &lt;code class="markup--code markup--p-code"&gt;clear&lt;/code&gt; method, to quickly remove all the controls it contains. You previously had to loop over the controls to remove them one by one.&lt;/p&gt;
&lt;pre class="graf graf--pre graf-after--p"&gt;&lt;code class="markup--code markup--pre-code"&gt;// &lt;code&gt;users&lt;/code&gt; is initialized with 2 users&lt;br&gt;const users = fb.array([user1, user2]);&lt;br&gt;users.clear();&lt;br&gt;// users is now empty&lt;/code&gt;&lt;/pre&gt;
&lt;h3 class="graf graf--h3 graf-after--pre"&gt;Dynamic imports for lazy routes&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;&lt;a href="https://alligator.io/angular/lazy-loading/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Lazy-loaded routes&lt;/a&gt; now use the standard &lt;a href="https://developers.google.com/web/updates/2017/11/dynamic-import" class="markup--anchor markup--p-anchor" rel="noopener"&gt;dynamic import&lt;/a&gt; syntax instead of a custom string. This means that TypeScript and linters will be better able to complain when modules are missing or misspelled.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;So a lazy-loaded import that looked like this:&lt;/p&gt;
&lt;pre class="graf graf--pre graf-after--p"&gt;&lt;code class="markup--code markup--pre-code"&gt;{ path: '/cart', loadChildren: './cart/cart.module#CartModule' }&lt;/code&gt;&lt;/pre&gt;
&lt;p class="graf graf--p graf-after--pre"&gt;Will now look like this:&lt;/p&gt;
&lt;pre class="graf graf--pre graf-after--p"&gt;&lt;code class="markup--code markup--pre-code"&gt;{ path: &lt;code&gt;/cart&lt;/code&gt;, loadChildren: () =&amp;gt; import(&lt;code&gt;./cart/cart.module&lt;/code&gt;).then(m =&amp;gt; m.CartModule) }&lt;/code&gt;&lt;/pre&gt;
&lt;p class="graf graf--p graf-after--pre"&gt;The change in syntax will be taken care of for you if you’re using the &lt;code class="markup--code markup--p-code"&gt;ng upgrade&lt;/code&gt;command to upgrade your app.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;New features for ngUpgrade&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Up until now, one problem in the hybrid operation of AngularJS 1.x and Angular with ngUpgrade has been that the routers of both frameworks have at times been dueling over the URL. This led to side effects that were difficult to comprehend. In order to avoid this, the possibility of using the identical &lt;em class="markup--em markup--p-em"&gt;Location&lt;/em&gt; service for accessing the URL in both framework versions has been added.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;To achieve this, the Angular team has extended the possibilities of Angular’s &lt;em class="markup--em markup--p-em"&gt;Location&lt;/em&gt; services and thereby provided a substitute for &lt;em class="markup--em markup--p-em"&gt;$location&lt;/em&gt; in AngularJS.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;For this reason, the new method &lt;em class="markup--em markup--p-em"&gt;onUrlChange &lt;/em&gt;for monitoring URL changes, among other modifications, has been added in the &lt;em class="markup--em markup--p-em"&gt;Location&lt;/em&gt; service:&lt;/p&gt;
&lt;pre class="graf graf--pre graf-after--p"&gt;&lt;code class="markup--code markup--pre-code u-paddingRight0 u-marginRight0"&gt;export &lt;strong class="markup--strong markup--pre-strong"&gt;class&lt;/strong&gt;&lt;/code&gt; &lt;code class="markup--code markup--pre-code"&gt;AppComponent {&lt;br&gt;constructor(loc: Location, pLoc: PlatformLocation) {&lt;br&gt;loc.onUrlChange((url) =&amp;gt; console.debug('url change', url));&lt;br&gt;console.debug('hostname: ', pLoc.hostname);&lt;br&gt;}&lt;br&gt;}&lt;/code&gt;&lt;/pre&gt;
&lt;p class="graf graf--p graf-after--pre"&gt;The &lt;em class="markup--em markup--p-em"&gt;PlatformLocation&lt;/em&gt; service offers additional access to the individual parts of the URL. A detailed description on how the &lt;em class="markup--em markup--p-em"&gt;$location&lt;/em&gt; substitute, which is based on it, is used for a better interlacing of both frameworks, can be found &lt;a href="https://next.angular.io/guide/upgrade#using-the-unified-angular-location-service" class="markup--anchor markup--p-anchor" rel="noopener"&gt;here&lt;/a&gt;. Additionally, there you can now find an idea for lazy loading of AngularJS, which is based on the aforementioned dynamic ECMAScript imports.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;CLI workflow improvements&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;The CLI is continuing to improve, and now the &lt;code class="markup--code markup--p-code"&gt;ng build&lt;/code&gt;, &lt;code class="markup--code markup--p-code"&gt;ng test&lt;/code&gt; and &lt;code class="markup--code markup--p-code"&gt;ng run&lt;/code&gt;are equipped to be extended by 3rd-party libraries and tool. For example, AngularFire already makes use of these new capabilities with a &lt;code class="markup--code markup--p-code"&gt;deploy&lt;/code&gt; command&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Deprecated APIs and Features&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Angular aims to balance innovation and stability in their framework and to do that they have removed or replaced some features &amp;amp; API’S so that Angular can stay updated with latest practices, changing dependencies, or changes in the platform itself.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;To make these transitions easy they deprecate APIs and features for a period of time before removing them which provide developers time to update your apps to the latest APIs and best practices.&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Web Tracing Framework integration&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;code class="markup--code markup--li-code"&gt;@angular/platform-webworker&lt;/code&gt; and&lt;code class="markup--code markup--li-code"&gt;@angular/platform-webworker-dynamic&lt;/code&gt; both the packages are deprecated&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Usage for any in TesBed.get&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Removed deprecated DOCUMENT from &lt;code class="markup--code markup--li-code"&gt;@angular/platform-browser&lt;/code&gt;
&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;@angular/http removed from the list of packages&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;ngForm element selector&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Service worker versionedFiles&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="graf graf--h3 graf-after--li"&gt;Angular Performance &amp;amp; Upgradtion from Angular 7 to Angular 8&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Angular 8 new features are nice, but the main reason for many of us to upgrade to new versions of Angular 8 is to get a performance boost. If you worked with previous angular versions then upgrading an app from Angular 7 over to Angular 8 is simple.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;For most developers, one command should take care of this update :&lt;/p&gt;
&lt;pre class="graf graf--pre graf-after--p"&gt;ng update @angular/cli @angular/core &lt;/pre&gt;
&lt;h3 class="graf graf--h3 graf-after--pre"&gt;Angular Firebase&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Angular have officially added support for firebase and now we can deploy our application using the Angular CLI.&lt;/p&gt;
&lt;pre class="graf graf--pre graf-after--p"&gt;&lt;code class="markup--code markup--pre-code"&gt;ng run [PROJECT_NAME]:deploy&lt;/code&gt;&lt;/pre&gt;
&lt;h3 class="graf graf--h3 graf-after--pre"&gt;Builders API&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;The new version allows us to use Builders API. It uses builders for main operations like: serve, build, test, lint and e2e. Basically, the builder Builders are functions that implement the logic and behavior for a task that can replace a command which you pass to the createBuilder() method from @angular-devkit/architect package &amp;amp; now we can create our custom builders as well.&lt;/p&gt;
&lt;pre class="graf graf--pre graf-after--p"&gt;&lt;code class="markup--code markup--pre-code"&gt;import { BuilderOutput, createBuilder } from '@angular-devkit/architect';&lt;br&gt;export default createBuilder((options, context) =&amp;gt; {&lt;br&gt;  return new Promise&amp;lt;BuilderOutput&amp;gt;(resolve =&amp;gt; {&lt;br&gt;    resolve({ success: true });&lt;br&gt;  });&lt;br&gt;});&lt;/code&gt;&lt;/pre&gt;
&lt;h3 class="graf graf--h3 graf-after--pre"&gt;AngularJS API Migration Improvements with $location service&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;The Angular Team wants to provide support for all developers using AngularJS to upgrade them with latest Angular so some enhancements have been made to provide better integration with the AngularJS $location service in hybrid (AngularJS &amp;lt;=&amp;gt; Angular) apps. A new package &lt;code class="markup--code markup--p-code"&gt;angular/common/upgrade&lt;/code&gt; is added help you&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;To retrieve the state from location service.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;To track all location changes.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Help you retrieve hostname protocol port search properties which were available in AngularJS.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;MockPlatformLocation API added to test the location service.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="graf graf--h3 graf-after--li"&gt;Conclusion&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Summing up all the above features, The Angular team has certainly did a great with the framework making developers job much easier &amp;amp; simpler. Angular version 8 looks like a much more accessible solution focused on the modern technological trends added features like Ivy, route configurations use dynamic Imports, new builder API in the CLI, web worker support, Unified Angular Location Service &amp;amp; with every new release, the framework is getting smoother and smoother making the Angular platform better.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Next Steps&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Now that you have learnt the implementation of Firebase push notifications in Ionic 4, you can also try&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;&lt;a href="https://enappd.com/blog/ionic-4-paypal-payment-integration-for-apps-and-pwa/16" class="markup--anchor markup--li-anchor" rel="nofollow noopener noopener noopener noopener"&gt;Ionic 4 PayPal payment integration — for Apps and PWA&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/ionic-4-stripe-payment-integration-with-firebase-for-apps-and-pwa/17" class="markup--anchor markup--li-anchor" rel="nofollow noopener noopener noopener noopener"&gt;Ionic 4 Stripe payment integration — for Apps and PWA&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/how-to-integrate-apple-pay-in-ionic-4-apps/21" class="markup--anchor markup--li-anchor" rel="nofollow noopener noopener noopener noopener"&gt;Ionic 4 Apple Pay integration&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/twitter-login-in-ionic-4-apps-using-firebase/24" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Twitter login in Ionic 4 with Firebase&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/facebook-login-in-ionic-4-apps-using-firebase/25" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Facebook login in Ionic 4 with Firebase&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;a href="https://medium.com/enappd/using-geolocation-and-beacon-plugins-in-ionic-4-754b41304007" class="markup--anchor markup--li-anchor"&gt;Geolocation&lt;/a&gt; in Ionic 4&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;a href="https://medium.com/enappd/qr-code-scanning-and-optical-character-recognition-ocr-in-ionic-4-95fd46be91dd" class="markup--anchor markup--li-anchor"&gt;QR Code and scanners&lt;/a&gt; in Ionic 4 and&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://medium.com/enappd/how-to-translate-in-ionic-4-globalization-internationalization-and-localization-31ec5807a8bc" class="markup--anchor markup--li-anchor"&gt;Translations in Ionic 4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;If you need a base to start your next Ionic 4 app, you can make your next awesome app using &lt;a href="https://store.enappd.com/product/ionic-4-full-app/" class="markup--anchor markup--p-anchor" rel="noopener nofollow noopener noopener nofollow noopener noopener nofollow noopener noopener noopener noopener"&gt;Ionic 4 Full App&lt;/a&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8c-DACQW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/600/1%2A2BzL8TesnBHuazHr3VA4SQ.jpeg"&gt;

</description>
      <category>ionic</category>
      <category>angular</category>
    </item>
    <item>
      <title>Ionic 4 Food Ordering PWA &amp; App starter: Features Overview</title>
      <dc:creator>Sanchit Gupta</dc:creator>
      <pubDate>Thu, 26 Mar 2020 16:56:10 +0000</pubDate>
      <link>https://dev.to/enappd/ionic-4-food-ordering-pwa-app-starter-features-overview-245c</link>
      <guid>https://dev.to/enappd/ionic-4-food-ordering-pwa-app-starter-features-overview-245c</guid>
      <description>
&lt;p class="graf graf--p graf-after--figure"&gt;Online food-delivery platforms are expanding choice and convenience. Worldwide, the market for food delivery stands at €83 billion, or 1 percent of the total food market.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The food delivery mobile app’s projected growth is perhaps unsurprising to virtually everyone. &lt;a href="https://www.morganstanley.com/ideas/online-food-delivery-market-expands" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Morgan Stanley&lt;/a&gt; predicts that delivery growth could grow by up to 40% of industry sales within the next few years.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Getting food delivered right at your doorstep anytime anywhere is easier than ever.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--0uMc7UUg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/600/1%2Atsdk9X2s8fs9c9v5kQRowQ.gif"&gt;&lt;br&gt;Food always comes first. Let's order it!&lt;p class="graf graf--p graf-after--figure"&gt;This is high time to start your own Food Delivery business. Also, demand for development of such apps is higher as can be seen in general industry trends.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p is-selected"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic 4 Food Ordering PWA &amp;amp; App Template&lt;/strong&gt; is a mobile app theme/template. With this template, you can create a food ordering app like Swiggy, Zomato, Uber Eats, etc.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;This template is the front-end part of the food ordering app, which means the screens and user interfaces are ready. You can easily change the screens, styles, and logics to suit your requirements. To make it a live app like Swiggy, Zomato, Uber Eats, etc. you just need to add a back-end to the app, and load your data in the back-end.&lt;/p&gt;
&lt;a href="https://store.enappd.com/product/ionic-4-food-ordering-pwa-app-starter/" class="graf-imageAnchor" rel="noopener"&gt;&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--t-SdONw_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/600/1%2AHGGMugzMUPGKm8cqSnewww.png"&gt;&lt;/a&gt;&lt;h4 class="graf graf--h4 graf-after--figure"&gt;Why PWA&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;A progressive web app (PWA) is a website that looks and behaves as if it is a mobile app. PWAs are built to take advantage of native mobile device features, without requiring the end-user to visit an app store, make a purchase and download software locally. Instead, a PWA can be located with a search engine query and accessed immediately through a browser.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Live preview of Ionic 4 Food Ordering PWA can be accessed over &lt;a href="https://foofdiepwa.firebaseapp.com/signup" class="markup--anchor markup--p-anchor" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;a href="https://store.enappd.com/product/ionic-4-food-ordering-pwa-app-starter/" class="graf-imageAnchor" rel="noopener"&gt;&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--l8uaYV7e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/600/1%2AJPugu5Vj5xitlgoakAxzHw.png"&gt;&lt;/a&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This template is made in Ionic 4 language. With Ionic 4, you can&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Create iOS and an Android app with a single source code&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Cut your project cost and time in half&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ensure exact same UI in iOS and Android, while following the standard UI norms&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Saves separate updates for each app in future&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="graf graf--h3 graf-after--li"&gt;Features of this template&lt;/h3&gt;
&lt;h4 class="graf graf--h4 graf-after--h3"&gt;Screens&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--22ZPRmuN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2Aq5V7OfiVQ-LOGsmFj86qJA.png"&gt;&lt;h4 class="graf graf--h4 graf-after--figure"&gt;Login&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed from the signup page as the app loads. By clicking on the login button after the required entries in the input field it redirects you to the home page. The login page can be used to perform login action with username/email and password. Currently, the login is only for demo purposes. The login page also contains “Forgot Password” and “Signup” page navigations.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Signup&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed as the app loads. By clicking on the signup button it redirects you to the Home page. The signup page can be used to register a user with a username/email and password, contact, and address. Currently, the signup is only for demo purposes. The signup page also contains “Login page “ page navigations.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Forgot Password&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed from the “Login” page. Forgot Password page can be used to send a reset password URL or OTP to the user’s email or any other way you want to use. Currently, this page is only UI. The OTP sent to the user can be verified here and the user may be asked to provide a new password.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Home&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This is the first tab of the application. Home page contains recommended restaurant and other categories for a user. The Popular Brands/Today’s Special are arranged in a horizontal scroll for each category. A vertical scroll allows the addition of any number of the restaurant on the homepage, each category being arranged in a horizontal scroll. By clicking on any category, it will navigate to the category product page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--mZChZsqt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2AV57w-fS92ptsPx-lBzjLOQ.png"&gt;&lt;h4 class="graf graf--h4 graf-after--figure"&gt;Select Restaurant&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed by clicking on any category on the home page. Here the list of all restaurant is available according to the category you selected. In this page, we have all the restaurants offering foods to avail and top restaurants list. By clicking on any restaurant it will navigate to restaurant products details page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Repeat Orders&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed by clicking on the restaurant’s list page’s. This page contains the list of previous orders from the same restaurant. This page allows us to repeat order from the previously ordered items. The previous orders are arranged in a vertical list at the top of the page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Products from Restaurant&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed from the restaurant’s list page’s, besides the restaurant selected by the category, there are some options to select other categories of your choice and it will navigate to the cart page by clicking on the view cart at the very bottom right of the page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Offers&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;On clicking the offer’s button in the top-right of the header in the home page, the offers page can be accessed. This page contains the offers category for this app. It contains two categories for the offers which are restaurants offers and payment offers/coupons. It will navigate to restaurants offer page and payments offers page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--f6_VY31C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2A6c9psNqCMHPOdxZvJKJkdg.png"&gt;&lt;h4 class="graf graf--h4 graf-after--figure"&gt;Restaurant Offer&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed by clicking on the restaurant’s offer on the offers page. We can select any offer from the list of offers by the restaurant arranged in the vertical direction.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Payment Offer&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed by clicking on the restaurant’s offer on the offers page. We can select any payment offer or apply coupon from the list of offers by the restaurant arranged in the vertical direction.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Your Cart&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This is the third tab of the application. This page contains the added items/products by the user from the product detail page. We can check the added items in our cart in list view arranged in the vertical direction. When there is no item in the cart the above screen appears.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;My Account&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;The is the fourth tab of the application. This page contains the navigation options for the app like&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Edit Profile&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Previous Orders&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;FAQ’s&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Chat Support&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;This page contains the notification toggle at the top right of the page. To enable and disable mobile notifications, you will first need a Push notifications system in your back-end. If you are using Firebase then implementing, enabling and disabling push notification is very easy compared to a custom back-end. Read more about Firebase- Ionic push notification&lt;a href="https://enappd.com/blog/implement-ionic-4-firebase-push/34" class="markup--anchor markup--p-anchor" rel="noopener"&gt; here&lt;/a&gt;.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--RV2-hp_x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2A6hlKXyHNl85jsfni2834LA.png"&gt;&lt;h4 class="graf graf--h4 graf-after--figure"&gt;My Account — Edit Profile&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed from the “My Account” page. The options available can be chosen to edit user name, email address, update password, address, contact, and description as per your requirement. “Back” button takes you back to the “My Account ” page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;My Account — Previous Orders&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed from the “My Account” page. Previous orders contain all your previously ordered items from the restaurants arranged in a vertical list. It also contains the repeat order button at the very bottom right of each card. Repeat Order will navigate to that previous order detail page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;My Account — FAQ’s&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed from the “My Account” page by clicking on FAQ’s. All the random queries related to foodie app is listed here in a vertical direction. Each list item opens a modal on click and it contains the detailed information.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Chat Support&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed from the “My Account” page by clicking on the chat with us button. &lt;strong class="markup--strong markup--p-strong"&gt;Chat with us&lt;/strong&gt; page contains the chat application for direct interaction to the Foodie customer service. Here chat with us is only UI and for demo purpose.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--R26S42Tg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2Aivd06OTWumRgSldKz8mgdw.png"&gt;&lt;h4 class="graf graf--h4 graf-after--figure"&gt;Search&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This is the second tab of the application. Search page contains the UI for searching restaurants, items, dishes, etc. Just type any word in the input box and the results can be displayed in the content as a list For demo purpose. When you type in the search box, you see preset results in the result.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Billing&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed from the restaurant’s product details by clicking on the &lt;strong class="markup--strong markup--p-strong"&gt;VIEW CART &lt;/strong&gt;button at the bottom right of the page. This page contains the total item and total item cost including restaurant charges and taxes, selected by the user in the previous page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Filter&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed by clicking on any sort/filter button on the home page and product category detail page. This will open a modal to filter your choices.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Add Address&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed by clicking on any current address showing at the top left in the header of the home page at the bottom left of the billing page. This will allow us to add a delivery location according to our need. This is only UI functioning. To make it in the fully functioning mode you will have to integrate back-end of your convenience.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--CvFiSDjD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2ACKCpNdvJFbdw2EbJfeO_hQ.png"&gt;&lt;h4 class="graf graf--h4 graf-after--figure"&gt;Select Address&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This can be accessed by clicking at the bottom right on the billing page. This page allows you to select an address from your previously added addresses and it also lets you add a new address for delivering your items.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Current Location&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed by clicking on the current address showing at the top right of the home page. This page shows us our current address on the google map. This page also let us add more details about the location or to confirm the current location. You can follow this link to integrate google map, geolocation, geocoding, etc &lt;a href="https://enappd.com/blog/using-geolocation-geocoding-and-reverse-geocoding-in-ionic-4/45" class="markup--anchor markup--p-anchor" rel="noopener"&gt;here&lt;/a&gt;. This is only a UI but you can integrate back-end code for map services with the help of a back-end developer or&lt;a href="http://store.enappd.com" class="markup--anchor markup--p-anchor" rel="noopener"&gt; can reach to us&lt;/a&gt; for integration.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Product Sort&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This can be accessed from the product items detail page. By clicking on the &lt;strong class="markup--strong markup--p-strong"&gt;MENU&lt;/strong&gt; button floating at the bottom of the page will show you the pop over to sort your menu accordingly.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Features&lt;/h3&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--zdoAmcGO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2AA_aMuW7cmcCUMgcdkQPjvg.png"&gt;&lt;h4 class="graf graf--h4 graf-after--figure"&gt;Geolocation&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This can be accessed by clicking on the location text on the top right of the home page. This allows the app to get your current location by clicking on the current location.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Google Map&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;Google map shows us the current location of the app by clicking on the current location or by filling the input field in the set location. This shows us the exact point of our location on the map. Clicking on Confirm Location takes you to the Home page and clicking on the Add more details navigates to the add address detail page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Social Sharing&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This is at the fifth tab o the application and the top right of the page’s header. This allows us to share our page or app information to social sites or via email.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Google Place Prediction&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;As mentioned earlier in the geolocation, by filling the input text in the set location page this will show you some predicted locations according to your filled entries in the text input field. By selecting any predicted location it will store that location and show that on home page’s top-left text after Now.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Conclusion&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;In this post, we learned about various features of Ionic 4 Food Ordering PWA &amp;amp; App starter. This template is a ready-made front-end for a food delivery app. You can use the screens coded in this app, navigation between the screens and specific functions applied to buttons, etc. This saves your 100% cost and time in front-end UI development. You can simply add a back-end/server to this app template, and replace the demo data with data coming from your server. This way, you only spend time and money on back-end development.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;em class="markup--em markup--p-em"&gt;— — — — — — — — — — — — — — — — — — — — — — — — — — -&lt;/em&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;&lt;em class="markup--em markup--p-em"&gt;Buy “&lt;/em&gt;&lt;/strong&gt;&lt;a href="https://store.enappd.com/product/ionic-4-food-ordering-pwa-app-starter/" class="markup--anchor markup--p-anchor"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic 4 Food Ordering PWA &amp;amp; App starter&lt;/strong&gt;&lt;/a&gt;&lt;strong class="markup--strong markup--p-strong"&gt;”&lt;em class="markup--em markup--p-em"&gt; today!!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;em class="markup--em markup--p-em"&gt;— — — — — — — — — — — — — — — — — — — — — — — — — — -&lt;/em&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p graf--trailing"&gt;This article was originally published on &lt;a href="http://enappd.com" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Enappd&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ionic</category>
      <category>food</category>
      <category>delivery</category>
      <category>pwa</category>
    </item>
    <item>
      <title>Ionic 4 Tinder Styled Dating App Template: Features Overview</title>
      <dc:creator>Sanchit Gupta</dc:creator>
      <pubDate>Thu, 26 Mar 2020 16:40:52 +0000</pubDate>
      <link>https://dev.to/enappd/ionic-4-tinder-styled-dating-app-template-features-overview-2c74</link>
      <guid>https://dev.to/enappd/ionic-4-tinder-styled-dating-app-template-features-overview-2c74</guid>
      <description>
&lt;p class="graf graf--p graf-after--figure"&gt;Technology has radically changed romance, with online dating growing massively in popularity ever since Match.com blazed a trail in the mid-90s. Now apps, such as Tinder, with their speedy account set-ups and “swipe to like” approach, have taken dating to another level. Love is now a multi-billion dollar business. In fact, a report by &lt;a href="https://www.fastcompany.com/1812010/whos-telling-you-truth-about-dating-algorithms" class="markup--anchor markup--p-anchor" rel="noopener"&gt;&lt;em class="markup--em markup--p-em"&gt;Fast Company&lt;/em&gt;&lt;/a&gt;, found the online dating market worth more than $4 billion.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;a href="https://store.enappd.com/product/dating-app-starter-ionic4-tinder-clone/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ionic 4 Dating App Template&lt;/strong&gt;&lt;/a&gt;&lt;strong class="markup--strong markup--p-strong"&gt; &lt;/strong&gt;is a mobile app theme/template. With this template, you can create a dating&lt;strong class="markup--strong markup--p-strong"&gt; &lt;/strong&gt;app like Tinder, eHarmony, OkCupid, Match.com, etc.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;This template is the front-end part of the dating app, which means the screens and user interfaces (screens) are ready. You can easily change the screens, styles, and logics to suit your requirements. To make it a live app you just need to add a back-end to the app, and load your data in the back-end.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--aACqOHFf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/600/1%2A3G6iw42ymxiOhLu-VUL2jQ.gif"&gt;&lt;br&gt;Swiping for ages!!&lt;p class="graf graf--p graf-after--figure is-selected"&gt;This template is made in Ionic 4 language. With Ionic 4, you can&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Create iOS and an Android app with a single source code&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Cut your project cost and time in half&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ensure exact same UI in iOS and Android, while following the standard UI norms&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Save separate updates for each app in the future&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="graf graf--h3 graf-after--li"&gt;How can I use this template&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;This template is a ready-made front-end template for a dating/matchmaking App. You can use the screens coded in this app, navigation between the screens and specific functions applied to buttons, etc. This saves your 100% cost and time in front-end UI development. You can simply add a back-end/server to this app template, and replace the demo data with data coming from your server. This way, you only spend time and money on back-end development.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Features of this template&lt;/h3&gt;
&lt;h4 class="graf graf--h4 graf-after--h3"&gt;Screens&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--t1AyShWg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2AsCQ1XMssXDvhnKbb8x3wng.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Login&lt;br&gt;&lt;/strong&gt;This page can be accessed as the app loads. By clicking on the Login button it navigates you to the Login verification page. The login page can be used to perform login action with the mobile number or by Facebook social login. Currently, Facebook login is only for demo purposes you can follow our &lt;a href="https://enappd.com/blog/facebook-login-in-ionic-4-apps-using-firebase/25" class="markup--anchor markup--p-anchor" rel="noopener"&gt;tutorial&lt;/a&gt; to implement facebook login in Ionic4. The login page contains “Account recovery” page navigations too.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Account Recovery&lt;br&gt;&lt;/strong&gt;This page can be accessed as the app loads. By clicking on the “Trouble login in?” it redirects you to the account recovery page. The account recovery page can be used to recover a user account with a username/email. Currently, the account recovery is only for demo purposes. The account recovery page also contains “Login page “ page navigations.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Login with phone number&lt;br&gt;&lt;/strong&gt;This page can be accessed from the “Login” page. This page can be used to authenticate a user to check a user is registered or not. After entering the registered mobile number it navigates the user to the OTP verification page which a user receives after entering his/her mobile number.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;OTP Verification&lt;br&gt;&lt;/strong&gt;This page can be accessed after entering the phone number in login with phone number page. In this page, received OTP on user’s mobile gets verified for letting the user to access the home page. On clicking “CONTINUE” it navigates to the apps home page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--taR0SMpj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2ARvksaSTt26bf--wlt5wHLw.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Home page contains three-segment at the top and five buttons at the bottom of the page. This is the Home page’s second segment of the application. Home page contains swipeable cards like Tinder app. Here you can swipe left, right, top, bottom for different tasks. The bottom buttons of the card execute different tasks as follow:&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Repeat button&lt;/strong&gt; — Opens a modal for Dating Plus subscription and navigates to Dating Plus page&lt;br&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Cancel button &lt;/strong&gt;— Swipe LEFT — Dislike&lt;br&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Star button&lt;/strong&gt; — Swipe Top — SuperLike&lt;br&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Heart button&lt;/strong&gt; — Swipe RIGHT — Like&lt;br&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Flash button&lt;/strong&gt; — Opens modal for booster&lt;br&gt;&lt;strong class="markup--strong markup--p-strong"&gt;SwipeBottom&lt;/strong&gt; — Reject&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;There is an Information icon on the bottom right of the card which navigates to the profile details page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--mzD5Y2XW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2AoF0jFtnGjYYBFesY_vUo0A.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Get Plus membership&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the repeat button on the home page. User can get premium access to dating app for preferred and best matching of their profile by applying paid plus membership.&lt;br&gt;To integrate payment methods for plus membership you can refer the tutorial &lt;a href="https://enappd.com/blog/payment-gateway-solutions-in-ionic-4-paypal-apple-pay-stripe-and-others/6/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;here&lt;/a&gt;. This page navigates to Tinder plus page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;My Tinder Plus&lt;br&gt;&lt;/strong&gt;This page can be accessed from the home page’s tinder plus modal.&lt;br&gt;This page is very helpful for tinder plus members to control their preferences from a list of settings. All the preferences have the toggle functionality to allow or reject preferences.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Profile Information&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the info button at the right bottom of each swipeable card. This page contains detailed information of the selected matching person. Here, the arrow-down icon at the center of the page navigates back to the candidate’s swipeable card at home page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Chat — MESSAGES&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the third segment of the home page.&lt;br&gt;This segment has nested segments including “MESSAGES” and “FEED”.&lt;br&gt;‘MESSAGES’ page contains the list of people matched and contacted on dating app. By clicking on any contact you can start chatting with him/her.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--hC1aiMyz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2AEhFnQgyt7VP1cZLCumIa5A.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Chat — FEED&lt;br&gt;&lt;/strong&gt; Feed is a timeline of all your matches’ recent activity all in one place, with the latest profile changes shown first. So if someone swaps a profile photo or adds a new Spotify anthem, you’ll see it in Feed. To access your Feed, simply tap the chat icon at the top right of the screen, then tap “Feed” and start scrolling through all the recent activity.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Chat — FEED — Popover&lt;br&gt;&lt;/strong&gt;Feed page contains an options popover, you can access it by clicking the three dots button at the top right-most corner of the card header. This page contains different tasks to execute in the app as follows:&lt;/p&gt;
&lt;ol class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Unmatch: When you click on unmatch then it will unmatch your profile to this matched profile.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Report: When you click on the report then a modal will appear where you can choose an option to report about this profile.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Share Profile: Share profile is used to share profile using social sharing methods or share by mail method among friends and families.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Open chat: On clicking Open chat, it will navigate to the matched user’s chat page.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Open profile: When you click on Open profile it will navigate to the profile page.&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="graf graf--p graf-after--li"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Messages&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on any of the contact’s chat head in message’s segment. Or you can get to this page by clicking on OpenChat option from Feed popover. Chat support provides us the facility to interact with the matched profile directly.&lt;br&gt;You can check out other awesome interacting chat templates &lt;a href="https://store.enappd.com/product/chat-themes-ionic4/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ulE4-HZx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2APuFTA5y3ypNE27WVijjQew.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;User Page&lt;br&gt;&lt;/strong&gt;On clicking the third segment of the home page this page can be accessed. This page contains information about the user profile and settings. In this page, the user can edit his/her profile and change the settings of the app as per his preferences. In this page, the user can upload his profile picture from media or facebook. This page has navigate to Settings page, Edit Info page, and Add Media page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Settings Page&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the&lt;strong class="markup--strong markup--p-strong"&gt; Settings&lt;/strong&gt; on the user page. In any app, settings page plays an important role in setting user’s preferences and requirement.&lt;br&gt;This page allows you to toggle some preferences and navigates to other pages to select choices. It allows the user to select the maximum distance to search for the profile to match with the user’s profile, setting the age range, toggle to show the user’s profile on the app, share user’s feed, setting data usage, managing Top Picks, managing push and email notifications, sharing the app with friends and contacts, and to delete account from the app. This page navigates to:&lt;br&gt;i. Account Setting&lt;br&gt;ii. Show Me&lt;br&gt;iii. Share my feed&lt;br&gt;iv. Autoplay videos&lt;br&gt;v. Email Setting&lt;br&gt;vi. Push Notifications&lt;br&gt;vii. Team Dating&lt;br&gt;viii. Delete Account&lt;br&gt;We can select and set any setting from the list of settings arranged in the vertical direction. In this template you get the beautifully designed flawless UI, just integrate your back-end and you are good to go.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Settings Page — Phone Number Setting&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the Account setting in the setting page. Here we can edit our registered contact number and update with the new one.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Settings Page — Show Me&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the &lt;strong class="markup--strong markup--p-strong"&gt;Show me&lt;/strong&gt; in the setting page. Here we can select our gender preference and let the application search the filtered preference for you.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--RnsiH1NE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2AB4AFAHqwXfFem7dYy-JRlg.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Settings Page — Share my feed&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the Share my feed in the setting page. This page lets the user allow or disallow sharing their social content with other user’s to increase their chances of receiving messages. This page contains the toggle at the right side of each item of the page. To enable and disable sharing feed settings, you may toggle them.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Settings Page — Autoplay videos&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed by clicking on the &lt;strong class="markup--strong markup--p-strong"&gt;Autoplay videos&lt;/strong&gt; in the setting page. This page allows you to check when to use data to play videos because playing videos use more data than displaying photos.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Settings Page — Email Setting&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed by clicking on the &lt;strong class="markup--strong markup--p-strong"&gt;Email Setting&lt;/strong&gt; in the setting page. Control the emails you want to get- all of them, just the important stuff or the bare minimum.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Settings Page — Push Notifications&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed by clicking on the &lt;strong class="markup--strong markup--p-strong"&gt;Push Notifications&lt;/strong&gt; in the setting page. Here you can enable and disable your notifications related to a new match, messages, likes, super likes, and top picks in the Dating app. This page contains the toggle at the right side of each item of the page. To enable and disable push notification, you may toggle them. You will first need a Push notifications system in your back-end. If you are using Firebase — implementing, enabling and disabling push notification is very easy compared to a custom back-end. Read more about Firebase- Ionic push notification &lt;a href="https://enappd.com/blog/implement-ionic-4-firebase-push/34" class="markup--anchor markup--p-anchor" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--7zkAOKnZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/900/1%2AguWePeD1AHR5ugzDL21XSQ.png"&gt;&lt;h4 class="graf graf--h4 graf-after--figure"&gt;Settings Page — Team Dating&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed by clicking on the &lt;strong class="markup--strong markup--p-strong"&gt;Team Dating&lt;/strong&gt; in the setting page.&lt;br&gt;Here you can enable or disable to receive news, update, and offers from Dating App.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Settings Page — Delete Account&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This page can be accessed by clicking on the &lt;strong class="markup--strong markup--p-strong"&gt;Delete Account &lt;/strong&gt;in the setting page at the very bottom of the page. This page lets the user to pause the account or delete the account from the app.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Settings Page — Delete My Account&lt;br&gt;&lt;/strong&gt;This page can be accessed by clicking on the &lt;strong class="markup--strong markup--p-strong"&gt;Delete My Account &lt;/strong&gt;in the Delete Account page at the very bottom of the page. This page is for confirmation before you head over to delete the account. It also asks you the reasons for deleting the account.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Conclusion&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3 graf--trailing"&gt;In this post, we learned about various features of ‘&lt;strong class="markup--strong markup--p-strong"&gt;Dating App Template (Ionic 4) — Tinder Clone’&lt;/strong&gt;. This template is a ready-made front-end for a dating app. You can use the screens coded in this app, navigation between the screens and specific functions applied to buttons, etc. This saves your 100% cost and time in front-end UI development. You can simply add a back-end/server to this app template, and replace the demo data with data coming from your server. This way, you only spend time and money on back-end development.&lt;/p&gt;

&lt;p class="graf graf--p graf--leading"&gt;— — — — — — — — — — — — — — — — — — — — — — — — — —&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;&lt;em class="markup--em markup--p-em"&gt;Buy “&lt;/em&gt;&lt;/strong&gt;&lt;a href="https://store.enappd.com/product/dating-app-starter-ionic4-tinder-clone/" class="markup--anchor markup--p-anchor"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Dating app starter (Ionic 4) — Tinder Clone&lt;/strong&gt;&lt;/a&gt;&lt;strong class="markup--strong markup--p-strong"&gt;”&lt;em class="markup--em markup--p-em"&gt; today!!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;em class="markup--em markup--p-em"&gt;— — — — — — — — — — — — — — — — — — — — — — — — — — -&lt;/em&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p graf--trailing"&gt;This article was originally published on &lt;a href="https://enappd.com/blog/tinder-styled-dating-ionic-4-app-template/76/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Enappd&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ionic</category>
      <category>dating</category>
      <category>template</category>
      <category>tinder</category>
    </item>
    <item>
      <title>Ionic 4 Taxi App Template — User, Driver, and Admin Panel: Features Overview</title>
      <dc:creator>Sanchit Gupta</dc:creator>
      <pubDate>Thu, 26 Mar 2020 00:20:32 +0000</pubDate>
      <link>https://dev.to/enappd/ionic-4-taxi-app-template-user-driver-and-admin-panel-features-overview-3fc3</link>
      <guid>https://dev.to/enappd/ionic-4-taxi-app-template-user-driver-and-admin-panel-features-overview-3fc3</guid>
      <description>
&lt;p class="graf graf--p graf--startsWithDoubleQuote graf-after--figure is-selected"&gt;“Taxi Booking complete platform” is a high-quality app starter package for Cab/Taxi Booking, built-in Ionic 4 Framework with pixel perfect design. This starter contains three important apps, which are essential to create a complete Taxi booking platform :&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;User App&lt;/strong&gt; — For booking ride&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;Driver App &lt;/strong&gt;— For accepting rides&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;Admin App&lt;/strong&gt; — For monitoring both users and drivers&lt;/li&gt;
&lt;/ul&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZMNeHOVl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AGMwWWPwyuwBlFs2AWFvC9w.jpeg"&gt;&lt;h3 class="graf graf--h3 graf-after--figure"&gt;Introduction&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Ionic 4 has come out in the market with great improvements over the previous versions. This Taxi booking Ionic template is built using Angular 7 and Ionic Framework v4 and has everything you need to jump-start your Taxi Booking app development!&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Ionic 4 represents the culmination of more than two years of research and hard work transforming Ionic from “mobile for Angular” into a powerful UI Design System and app framework for every web developer in the world.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--CVM-RRrm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AzvhXN6vayIvaQwur3wMojg.gif"&gt;&lt;br&gt;STOP STOP! The best way to stop the taxi.&lt;h3 class="graf graf--h3 graf-after--figure"&gt;Benefits with Taxi booking complete starter&lt;/h3&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--h3"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;Clients&lt;/strong&gt;: Get your next app built by developers using&lt;strong class="markup--strong markup--li-strong"&gt; &lt;/strong&gt;Taxi Booking complete platform. This way you save tonnes on UI development, and significantly on major features like Firebase integration, and many other native plugin integrations. Approximate savings can run in thousands of dollars per app.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;Developers&lt;/strong&gt;: This is the time to save your expensive time and write less code for your new app. You can build a rich app with Ionic in a very straightforward way. Your knowledge about using CSS, HTML, and JavaScript will help serve as the building blocks of your app. Ionic also has lots of tutorials you can use.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;
&lt;strong class="markup--strong markup--li-strong"&gt;Designers&lt;/strong&gt;: Customization of layout has no limit with Ionic. You don’t even have to modify a complicated widget. It is pretty clean and simple to start your own customization and create a satisfactory design.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;Get Taxi Booking complete platform and enjoy lots of carefully designed pages with the most required functionalities!&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Let’s check out some great features of the platform&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Starter Features&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;Take your Ionic Framework app to the next level using this starter app template. Check all the features, designs and beautiful components that you can use on your app!&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;All in with Ionic 4 and Angular 7&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This Ionic 4 Template includes lots of Ionic 4 components coded the angular way and features that you will love. Along with this documentation, we will explain you how to use each of them.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;100% Flexible and Customizable&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;The template includes lots of pages, features and components but you are free to &lt;strong class="markup--strong markup--p-strong"&gt;use just what you need&lt;/strong&gt; and delete the code you don’t. The code structure is super modularized so you will find easy to modify the code to fit your needs.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;CSS variables for the win&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;CSS Variables provide easy customization of an application and allow a value to be stored in one place, then referenced in multiple other places. So, for example, if you want to change the colors of your app, by just changing some variables your app will have the desired colors in just a few seconds!&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Documentation&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This documentation was built with a lot of effort to help you get the most out of this Ionic 4 template.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;The ‘User/Customer’ App&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;This part of the app template contain screens with the help of which you can quickly make User/Customer App for your Taxi booking service.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Features of the app&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--szNsnyn_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2ARAk8A7fKp7D9nke9a9v31g.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Login/Sign up along with social logins&lt;br&gt;&lt;/strong&gt;This page will check the authentication of user from Firebase‌. To learn how to setup social logins, check our blogs for &lt;a href="https://enappd.com/blog/facebook-login-in-ionic-4-apps-using-firebase/25/" class="markup--anchor markup--p-anchor" rel="noopener noreferrer noopener noopener noopener noopener"&gt;Ionic 4 Facebook Login&lt;/a&gt; and &lt;a href="https://enappd.com/blog/twitter-login-in-ionic-4-apps-using-firebase/24" class="markup--anchor markup--p-anchor" rel="noopener noreferrer noopener noopener noopener noopener"&gt;Ionic 4 Twitter Login&lt;/a&gt;​&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;OTP and Forgot password page&lt;br&gt;&lt;/strong&gt;OTP flow is not working for this app and you can make it working for that you have to remove firebase auth and create your own auth because firebase doesn’t support OTP authentication currently.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--c-wHeEI_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1080/1%2ASd4R1_E92JB3UjLY6ybP-A.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Home Page for Taxi Booking &lt;br&gt;&lt;/strong&gt;Option for manually selecting pickup and destination location or get user current location​‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Google Autocomplete API integration&lt;br&gt;&lt;/strong&gt;In this page, we will get location from Google API.‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Select Cab type feature&lt;br&gt;&lt;/strong&gt;Here cab type showing here is static you can make it dynamic by making new table is Firebase DB‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Change payment page‌&lt;br&gt;&lt;/strong&gt;All payment type is also static here you can make it dynamic by adding New Table in Firebase DB.‌&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--sGnFrpX8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1080/1%2ALNsdxbUcKQnVCj4gXMdk6A.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Estimate fare page‌&lt;br&gt;&lt;/strong&gt;Fare estimate Showing here is also Static you can add your own API for calculating Fare Estimate Here‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Edit profile page&lt;br&gt;&lt;/strong&gt;This page is not connected to firebase. To make it work, you will have to add new columns in user DB.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;History page with details of the past ride&lt;br&gt;&lt;/strong&gt;History Page is dynamic here and connected to firebase as well.‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Add card page&lt;br&gt;&lt;/strong&gt;Add card page just adding card in Your local variables not In Firebase DB. For make it working you have to make new Table in Firebase DB named Card and link it to the used DB with his ID.‌&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--V1e7T1ri--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1080/1%2AwlWv9NoNmUkePmrrPIkQWQ.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Help page&lt;br&gt;&lt;/strong&gt;Here you can put your FAQ or other general help related content for the facility of your customer.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Booking confirmation page&lt;br&gt;&lt;/strong&gt;The final modal that appears to make sure that customer is ready to make the bookings with all preferences entered.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Route Map&lt;/strong&gt;&lt;br&gt; Google map integration for live tracking of location and its display of the shortest path between origin and destination. We are using AGM for showing route here.‌&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;The ‘Driver’ App&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;This part of the app template contain screens with the help of which you can quickly make Driver App for your Taxi booking service.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Feature of the app‌&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--pI5LEd0w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1080/1%2Alx_bym1GiBmmEd7HFo32Ug.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Driver offline/Online feature&lt;br&gt;&lt;/strong&gt;Driver can change his status from Offline to Online and vice-versa by the toggle in header and change the status in firebase.‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ride history page with details of past rides&lt;br&gt;&lt;/strong&gt;It will show the Driver ride history with days and price and it will get data from firebase.‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Add Payment/card page&lt;/strong&gt;&lt;br&gt;In this page, driver can add the payment card.‌&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--FLG6zNML--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1080/1%2AjUA3edSlO-OAClp8lyQvdA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Login/Sign up page&lt;br&gt;&lt;/strong&gt;This page will check the authentication of driver from Firebase.‌ You can also add Social logins here. To learn how to setup social logins, check our blogs for &lt;a href="https://enappd.com/blog/facebook-login-in-ionic-4-apps-using-firebase/25/" class="markup--anchor markup--p-anchor" rel="noopener noreferrer noopener noopener noopener noopener"&gt;Ionic 4 Facebook Login&lt;/a&gt; and &lt;a href="https://enappd.com/blog/twitter-login-in-ionic-4-apps-using-firebase/24" class="markup--anchor markup--p-anchor" rel="noopener noreferrer noopener noopener noopener noopener"&gt;Ionic 4 Twitter Login&lt;/a&gt;​&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;OTP Verification page&lt;br&gt;&lt;/strong&gt;This page will verify the driver OTP which comes on his mobile number.‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Add vehicle page/vehicle list&lt;br&gt;&lt;/strong&gt;In this page, the driver can add his vehicle‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Wallet page&lt;/strong&gt; &lt;br&gt;Multiple payment methods option&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--HZ54oDmO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1080/1%2A3Imbt86UO7XACUqT1OAJNw.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Document Mangement page&lt;br&gt;&lt;/strong&gt;This page shows the driver Documents.‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Notification page&lt;br&gt;&lt;/strong&gt;This page shows all the notifications when driver gets rides, offers etc.‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Profile Update page&lt;br&gt;&lt;/strong&gt;Driver can edit profile and it will update on firebase.‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;User Requests page&lt;br&gt;&lt;/strong&gt;This page shows the total current requests of user and driver can pick any one of them.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--PNkokKA1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1080/1%2A_oIeUimtt7LiL_gFUnZkeA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Rider/Customer Details page&lt;br&gt;&lt;/strong&gt;After accepting the request, the driver can see the detail of customer and driver can call, Message and cancel the user request‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Chat/Message/Call feature page&lt;/strong&gt;&lt;br&gt;The driver can chat with the user directly‌&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Invite your friend page&lt;/strong&gt;&lt;br&gt;It will help to invite other users&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Invite sharing with SocialShare plugin&lt;br&gt;&lt;/strong&gt;This page shows the driver contact list which is used to share the invite code of the driver‌.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;The ‘Admin’ App&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;This app contains admin functionality for this platform.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Features of the app&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--0YkRFNZ6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1080/1%2A6ACsEA1aATlNLI2KGa67uA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Login&lt;/strong&gt;&lt;br&gt;This page will check the authentication of the driver from Firebase.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Driver Details and Approval Page&lt;/strong&gt;&lt;br&gt;This page shows the driver details with approved or not approved tabs and this page is connected with firebase. So this will update when it gets new data.&lt;br&gt;You can approve the driver using the toggle and this page is connected with firebase. So this will update when it gets new data.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Rides Records with the route map&lt;/strong&gt;&lt;br&gt;This page shows the total ride history in admin panel and this page is connected with firebase. So this page updates when it gets new data.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Ride Details/Pickup and drop location&lt;/strong&gt;&lt;br&gt;This page also the ride details and is connected with firebase.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Dferlzm4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AKCdkA4kgzAwq_v6JYx26Aw.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;Customer details&lt;br&gt;&lt;/strong&gt;This page shows all customer details in our platform and this page is connected with firebase. So this will update when it gets new data.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8Ib3FRl4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1080/0%2Al5IRLoRNtKexka-Q"&gt;&lt;br&gt;&lt;strong class="markup--strong markup--figure-strong"&gt;Firebase authentication&lt;/strong&gt;&lt;h3 class="graf graf--h3 graf-after--figure"&gt;Conclusion&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;In this article, we got to know about the features and design aspects of Ionic 4 Taxi Booking App Template. An app template is a sure shot way to save thousands of dollars on app development. Also, it reduces your ideation to market time by manifold. With this app template, you get an awesome looking UI as well as Backend functionality for all three aspects of any Taxi Booking App, i.e. User, Driver, and Admin. At the price that this app template is offered, it can be surely called a steal-deal.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;em class="markup--em markup--p-em"&gt;— — — — — — — — — — — — — — — — — — — — — — — — — — -&lt;/em&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;&lt;em class="markup--em markup--p-em"&gt;Buy “&lt;/em&gt;&lt;/strong&gt;&lt;a href="https://store.enappd.com/product/taxi-booking-complete-platform/" class="markup--anchor markup--p-anchor"&gt;Ionic 4 Taxi Booking Complete Platform — User, Driver and Admin App&lt;/a&gt;&lt;strong class="markup--strong markup--p-strong"&gt;”&lt;em class="markup--em markup--p-em"&gt; today!!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p graf--trailing"&gt;&lt;em class="markup--em markup--p-em"&gt;— — — — — — — — — — — — — — — — — — — — — — — — — — -&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ionic</category>
      <category>taxi</category>
      <category>template</category>
      <category>cab</category>
    </item>
    <item>
      <title>Ionic 4 Spotify style Music Streaming App Template: Features Overview</title>
      <dc:creator>Sanchit Gupta</dc:creator>
      <pubDate>Wed, 25 Mar 2020 23:18:24 +0000</pubDate>
      <link>https://dev.to/enappd/ionic-4-spotify-style-music-streaming-app-template-features-overview-391c</link>
      <guid>https://dev.to/enappd/ionic-4-spotify-style-music-streaming-app-template-features-overview-391c</guid>
      <description>
&lt;blockquote class="graf graf--blockquote graf-after--figure"&gt;
&lt;strong class="markup--strong markup--blockquote-strong"&gt;IonSpotify — An Ionic 4 Music Streaming App Template &lt;/strong&gt;is a mobile app theme/template. With this template, you can create a Music streaming app like Spotify, Gaana, Wynk, Jio Music, etc.&lt;/blockquote&gt;
&lt;p class="graf graf--p graf-after--blockquote"&gt;If you want to create your own Spotify app, it doesn’t need to make your wallet go empty. You can easily start with a Spotify app starter like the one I am going to describe and make your way from there.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--aoIlNmnH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2Avjy8sih83B_myEUFbTJwwg.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This template is front-end part of the music app, i.e. the screens and user interfaces are ready. You can easily change the screens, styles, and logic to suit your requirements. To make it a live app you just need to add your backend (data loaded) to the app. This is a great starting point for app development, as more than half the work is done here. All pages and components are set. The starter uses data from JSON files, so this data can be easily swapped with data from the backend.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;This template is made in Ionic 4 language. With Ionic 4, you can:&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Create iOS and an Android app with a single source code&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Cut your project cost and time in half&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Ensure exact same UI in iOS and Android, while following the standard UI norms&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Saves separate updates for each app in future&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;Let’s see all the features of the app.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Features&lt;/h3&gt;
&lt;h4 class="graf graf--h4 graf-after--h3"&gt;Screens&lt;/h4&gt;
&lt;ol class="postList"&gt;&lt;li class="graf graf--li graf-after--h4"&gt;&lt;strong class="markup--strong markup--li-strong"&gt;Landing Page&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ts22nbEl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2ASZhIOzPxs2xkI7huKn29iA.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed after the app loads. This is the landing page. This page contains the Sign Up page, continue with Facebook and Log In page navigations.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Currently, the Facebook login is only for demo purpose, you can integrate Ionic Facebook Log In authentication following our previous blog on &lt;a href="https://enappd.com/blog/facebook-login-in-ionic-4-apps-using-firebase/25/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;Facebook login in Ionic 4 apps using Firebase.&lt;/a&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;2. Log In&lt;/strong&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gt76Xdy---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AauKAfl9cwYEkOIX9z9OvCg.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;By clicking on the Log In button it redirects you to the login page here.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The Log In page can be used to perform Log In action with username/email and password. Currently as this just template, the login is only for demo purpose.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The login page also contains “Forgot Password” page navigations.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;3. Sign Up&lt;/strong&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--yqEog0Qq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2ASXREi_aRvdq610deFAYqfA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed from the landing page. By clicking on the signup button it redirects you to the signup page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The signup page can be used to register a user with a username/email and password. Currently, the signup is only for demo purposes.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The signup page also contains “Date of birth and Gender, select music of your taste, select artist of your taste and find favorite artist page” page navigations.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;4. Select Music&lt;/strong&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ScTGNxZZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2Av4I2ZZD2ePgxU4SoOUelgA.png"&gt;&lt;p class="graf graf--p graf-after--figure is-selected"&gt;This page can be accessed by successful input of username/email and password in the create account page. Here, you can select kinds of music according to your taste. After selecting kinds of music it will navigate to the music artist taste.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;5. Select Artist&lt;/strong&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--9TI4gdzp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2Aiw4nWV5mNEC3-VmmLhzMhQ.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed by successful selection of kind of music in the select music taste page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Here, you can select many artists according to your taste. After selecting artists it will navigate the finding music page where your selected music and artist data will be loaded in the app but here it is only UI demonstration.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Here we have a find artist page too. You can access this page by clicking on the search bar. It will navigate to the search page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;6. Find Artist&lt;/strong&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--SXneidEN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2Avqm0J0q27DE-yDVyrLhiPw.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed by clicking on the search bar at the top of the artist page. Here you can find an artist of your choice by typing in the search input.&lt;br&gt;It will display you some results according to your input in the vertical list view.&lt;br&gt;This is only UI so it will result only some preset data.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;7. Account Recovery&lt;/strong&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rz3NsN0---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AX3JWXYrb9n05Py7nP1tqiA.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed from the “Login” page. Account Recovery page can be used to send a reset password URL or OTP to the user’s email or any other way you want to use. Currently, this page is only UI. The OTP sent to the user can be verified here and the user can be asked to provide a new password.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;8. Home&lt;/strong&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--_oZmGBEt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2Ax_h0b3DAT4PdynhUrG2M4w.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This is the first tab of the application.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Home page contains recommended music and other categories for a user.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The songs/albums are arranged in a horizontal scroll for each category.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;A vertical scroll allows the addition of any number of categories on the homepage, each category being arranged in a horizontal scroll.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;By clicking on any category, it will navigate to the category playlist page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;9. Home, by Category Songs List&lt;/strong&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--btkpfhuV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2ArRQOtPU1T-Jd4Kpx0_2hAA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed by clicking on any category on the home page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Here the list of all songs is available according to the category you selected.In this page, we have three icons for each song functioning different things.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Here the heart icon is used to toggle songs to add or remove as like or dislike songs.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The remove icon is used to hide and show the song in the song’s list. And the menu icon on click opens a modal from where we can like or dislike, hide or show, add it to playlist, add to queue, view artist, share, Report explicit Content and show credentials.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;10. Song List Modal&lt;/strong&gt;&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--BRmmRG2E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AWMQwpJ03IAD-vAAiXZjwWg.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed by clicking on the Songs List page’s options button. This page contains the actions for the currently playing playlist arranged in a vertical list. Any song can be clicked and these actions can be performed.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;11. Home &amp;gt; Songs List &amp;gt; Might Like&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--skUh4_yH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2Atf7gzZoiPr46Xub-nV-7Ig.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed from the songs list page from the home page, besides the songs selected by the category, there are some options to select other categories of your choice and it will navigate to the might like page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;12. Add Songs Modal&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--x8-xZDCV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AvnwIlA_TcSLgHTqrEE5SIA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;On clicking the options button in the top-right of the header, the current action modal opens.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;This page can be accessed from the Songs List and Might Like page’s playlist button. This page contains the songs of the actions to add songs, make Non- collaborative, rename, delete, find and short playlist actions. Except add songs all the left actions are only UI. Particular actions can be done by writing some codes for that. &lt;a href="http://store.enappd.com" class="markup--anchor markup--p-anchor" rel="noopener"&gt;You can follow or ask to that for you&lt;/a&gt;.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;13. Add Songs Page&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--uACCdL_1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AYwxnpY02yo8B46hZ8jXhNg.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed by clicking on the add songs in the add songs modal or from the Library-Playlists. We can add songs to our playlist by clicking on the add button in the rightmost of each song name.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;14. Music Player&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--d68ek_AX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AKSd0KYftzIJLua0gW9orhQ.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed from many places, by clicking on a particular song item or by clicking the Mini-player on the bottom of any page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Music player page contains the currently playing playlist, with songs of the playlist arranged in an image slider on the top half of the page. At the bottom, there is a music control bar with play, pause, next etc. buttons.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;On clicking the Playlist button in the top-right of the header, the current playlist opens.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;15. Settings Page&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ysUh-AYy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AWpLNKJ_PZJVS0xU-HhR-ZQ.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;The settings page can be accessed from the Home page’s top-right button.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;This page contains the settings/options for the app like&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;data saver&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Playback Options&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Language&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Edit Profile&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Notifications&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Devices&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Car-View&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;About&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Privacy-Policy&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Support&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Social&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Other&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Logout&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;Most of these settings options have toggle options and Language and notification navigate to other pages.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;16. Settings &amp;gt; Notification&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--l5Xri-iA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2ACA1_ao3qNU5xUyEKFMRSKA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;The settings page can be accessed from the Setting page’s navigation option.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;This page contains the navigation options/settings for Push notification and Email notification in the app like&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Recommended Music&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;New Music&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Playlist Update&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Concert Notification&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Artist Updates&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;To enable and disable mobile notifications, you will first need a Push notifications system in your back-end. If you are using Firebase — implementing, enabling and disabling push notification is very easy compared to a custom back-end. Read more about Firebase- Ionic push notification&lt;a href="https://enappd.com/blog/implement-ionic-4-firebase-push/34" class="markup--anchor markup--p-anchor" rel="noopener"&gt; here&lt;/a&gt;.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;17. Settings &amp;gt; Language&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--V7vkLrMJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AvM3OIzbvONmZC-K3Vlq-iA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed from “Settings” page.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The options available can be chosen to change the language of the app / music, as per your requirement. “Back” button takes you back to “Settings” page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;18. Search&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--svSWRycQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AEdSCHT6wN1X1rqu8SQ3Z-g.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This is the second tab of the application.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Search page contains the UI for searching songs, albums, artists etc.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Just type any word in the input box and the results can be displayed in the content as a list For demo purpose. When you type in the search box, you see preset results in the result.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;19. Library &amp;gt; Playlist&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--OtxyYPOy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AKt4cpaNDxuUq9gaudltIHg.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This is the third tab, first sub-segment of the Music segment’s&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Playlist page contains your playlists arranged in a vertical list. The create playlist button allows you to create a playlist and add songs to it. You can add as many playlists you want. You can also implement an infinite scroll feature to fetch more playlists on scroll.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;20. Library &amp;gt; Music &amp;gt; Playlist &amp;gt; Create Playlist&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--dtsAssN9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AHTrReIfyu4DTpja0x9ABEA.jpeg"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;You can create as many songs as you want by creating different play lists.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;All the playlists will be arranged in a vertical manner in the &lt;strong class="markup--strong markup--p-strong"&gt;Library-Playlist page.&lt;/strong&gt;&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;21. Library &amp;gt; Music &amp;gt; Playlist &amp;gt; Artist&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--yZjNYkj1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AL2hJApyWYd0KTqk_x6nzBA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This is the third tabs, second sub-segment of the Music segment’s&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Artist page contains your favorite Artist arranged in a vertical list. By clicking on any artist navigates you to its songs list. You can add as many artist you want. You can also implement an &lt;a href="https://medium.com/maestral-solutions/react-native-custom-infinite-scroll-5fd35bc1f12e" class="markup--anchor markup--p-anchor"&gt;infinite scroll&lt;/a&gt; feature to fetch more songs on scroll.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;22. Library &amp;gt; Podcast&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ADURtiwY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2A4GNoPeL94wQhtOBBQkE3mw.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This is the third tab, and the second segment.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Episode, Download, and shows are the first, second and third sub-segment of the podcast segment.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The browse podcast button will navigate to the Episode, Download and shows podcast category.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Podcast categories have been defined in the grid view in the vertical direction in the app.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;23. Podcast &amp;gt; categories&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--PXhrFCh5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AkINJS5MlkROyE3wLRZt8Gw.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;These categories contain all the digital audio file made available on the Internet for downloading to a computer or mobile device, typically available as a series, new installments of which can be received by subscribers automatically. You can integrate all the functionalities by applying back-end code to it. Above is only UI.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;The categories have been defined accordingly in the list view and grid view in the app. By clicking a particular category will navigate to the podcast category page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;24. Podcast &amp;gt; Categories &amp;gt; List view&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--4rBZs1Zd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2A9UQpbwvRcBk21ubuWQDe-g.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed by clicking on any category of the podcast categories. This will navigate to the podcast category type, playlist page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;25. Podcast &amp;gt; Categories &amp;gt; Grid view&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--kNOsgMr2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AJqu2NmLdsbWj-9tSPsyaLA.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This page can be accessed by clicking on any category of the podcast categories. This will navigate to the podcast category selected page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;26. Premium&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s---nDgoAoq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AEVeHRuYyCPhbxz3-p1PU6Q.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;This is the apps forth tab.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Providing premium features is where you can earn using your app.This is only a UI but you can integrate back-end code for premium services with the help of a back-end developer or&lt;a href="http://store.enappd.com" class="markup--anchor markup--p-anchor" rel="noopener"&gt; can reach to us&lt;/a&gt; for integration.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Feature Explanation&lt;/h3&gt;
&lt;h4 class="graf graf--h4 graf-after--h3"&gt;1. User Authentication&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;User authentication is often the first and most important part of the app. This template has pages for Login, Signup, Forgot password and Change password.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;As per your requirements, you can either&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Allow a user to access the app without login, and ask a login for specific features, OR&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Do not allow any access without login. In this case the Login page with go on top of the router navigation in app-routing.module.ts. Only once there is a “login”, the user should be allowed access to HomePage. You can even choose to integrate social logins in the app. Check details &lt;a href="https://enappd.com/blog/google-login-in-ionic-4-apps-using-firebase/39/" class="markup--anchor markup--p-anchor" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;2. Music Player&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;This is a central component of a music streaming app. This template has two types of music player — a Mini player at the bottom of each screen and a full-screen player.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Mini Music Player is present in almost all screens on the bottom of the screen. It shows the currently playing song, and a play/pause button depending on whether the song is playing or paused.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Clicking on Mini Music Player takes you to Music player page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--d68ek_AX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AKSd0KYftzIJLua0gW9orhQ.png"&gt;&lt;h4 class="graf graf--h4 graf-after--figure"&gt;3. Settings Page&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;Settings are an important part of an app.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;This template also has a dedicated and relevant Settings page.&lt;/p&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ysUh-AYy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AWpLNKJ_PZJVS0xU-HhR-ZQ.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;There are options for push notification, email notifications, and languages for&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Notification handling&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Language handling&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Edit Profile&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Logout&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Toggles for other many options&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="graf graf--p graf-after--li"&gt;To enable and disable mobile notifications, you will first need a Push notifications system in your back-end. If you are using Firebase — implementing, enabling and disabling push notification is very easy compared to a custom back-end. Read more about Firebase- Ionic push notification&lt;a href="https://enappd.com/blog/implement-ionic-4-firebase-push/34" class="markup--anchor markup--p-anchor" rel="noopener"&gt; here&lt;/a&gt;.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Edit Profile and Change Password can also be implemented very easily with Firebase, even if you are using Social logins. Custom back-end will require you to make custom APIs for these purposes.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;4. Tabs&lt;/h4&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--_oZmGBEt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2Ax_h0b3DAT4PdynhUrG2M4w.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;Tabs can be accessed after the successful login or signup process. Maximum of the pages in the app can be navigated with the help of tabs.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;Tabs are placed at the bottom of every page.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;5. Premium feature addition&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;Providing premium features is where you can earn using your app.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;This template does have a premium feature page but only for UI.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;You can then route each your music streaming request via a checking function which checks for the user being premium or non-premium. Accordingly, you can&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Serve low-quality data to non-premium users, ask them to get premium for better quality&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Don’t allow Offline content for non-premium users, ask them to get premium for Offline content&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Don’t allow creating more than a fixed number of playlists etc in non-premium&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Show Ads using Ionic AdMob for non-premium users and many similar things.&lt;/li&gt;
&lt;/ul&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s---nDgoAoq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AEVeHRuYyCPhbxz3-p1PU6Q.png"&gt;&lt;p class="graf graf--p graf-after--figure"&gt;You can implement the payments by using any one or multiple of the following&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;&lt;a href="https://enappd.com/blog/payment-gateway-solutions-in-ionic-4-paypal-apple-pay-stripe-and-others/6" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic PayPal&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/payment-gateway-solutions-in-ionic-4-paypal-apple-pay-stripe-and-others/6" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic Stripe&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/payment-gateway-solutions-in-ionic-4-paypal-apple-pay-stripe-and-others/6" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic in-app purchase&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/payment-gateway-solutions-in-ionic-4-paypal-apple-pay-stripe-and-others/6" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic Apple Pay and Android Pay&lt;/a&gt;&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;&lt;a href="https://enappd.com/blog/how-to-integrate-razorpay-in-ionic-4-apps-and-pwa/20" class="markup--anchor markup--li-anchor" rel="noopener"&gt;Ionic Razorpay&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 class="graf graf--h4 graf-after--li"&gt;Device Compatibility&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;As mentioned earlier, the app is written in Ionic 4 and angular language. This allows single source code to create both iOS and Android apps.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;This template has been tested in all latest Android versions and major devices.&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;This template has also been tested in all latest versions of iPhones, including iPhone X.&lt;/p&gt;
&lt;h3 class="graf graf--h3 graf-after--p"&gt;Conclusion&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3 graf--trailing"&gt;In this post, we learned about various features of Ionic 4 Spotify Style Music Streaming App Starter. This template is a ready-made front-end for a Music Streaming App. You can use the screens coded in this app, navigation between the screens and specific functions applied to buttons, etc. This saves your 100% cost and time in front-end UI development. You can simply add a back-end/server to this app template, and replace the demo data with data coming from your server. This way, you only spend time and money on back-end development.&lt;/p&gt;

&lt;p class="graf graf--p graf--leading"&gt;&lt;em class="markup--em markup--p-em"&gt;— — — — — — — — — — — — — — — — — — — — — — — — — — -&lt;/em&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;&lt;em class="markup--em markup--p-em"&gt;Buy “&lt;/em&gt;&lt;/strong&gt;&lt;a href="https://store.enappd.com/product/ionic-4-spotify-app-starter/" class="markup--anchor markup--p-anchor"&gt;&lt;strong class="markup--strong markup--p-strong"&gt;IonSpotify&lt;/strong&gt;&lt;/a&gt;&lt;strong class="markup--strong markup--p-strong"&gt;”&lt;em class="markup--em markup--p-em"&gt; today!!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="graf graf--p graf-after--p graf--trailing"&gt;&lt;em class="markup--em markup--p-em"&gt;— — — — — — — — — — — — — — — — — — — — — — — — — — -&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ionic</category>
      <category>spotify</category>
      <category>music</category>
      <category>template</category>
    </item>
    <item>
      <title>Building Flutter PullToRefresh in just 15 minutes</title>
      <dc:creator>Sanchit Gupta</dc:creator>
      <pubDate>Wed, 25 Mar 2020 05:21:41 +0000</pubDate>
      <link>https://dev.to/enappd/building-flutter-pulltorefresh-in-just-15-minutes-155m</link>
      <guid>https://dev.to/enappd/building-flutter-pulltorefresh-in-just-15-minutes-155m</guid>
      <description>
&lt;p class="graf graf--p graf-after--figure"&gt;The pull-to-refresh pattern lets a user pull down on a list of data using touch in order to retrieve more data. The “Pull-to-refresh” gesture was first introduced by Loren Brichter in the Tweetie app and in no time it became so popular that countless apps adopted this gesture. Today “pull-to-refresh” feature is a natural part of many popular apps, including Twitter, Gmail, Tweetbot and others.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;What you’ll build?&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;In this tutorial, you’ll build a mobile app featuring a PullToRefresh gesture using the Flutter SDK. Your app will:&lt;/p&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--p"&gt;Display a dynamic list with a random number of items&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Each time you &lt;strong class="markup--strong markup--li-strong"&gt;PullToRefresh&lt;/strong&gt; the no of items will change in the list&lt;/li&gt;
&lt;/ul&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--qheVDipe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AWv6VXDMDm-FMSwudouXEEQ.png"&gt;&lt;br&gt;That’s how our PullToRefresh gonna work&lt;p class="graf graf--p graf-after--figure is-selected"&gt;This tutorial focuses on adding a PullToRefresh gesture to a Flutter app. Non-relevant concepts and code blocks are glossed over and are provided for you to simply copy and paste.&lt;/p&gt;
&lt;h4 class="graf graf--h4 graf-after--p"&gt;Github Repository | @ShivamGoyal1899&lt;/h4&gt;
&lt;a href="https://github.com/ShivamGoyal1899/PullToRefresh" class="markup--anchor markup--mixtapeEmbed-anchor" title="https://github.com/ShivamGoyal1899/PullToRefresh"&gt;&lt;strong class="markup--strong markup--mixtapeEmbed-strong"&gt;ShivamGoyal1899/PullToRefresh&lt;/strong&gt;&lt;br&gt;&lt;em class="markup--em markup--mixtapeEmbed-em"&gt;The pull-to-refresh pattern lets a user pull down on a list of data using touch in order to retrieve more data. The…&lt;/em&gt;github.com&lt;/a&gt;&lt;a href="https://github.com/ShivamGoyal1899/PullToRefresh" class="js-mixtapeImage mixtapeImage u-ignoreBlock"&gt;&lt;/a&gt;&lt;h4 class="graf graf--h4 graf-after--mixtapeEmbed"&gt;Widget In Focus | RefreshIndicator&lt;/h4&gt;
&lt;a href="https://api.flutter.dev/flutter/material/RefreshIndicator-class.html" class="markup--anchor markup--mixtapeEmbed-anchor" title="https://api.flutter.dev/flutter/material/RefreshIndicator-class.html"&gt;&lt;strong class="markup--strong markup--mixtapeEmbed-strong"&gt;RefreshIndicator class&lt;/strong&gt;&lt;br&gt;&lt;em class="markup--em markup--mixtapeEmbed-em"&gt;A widget that supports the Material "swipe to refresh" idiom. When the child's Scrollable descendant overscrolls, an…&lt;/em&gt;api.flutter.dev&lt;/a&gt;&lt;a href="https://api.flutter.dev/flutter/material/RefreshIndicator-class.html" class="js-mixtapeImage mixtapeImage mixtapeImage--empty u-ignoreBlock"&gt;&lt;/a&gt;
&lt;h3 class="graf graf--h3 graf--leading"&gt;Setting up Flutter on your machine&lt;/h3&gt;
&lt;p class="graf graf--p graf-after--h3"&gt;The detailed steps to install Flutter on your personal computer &amp;amp; getting started with Flutter is available at the following blog&lt;/p&gt;
&lt;a href="https://medium.com/enappd/install-flutter-on-windows-and-mac-1fd1dde453ba" class="markup--anchor markup--mixtapeEmbed-anchor" title="https://medium.com/enappd/install-flutter-on-windows-and-mac-1fd1dde453ba"&gt;&lt;strong class="markup--strong markup--mixtapeEmbed-strong"&gt;How to install Flutter on Mac &amp;amp; Windows&lt;/strong&gt;&lt;br&gt;&lt;em class="markup--em markup--mixtapeEmbed-em"&gt;Learn about Flutter and how to set it up on Windows and Mac systems&lt;/em&gt;medium.com&lt;/a&gt;&lt;a href="https://medium.com/enappd/install-flutter-on-windows-and-mac-1fd1dde453ba" class="js-mixtapeImage mixtapeImage u-ignoreBlock"&gt;&lt;/a&gt;&lt;h3 class="graf graf--h3 graf-after--mixtapeEmbed"&gt;Coding the component&lt;/h3&gt;
&lt;h4 class="graf graf--h4 graf-after--h3"&gt;Component Syntax&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;The basic format of PullToRefresh gesture looks like the one below:&lt;/p&gt;
&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;h4 class="graf graf--h4 graf-after--figure"&gt;Implementation&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;The most generic way to implement PullToRefresh is as follows:&lt;/p&gt;
&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;h4 class="graf graf--h4 graf-after--figure"&gt;Importing dart libraries to main.dart file&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;Import &lt;strong class="markup--strong markup--p-strong"&gt;dart:async&lt;/strong&gt; &amp;amp; &lt;strong class="markup--strong markup--p-strong"&gt;dart:math &lt;/strong&gt;libraries to your main.dart file by adding the following line at the starting of the file:&lt;/p&gt;
&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;h4 class="graf graf--h4 graf-after--figure"&gt;Putting Code in action&lt;/h4&gt;
&lt;p class="graf graf--p graf-after--h4"&gt;Amend your main.dart file as per the following code:&lt;/p&gt;
&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;h4 class="graf graf--h4 graf-after--figure"&gt;Building &amp;amp; running the application&lt;/h4&gt;
&lt;ul class="postList"&gt;
&lt;li class="graf graf--li graf-after--h4"&gt;Connect your Emulator or physical Android device to test the application.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;Click on Build &amp;amp; Run.&lt;/li&gt;
&lt;li class="graf graf--li graf-after--li"&gt;And Boooom 🧨, your app is ready.The final build would look like the below illustration.&lt;/li&gt;
&lt;/ul&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--69DUeRHV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2AXdgqe3NAYSk44UMl2Qswlw.gif"&gt;&lt;br&gt;The final output of the implementation
&lt;h3 class="graf graf--h3 graf--leading"&gt;🔍 Read more of my Articles&lt;/h3&gt;
&lt;a href="https://medium.com/flutter-community/building-a-flutter-alertdialog-in-just-15-minutes-57fb81b73698" class="markup--anchor markup--mixtapeEmbed-anchor" title="https://medium.com/flutter-community/building-a-flutter-alertdialog-in-just-15-minutes-57fb81b73698"&gt;&lt;strong class="markup--strong markup--mixtapeEmbed-strong"&gt;Building a Flutter AlertDialog in just 15 minutes&lt;/strong&gt;&lt;br&gt;&lt;em class="markup--em markup--mixtapeEmbed-em"&gt;Learn how to implement a customized Alert Dialog / Popup in Flutter.&lt;/em&gt;medium.com&lt;/a&gt;&lt;a href="https://medium.com/flutter-community/building-a-flutter-alertdialog-in-just-15-minutes-57fb81b73698" class="js-mixtapeImage mixtapeImage u-ignoreBlock"&gt;&lt;/a&gt;&lt;a href="https://medium.com/enappd/building-a-flutter-datetime-picker-in-just-15-minutes-6a4b13d6a6d1" class="markup--anchor markup--mixtapeEmbed-anchor" title="https://medium.com/enappd/building-a-flutter-datetime-picker-in-just-15-minutes-6a4b13d6a6d1"&gt;&lt;strong class="markup--strong markup--mixtapeEmbed-strong"&gt;Building a Flutter DateTime Picker in just 15 minutes&lt;/strong&gt;&lt;br&gt;&lt;em class="markup--em markup--mixtapeEmbed-em"&gt;Learn implementation of an iOS-style DateTime Picker in Flutter&lt;/em&gt;medium.com&lt;/a&gt;&lt;a href="https://medium.com/enappd/building-a-flutter-datetime-picker-in-just-15-minutes-6a4b13d6a6d1" class="js-mixtapeImage mixtapeImage u-ignoreBlock"&gt;&lt;/a&gt;&lt;a href="https://medium.com/enappd/adding-firebase-to-your-flutter-app-281b8f391b47" class="markup--anchor markup--mixtapeEmbed-anchor" title="https://medium.com/enappd/adding-firebase-to-your-flutter-app-281b8f391b47"&gt;&lt;strong class="markup--strong markup--mixtapeEmbed-strong"&gt;Adding Firebase to your Flutter App&lt;/strong&gt;&lt;br&gt;&lt;em class="markup--em markup--mixtapeEmbed-em"&gt;Learn how to easily integrate Firebase in Flutter with a step by step guide.&lt;/em&gt;medium.com&lt;/a&gt;&lt;a href="https://medium.com/enappd/adding-firebase-to-your-flutter-app-281b8f391b47" class="js-mixtapeImage mixtapeImage u-ignoreBlock"&gt;&lt;/a&gt;
&lt;h3 class="graf graf--h3 graf--leading"&gt;🎯 That’s all for today.&lt;/h3&gt;
&lt;blockquote class="graf graf--pullquote graf-after--h3"&gt;If you got any queries hit me up in the comments or ping me over on &lt;a href="mailto:hi@itsshivam.com" class="markup--anchor markup--pullquote-anchor"&gt;&lt;/a&gt;&lt;a href="mailto:hi@itsshivam.com"&gt;hi@itsshivam.com&lt;/a&gt; 📧&lt;/blockquote&gt;
&lt;blockquote class="graf graf--pullquote graf-after--pullquote"&gt;If you learned even a thing or two, clap your hands👏 as many times as you can to show your support! It really motivates me to contribute towards the community.&lt;/blockquote&gt;
&lt;blockquote class="graf graf--pullquote graf-after--pullquote"&gt;Feeling too generous? &lt;a href="https://www.paypal.me/shivamgoyal1899/" class="markup--anchor markup--pullquote-anchor" rel="noopener"&gt;Buy me a Drink&lt;/a&gt; 🍺&lt;/blockquote&gt;
&lt;blockquote class="graf graf--pullquote graf-after--pullquote"&gt;Wanna collaborate? &lt;a href="mailto:hi@itsshivam.com" class="markup--anchor markup--pullquote-anchor"&gt;Let’s talk some tech&lt;/a&gt; 😊&lt;/blockquote&gt;
&lt;blockquote class="graf graf--pullquote graf-after--pullquote"&gt;Stalk me over on &lt;a href="https://itsshivam.com/" class="markup--anchor markup--pullquote-anchor" rel="noopener"&gt;itsshivam.com&lt;/a&gt;, &lt;a href="https://github.com/ShivamGoyal1899" class="markup--anchor markup--pullquote-anchor" rel="noopener nofollow noopener noopener noopener noopener noopener"&gt;GitHub&lt;/a&gt;, or &lt;a href="https://linkedin.com/in/shivamgoyal1899/" class="markup--anchor markup--pullquote-anchor" rel="noopener nofollow noopener noopener noopener noopener noopener"&gt;LinkedIn&lt;/a&gt;. 👀&lt;/blockquote&gt;
&lt;img class="graf-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--yzcuWOHE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2Ar5VeD2fV04iDy8xfmaauHA.png"&gt;&lt;a href="https://store.enappd.com" class="markup--anchor markup--mixtapeEmbed-anchor" title="https://store.enappd.com"&gt;&lt;strong class="markup--strong markup--mixtapeEmbed-strong"&gt;Enappd | Ionic, React Native, Firebase themes, templates and starters&lt;/strong&gt;&lt;br&gt;&lt;em class="markup--em markup--mixtapeEmbed-em"&gt;Get full source code for Ionic, React Native, Firebase mobile app templates and starters. Use free templates and…&lt;/em&gt;store.enappd.com&lt;/a&gt;&lt;a href="https://store.enappd.com" class="js-mixtapeImage mixtapeImage u-ignoreBlock"&gt;&lt;/a&gt;

</description>
      <category>android</category>
      <category>ios</category>
      <category>flutter</category>
      <category>refresh</category>
    </item>
  </channel>
</rss>
