Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
cp-ashish-k committed Dec 1, 2023
2 parents 17eeb38 + c152ad3 commit f2a94d6
Show file tree
Hide file tree
Showing 14 changed files with 294 additions and 127 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified nuxt-frontend/assets/images/flutter-app-development/quote.webp
Binary file not shown.
100 changes: 45 additions & 55 deletions nuxt-frontend/components/flutter-app-development/BlogSection.vue
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
class="white-btn gradient-border-btn primary-btn mt-8"
:href="canopas"
target="_blank"
@click.native="$mixpanel.track('tap_flutter_blog_section')"
>
<span class="sub-h3-semibold v2-canopas-gradient-text">View all</span>
</a>
Expand Down Expand Up @@ -132,14 +133,15 @@
class="primary-btn gradient-border-btn white-btn mt-[4.5rem] lg:mb-[15rem]"
:href="canopas"
target="_blank"
@click.native="$mixpanel.track('tap_flutter_blog_section')"
>
<span class="sub-h3-semibold">Read More Blogs </span>
<Icon name="fa6-solid:arrow-right" class="fa ml-2" />
</a>
</div>
</section>
</template>
<script>
<script setup>
import { Swiper, SwiperSlide } from "swiper/vue";
import { openBlog } from "@/utils.js";
import inherit_400w from "@/assets/images/flutter-app-development/blog/1-400w.webp";
Expand All @@ -154,62 +156,50 @@ import animate_800w from "@/assets/images/flutter-app-development/blog/4-800w.we
import master_400w from "@/assets/images/flutter-app-development/blog/5-400w.webp";
import master_800w from "@/assets/images/flutter-app-development/blog/5-800w.webp";
export default {
data() {
return {
openBlog,
blogs: [
{
id: 1,
image: [inherit_400w, inherit_800w, desk800w],
title: "How to Use InheritedWidget in Flutter",
readTime: "7 min",
hovertitle: `<span class="sub-h1-semibold text-center text-white">How to Use InheritedWidget in Flutter</span>`,
link: "https://blog.canopas.com/how-to-use-inheritedwidget-in-flutter-5fd64ce52b66",
},
{
id: 2,
image: [animate_400w, animate_800w],
title:
"Flutter Fun Animation A smiley that reacts to your every move",
readTime: "8 min",
hovertitle: `<span class="sub-h1-semibold text-center text-white">Flutter Fun Animation A smiley that reacts to your every move</span>`,
link: "https://blog.canopas.com/flutter-animations-made-fun-a-smiley-that-reacts-to-your-every-move-9ebfb0a0657f",
},
{
id: 3,
image: [maintain_400w, maintain_800w],
title: "Maintain the state of BottomNavigationBar across tabs",
readTime: "9 min",
hovertitle: `<span class="sub-h1-semibold text-center text-white">Maintain the state of BottomNavigationBar across tabs</span>`,
link: "https://blog.canopas.com/how-to-maintain-the-state-of-bottomnavigationbar-across-tabs-528b3699f78b",
},
{
id: 4,
image: [custom_400w, custom_800w],
title: "Customizing Serialization and Deserialization in Flutter",
readTime: "10 min",
hovertitle: `<span class="sub-h1-semibold text-center text-white">Customizing Serialization and Deserialization in Flutter</span>`,
link: "https://blog.canopas.com/flutter-customizing-serialization-and-deserialization-with-json-serializable-db17e3aa90b0",
},
{
id: 5,
image: [master_400w, master_800w],
title: "Mastering Flutter Inspector DevTools for Effective Debugging",
readTime: "11 min",
hovertitle: `<span class="sub-h1-semibold text-center text-white">Mastering Flutter Inspector DevTools for Effective Debugging</span>`,
link: "https://blog.canopas.com/optimizing-flutter-apps-mastering-flutter-inspector-devtools-for-effective-debugging-493c03f68835",
},
],
canopas: "https://blog.canopas.com",
};
const { $mixpanel } = useNuxtApp();
const blogs = [
{
id: 1,
image: [inherit_400w, inherit_800w, desk800w],
title: "How to Use InheritedWidget in Flutter",
readTime: "7 min",
hovertitle: `<span class="sub-h1-semibold text-center text-white">How to Use InheritedWidget in Flutter</span>`,
link: "https://blog.canopas.com/how-to-use-inheritedwidget-in-flutter-5fd64ce52b66",
},
components: {
Swiper,
SwiperSlide,
{
id: 2,
image: [animate_400w, animate_800w],
title: "Flutter Fun Animation A smiley that reacts to your every move",
readTime: "8 min",
hovertitle: `<span class="sub-h1-semibold text-center text-white">Flutter Fun Animation A smiley that reacts to your every move</span>`,
link: "https://blog.canopas.com/flutter-animations-made-fun-a-smiley-that-reacts-to-your-every-move-9ebfb0a0657f",
},
inject: ["mixpanel"],
};
{
id: 3,
image: [maintain_400w, maintain_800w],
title: "Maintain the state of BottomNavigationBar across tabs",
readTime: "9 min",
hovertitle: `<span class="sub-h1-semibold text-center text-white">Maintain the state of BottomNavigationBar across tabs</span>`,
link: "https://blog.canopas.com/how-to-maintain-the-state-of-bottomnavigationbar-across-tabs-528b3699f78b",
},
{
id: 4,
image: [custom_400w, custom_800w],
title: "Customizing Serialization and Deserialization in Flutter",
readTime: "10 min",
hovertitle: `<span class="sub-h1-semibold text-center text-white">Customizing Serialization and Deserialization in Flutter</span>`,
link: "https://blog.canopas.com/flutter-customizing-serialization-and-deserialization-with-json-serializable-db17e3aa90b0",
},
{
id: 5,
image: [master_400w, master_800w],
title: "Mastering Flutter Inspector DevTools for Effective Debugging",
readTime: "11 min",
hovertitle: `<span class="sub-h1-semibold text-center text-white">Mastering Flutter Inspector DevTools for Effective Debugging</span>`,
link: "https://blog.canopas.com/optimizing-flutter-apps-mastering-flutter-inspector-devtools-for-effective-debugging-493c03f68835",
},
];
const canopas = "https://blog.canopas.com";
</script>
<style lang="postcss" scoped>
.swiper-slide-active div {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
to="/contact"
@click.native="$mixpanel.track('tap_flutter_development_cta')"
>
<span class="sub-h3-semibold border-none"
<span class="sub-h3-semibold xl:sub-h4-semibold border-none"
>Connect With Us
</span>
<Icon name="fa6-solid:arrow-right" class="fa ml-3" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@
to="/contact"
@click.native="$mixpanel.track('tap_flutter_development_cta')"
>
<span class="sub-h3-semibold border-none">Drop Us a Line </span>
<span class="sub-h3-semibold xl:sub-h4-semibold border-none"
>Drop Us a Line
</span>
<Icon name="fa6-solid:arrow-right" class="fa ml-3" />
</nuxt-link>
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
<template>
<div
class="py-14 lg:py-[7.5rem] bg-[#121212] text-white text-center 3xl:outer-container"
>
<div class="container flex flex-col gap-4 lg:gap-6 lg:pb-[4.5rem]">
<span class="header-2"> Flutter app development services </span>
<span class="sub-h1-regular text-white/[0.8]">
We leverage Flutter's rich, customizable widgets and fast development
capabilities to create beautiful and user-friendly apps that save you
time and cost of platform-specific development.
</span>
</div>
<!-- Flutter Mobile Swiper UI-->
<div class="swiper-content mt-6 lg:hidden text-left">
<swiper
:slidesPerView="1"
:centeredSlides="true"
:spaceBetween="10"
:modules="modules"
:autoplay="{
delay: 3000,
disableOnInteraction: false,
}"
:speed="1500"
:pagination="pagination"
:breakpoints="{
'540': {
slidesPerView: 1.2,
spaceBetween: 0,
},
'620': {
slidesPerView: 1.4,
spaceBetween: 0,
},
'700': {
slidesPerView: 1.5,
},
}"
class="swiper-container"
>
<swiper-slide
v-for="(item, index) in items"
:key="index"
class="cursor-pointer px-4"
>
<div class="flex flex-col gap-4 py-8 px-4 bg-white/[0.08] rounded-xl">
<div class="header-3">
<span v-html="item.title"></span>
</div>
<div class="sub-h3-medium text-white/[0.8]">
<span
v-html="item.description"
class="flex gap-4 flex-col text-white/[0.8]"
></span>
</div>
</div>
</swiper-slide>
<div class="swiper-pagination"></div>
</swiper>
</div>
<!-- Flutter Desktop UI -->
<div class="hidden lg:block relative h-full overflow-hidden">
<hr class="absolute h-[300vh] left-[50%] border-[0.1px] opacity-[0.5]" />
<div
v-for="(item, index) in items"
:key="index"
class="mb-[4.5rem] container item opacity-50"
:class="{ '!opacity-100': index === activeIndex }"
>
<div
:class="[
' flex gap-16',
{
' flex-row text-right ': index % 2 === 0,
' flex-row-reverse text-left': index % 2 !== 0,
},
]"
>
<div class="flex flex-col flex-1 gap-6">
<div class="header-3">
<span v-html="item.title"></span>
</div>
<div class="sub-h3-regular">
<span v-html="item.description"></span>
</div>
</div>
<div class="flex-1" :class="{ relative: index % 2 !== 0 }">
<img
:src="item.image"
alt="development-service-image"
class="w-24 h-24"
:class="{ 'absolute right-0': index % 2 !== 0 }"
loading="lazy"
/>
</div>
</div>
</div>
</div>
</div>
</template>

<script setup type="module">
import { Autoplay, Pagination } from "swiper/modules";
import { Swiper, SwiperSlide } from "swiper/vue";
import consultation from "@/assets/images/flutter-app-development/development/consultation.webp";
import design from "@/assets/images/flutter-app-development/development/design.webp";
import development from "@/assets/images/flutter-app-development/development/development.webp";
import deployment from "@/assets/images/flutter-app-development/development/deployment.webp";
import maintainance from "@/assets/images/flutter-app-development/development/maintainance.webp";
const modules = [Autoplay, Pagination];
var activeIndex = ref(0);
const items = [
{
title: `Flutter App Development <br/>Consultation`,
image: consultation,
description: `<span>We begin every project by understanding your vision and business requirements.</span>
<span>Our expert consultants guide you through the entire process, providing insights on market trends,competition, technical feasibility, and ideal app monetization strategies.</span>
<span>We dive deep into your project's specifics, brainstorming innovative ways to bring your idea to life using Flutter's powerful features.</span>`,
},
{
title: "Flutter UI/UX Design",
image: design,
description: `<span>We believe in designing applications that are not just aestheticaly pleasing, but also remarkably intuitive and user-friendly.</span>
<span>With Flutter's extensive widget library and flexible UI capabilities, we craft customized, interactive,and smooth interfaces that captivate your users and keep them engaged.</span>
<span>We place a strong emphasis on user-centric design, incorporating the latest design principles to create a seamless,intuitive flow. From the initial wireframe to the final design mockup, we ensure every pixel adds value to your user's journey, making your app stand out in the bustling app marketplace.</span>
`,
},
{
title: `Custom Flutter Application <br /> Development`,
image: development,
description: `<span>We transform your unique business needs into robust, efficient, and beautifully designed mobile apps.</span>
<span>We leverage Flutter's single codebase feature, allowing us to expedite the development process without compromising on the app's performance, feel, or look. Our team employs Flutter's hot-reload functionality to build dynamic, high-quality applications that offer a native experience on both iOS and Android platforms.</span>
<span>From feature-rich eCommerce apps to interactive social networking apps, we deliver custom Flutter solutions that align with your business goals and deliver a seamless user experience across all devices.</span>`,
},
{
title: "Flutter App Deployment",
image: deployment,
description: `
<span>We understand that app development doesn't end with coding. Ensuring that your application gets successfully deployed on the App Store and Google Play Store is equally important.</span>
<span>Our team navigates the complexities of app submission guidelines, takes care of the application's configuration, manages the app store metadata, and executes a successful launch.</span>
<span>We also monitor the app's performance post-launch, ensuring smooth functioning and immediate troubleshooting. Experience a worry-free deployment and watch your Flutter application take flight with our diligent deployment services.</span>
`,
},
{
title: "Maintenance and Support",
image: maintainance,
description: `
<span>We believe that maintaining an application is as crucial as developing it. After your app's successful deployment, we provide ongoing support to ensure its optimal performance, stability, and user satisfaction.</span>
<span>Our services include regular updates, bug fixes, performance monitoring, code optimization, and adding new features as per market trends or user feedback.</span>
<span>With our round-the-clock support, you can rest assured that your application stays up-to-date,secure, and relevant in the ever-evolving app market, ensuring its long-term success and user engagement.</span>
`,
},
];
const pagination = {
el: ".swiper-pagination",
clickable: true,
};
onMounted(() => {
window.addEventListener("scroll", handleScroll);
});
onUnmounted(() => {
window.removeEventListener("scroll", handleScroll);
});
function handleScroll() {
const child = document.querySelectorAll(".item");
child.forEach((item, index) => {
const itemRect = item.getBoundingClientRect();
const itemTop = itemRect.top;
if (itemTop < 350) {
activeIndex.value = index;
}
});
}
</script>
<style lang="postcss" scoped>
@import "swiper/css";
@import "swiper/css/pagination";
.swiper-pagination {
@apply static pt-8;
}
.swiper-pagination-bullet {
@apply !w-3 !h-3 !rounded-full !bg-[#F2709C]/[0.8] !border !border-solid !border-[#FFFFFF]/[0.80];
}
.swiper-pagination-bullet-active {
@apply !border-none !opacity-100;
}
</style>
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@
class="mr-2 h-5 w-5"
name="fa6-solid:arrow-left"
id="leftArrow"
/><span class="sub-h4-semibold">Back</span>
/><span class="sub-h3-semibold xl:sub-h4-semibold">Back</span>
</button>
<button
v-else
Expand All @@ -146,7 +146,9 @@
@click="slide(1)"
@click.native="$mixpanel.track('tap_flutter_app_faq_next_arrow')"
>
<span class="sub-h4-semibold">View More Questions</span>
<span class="sub-h3-semibold xl:sub-h4-semibold"
>View More Questions</span
>
<Icon
class="ml-2 h-5 w-5"
name="fa6-solid:arrow-right"
Expand Down
Loading

0 comments on commit f2a94d6

Please sign in to comment.