removed seezuns
This commit is contained in:
@@ -39,7 +39,7 @@ import { Button } from "../components/ui/button";
|
||||
import { Card, CardContent } from "../components/ui/card";
|
||||
import { ShimmerButton } from "../components/ui/shimmer-button";
|
||||
import ranoutofImage from "../src/images/ranoutof.webp"
|
||||
import seezunImage from "../src/images/seezun.webp";
|
||||
// import seezunImage from "../src/images/seezun.webp";
|
||||
import regroupImage from "../src/images/regroup.webp";
|
||||
import awsLogoImage from "../src/images/aws-logo.png";
|
||||
|
||||
@@ -95,7 +95,7 @@ const NativeHeroWithCTA = () => {
|
||||
`}
|
||||
</script>
|
||||
</Helmet>
|
||||
<div className="container mx-auto px-6 lg:px-8">
|
||||
<div className="container px-6 mx-auto lg:px-8">
|
||||
<div className="grid lg:grid-cols-2 gap-16 items-center min-h-[90vh]">
|
||||
<motion.div
|
||||
initial={{ opacity: 0, x: -50 }}
|
||||
@@ -109,18 +109,18 @@ const NativeHeroWithCTA = () => {
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.6 }}
|
||||
>
|
||||
<span className="text-white/70 text-sm font-medium">
|
||||
<span className="text-sm font-medium text-white/70">
|
||||
Native App Development
|
||||
</span>
|
||||
</motion.div>
|
||||
|
||||
{/* Main Heading */}
|
||||
<div className="space-y-6">
|
||||
<h1 className="text-4xl md:text-5xl lg:text-6xl font-semibold text-white leading-tight">
|
||||
<h1 className="text-4xl font-semibold leading-tight text-white md:text-5xl lg:text-6xl">
|
||||
Native App Development: Uncompromising Performance & Experience
|
||||
</h1>
|
||||
|
||||
<p className="text-lg text-gray-300 leading-relaxed max-w-lg">
|
||||
<p className="max-w-lg text-lg leading-relaxed text-gray-300">
|
||||
Building bespoke applications tailored for a single operating
|
||||
system to deliver the highest level of performance, security,
|
||||
and device integration.
|
||||
@@ -132,22 +132,22 @@ const NativeHeroWithCTA = () => {
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8, delay: 0.3 }}
|
||||
className="flex flex-col sm:flex-row gap-4"
|
||||
className="flex flex-col gap-4 sm:flex-row"
|
||||
>
|
||||
<ShimmerButton
|
||||
className="text-lg px-8 py-4"
|
||||
className="px-8 py-4 text-lg"
|
||||
onClick={() => navigate("/start-a-project")}
|
||||
>
|
||||
<div className="inline-flex items-center gap-2">
|
||||
<Gauge className="w-5 h-5 flex-shrink-0" />
|
||||
<Gauge className="flex-shrink-0 w-5 h-5" />
|
||||
<span>Discover Native Advantages</span>
|
||||
</div>
|
||||
</ShimmerButton>
|
||||
<a
|
||||
href="#consultation"
|
||||
className="inline-flex items-center justify-center gap-2 rounded-md bg-gray-800 px-8 py-4 text-lg font-medium text-white transition hover:bg-gray-700 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-700 whitespace-nowrap"
|
||||
className="inline-flex items-center justify-center gap-2 px-8 py-4 text-lg font-medium text-white transition bg-gray-800 rounded-md hover:bg-gray-700 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-700 whitespace-nowrap"
|
||||
>
|
||||
<MessageSquare className="w-4 h-4 flex-shrink-0" />
|
||||
<MessageSquare className="flex-shrink-0 w-4 h-4" />
|
||||
<span>Request Consultation</span>
|
||||
</a>
|
||||
</motion.div>
|
||||
@@ -169,11 +169,11 @@ const NativeHeroWithCTA = () => {
|
||||
className="relative h-[400px] w-full mb-8 flex items-center justify-center"
|
||||
>
|
||||
{/* Split-screen container */}
|
||||
<div className="relative w-full h-full flex">
|
||||
<div className="relative flex w-full h-full">
|
||||
{/* iOS Native App (left half) */}
|
||||
<div className="w-1/2 h-full bg-gradient-to-br from-blue-900/20 to-blue-800/20 rounded-l-3xl border-l border-t border-b border-blue-500/30 flex flex-col items-center justify-center p-6">
|
||||
<div className="w-32 h-48 bg-gradient-to-br from-gray-800 to-gray-900 rounded-2xl border border-gray-700 shadow-xl mb-4">
|
||||
<div className="w-full h-6 bg-gray-700 rounded-t-2xl flex items-center justify-center">
|
||||
<div className="flex flex-col items-center justify-center w-1/2 h-full p-6 border-t border-b border-l bg-gradient-to-br from-blue-900/20 to-blue-800/20 rounded-l-3xl border-blue-500/30">
|
||||
<div className="w-32 h-48 mb-4 border border-gray-700 shadow-xl bg-gradient-to-br from-gray-800 to-gray-900 rounded-2xl">
|
||||
<div className="flex items-center justify-center w-full h-6 bg-gray-700 rounded-t-2xl">
|
||||
<div className="w-8 h-0.5 bg-gray-600 rounded-full"></div>
|
||||
</div>
|
||||
<div className="p-3 space-y-2">
|
||||
@@ -184,7 +184,7 @@ const NativeHeroWithCTA = () => {
|
||||
<div className="h-6 bg-gray-700 rounded-lg"></div>
|
||||
<div className="h-6 bg-gray-700 rounded-lg"></div>
|
||||
</div>
|
||||
<div className="h-8 bg-blue-500/20 rounded-lg mt-2 flex items-center justify-center">
|
||||
<div className="flex items-center justify-center h-8 mt-2 rounded-lg bg-blue-500/20">
|
||||
<Apple className="w-4 h-4 text-blue-500" />
|
||||
</div>
|
||||
</div>
|
||||
@@ -192,7 +192,7 @@ const NativeHeroWithCTA = () => {
|
||||
<div className="text-center">
|
||||
<Badge
|
||||
variant="secondary"
|
||||
className="bg-blue-500/20 text-blue-300 border-blue-500/30 text-xs"
|
||||
className="text-xs text-blue-300 bg-blue-500/20 border-blue-500/30"
|
||||
>
|
||||
iOS Native
|
||||
</Badge>
|
||||
@@ -200,9 +200,9 @@ const NativeHeroWithCTA = () => {
|
||||
</div>
|
||||
|
||||
{/* Android Native App (right half) */}
|
||||
<div className="w-1/2 h-full bg-gradient-to-br from-green-900/20 to-green-800/20 rounded-r-3xl border-r border-t border-b border-green-500/30 flex flex-col items-center justify-center p-6">
|
||||
<div className="w-32 h-48 bg-gradient-to-br from-gray-800 to-gray-900 rounded-2xl border border-gray-700 shadow-xl mb-4">
|
||||
<div className="w-full h-6 bg-gray-700 rounded-t-2xl flex items-center justify-center">
|
||||
<div className="flex flex-col items-center justify-center w-1/2 h-full p-6 border-t border-b border-r bg-gradient-to-br from-green-900/20 to-green-800/20 rounded-r-3xl border-green-500/30">
|
||||
<div className="w-32 h-48 mb-4 border border-gray-700 shadow-xl bg-gradient-to-br from-gray-800 to-gray-900 rounded-2xl">
|
||||
<div className="flex items-center justify-center w-full h-6 bg-gray-700 rounded-t-2xl">
|
||||
<div className="w-8 h-0.5 bg-gray-600 rounded-full"></div>
|
||||
</div>
|
||||
<div className="p-3 space-y-2">
|
||||
@@ -213,7 +213,7 @@ const NativeHeroWithCTA = () => {
|
||||
<div className="h-6 bg-gray-700 rounded-lg"></div>
|
||||
<div className="h-6 bg-gray-700 rounded-lg"></div>
|
||||
</div>
|
||||
<div className="h-8 bg-green-500/20 rounded-lg mt-2 flex items-center justify-center">
|
||||
<div className="flex items-center justify-center h-8 mt-2 rounded-lg bg-green-500/20">
|
||||
<svg
|
||||
className="w-4 h-4 text-green-500"
|
||||
viewBox="0 0 24 24"
|
||||
@@ -227,7 +227,7 @@ const NativeHeroWithCTA = () => {
|
||||
<div className="text-center">
|
||||
<Badge
|
||||
variant="secondary"
|
||||
className="bg-green-500/20 text-green-300 border-green-500/30 text-xs"
|
||||
className="text-xs text-green-300 bg-green-500/20 border-green-500/30"
|
||||
>
|
||||
Android Native
|
||||
</Badge>
|
||||
@@ -244,7 +244,7 @@ const NativeHeroWithCTA = () => {
|
||||
initial={{ opacity: 0, y: 30 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8, delay: 0.6 }}
|
||||
className="flex justify-center gap-4 flex-wrap"
|
||||
className="flex flex-wrap justify-center gap-4"
|
||||
>
|
||||
<Badge
|
||||
variant="secondary"
|
||||
@@ -254,13 +254,13 @@ const NativeHeroWithCTA = () => {
|
||||
</Badge>
|
||||
<Badge
|
||||
variant="secondary"
|
||||
className="bg-blue-500/20 text-blue-300 border-blue-500/30"
|
||||
className="text-blue-300 bg-blue-500/20 border-blue-500/30"
|
||||
>
|
||||
Maximum Performance
|
||||
</Badge>
|
||||
<Badge
|
||||
variant="secondary"
|
||||
className="bg-purple-500/20 text-purple-300 border-purple-500/30"
|
||||
className="text-purple-300 bg-purple-500/20 border-purple-500/30"
|
||||
>
|
||||
Native Features
|
||||
</Badge>
|
||||
@@ -310,18 +310,18 @@ const NativeVsCrossPlatform = () => {
|
||||
|
||||
return (
|
||||
<section className="py-32">
|
||||
<div className="container mx-auto px-6 lg:px-8">
|
||||
<div className="container px-6 mx-auto lg:px-8">
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 30 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8 }}
|
||||
viewport={{ once: true }}
|
||||
className="text-center mb-16"
|
||||
className="mb-16 text-center"
|
||||
>
|
||||
<h2 className="text-4xl lg:text-5xl font-semibold text-foreground mb-6">
|
||||
<h2 className="mb-6 text-4xl font-semibold lg:text-5xl text-foreground">
|
||||
Native vs. Cross-Platform: When to Choose Native
|
||||
</h2>
|
||||
<p className="text-xl text-muted-foreground max-w-3xl mx-auto leading-relaxed">
|
||||
<p className="max-w-3xl mx-auto text-xl leading-relaxed text-muted-foreground">
|
||||
Native development delivers uncompromising performance and platform
|
||||
integration for applications that demand the highest standards.
|
||||
</p>
|
||||
@@ -332,7 +332,7 @@ const NativeVsCrossPlatform = () => {
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8, delay: 0.2 }}
|
||||
viewport={{ once: true }}
|
||||
className="grid md:grid-cols-2 lg:grid-cols-3 gap-8 max-w-6xl mx-auto"
|
||||
className="grid max-w-6xl gap-8 mx-auto md:grid-cols-2 lg:grid-cols-3"
|
||||
>
|
||||
{comparisons.slice(0, 3).map((item, index) => {
|
||||
const IconComponent = item.icon;
|
||||
@@ -346,15 +346,15 @@ const NativeVsCrossPlatform = () => {
|
||||
whileHover={{ y: -5 }}
|
||||
className="group"
|
||||
>
|
||||
<Card className="bg-card/20 backdrop-blur-md border-white/10 hover:border-accent/30 transition-all duration-300 shadow-lg hover:shadow-xl rounded-2xl h-full">
|
||||
<Card className="h-full transition-all duration-300 shadow-lg bg-card/20 backdrop-blur-md border-white/10 hover:border-accent/30 hover:shadow-xl rounded-2xl">
|
||||
<CardContent className="p-8 text-center">
|
||||
<div className="w-16 h-16 bg-accent/20 rounded-2xl flex items-center justify-center mx-auto mb-6">
|
||||
<div className="flex items-center justify-center w-16 h-16 mx-auto mb-6 bg-accent/20 rounded-2xl">
|
||||
<IconComponent className="w-8 h-8 text-accent" />
|
||||
</div>
|
||||
<h3 className="text-xl font-semibold text-foreground mb-4">
|
||||
<h3 className="mb-4 text-xl font-semibold text-foreground">
|
||||
{item.title}
|
||||
</h3>
|
||||
<p className="text-muted-foreground leading-relaxed">
|
||||
<p className="leading-relaxed text-muted-foreground">
|
||||
{item.description}
|
||||
</p>
|
||||
</CardContent>
|
||||
@@ -370,7 +370,7 @@ const NativeVsCrossPlatform = () => {
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8, delay: 0.4 }}
|
||||
viewport={{ once: true }}
|
||||
className="grid md:grid-cols-2 gap-8 max-w-4xl mx-auto mt-8"
|
||||
className="grid max-w-4xl gap-8 mx-auto mt-8 md:grid-cols-2"
|
||||
>
|
||||
{comparisons.slice(3).map((item, index) => {
|
||||
const IconComponent = item.icon;
|
||||
@@ -384,15 +384,15 @@ const NativeVsCrossPlatform = () => {
|
||||
whileHover={{ y: -5 }}
|
||||
className="group"
|
||||
>
|
||||
<Card className="bg-card/20 backdrop-blur-md border-white/10 hover:border-accent/30 transition-all duration-300 shadow-lg hover:shadow-xl rounded-2xl h-full">
|
||||
<Card className="h-full transition-all duration-300 shadow-lg bg-card/20 backdrop-blur-md border-white/10 hover:border-accent/30 hover:shadow-xl rounded-2xl">
|
||||
<CardContent className="p-8 text-center">
|
||||
<div className="w-16 h-16 bg-accent/20 rounded-2xl flex items-center justify-center mx-auto mb-6">
|
||||
<div className="flex items-center justify-center w-16 h-16 mx-auto mb-6 bg-accent/20 rounded-2xl">
|
||||
<IconComponent className="w-8 h-8 text-accent" />
|
||||
</div>
|
||||
<h3 className="text-xl font-semibold text-foreground mb-4">
|
||||
<h3 className="mb-4 text-xl font-semibold text-foreground">
|
||||
{item.title}
|
||||
</h3>
|
||||
<p className="text-muted-foreground leading-relaxed">
|
||||
<p className="leading-relaxed text-muted-foreground">
|
||||
{item.description}
|
||||
</p>
|
||||
</CardContent>
|
||||
@@ -497,18 +497,18 @@ const NativeCapabilities = () => {
|
||||
|
||||
return (
|
||||
<section className="py-32 bg-black">
|
||||
<div className="container mx-auto px-6 lg:px-8">
|
||||
<div className="container px-6 mx-auto lg:px-8">
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 30 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8 }}
|
||||
viewport={{ once: true }}
|
||||
className="text-center mb-20"
|
||||
className="mb-20 text-center"
|
||||
>
|
||||
<h2 className="text-4xl lg:text-5xl font-semibold text-white mb-6">
|
||||
<h2 className="mb-6 text-4xl font-semibold text-white lg:text-5xl">
|
||||
Expertise Across Leading Native Platforms
|
||||
</h2>
|
||||
<p className="text-xl text-gray-300 max-w-3xl mx-auto leading-relaxed">
|
||||
<p className="max-w-3xl mx-auto text-xl leading-relaxed text-gray-300">
|
||||
Comprehensive native development capabilities covering both iOS and
|
||||
Android ecosystems with deep platform expertise.
|
||||
</p>
|
||||
@@ -519,7 +519,7 @@ const NativeCapabilities = () => {
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8, delay: 0.2 }}
|
||||
viewport={{ once: true }}
|
||||
className="grid md:grid-cols-2 lg:grid-cols-3 gap-8"
|
||||
className="grid gap-8 md:grid-cols-2 lg:grid-cols-3"
|
||||
>
|
||||
{capabilities.map((capability, index) => {
|
||||
const IconComponent = capability.icon;
|
||||
@@ -533,15 +533,15 @@ const NativeCapabilities = () => {
|
||||
whileHover={{ y: -5 }}
|
||||
className="group"
|
||||
>
|
||||
<Card className="bg-gray-900/50 backdrop-blur-md border-gray-800 hover:border-accent/30 transition-all duration-300 shadow-lg hover:shadow-xl rounded-2xl h-full">
|
||||
<Card className="h-full transition-all duration-300 border-gray-800 shadow-lg bg-gray-900/50 backdrop-blur-md hover:border-accent/30 hover:shadow-xl rounded-2xl">
|
||||
<CardContent className="p-8">
|
||||
<div className="w-12 h-12 bg-accent/20 rounded-lg flex items-center justify-center mb-6">
|
||||
<div className="flex items-center justify-center w-12 h-12 mb-6 rounded-lg bg-accent/20">
|
||||
<IconComponent className="w-6 h-6 text-accent" />
|
||||
</div>
|
||||
<h3 className="text-xl font-semibold text-white mb-4">
|
||||
<h3 className="mb-4 text-xl font-semibold text-white">
|
||||
{capability.title}
|
||||
</h3>
|
||||
<p className="text-gray-300 leading-relaxed mb-6">
|
||||
<p className="mb-6 leading-relaxed text-gray-300">
|
||||
{capability.description}
|
||||
</p>
|
||||
<div className="flex flex-wrap gap-2">
|
||||
@@ -549,7 +549,7 @@ const NativeCapabilities = () => {
|
||||
<Badge
|
||||
key={tech}
|
||||
variant="secondary"
|
||||
className="text-xs bg-gray-800/50 text-gray-300 border-gray-700"
|
||||
className="text-xs text-gray-300 border-gray-700 bg-gray-800/50"
|
||||
>
|
||||
{tech}
|
||||
</Badge>
|
||||
@@ -645,18 +645,18 @@ const NativeUseCases = () => {
|
||||
|
||||
return (
|
||||
<section className="py-32">
|
||||
<div className="container mx-auto px-6 lg:px-8">
|
||||
<div className="container px-6 mx-auto lg:px-8">
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 30 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8 }}
|
||||
viewport={{ once: true }}
|
||||
className="text-center mb-20"
|
||||
className="mb-20 text-center"
|
||||
>
|
||||
<h2 className="text-4xl lg:text-5xl font-semibold text-foreground mb-6">
|
||||
<h2 className="mb-6 text-4xl font-semibold lg:text-5xl text-foreground">
|
||||
When Native Development is Your Best Choice
|
||||
</h2>
|
||||
<p className="text-xl text-muted-foreground max-w-3xl mx-auto leading-relaxed">
|
||||
<p className="max-w-3xl mx-auto text-xl leading-relaxed text-muted-foreground">
|
||||
Certain application requirements and business goals make native
|
||||
development the optimal choice for long-term success.
|
||||
</p>
|
||||
@@ -667,7 +667,7 @@ const NativeUseCases = () => {
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8, delay: 0.2 }}
|
||||
viewport={{ once: true }}
|
||||
className="grid md:grid-cols-2 lg:grid-cols-3 gap-8"
|
||||
className="grid gap-8 md:grid-cols-2 lg:grid-cols-3"
|
||||
>
|
||||
{useCases.map((useCase, index) => {
|
||||
const IconComponent = useCase.icon;
|
||||
@@ -681,15 +681,15 @@ const NativeUseCases = () => {
|
||||
whileHover={{ y: -5 }}
|
||||
className="group"
|
||||
>
|
||||
<Card className="bg-card/20 backdrop-blur-md border-white/10 hover:border-accent/30 transition-all duration-300 shadow-lg hover:shadow-xl rounded-2xl h-full">
|
||||
<Card className="h-full transition-all duration-300 shadow-lg bg-card/20 backdrop-blur-md border-white/10 hover:border-accent/30 hover:shadow-xl rounded-2xl">
|
||||
<CardContent className="p-8">
|
||||
<div className="w-12 h-12 bg-accent/20 rounded-lg flex items-center justify-center mb-6">
|
||||
<div className="flex items-center justify-center w-12 h-12 mb-6 rounded-lg bg-accent/20">
|
||||
<IconComponent className="w-6 h-6 text-accent" />
|
||||
</div>
|
||||
<h3 className="text-xl font-semibold text-foreground mb-4">
|
||||
<h3 className="mb-4 text-xl font-semibold text-foreground">
|
||||
{useCase.title}
|
||||
</h3>
|
||||
<p className="text-muted-foreground leading-relaxed mb-6">
|
||||
<p className="mb-6 leading-relaxed text-muted-foreground">
|
||||
{useCase.description}
|
||||
</p>
|
||||
<div className="space-y-2">
|
||||
@@ -756,18 +756,18 @@ const NativeProcess = () => {
|
||||
|
||||
return (
|
||||
<section className="py-32 bg-black">
|
||||
<div className="container mx-auto px-6 lg:px-8">
|
||||
<div className="container px-6 mx-auto lg:px-8">
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 30 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8 }}
|
||||
viewport={{ once: true }}
|
||||
className="text-center mb-20"
|
||||
className="mb-20 text-center"
|
||||
>
|
||||
<h2 className="text-4xl lg:text-5xl font-semibold text-white mb-6">
|
||||
<h2 className="mb-6 text-4xl font-semibold text-white lg:text-5xl">
|
||||
Precision & Excellence in Every Native Project
|
||||
</h2>
|
||||
<p className="text-xl text-gray-300 max-w-3xl mx-auto leading-relaxed">
|
||||
<p className="max-w-3xl mx-auto text-xl leading-relaxed text-gray-300">
|
||||
Our proven native development methodology ensures optimal
|
||||
performance and platform integration at every stage.
|
||||
</p>
|
||||
@@ -796,26 +796,26 @@ const NativeProcess = () => {
|
||||
className={`flex-1 ${isEven ? "lg:text-right" : "lg:text-left"
|
||||
} text-center lg:text-left`}
|
||||
>
|
||||
<div className="bg-gray-900/50 backdrop-blur-md rounded-2xl border border-gray-800 p-8 hover:border-accent/30 transition-all duration-300 shadow-lg hover:shadow-xl">
|
||||
<div className="flex items-center gap-4 mb-4 justify-center lg:justify-start">
|
||||
<div className="w-12 h-12 bg-accent/20 rounded-xl flex items-center justify-center">
|
||||
<div className="p-8 transition-all duration-300 border border-gray-800 shadow-lg bg-gray-900/50 backdrop-blur-md rounded-2xl hover:border-accent/30 hover:shadow-xl">
|
||||
<div className="flex items-center justify-center gap-4 mb-4 lg:justify-start">
|
||||
<div className="flex items-center justify-center w-12 h-12 bg-accent/20 rounded-xl">
|
||||
<IconComponent className="w-6 h-6 text-accent" />
|
||||
</div>
|
||||
<div className="text-2xl font-bold text-accent">
|
||||
0{index + 1}
|
||||
</div>
|
||||
</div>
|
||||
<h3 className="text-2xl font-semibold text-white mb-4">
|
||||
<h3 className="mb-4 text-2xl font-semibold text-white">
|
||||
{step.title}
|
||||
</h3>
|
||||
<p className="text-gray-300 leading-relaxed">
|
||||
<p className="leading-relaxed text-gray-300">
|
||||
{step.description}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Timeline dot */}
|
||||
<div className="w-4 h-4 bg-accent rounded-full border-4 border-black z-10 hidden lg:block"></div>
|
||||
<div className="z-10 hidden w-4 h-4 border-4 border-black rounded-full bg-accent lg:block"></div>
|
||||
|
||||
<div className="flex-1 hidden lg:block"></div>
|
||||
</motion.div>
|
||||
@@ -842,16 +842,16 @@ const NativeCaseStudies = () => {
|
||||
gradient: "from-[#007F33]/20 to-[#007F33]/10",
|
||||
buttonLink: "/projects/ranoutof",
|
||||
},
|
||||
{
|
||||
title: "E-commerce Platform Innovation",
|
||||
client: "Seezun",
|
||||
description:
|
||||
"Next-generation e-commerce solution with AI-powered recommendations, seamless checkout, and advanced analytics for modern retailers.",
|
||||
image: seezunImage,
|
||||
results: "800K+ users",
|
||||
gradient: "from-blue-500/20 to-cyan-500/20",
|
||||
buttonLink: "/projects/seezun",
|
||||
},
|
||||
// {
|
||||
// title: "E-commerce Platform Innovation",
|
||||
// client: "Seezun",
|
||||
// description:
|
||||
// "Next-generation e-commerce solution with AI-powered recommendations, seamless checkout, and advanced analytics for modern retailers.",
|
||||
// image: seezunImage,
|
||||
// results: "800K+ users",
|
||||
// gradient: "from-blue-500/20 to-cyan-500/20",
|
||||
// buttonLink: "/projects/seezun",
|
||||
// },
|
||||
{
|
||||
title: "Social Networking Platform",
|
||||
client: "Regroup",
|
||||
@@ -866,18 +866,18 @@ const NativeCaseStudies = () => {
|
||||
|
||||
return (
|
||||
<section className="py-32">
|
||||
<div className="container mx-auto px-6 lg:px-8">
|
||||
<div className="container px-6 mx-auto lg:px-8">
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 30 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8 }}
|
||||
viewport={{ once: true }}
|
||||
className="text-center mb-20"
|
||||
className="mb-20 text-center"
|
||||
>
|
||||
<h2 className="text-4xl lg:text-5xl font-semibold text-foreground mb-8">
|
||||
<h2 className="mb-8 text-4xl font-semibold lg:text-5xl text-foreground">
|
||||
Android Apps That Define Industries
|
||||
</h2>
|
||||
<p className="text-xl text-muted-foreground max-w-3xl mx-auto leading-relaxed">
|
||||
<p className="max-w-3xl mx-auto text-xl leading-relaxed text-muted-foreground">
|
||||
Discover how we've helped businesses succeed with powerful Android
|
||||
applications that leverage the platform's capabilities.
|
||||
</p>
|
||||
@@ -888,7 +888,7 @@ const NativeCaseStudies = () => {
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8, delay: 0.2 }}
|
||||
viewport={{ once: true }}
|
||||
className="grid md:grid-cols-2 lg:grid-cols-3 gap-8"
|
||||
className="grid gap-8 md:grid-cols-2 lg:grid-cols-3"
|
||||
>
|
||||
{caseStudies.map((study, index) => (
|
||||
<motion.div
|
||||
@@ -898,13 +898,13 @@ const NativeCaseStudies = () => {
|
||||
transition={{ duration: 0.5, delay: index * 0.01 }}
|
||||
viewport={{ once: true }}
|
||||
whileHover={{ y: -8, scale: 1.02 }}
|
||||
className="group cursor-pointer"
|
||||
className="cursor-pointer group"
|
||||
>
|
||||
<Card className="bg-card/20 backdrop-blur-md border-white/10 hover:border-accent/30 transition-all duration-300 shadow-lg hover:shadow-xl rounded-2xl overflow-hidden h-full">
|
||||
<CardContent className="p-0 flex flex-col h-full">
|
||||
<Card className="h-full overflow-hidden transition-all duration-300 shadow-lg bg-card/20 backdrop-blur-md border-white/10 hover:border-accent/30 hover:shadow-xl rounded-2xl">
|
||||
<CardContent className="flex flex-col h-full p-0">
|
||||
<div className="p-8 pb-6">
|
||||
<div className="flex items-start gap-4 mb-6">
|
||||
<div className="w-12 h-12 bg-accent/20 rounded-xl flex items-center justify-center">
|
||||
<div className="flex items-center justify-center w-12 h-12 bg-accent/20 rounded-xl">
|
||||
<svg
|
||||
className="w-6 h-6 text-accent"
|
||||
viewBox="0 0 24 24"
|
||||
@@ -914,7 +914,7 @@ const NativeCaseStudies = () => {
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-1">
|
||||
<div className="text-xs text-muted-foreground mb-2 uppercase tracking-wider">
|
||||
<div className="mb-2 text-xs tracking-wider uppercase text-muted-foreground">
|
||||
{study.client}
|
||||
</div>
|
||||
<Badge
|
||||
@@ -931,20 +931,20 @@ const NativeCaseStudies = () => {
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div className="px-8 pb-6 flex-1">
|
||||
<div className="flex-1 px-8 pb-6">
|
||||
<div
|
||||
className={`relative rounded-xl overflow-hidden bg-gradient-to-br ${study.gradient} p-4 border border-white/10`}
|
||||
>
|
||||
<ImageWithFallback
|
||||
src={study.image}
|
||||
alt={study.title}
|
||||
className="w-full h-48 object-cover rounded-lg shadow-lg"
|
||||
className="object-cover w-full h-48 rounded-lg shadow-lg"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="px-8 pb-6">
|
||||
<p className="text-muted-foreground text-sm leading-relaxed">
|
||||
<p className="text-sm leading-relaxed text-muted-foreground">
|
||||
{study.description}
|
||||
</p>
|
||||
</div>
|
||||
@@ -953,7 +953,7 @@ const NativeCaseStudies = () => {
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
className="w-full justify-between text-accent hover:text-accent hover:bg-accent/10 group-hover:translate-x-1 transition-all duration-300"
|
||||
className="justify-between w-full transition-all duration-300 text-accent hover:text-accent hover:bg-accent/10 group-hover:translate-x-1"
|
||||
onClick={() => navigate(study.buttonLink)}
|
||||
>
|
||||
<span className="text-sm font-medium">
|
||||
@@ -977,13 +977,13 @@ const NativeInlineCTA = () => {
|
||||
const navigate = useNavigate();
|
||||
return (
|
||||
<section className="py-20 bg-black">
|
||||
<div className="container mx-auto px-6 lg:px-8">
|
||||
<div className="container px-6 mx-auto lg:px-8">
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 50 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8 }}
|
||||
viewport={{ once: true }}
|
||||
className="text-center max-w-4xl mx-auto"
|
||||
className="max-w-4xl mx-auto text-center"
|
||||
>
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 30 }}
|
||||
@@ -993,30 +993,30 @@ const NativeInlineCTA = () => {
|
||||
className="space-y-8"
|
||||
>
|
||||
<div className="inline-block p-[2px] rounded-full bg-gradient-to-r from-accent via-blue-500 to-purple-500">
|
||||
<div className="bg-black rounded-full px-6 py-3 flex items-center gap-2">
|
||||
<div className="flex items-center gap-2 px-6 py-3 bg-black rounded-full">
|
||||
<Gauge className="w-5 h-5 text-white" />
|
||||
<span className="text-white text-base font-medium">
|
||||
<span className="text-base font-medium text-white">
|
||||
Peak Performance
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2 className="text-4xl lg:text-5xl font-semibold text-white leading-tight">
|
||||
<h2 className="text-4xl font-semibold leading-tight text-white lg:text-5xl">
|
||||
Ready to Achieve{" "}
|
||||
<span className="text-accent">Peak App Performance?</span>
|
||||
</h2>
|
||||
|
||||
<p className="text-xl text-gray-300 leading-relaxed max-w-2xl mx-auto">
|
||||
<p className="max-w-2xl mx-auto text-xl leading-relaxed text-gray-300">
|
||||
Let our native experts guide your next high-impact application to
|
||||
deliver uncompromising performance and user experience.
|
||||
</p>
|
||||
|
||||
<ShimmerButton
|
||||
className="text-xl px-10 py-5 rounded-2xl shadow-lg hover:shadow-xl"
|
||||
className="px-10 py-5 text-xl shadow-lg rounded-2xl hover:shadow-xl"
|
||||
onClick={() => navigate("/start-a-project")}
|
||||
>
|
||||
<div className="inline-flex items-center gap-3">
|
||||
<MessageSquare className="w-6 h-6 flex-shrink-0" />
|
||||
<MessageSquare className="flex-shrink-0 w-6 h-6" />
|
||||
<span>Discuss Your Native App Project</span>
|
||||
</div>
|
||||
</ShimmerButton>
|
||||
@@ -1067,23 +1067,23 @@ const NativeAppTechStack = () => {
|
||||
|
||||
return (
|
||||
<section className="py-32 bg-black">
|
||||
<div className="container mx-auto px-6 lg:px-8">
|
||||
<div className="container px-6 mx-auto lg:px-8">
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 30 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8 }}
|
||||
viewport={{ once: true }}
|
||||
className="text-center mb-20"
|
||||
className="mb-20 text-center"
|
||||
>
|
||||
<h2 className="text-4xl lg:text-5xl font-semibold text-white mb-6">
|
||||
<h2 className="mb-6 text-4xl font-semibold text-white lg:text-5xl">
|
||||
Powering Native App Development
|
||||
</h2>
|
||||
<p className="text-xl text-gray-300 leading-relaxed">
|
||||
<p className="text-xl leading-relaxed text-gray-300">
|
||||
We leverage native frameworks and tools to deliver high-performance apps for iOS and Android.
|
||||
</p>
|
||||
</motion.div>
|
||||
|
||||
<div className="grid grid-cols-2 md:grid-cols-4 gap-8 max-w-4xl mx-auto">
|
||||
<div className="grid max-w-4xl grid-cols-2 gap-8 mx-auto md:grid-cols-4">
|
||||
{technologies.map((tech, index) => (
|
||||
<motion.div
|
||||
key={index}
|
||||
@@ -1094,14 +1094,14 @@ const NativeAppTechStack = () => {
|
||||
whileHover={{ scale: 1.1, y: -5 }}
|
||||
className="flex flex-col items-center group"
|
||||
>
|
||||
<div className="w-20 h-20 bg-gray-900/50 rounded-2xl flex items-center justify-center border border-gray-800 group-hover:border-accent/30 transition-all duration-300 shadow-lg group-hover:shadow-xl mb-4">
|
||||
<div className="flex items-center justify-center w-20 h-20 mb-4 transition-all duration-300 border border-gray-800 shadow-lg bg-gray-900/50 rounded-2xl group-hover:border-accent/30 group-hover:shadow-xl">
|
||||
<ImageWithFallback
|
||||
src={tech.logo}
|
||||
alt={tech.name}
|
||||
className="w-12 h-12 object-contain"
|
||||
className="object-contain w-12 h-12"
|
||||
/>
|
||||
</div>
|
||||
<span className="text-gray-300 text-sm group-hover:text-white transition-colors duration-300">
|
||||
<span className="text-sm text-gray-300 transition-colors duration-300 group-hover:text-white">
|
||||
{tech.name}
|
||||
</span>
|
||||
</motion.div>
|
||||
@@ -1155,18 +1155,18 @@ const HireNativeDevelopers = () => {
|
||||
|
||||
return (
|
||||
<section className="py-32">
|
||||
<div className="container mx-auto px-6 lg:px-8">
|
||||
<div className="container px-6 mx-auto lg:px-8">
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 30 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8 }}
|
||||
viewport={{ once: true }}
|
||||
className="text-center mb-20"
|
||||
className="mb-20 text-center"
|
||||
>
|
||||
<h2 className="text-4xl lg:text-5xl font-semibold text-foreground mb-8">
|
||||
<h2 className="mb-8 text-4xl font-semibold lg:text-5xl text-foreground">
|
||||
Find Your Elite Native App Development Team
|
||||
</h2>
|
||||
<p className="text-xl text-muted-foreground max-w-3xl mx-auto leading-relaxed">
|
||||
<p className="max-w-3xl mx-auto text-xl leading-relaxed text-muted-foreground">
|
||||
Access our pool of highly specialized iOS and Android native
|
||||
developers for your most demanding projects.
|
||||
</p>
|
||||
@@ -1177,7 +1177,7 @@ const HireNativeDevelopers = () => {
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8, delay: 0.2 }}
|
||||
viewport={{ once: true }}
|
||||
className="grid md:grid-cols-2 lg:grid-cols-3 gap-8 mb-12"
|
||||
className="grid gap-8 mb-12 md:grid-cols-2 lg:grid-cols-3"
|
||||
>
|
||||
{developerTypes.map((dev, index) => (
|
||||
<motion.div
|
||||
@@ -1187,12 +1187,12 @@ const HireNativeDevelopers = () => {
|
||||
transition={{ duration: 0.5, delay: index * 0.01 }}
|
||||
viewport={{ once: true }}
|
||||
whileHover={{ y: -8, scale: 1.02 }}
|
||||
className="group cursor-pointer"
|
||||
className="cursor-pointer group"
|
||||
>
|
||||
<Card className="bg-card/20 backdrop-blur-md border-white/10 hover:border-accent/30 transition-all duration-300 shadow-lg hover:shadow-xl rounded-2xl h-full">
|
||||
<Card className="h-full transition-all duration-300 shadow-lg bg-card/20 backdrop-blur-md border-white/10 hover:border-accent/30 hover:shadow-xl rounded-2xl">
|
||||
<CardContent className="p-8">
|
||||
<div className="flex items-center gap-4 mb-6">
|
||||
<div className="w-12 h-12 bg-accent/20 rounded-xl flex items-center justify-center">
|
||||
<div className="flex items-center justify-center w-12 h-12 bg-accent/20 rounded-xl">
|
||||
<Gauge className="w-6 h-6 text-accent" />
|
||||
</div>
|
||||
<div>
|
||||
@@ -1205,11 +1205,11 @@ const HireNativeDevelopers = () => {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 className="text-xl font-semibold text-foreground mb-4">
|
||||
<h3 className="mb-4 text-xl font-semibold text-foreground">
|
||||
{dev.title}
|
||||
</h3>
|
||||
|
||||
<p className="text-muted-foreground text-sm mb-4">
|
||||
<p className="mb-4 text-sm text-muted-foreground">
|
||||
{dev.specialties}
|
||||
</p>
|
||||
|
||||
@@ -1235,23 +1235,23 @@ const HireNativeDevelopers = () => {
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8, delay: 0.4 }}
|
||||
viewport={{ once: true }}
|
||||
className="flex flex-col sm:flex-row gap-4 justify-center"
|
||||
className="flex flex-col justify-center gap-4 sm:flex-row"
|
||||
>
|
||||
<ShimmerButton className="px-8 py-4"
|
||||
onClick={() => navigate("/hire-talent/native-app-developers")}
|
||||
>
|
||||
<div className="inline-flex items-center gap-2">
|
||||
<UserPlus className="w-5 h-5 flex-shrink-0" />
|
||||
<UserPlus className="flex-shrink-0 w-5 h-5" />
|
||||
<span>Hire Native Developers</span>
|
||||
</div>
|
||||
</ShimmerButton>
|
||||
<Button
|
||||
variant="outline"
|
||||
className="border-white text-white hover:bg-white/10 hover:text-white px-8 py-4 rounded-lg transition-all duration-300 h-auto"
|
||||
className="h-auto px-8 py-4 text-white transition-all duration-300 border-white rounded-lg hover:bg-white/10 hover:text-white"
|
||||
style={{ color: "white" }}
|
||||
>
|
||||
<span>Get a Consultation</span>
|
||||
<ArrowRight className="ml-2 w-4 h-4" />
|
||||
<ArrowRight className="w-4 h-4 ml-2" />
|
||||
</Button>
|
||||
</motion.div>
|
||||
</div>
|
||||
@@ -1287,18 +1287,18 @@ const NativeFAQs = () => {
|
||||
|
||||
return (
|
||||
<section className="py-32 bg-black">
|
||||
<div className="container mx-auto px-6 lg:px-8">
|
||||
<div className="container px-6 mx-auto lg:px-8">
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 30 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8 }}
|
||||
viewport={{ once: true }}
|
||||
className="text-center mb-20"
|
||||
className="mb-20 text-center"
|
||||
>
|
||||
<h2 className="text-4xl lg:text-5xl font-semibold text-white mb-6">
|
||||
<h2 className="mb-6 text-4xl font-semibold text-white lg:text-5xl">
|
||||
Frequently Asked Questions
|
||||
</h2>
|
||||
<p className="text-xl text-gray-300 leading-relaxed">
|
||||
<p className="text-xl leading-relaxed text-gray-300">
|
||||
Common questions about native app development.
|
||||
</p>
|
||||
</motion.div>
|
||||
@@ -1315,14 +1315,14 @@ const NativeFAQs = () => {
|
||||
<AccordionItem
|
||||
key={index}
|
||||
value={`item-${index}`}
|
||||
className="bg-gray-900/50 backdrop-blur-md rounded-2xl border border-gray-800 px-10 shadow-lg"
|
||||
className="px-10 border border-gray-800 shadow-lg bg-gray-900/50 backdrop-blur-md rounded-2xl"
|
||||
>
|
||||
<AccordionTrigger className="text-left hover:no-underline py-10 text-xl">
|
||||
<AccordionTrigger className="py-10 text-xl text-left hover:no-underline">
|
||||
<span className="font-semibold text-white">
|
||||
{faq.question}
|
||||
</span>
|
||||
</AccordionTrigger>
|
||||
<AccordionContent className="text-gray-300 pb-10 text-lg leading-relaxed">
|
||||
<AccordionContent className="pb-10 text-lg leading-relaxed text-gray-300">
|
||||
{faq.answer}
|
||||
</AccordionContent>
|
||||
</AccordionItem>
|
||||
@@ -1338,14 +1338,14 @@ const NativeFAQs = () => {
|
||||
const NativeFinalCTA = () => {
|
||||
const navigate = useNavigate();
|
||||
return (
|
||||
<section className="py-20 relative overflow-hidden">
|
||||
<div className="container mx-auto px-6 lg:px-8 relative z-10">
|
||||
<section className="relative py-20 overflow-hidden">
|
||||
<div className="container relative z-10 px-6 mx-auto lg:px-8">
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 50 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8 }}
|
||||
viewport={{ once: true }}
|
||||
className="text-center max-w-4xl mx-auto"
|
||||
className="max-w-4xl mx-auto text-center"
|
||||
>
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
@@ -1355,16 +1355,16 @@ const NativeFinalCTA = () => {
|
||||
className="mb-8"
|
||||
>
|
||||
<div className="inline-block p-[2px] rounded-full bg-gradient-to-r from-accent via-blue-500 to-purple-500">
|
||||
<div className="bg-background rounded-full px-6 py-3 flex items-center gap-2">
|
||||
<div className="flex items-center gap-2 px-6 py-3 rounded-full bg-background">
|
||||
<Gauge className="w-5 h-5 text-foreground" />
|
||||
<span className="text-foreground text-base font-medium">
|
||||
<span className="text-base font-medium text-foreground">
|
||||
Maximum Potential
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</motion.div>
|
||||
|
||||
<h2 className="text-4xl lg:text-5xl font-semibold text-foreground mb-6 leading-tight">
|
||||
<h2 className="mb-6 text-4xl font-semibold leading-tight lg:text-5xl text-foreground">
|
||||
Unlock Full Potential with{" "}
|
||||
<span className="text-accent">WDI's Native Expertise</span>
|
||||
</h2>
|
||||
@@ -1374,7 +1374,7 @@ const NativeFinalCTA = () => {
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.8, delay: 0.3 }}
|
||||
viewport={{ once: true }}
|
||||
className="text-xl text-muted-foreground mb-12 max-w-2xl mx-auto leading-relaxed"
|
||||
className="max-w-2xl mx-auto mb-12 text-xl leading-relaxed text-muted-foreground"
|
||||
>
|
||||
Invest in an application that delivers unparalleled performance,
|
||||
security, and a truly immersive user experience.
|
||||
@@ -1387,16 +1387,16 @@ const NativeFinalCTA = () => {
|
||||
viewport={{ once: true }}
|
||||
className="space-y-8"
|
||||
>
|
||||
<ShimmerButton className="px-12 py-6 text-xl rounded-2xl shadow-2xl hover:shadow-accent/25"
|
||||
<ShimmerButton className="px-12 py-6 text-xl shadow-2xl rounded-2xl hover:shadow-accent/25"
|
||||
onClick={() => navigate("/start-a-project")}
|
||||
>
|
||||
<div className="inline-flex items-center gap-3">
|
||||
<Rocket className="w-6 h-6 flex-shrink-0" />
|
||||
<Rocket className="flex-shrink-0 w-6 h-6" />
|
||||
<span>Start Your Native App Journey</span>
|
||||
</div>
|
||||
</ShimmerButton>
|
||||
|
||||
<p className="text-muted-foreground text-sm">
|
||||
<p className="text-sm text-muted-foreground">
|
||||
Expert consultation • Architecture planning • Performance
|
||||
optimization
|
||||
</p>
|
||||
@@ -1405,10 +1405,10 @@ const NativeFinalCTA = () => {
|
||||
</div>
|
||||
|
||||
{/* Background Decorative Elements */}
|
||||
<div className="absolute top-0 left-0 w-full h-full pointer-events-none overflow-hidden">
|
||||
<div className="absolute top-20 left-20 w-60 h-60 bg-accent/5 rounded-full blur-3xl"></div>
|
||||
<div className="absolute bottom-20 right-20 w-60 h-60 bg-blue-500/5 rounded-full blur-3xl"></div>
|
||||
<div className="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 w-80 h-80 bg-purple-500/3 rounded-full blur-3xl"></div>
|
||||
<div className="absolute top-0 left-0 w-full h-full overflow-hidden pointer-events-none">
|
||||
<div className="absolute rounded-full top-20 left-20 w-60 h-60 bg-accent/5 blur-3xl"></div>
|
||||
<div className="absolute rounded-full bottom-20 right-20 w-60 h-60 bg-blue-500/5 blur-3xl"></div>
|
||||
<div className="absolute transform -translate-x-1/2 -translate-y-1/2 rounded-full top-1/2 left-1/2 w-80 h-80 bg-purple-500/3 blur-3xl"></div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
@@ -1417,7 +1417,7 @@ const NativeFinalCTA = () => {
|
||||
// Main Native App Development Page
|
||||
export const NativeAppDevelopment = () => {
|
||||
return (
|
||||
<div className="dark min-h-screen">
|
||||
<div className="min-h-screen dark">
|
||||
{/* <Navigation /> */}
|
||||
|
||||
{/* Hero Section */}
|
||||
|
||||
Reference in New Issue
Block a user