Skip to content

Commit

Permalink
Merge branch 'master' into ios-casestudy-section
Browse files Browse the repository at this point in the history
  • Loading branch information
cp-priyanka-g committed Oct 23, 2023
2 parents 80636ce + dfac1f0 commit 1fc70ed
Show file tree
Hide file tree
Showing 10 changed files with 173 additions and 0 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<template>
<section class="tw-mt-6 lg:tw-mt-[6.75rem]">
<div
class="tw-container lg:tw-text-left tw-text-center lg:tw-flex xl:tw-my-8 tw-pb-16"
>
<div
class="tw-flex tw-flex-col tw-gap-4 lg:tw-gap-6 lg:tw-flex-1 lg:tw-items-start"
>
<h1 class="header-1">Flutter App Development Company</h1>
<p class="sub-h1-regular tw-text-black-core/[0.89]">
We harness the power of Flutter to create visually stunning, fast, and
highly responsive applications that effortlessly work on both iOS and
Android platforms. Our team turns your unique business requirements
into reality, giving your brand the competitive edge it needs in this
dynamic mobile app market.
</p>
<div class="tw-hidden lg:tw-block">
<router-link
to="/contact"
@click.native="mixpanel.track('tap_flutter_development_cta')"
>
<button class="gradient-btn primary-btn tw-ml-0">
<span class="sub-h4-semibold tw-border-none"
>Get Free Consultation</span
>
</button>
</router-link>
</div>
</div>
<div
class="tw-mx-20 tw-mt-8 lg:tw-mt-0 lg:tw-mx-0 tw-flex lg:tw-flex-wrap tw-flex-col md:tw-gap-[1rem] lg:tw-flex-1"
>
<img
:src="landing400"
:srcset="`${landing400} 400w, ${landing800} 800w, ${landing1200} 1200w, ${landing2400} 2400w`"
class="tw-h-full tw-w-full tw-object-contain"
alt="flutter-landing"
/>
<div class="lg:tw-hidden">
<router-link
to="/contact"
@click.native="mixpanel.track('tap_flutter_development_cta')"
>
<button class="gradient-btn primary-btn">
<span class="sub-h3-semibold tw-border-none"
>Get Free Consultation</span
>
</button>
</router-link>
</div>
</div>
</div>
</section>
</template>

<script>
import landing400 from "@/assets/images/flutter-app-development/landing/landing400w.webp";
import landing800 from "@/assets/images/flutter-app-development/landing/landing800w.webp";
import landing1200 from "@/assets/images/flutter-app-development/landing/landing1200w.webp";
import landing2400 from "@/assets/images/flutter-app-development/landing/landing2400w.webp";
export default {
data() {
return {
landing400,
landing800,
landing1200,
landing2400,
};
},
inject: ["mixpanel"],
};
</script>
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ export default {
title: "Flutter App Development ",
description:
"Bring your multi-platform app vision to life with our Flutter app development services. We excel in crafting high-quality, stunning applications that work flawlessly on Android, iOS, and the web, all from a single codebase, facilitating faster time to market and cost savings.",
url: "/flutter-app-development",
},
{
path: [100, 100],
Expand Down
1 change: 1 addition & 0 deletions vue-frontend/src/components/services/WhatWeOfferMobile.vue
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ export default {
"Bring your multi-platform app vision to life with our Flutter app development services. We excel in crafting high-quality, stunning applications that work flawlessly on Android, iOS, and the web, all from a single codebase, facilitating faster time to market and cost savings.",
class:
"tw-bg-gradient-to-b tw-from-[#E0EDFF] via-[#E0EDFF] tw-to-white tw-bg-gradient-[180deg] ",
url: "/flutter-app-development",
},
{
images: [uiuxdesign400w, uiuxdesign800w],
Expand Down
9 changes: 9 additions & 0 deletions vue-frontend/src/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,16 @@ export default Object.freeze({
url: "https://dev-stack.canopas.com/ios-app-development",
image: "https://dev-stack.canopas.com/apple-touch-icon.png",
},
FLUTTER_APP_DEVELOPMENT_SEO_META_DATA: {
title: "Flutter App Development Company - Canopas",
description:
"We create bespoke Flutter applications known for their supreme performance, unwavering security, and outmost reliability",
type: "Website",
url: "https://dev-stack.canopas.com/flutter-app-development",
image: "https://dev-stack.canopas.com/apple-touch-icon.png",
},
IS_PROD: false,
SHOW_FLUTTER_APP_DEVELOPMENT_PAGE: true,
SHOW_IOS_APP_DEVELOPMENT_PAGE: true,
SHOW_ANDROID_APP_DEVELOPMENT_PAGE: true,
SMILEPLUS_URL: "https://www.udini.ai/products/smile",
Expand Down
9 changes: 9 additions & 0 deletions vue-frontend/src/config.prod.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,18 @@ export default Object.freeze({
url: "https://dev-stack.canopas.com/ios-app-development",
image: "https://dev-stack.canopas.com/apple-touch-icon.png",
},
FLUTTER_APP_DEVELOPMENT_SEO_META_DATA: {
title: "Flutter App Development Company - Canopas",
description:
"We create bespoke Flutter applications known for their supreme performance, unwavering security, and outmost reliability",
type: "Website",
url: "https://dev-stack.canopas.com/flutter-app-development",
image: "https://dev-stack.canopas.com/apple-touch-icon.png",
},
IS_PROD: true,
SHOW_ANDROID_APP_DEVELOPMENT_PAGE: false,
SHOW_IOS_APP_DEVELOPMENT_PAGE: false,
SHOW_FLUTTER_APP_DEVELOPMENT_PAGE: false,
SMILEPLUS_URL: "https://www.udini.ai/products/smile",
WEBSITE_OPEN_SOURCE_URL: "https://github.com/canopas/canopas-website",
MIX_PANEL_TOKEN: "16b177c2cda3ec1fb11c63a07f27996c",
Expand Down
81 changes: 81 additions & 0 deletions vue-frontend/src/pages/flutter-app-development.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<template>
<div>
<metainfo>
<template v-slot:title="{ content }">
{{ content }}
</template>
</metainfo>
<Header />
<LandingSection ref="flutterLanding" />
</div>
</template>

<script>
import Header from "@/components/partials/NewHeader.vue";
import config from "@/config.js";
import { useMeta } from "vue-meta";
import { elementInViewPort } from "@/utils.js";
import LandingSection from "../components/flutter-app-development/LandingSection.vue";
export default {
data() {
return {
event: "",
events: {
flutterLanding: "view_flutter_development_landing_section",
},
};
},
setup() {
var seoData = config.FLUTTER_APP_DEVELOPMENT_SEO_META_DATA;
useMeta({
meta: [
{
name: "robots",
content: "noindex, nofllow",
vmid: "robots",
},
],
title: seoData.title,
description: seoData.description,
og: {
type: seoData.type,
title: seoData.title,
url: seoData.url,
image: seoData.image,
},
});
},
components: {
Header,
LandingSection,
},
methods: {
sendEvent() {
const event = this.events[elementInViewPort(this.$refs)];
if (event && this.event !== event) {
this.event = event;
this.mixpanel.track(event);
}
},
},
beforeRouteEnter(to, from, next) {
if (!config.SHOW_FLUTTER_APP_DEVELOPMENT_PAGE) {
next({
name: "Error404Page",
params: { pathMatch: "/flutter-app-development" },
});
} else {
next();
}
},
inject: ["mixpanel"],
mounted() {
window.addEventListener("scroll", this.sendEvent);
this.mixpanel.track("view_flutter_development_page");
},
unmounted() {
window.removeEventListener("scroll", this.sendEvent);
},
};
</script>

0 comments on commit 1fc70ed

Please sign in to comment.