Postingan Keren Yang Bikinnya Pake Flutter di ZappRun ๐Ÿ”ฅ

 

Posting Foto Kekinian Lo!!


Feed 1: Halaman 1
๐Ÿ”ฅ Yo gengs, lagi scroll-scroll santuy nemu foto kece nih!
๐Ÿ“ธ Postingan ke-1 sampe ke-3 full vibes, siap-siap kepo ya!
๐Ÿ’™ Swipe buat liat keindahan yang gak main-main!
#VibesMantul #FotoKeren #GenZModeOn


Feed 2: Halaman 2
Yo, squad! Lagi cari inspirasi biar feed makin kece?
๐Ÿ“ท Foto-foto kece dari feed 2 ini gak bakal bikin lo bosen, bro!
✨ Postingan kece yang siap nemenin hari lo!
#ScrollDuluBro #FeedKece #HypeAbis


Feed 3: Halaman 3
Bro sis, udah liat belum feed 3 kita?
๐Ÿ–ผ️ Gambar-gambar kece yang siap bikin mood lo naik!
๐Ÿ˜Ž Jangan lupa like dan komen ya, biar makin seru!
#FeedHits #ChillVibesOnly #KepoTerus


Feed 4: Halaman 4
Nih ya, special feed buat lo yang suka vibe beda!
❤️ Feed 4 ini penuh dengan foto-foto yang bikin lo baper!
✨ Yuk, cekidot, dan temuin inspirasinya!
#LoveIt #FeedSpesial #AsikTerus


Splash Screen (Loading)
✌️ Bro, sabar bentar ya! Lagi loading vibes mantul sama lagu keren biar lo makin betah nunggu!
๐ŸŽง Dengerin sambil ngopi, siap-siap masuk ke dunia Instagram versi lo!
#LoadingSantuy #DengerinDulu #MantapJiwa

Kode Nya Disini Ya :

import 'dart:async';

import 'package:flutter/material.dart';

import 'package:audioplayers/audioplayers.dart';

import 'package:audioplayers/audio_cache.dart';


void main() => runApp(MyApp());


class MyApp extends StatelessWidget {

  @override

  Widget build(BuildContext context) {

    return MaterialApp(

      title: 'Instagram Clone',

      theme: ThemeData(

        primarySwatch: Colors.blue,

      ),

      home: SplashScreen(),

      debugShowCheckedModeBanner: false,

    );

  }

}


// ---------------- Splash Screen ----------------

class SplashScreen extends StatefulWidget {

  @override

  _SplashScreenState createState() => _SplashScreenState();

}


class _SplashScreenState extends State<SplashScreen> {

  late AudioPlayer _audioPlayer;

  late AudioCache _audioCache;


  @override

  void initState() {

    super.initState();


    _audioPlayer = AudioPlayer();

    _audioCache = AudioCache(prefix: 'assets/audio/', fixedPlayer: _audioPlayer);


    _playAudio();


    Timer(Duration(seconds: 10), () {

      _audioPlayer.stop(); // Stop lagu saat masuk ke halaman utama

      Navigator.of(context).pushReplacement(

        MaterialPageRoute(builder: (_) => HomeNavigation()),

      );

    });

  }


  void _playAudio() {

    _audioCache.play('audio1.mp3');

  }


  @override

  void dispose() {

    _audioPlayer.dispose();

    super.dispose();

  }


  @override

  Widget build(BuildContext context) {

    return Scaffold(

      backgroundColor: Colors.white,

      body: Center(

        child: Image.asset(

          'assets/images/foto10.jpg',

          width: 200,

          height: 200,

        ),

      ),

    );

  }

}


// ---------------- Home Navigation & Feed ----------------

class HomeNavigation extends StatefulWidget {

  @override

  _HomeNavigationState createState() => _HomeNavigationState();

}


class _HomeNavigationState extends State<HomeNavigation> {

  int _currentIndex = 0;


  final List<Widget> _pages = [

    PhotoFeedPage(title: 'Halaman 1', images: [

      'assets/images/foto1.jpg',

      'assets/images/foto2.jpg',

      'assets/images/foto3.jpg',

    ]),

    PhotoFeedPage(title: 'Halaman 2', images: [

      'assets/images/foto4.jpg',

      'assets/images/foto5.jpg',

      'assets/images/foto6.jpg',

    ]),

    PhotoFeedPage(title: 'Halaman 3', images: [

      'assets/images/foto7.jpg',

      'assets/images/foto8.jpg',

      'assets/images/foto9.jpg',

    ]),

  ];


  void _onTabTapped(int index) {

    setState(() {

      _currentIndex = index;

    });

  }


  @override

  Widget build(BuildContext context) {

    return Scaffold(

      appBar: AppBar(

        title: Text('Instagram Feed ${_currentIndex + 1}'),

      ),

      body: _pages[_currentIndex],

      bottomNavigationBar: BottomNavigationBar(

        currentIndex: _currentIndex,

        onTap: _onTabTapped,

        items: [

          BottomNavigationBarItem(

            icon: Icon(Icons.photo_album),

            label: 'Feed 1',

          ),

          BottomNavigationBarItem(

            icon: Icon(Icons.photo_camera),

            label: 'Feed 2',

          ),

          BottomNavigationBarItem(

            icon: Icon(Icons.photo_library),

            label: 'Feed 3',

          ),

        ],

      ),

    );

  }

}


class PhotoFeedPage extends StatelessWidget {

  final String title;

  final List<String> images;


  const PhotoFeedPage({required this.title, required this.images});


  @override

  Widget build(BuildContext context) {

    return ListView.builder(

      padding: EdgeInsets.all(8),

      itemCount: images.length,

      itemBuilder: (context, index) {

        return Card(

          margin: EdgeInsets.symmetric(vertical: 10),

          child: Column(

            children: [

              Image.asset(images[index]),

              Padding(

                padding: const EdgeInsets.all(8.0),

                child: Text(

                  'Postingan ke-${index + 1} di $title',

                  style: TextStyle(fontSize: 16),

                ),

              ),

            ],

          ),

        );

      },

    );

  }

}


Mau liat hasil nya?? 

Ini dia hasilnya : https://zk1gk06zkk1gl.zapp.page/#/

*TUNGGU LOADING NYA 10 DETIK YA*

Komentar

Postingan populer dari blog ini

๐Ÿš€ Belajar Flutter Sambil Ngabuburit: Bikin Widget Gampang Banget!

BIKIN TAMPILAN IG SENDIRI PAKE FIGMA YANG KECE DAN KEREN

Bikin aplikasi pake konsep CRUD di zapp.run, GAMPANG BANGET!!