feat: add Google Play store assets and documentation alongside UI copy updates

This commit is contained in:
Hamza-Ayed
2026-09-19 12:34:26 +03:00
parent ce896df30a
commit 279c9fa510
9 changed files with 251 additions and 235 deletions
@@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import '../../../../core/constants/app_colors.dart';
@@ -9,9 +8,9 @@ class AboutAwardsSheet extends StatelessWidget {
@override
Widget build(BuildContext context) {
return DraggableScrollableSheet(
initialChildSize: 0.88,
initialChildSize: 0.85,
minChildSize: 0.5,
maxChildSize: 0.96,
maxChildSize: 0.95,
builder: (context, scrollController) {
return Container(
decoration: const BoxDecoration(
@@ -51,8 +50,8 @@ class AboutAwardsSheet extends StatelessWidget {
child: Column(
children: [
Container(
width: 110,
height: 110,
width: 104,
height: 104,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: AppColors.pureWhite,
@@ -63,7 +62,7 @@ class AboutAwardsSheet extends StatelessWidget {
boxShadow: [
BoxShadow(
color: AppColors.urukGold.withValues(alpha: 0.2),
blurRadius: 28,
blurRadius: 26,
offset: const Offset(0, 8),
),
],
@@ -113,7 +112,7 @@ class AboutAwardsSheet extends StatelessWidget {
),
const SizedBox(width: 6),
Text(
'تكريم التميز والسيادة التكنولوجية',
'رعاية ودعم الابتكار والخدمات التقنية',
style: GoogleFonts.alexandria(
fontSize: 11.5,
fontWeight: FontWeight.w700,
@@ -127,18 +126,18 @@ class AboutAwardsSheet extends StatelessWidget {
),
),
const SizedBox(height: 24),
const SizedBox(height: 22),
// ── 2. ORIGIN & GENESIS STORY ──
// ── 2. URUK PRIZE MISSION & ROLE ──
_buildSectionCard(
icon: Icons.history_edu_rounded,
icon: Icons.lightbulb_rounded,
iconColor: AppColors.urukGoldDark,
title: 'قصة المنظومة: من أوروك إلى سيادة البيانات',
title: 'دور جائزة أوروك ورسالتها التقنية',
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'تستلهم جائزة أوروك الدولية إرثها من حضارة أوروك العظيمة — مهد أول تدوين للرموز والتخطيط العمراني في فجر الحضارة البشرية — لتكريم المشروعات التي تصنع فارقاً استراتيجياً في العالم العربي.',
'تستلهم جائزة أوروك الدولية رمزيتها من حضارة أوروك العريقة — مهد التنظيم المدني والقياسات الأولى في تاريخ الإنسانية — لتبني وتدعم المشاريع والخدمات التقنية المبتكرة في العالم العربي والشرق الأوسط.',
style: GoogleFonts.alexandria(
fontSize: 12.5,
height: 1.65,
@@ -148,7 +147,7 @@ class AboutAwardsSheet extends StatelessWidget {
),
const SizedBox(height: 10),
Text(
'من رحم هذا البرنامج وتتويجاً لتكريم جائزة أوروك، وُلدت منظومة «خرائط أوروك - Uruk Map» كبنية تحتية سيادية بديلة ومستقلة تماماً، مصممة لحماية السيادة المكانية وتوفير خرائط وملاحة ذكية مخصصة لمنطقة الشرق الأوسط وشمال أفريقيا دون الارتهان للشركات العالمية.',
'تعمل الجائزة وبرامجها على تشجيع التوسع في البنى التحتية الرقمية، وتمكين الحلول الذكية المستقلة التي تسد الفجوات التقنية وتخدم المجتمعات وقطاعات النقل والحركة بكفاءة عالية.',
style: GoogleFonts.alexandria(
fontSize: 12.5,
height: 1.65,
@@ -162,164 +161,39 @@ class AboutAwardsSheet extends StatelessWidget {
const SizedBox(height: 16),
// ── 3. TECH ARCHITECT & FOUNDER ──
// ── 3. HOW THE PLATFORM WORKS & CORE TECH ──
_buildSectionCard(
icon: Icons.person_pin_circle_rounded,
icon: Icons.memory_rounded,
iconColor: AppColors.appleBlue,
title: 'القيادة التقنية والمعمارية للمنظومة',
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Container(
width: 44,
height: 44,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: AppColors.appleBlue.withValues(alpha: 0.1),
border: Border.all(color: AppColors.appleBlue.withValues(alpha: 0.3)),
),
child: const Icon(Icons.architecture_rounded, color: AppColors.appleBlue, size: 24),
),
const SizedBox(width: 12),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'م. حمزة عايد | Hamza Ayed',
style: GoogleFonts.alexandria(
fontSize: 14,
fontWeight: FontWeight.w700,
color: AppColors.textPrimary,
),
),
Text(
'Founding Tech Architect & Mobility Strategist',
style: GoogleFonts.alexandria(
fontSize: 11,
fontWeight: FontWeight.w600,
color: AppColors.appleBlue,
),
),
],
),
),
],
),
const SizedBox(height: 12),
Text(
'خبير استراتيجي في حركية النقل الذكي وتأسيس منظومات البيانات الحساسة بخبرة قيادية تتجاوز 20 عاماً في إدارة العمليات والأنظمة الحرجة، والمؤسس التقني المشارك لمنصات انطلق (Intaleq)، تريبز (Tripz)، ومنظومة سيرو (Siro Platform).',
style: GoogleFonts.alexandria(
fontSize: 12,
height: 1.6,
fontWeight: FontWeight.w500,
color: AppColors.textSecondary,
),
),
],
),
),
const SizedBox(height: 16),
// ── 4. ECONOMIC MOAT & UNIT ECONOMICS ──
_buildSectionCard(
icon: Icons.account_balance_wallet_rounded,
iconColor: AppColors.tacticalEmerald,
title: 'الأثر الاقتصادي والتوسع الإقليمي',
title: 'آلية عمل المنظومة والتقنيات المفعلة',
child: Column(
children: [
_buildStatRow(
metric: '0.30\$+',
metricLabel: 'وفر مباشر في كل رحلة وطلب',
desc: 'استبدال فواتير Google Maps الباهظة بنظام ذاتي الاستضافة والتحكم الكامل.',
color: AppColors.tacticalEmerald,
_buildTechRow(
icon: Icons.storage_rounded,
iconColor: AppColors.appleBlue,
title: 'الكاش الذكي وحفظ الخريطة في الذاكرة',
desc: 'نظام تخزين مؤقت يحفظ بلاطات الخريطة (Vector Tiles) في ذاكرة الجهاز ويستدعيها بسرعة فائقة، لضمان استجابة فورية وتوفير كبير في استهلاك البيانات.',
),
const Divider(height: 20, color: AppColors.borderSubtle),
_buildStatRow(
metric: 'MENA',
metricLabel: 'استهداف الأسواق المحرومة من خرائط موثوقة',
desc: 'توفير ملاحة ذكية وبنية خرائط مستقلة في العراق، السودان، اليمن، سوريا، وإيران.',
color: AppColors.urukGoldDark,
const Divider(height: 18, color: AppColors.borderSubtle),
_buildTechRow(
icon: Icons.fingerprint_rounded,
iconColor: AppColors.tacticalEmerald,
title: 'مفاتيح مخصصة وبصمة الجهاز (Device Key)',
desc: 'تسجيل وتخصيص مفتاح وصول مشفر لكل جهاز عبر بصمة العتاد (Hardware Fingerprint)، لتنظيم الطلبات وحماية أمان واستقرار الشبكة.',
),
const Divider(height: 20, color: AppColors.borderSubtle),
_buildStatRow(
metric: '100%',
metricLabel: 'سيادة رقمية وعزل جغرافي',
desc: 'خوادم متجهات وتوجيه محلي (Self-Hosted OSRM + Vector Tiles) مستقلة عن أي قيود أو واجهات أجنبية.',
color: AppColors.appleBlue,
const Divider(height: 18, color: AppColors.borderSubtle),
_buildTechRow(
icon: Icons.offline_bolt_rounded,
iconColor: AppColors.sovereignGold,
title: 'ملاحة ذكية وتوجيه دون اتصال بالإنترنت',
desc: 'استمرار التوجيه وحساب مسارات الملاحة والانعطافات بدقة عالية حتى في حال انقطاع تغطية الإنترنت أو ضعف الشبكة.',
),
const Divider(height: 20, color: AppColors.borderSubtle),
_buildStatRow(
metric: 'OFFLINE',
metricLabel: 'ملاحة ذكية كاملة دون اتصال',
desc: 'مواصلة التوجيه والانعطاف حتى في مناطق انعدام التغطية الخلوية والصحراوية.',
color: AppColors.sovereignGold,
),
],
),
),
const SizedBox(height: 16),
// ── 5. URUK EDITION APP ICON SHOWCASE ──
Container(
padding: const EdgeInsets.all(16),
decoration: BoxDecoration(
color: const Color(0xFF131722),
borderRadius: BorderRadius.circular(22),
border: Border.all(color: AppColors.urukGoldBorder),
boxShadow: [
BoxShadow(
color: Colors.black.withValues(alpha: 0.18),
blurRadius: 18,
offset: const Offset(0, 6),
),
],
),
child: Row(
children: [
Container(
width: 60,
height: 60,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(16),
border: Border.all(color: AppColors.urukGold.withValues(alpha: 0.4)),
),
child: ClipRRect(
borderRadius: BorderRadius.circular(15),
child: Image.asset(
'assets/images/siro_uruk_logo.png',
fit: BoxFit.cover,
),
),
),
const SizedBox(width: 14),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'شعار إصدار أوروك الخاص',
style: GoogleFonts.alexandria(
fontSize: 13,
fontWeight: FontWeight.w700,
color: AppColors.pureWhite,
),
),
const SizedBox(height: 4),
Text(
'دمج جناح تمثال أوروك الذهبي مع سهم الملاحة الفضائي وخطوط الارتفاع الطبوغرافية.',
style: GoogleFonts.alexandria(
fontSize: 10.5,
color: const Color(0xFFB0B5C0),
height: 1.4,
),
),
],
),
const Divider(height: 18, color: AppColors.borderSubtle),
_buildTechRow(
icon: Icons.public_rounded,
iconColor: AppColors.urukGoldDark,
title: 'تغطية الأسواق الإقليمية الحيوية',
desc: 'تركيز استراتيجي على توفير بيانات طرق تفصيلية ومحدثة للأسواق التي تعاني من نقص أو قيود في الخرائط العالمية (العراق، السودان، اليمن، سوريا، والمنطقة).',
),
],
),
@@ -327,21 +201,9 @@ class AboutAwardsSheet extends StatelessWidget {
const SizedBox(height: 24),
// ── 6. ACTIONS & SHARE ──
ElevatedButton.icon(
onPressed: () {
Clipboard.setData(const ClipboardData(text: 'https://intaleqapp.com/hamza.html'));
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text(
'تم نسخ رابط الملف التنفيذي ودراسة المنظومة بنجاح',
style: TextStyle(fontSize: 12),
),
backgroundColor: AppColors.tacticalEmerald,
duration: Duration(seconds: 2),
),
);
},
// ── 4. CLOSE ACTION BUTTON ──
ElevatedButton(
onPressed: () => Navigator.of(context).pop(),
style: ElevatedButton.styleFrom(
backgroundColor: AppColors.textPrimary,
foregroundColor: AppColors.pureWhite,
@@ -351,33 +213,11 @@ class AboutAwardsSheet extends StatelessWidget {
),
elevation: 0,
),
icon: const Icon(Icons.link_rounded, size: 18, color: AppColors.urukGold),
label: Text(
'نسخ رابط ملف المشروع ودراسة الحالة التنفيذية',
style: GoogleFonts.alexandria(
fontSize: 12,
fontWeight: FontWeight.w600,
),
),
),
const SizedBox(height: 10),
OutlinedButton(
onPressed: () => Navigator.of(context).pop(),
style: OutlinedButton.styleFrom(
padding: const EdgeInsets.symmetric(vertical: 13),
side: const BorderSide(color: AppColors.borderSubtle),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
),
),
child: Text(
'إغلاق والعودة للخريطة',
'إغلاق ومتابعة الاستكشاف',
style: GoogleFonts.alexandria(
fontSize: 12,
fontSize: 13,
fontWeight: FontWeight.w600,
color: AppColors.textSecondary,
),
),
),
@@ -445,32 +285,23 @@ class AboutAwardsSheet extends StatelessWidget {
);
}
Widget _buildStatRow({
required String metric,
required String metricLabel,
Widget _buildTechRow({
required IconData icon,
required Color iconColor,
required String title,
required String desc,
required Color color,
}) {
return Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
constraints: const BoxConstraints(minWidth: 70),
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
width: 34,
height: 34,
decoration: BoxDecoration(
color: color.withValues(alpha: 0.1),
color: iconColor.withValues(alpha: 0.1),
borderRadius: BorderRadius.circular(10),
),
child: Center(
child: Text(
metric,
style: GoogleFonts.alexandria(
fontSize: 14,
fontWeight: FontWeight.w800,
color: color,
),
),
),
child: Icon(icon, size: 18, color: iconColor),
),
const SizedBox(width: 12),
Expanded(
@@ -478,20 +309,20 @@ class AboutAwardsSheet extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
metricLabel,
title,
style: GoogleFonts.alexandria(
fontSize: 12,
fontSize: 12.5,
fontWeight: FontWeight.w700,
color: AppColors.textPrimary,
),
),
const SizedBox(height: 2),
const SizedBox(height: 3),
Text(
desc,
style: GoogleFonts.alexandria(
fontSize: 11,
color: AppColors.textSecondary,
height: 1.4,
height: 1.5,
),
),
],
@@ -125,7 +125,7 @@ class LayerSelectorSheet extends StatelessWidget {
),
),
title: const Text(
'جائزة أوروك الدولية واعتماد المنظومة',
'عن منظومة أوروك والتقنيات المفعلة',
style: TextStyle(
fontSize: 13.5,
fontWeight: FontWeight.w700,
@@ -133,7 +133,7 @@ class LayerSelectorSheet extends StatelessWidget {
),
),
subtitle: const Text(
'قصة نشأة المشروع، السيادة الرقمية، والمعمار التقني',
'الكاش الذكي، مفاتيح الأجهزة، والملاحة دون اتصال',
style: TextStyle(fontSize: 11, color: AppColors.textSecondary),
),
trailing: const Icon(Icons.workspace_premium_rounded, size: 20, color: AppColors.urukGoldDark),